summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/Makefile183
-rw-r--r--docs/api-notes/INDEX.txt61
-rw-r--r--docs/api-notes/Win32_Clients.txt13
-rw-r--r--docs/api-notes/backup_encryption.txt109
-rw-r--r--docs/api-notes/bin_bbackupd.txt88
-rw-r--r--docs/api-notes/bin_bbstored.txt54
-rw-r--r--docs/api-notes/common/lib_common.txt52
-rw-r--r--docs/api-notes/common/lib_common/BoxTime.txt7
-rw-r--r--docs/api-notes/common/lib_common/CollectInBufferStream.txt26
-rw-r--r--docs/api-notes/common/lib_common/Configuration.txt102
-rw-r--r--docs/api-notes/common/lib_common/Conversion.txt14
-rw-r--r--docs/api-notes/common/lib_common/ExcludeList.txt21
-rw-r--r--docs/api-notes/common/lib_common/FdGetLine.txt11
-rw-r--r--docs/api-notes/common/lib_common/Guards.txt5
-rw-r--r--docs/api-notes/common/lib_common/IOStream.txt89
-rw-r--r--docs/api-notes/common/lib_common/IOStreamGetLine.txt29
-rw-r--r--docs/api-notes/common/lib_common/MainHelper.txt4
-rw-r--r--docs/api-notes/common/lib_common/WaitForEvent.txt16
-rw-r--r--docs/api-notes/common/lib_common/xStream.txt40
-rw-r--r--docs/api-notes/common/lib_compress.txt8
-rw-r--r--docs/api-notes/common/lib_compress/CompressStream.txt27
-rw-r--r--docs/api-notes/common/lib_crypto.txt28
-rw-r--r--docs/api-notes/common/lib_crypto/CipherContext.txt28
-rw-r--r--docs/api-notes/common/lib_crypto/RollingChecksum.txt36
-rw-r--r--docs/api-notes/common/lib_server.txt9
-rw-r--r--docs/api-notes/common/lib_server/Daemon.txt96
-rw-r--r--docs/api-notes/common/lib_server/Protocol.txt120
-rw-r--r--docs/api-notes/common/lib_server/ServerStream.txt29
-rw-r--r--docs/api-notes/common/lib_server/ServerTLS.txt6
-rw-r--r--docs/api-notes/common/lib_server/SocketStream.txt8
-rw-r--r--docs/api-notes/common/lib_server/SocketStreamTLS.txt11
-rw-r--r--docs/api-notes/common/lib_server/TLSContext.txt16
-rw-r--r--docs/api-notes/common/memory_leaks.txt44
-rw-r--r--docs/api-notes/encrypt_rsync.txt66
-rw-r--r--docs/api-notes/lib_backupclient.txt46
-rw-r--r--docs/api-notes/lib_backupstore.txt30
-rw-r--r--docs/api-notes/raidfile/RaidFileRead.txt14
-rw-r--r--docs/api-notes/raidfile/RaidFileWrite.txt36
-rw-r--r--docs/api-notes/raidfile/lib_raidfile.txt73
-rw-r--r--docs/api-notes/win32_build_on_cygwin_using_mingw.txt113
-rw-r--r--docs/api-notes/win32_build_on_linux_using_mingw.txt108
-rw-r--r--docs/api-notes/windows_porting.txt100
-rw-r--r--docs/docbook/adminguide.xml1981
-rw-r--r--docs/docbook/bb-book.xsl17
-rw-r--r--docs/docbook/bb-man.xsl9
-rw-r--r--docs/docbook/bb-nochunk-book.xsl17
-rw-r--r--docs/docbook/bbackupctl.xml205
-rw-r--r--docs/docbook/bbackupd-config.xml153
-rw-r--r--docs/docbook/bbackupd.conf.xml479
-rw-r--r--docs/docbook/bbackupd.xml209
-rw-r--r--docs/docbook/bbackupquery.xml506
-rw-r--r--docs/docbook/bbstoreaccounts.xml386
-rw-r--r--docs/docbook/bbstored-certs.xml180
-rw-r--r--docs/docbook/bbstored-config.xml148
-rw-r--r--docs/docbook/bbstored.conf.xml211
-rw-r--r--docs/docbook/bbstored.xml90
-rw-r--r--docs/docbook/html/bbdoc-man.css104
-rw-r--r--docs/docbook/html/bbdoc.css112
-rw-r--r--docs/docbook/html/favicon.icobin0 -> 67646 bytes
-rw-r--r--docs/docbook/html/images/arrow.pngbin0 -> 197 bytes
-rw-r--r--docs/docbook/html/images/bblogo.pngbin0 -> 5882 bytes
-rw-r--r--docs/docbook/html/images/stepahead.pngbin0 -> 298 bytes
-rw-r--r--docs/docbook/instguide.xml766
-rw-r--r--docs/docbook/raidfile-config.xml198
-rw-r--r--docs/docbook/raidfile.conf.xml143
-rw-r--r--docs/images/bblogo-alpha.xcfbin0 -> 93980 bytes
-rw-r--r--docs/tools/generate_except_xml.pl74
-rw-r--r--docs/xsl-generic/VERSION113
-rw-r--r--docs/xsl-generic/common/af.xml1223
-rw-r--r--docs/xsl-generic/common/am.xml1223
-rw-r--r--docs/xsl-generic/common/ar.xml1223
-rw-r--r--docs/xsl-generic/common/autoidx-kimber.xsl43
-rw-r--r--docs/xsl-generic/common/autoidx-kosek.xsl150
-rw-r--r--docs/xsl-generic/common/az.xml666
-rw-r--r--docs/xsl-generic/common/bg.xml718
-rw-r--r--docs/xsl-generic/common/bn.xml1223
-rw-r--r--docs/xsl-generic/common/bs.xml656
-rw-r--r--docs/xsl-generic/common/ca.xml1223
-rw-r--r--docs/xsl-generic/common/charmap.xml185
-rw-r--r--docs/xsl-generic/common/charmap.xsl221
-rw-r--r--docs/xsl-generic/common/common.xml622
-rw-r--r--docs/xsl-generic/common/common.xsl1981
-rw-r--r--docs/xsl-generic/common/cs.xml694
-rw-r--r--docs/xsl-generic/common/cy.xml1239
-rw-r--r--docs/xsl-generic/common/da.xml658
-rw-r--r--docs/xsl-generic/common/de.xml660
-rw-r--r--docs/xsl-generic/common/el.xml1223
-rw-r--r--docs/xsl-generic/common/en.xml1223
-rw-r--r--docs/xsl-generic/common/entities.ent47
-rw-r--r--docs/xsl-generic/common/eo.xml1223
-rw-r--r--docs/xsl-generic/common/es.xml670
-rw-r--r--docs/xsl-generic/common/et.xml1223
-rw-r--r--docs/xsl-generic/common/eu.xml1223
-rw-r--r--docs/xsl-generic/common/fa.xml1223
-rw-r--r--docs/xsl-generic/common/fi.xml664
-rw-r--r--docs/xsl-generic/common/fr.xml684
-rw-r--r--docs/xsl-generic/common/ga.xml1223
-rw-r--r--docs/xsl-generic/common/gentext.xsl831
-rw-r--r--docs/xsl-generic/common/gu.xml1223
-rw-r--r--docs/xsl-generic/common/he.xml1223
-rw-r--r--docs/xsl-generic/common/hi.xml1223
-rw-r--r--docs/xsl-generic/common/hr.xml1223
-rw-r--r--docs/xsl-generic/common/hu.xml1223
-rw-r--r--docs/xsl-generic/common/id.xml1223
-rw-r--r--docs/xsl-generic/common/insertfile.xsl111
-rw-r--r--docs/xsl-generic/common/it.xml1223
-rw-r--r--docs/xsl-generic/common/ja.xml1223
-rw-r--r--docs/xsl-generic/common/kn.xml1223
-rw-r--r--docs/xsl-generic/common/ko.xml1223
-rw-r--r--docs/xsl-generic/common/l10n.dtd63
-rw-r--r--docs/xsl-generic/common/l10n.xml127
-rw-r--r--docs/xsl-generic/common/l10n.xsl441
-rw-r--r--docs/xsl-generic/common/la.xml1223
-rw-r--r--docs/xsl-generic/common/labels.xsl869
-rw-r--r--docs/xsl-generic/common/lt.xml672
-rw-r--r--docs/xsl-generic/common/lv.xml1223
-rw-r--r--docs/xsl-generic/common/mn.xml724
-rw-r--r--docs/xsl-generic/common/nl.xml1223
-rw-r--r--docs/xsl-generic/common/nn.xml1223
-rw-r--r--docs/xsl-generic/common/no.xml1223
-rw-r--r--docs/xsl-generic/common/olink.xsl1149
-rw-r--r--docs/xsl-generic/common/or.xml1223
-rw-r--r--docs/xsl-generic/common/pa.xml1223
-rw-r--r--docs/xsl-generic/common/pi.xsl346
-rw-r--r--docs/xsl-generic/common/pl.xml1223
-rw-r--r--docs/xsl-generic/common/pt.xml1223
-rw-r--r--docs/xsl-generic/common/pt_br.xml1223
-rw-r--r--docs/xsl-generic/common/refentry.xml781
-rw-r--r--docs/xsl-generic/common/refentry.xsl1277
-rw-r--r--docs/xsl-generic/common/ro.xml1223
-rw-r--r--docs/xsl-generic/common/ru.xml720
-rw-r--r--docs/xsl-generic/common/sk.xml1223
-rw-r--r--docs/xsl-generic/common/sl.xml1223
-rw-r--r--docs/xsl-generic/common/sq.xml1223
-rw-r--r--docs/xsl-generic/common/sr.xml714
-rw-r--r--docs/xsl-generic/common/sr_Latn.xml673
-rw-r--r--docs/xsl-generic/common/stripns.xsl342
-rw-r--r--docs/xsl-generic/common/subtitles.xsl155
-rw-r--r--docs/xsl-generic/common/sv.xml658
-rw-r--r--docs/xsl-generic/common/ta.xml1223
-rw-r--r--docs/xsl-generic/common/table.xsl514
-rw-r--r--docs/xsl-generic/common/targetdatabase.dtd49
-rw-r--r--docs/xsl-generic/common/targets.xsl272
-rw-r--r--docs/xsl-generic/common/th.xml1223
-rw-r--r--docs/xsl-generic/common/titles.xsl740
-rw-r--r--docs/xsl-generic/common/tl.xml1223
-rw-r--r--docs/xsl-generic/common/tr.xml660
-rw-r--r--docs/xsl-generic/common/uk.xml1223
-rw-r--r--docs/xsl-generic/common/utility.xml259
-rw-r--r--docs/xsl-generic/common/utility.xsl290
-rw-r--r--docs/xsl-generic/common/vi.xml1223
-rw-r--r--docs/xsl-generic/common/xh.xml1223
-rw-r--r--docs/xsl-generic/common/zh_cn.xml654
-rw-r--r--docs/xsl-generic/common/zh_tw.xml1223
-rw-r--r--docs/xsl-generic/highlighting/c-hl.xml105
-rw-r--r--docs/xsl-generic/highlighting/common.xsl62
-rw-r--r--docs/xsl-generic/highlighting/delphi-hl.xml174
-rw-r--r--docs/xsl-generic/highlighting/ini-hl.xml43
-rw-r--r--docs/xsl-generic/highlighting/java-hl.xml98
-rw-r--r--docs/xsl-generic/highlighting/m2-hl.xml86
-rw-r--r--docs/xsl-generic/highlighting/myxml-hl.xml131
-rw-r--r--docs/xsl-generic/highlighting/php-hl.xml127
-rw-r--r--docs/xsl-generic/highlighting/xslthl-config.xml11
-rw-r--r--docs/xsl-generic/html/admon.xsl132
-rw-r--r--docs/xsl-generic/html/annotations.xsl169
-rw-r--r--docs/xsl-generic/html/autoidx-kimber.xsl168
-rw-r--r--docs/xsl-generic/html/autoidx-kosek.xsl125
-rw-r--r--docs/xsl-generic/html/autoidx-ng.xsl20
-rw-r--r--docs/xsl-generic/html/autoidx.xsl645
-rw-r--r--docs/xsl-generic/html/autotoc.xsl675
-rw-r--r--docs/xsl-generic/html/biblio-iso690.xsl1300
-rw-r--r--docs/xsl-generic/html/biblio.xsl1228
-rw-r--r--docs/xsl-generic/html/block.xsl434
-rw-r--r--docs/xsl-generic/html/callout.xsl201
-rw-r--r--docs/xsl-generic/html/changebars.xsl100
-rw-r--r--docs/xsl-generic/html/chunk-code.xsl670
-rw-r--r--docs/xsl-generic/html/chunk-common.xsl1886
-rw-r--r--docs/xsl-generic/html/chunk.xsl52
-rw-r--r--docs/xsl-generic/html/chunker.xsl439
-rw-r--r--docs/xsl-generic/html/chunkfast.xsl72
-rw-r--r--docs/xsl-generic/html/chunktoc.xsl468
-rw-r--r--docs/xsl-generic/html/component.xsl401
-rw-r--r--docs/xsl-generic/html/division.xsl228
-rw-r--r--docs/xsl-generic/html/docbook.xsl479
-rw-r--r--docs/xsl-generic/html/ebnf.xsl329
-rw-r--r--docs/xsl-generic/html/footnote.xsl299
-rw-r--r--docs/xsl-generic/html/formal.xsl400
-rw-r--r--docs/xsl-generic/html/glossary.xsl482
-rw-r--r--docs/xsl-generic/html/graphics.xsl1489
-rw-r--r--docs/xsl-generic/html/highlight.xsl54
-rw-r--r--docs/xsl-generic/html/html-rtf.xsl336
-rw-r--r--docs/xsl-generic/html/html.xsl241
-rw-r--r--docs/xsl-generic/html/htmltbl.xsl55
-rw-r--r--docs/xsl-generic/html/index.xsl229
-rw-r--r--docs/xsl-generic/html/info.xsl43
-rw-r--r--docs/xsl-generic/html/inline.xsl1439
-rw-r--r--docs/xsl-generic/html/keywords.xsl35
-rw-r--r--docs/xsl-generic/html/lists.xsl1103
-rw-r--r--docs/xsl-generic/html/maketoc.xsl86
-rw-r--r--docs/xsl-generic/html/manifest.xsl22
-rw-r--r--docs/xsl-generic/html/math.xsl270
-rw-r--r--docs/xsl-generic/html/oldchunker.xsl202
-rw-r--r--docs/xsl-generic/html/onechunk.xsl37
-rw-r--r--docs/xsl-generic/html/param.xsl412
-rw-r--r--docs/xsl-generic/html/pi.xsl1240
-rw-r--r--docs/xsl-generic/html/profile-chunk-code.xsl609
-rw-r--r--docs/xsl-generic/html/profile-chunk.xsl52
-rw-r--r--docs/xsl-generic/html/profile-docbook.xsl411
-rw-r--r--docs/xsl-generic/html/profile-onechunk.xsl37
-rw-r--r--docs/xsl-generic/html/qandaset.xsl389
-rw-r--r--docs/xsl-generic/html/refentry.xsl309
-rw-r--r--docs/xsl-generic/html/sections.xsl622
-rw-r--r--docs/xsl-generic/html/synop.xsl1596
-rw-r--r--docs/xsl-generic/html/table.xsl1120
-rw-r--r--docs/xsl-generic/html/task.xsl76
-rw-r--r--docs/xsl-generic/html/titlepage.templates.xml662
-rw-r--r--docs/xsl-generic/html/titlepage.templates.xsl3622
-rw-r--r--docs/xsl-generic/html/titlepage.xsl1031
-rw-r--r--docs/xsl-generic/html/toc.xsl173
-rw-r--r--docs/xsl-generic/html/verbatim.xsl376
-rw-r--r--docs/xsl-generic/html/xref.xsl1348
-rw-r--r--docs/xsl-generic/lib/lib.xsl480
-rw-r--r--docs/xsl-generic/manpages/block.xsl296
-rw-r--r--docs/xsl-generic/manpages/charmap.groff.xsl5985
-rw-r--r--docs/xsl-generic/manpages/docbook.xsl293
-rw-r--r--docs/xsl-generic/manpages/endnotes.xsl535
-rw-r--r--docs/xsl-generic/manpages/html-synop.xsl1605
-rw-r--r--docs/xsl-generic/manpages/info.xsl630
-rw-r--r--docs/xsl-generic/manpages/inline.xsl190
-rw-r--r--docs/xsl-generic/manpages/lists.xsl368
-rw-r--r--docs/xsl-generic/manpages/other.xsl674
-rw-r--r--docs/xsl-generic/manpages/param.xsl167
-rw-r--r--docs/xsl-generic/manpages/profile-docbook.xsl259
-rw-r--r--docs/xsl-generic/manpages/refentry.xsl256
-rw-r--r--docs/xsl-generic/manpages/synop.xsl305
-rw-r--r--docs/xsl-generic/manpages/table.xsl633
-rw-r--r--docs/xsl-generic/manpages/utility.xsl452
237 files changed, 130408 insertions, 0 deletions
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 00000000..c4a63671
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,183 @@
+# Process DocBook to HTML
+
+# This makefile is a bit obfuscated so that it works correctly on both
+# BSD and GNU make. Some parts apply to one version of make and not the
+# other; these are marked by comments.
+
+# The "all" target shouldn't be up here, but the trickery below defines
+# what looks like a rule to GNU make, and so we need to define the actual
+# default target before it.
+
+all: docs
+
+DBPROC_COMMAND = xsltproc
+MKDIR_COMMAND = mkdir
+CP_COMMAND = cp
+PERL_COMMAND = perl
+RM_COMMAND = rm -f
+TAR_COMMAND = tar
+GZIP_COMMAND = gzip -f
+GENERATE_SCRIPT = tools/generate_except_xml.pl
+
+DBPROC = $(DBPROC_COMMAND)
+MKDIR = $(MKDIR_COMMAND)
+CP = $(CP_COMMAND)
+GENERATE = $(PERL_COMMAND) $(GENERATE_SCRIPT)
+RM_QUIET = $(RM_COMMAND)
+TAR = $(TAR_COMMAND)
+GZIP = $(GZIP_COMMAND)
+PROGRESS = @ true
+
+# use a GNU make "define" command, that looks like a harmless dummy rule
+# to BSD make, to hide parts of the Makefile from GNU make.
+define IGNORED_BY_GNU_MAKE:
+.if 0
+endef
+
+ # seen by GNU make, not by BSD make
+ ifeq ($(V),)
+ DBPROC = @ echo " [XLSTPROC]" $^ && $(DBPROC_COMMAND) 2>/dev/null
+ GENERATE = @ echo " [GENERATE]" $@ && $(PERL_COMMAND) $(GENERATE_SCRIPT)
+ TAR = @ echo " [TAR] " $@ && $(TAR_COMMAND)
+ GZIP = @ echo " [GZIP] " $< && $(GZIP_COMMAND)
+ RM_QUIET = @ $(RM_COMMAND)
+ PROGRESS = @ echo
+ endif
+
+define IGNORED_BY_GNU_MAKE:
+.endif
+
+.ifndef V
+ # seen by BSD make, not by GNU make
+ DBPROC = @ echo " [XSLTPROC]" $(.ALLSRC) && $(DBPROC_COMMAND) 2>/dev/null
+ GENERATE = @ echo " [GENERATE]" $(.TARGET) && $(PERL_COMMAND) $(GENERATE_SCRIPT)
+ TAR = @ echo " [TAR] " $(.TARGET) && $(TAR_COMMAND)
+ GZIP = @ echo " [GZIP] " $(.TARGET:.gz=) && $(GZIP_COMMAND)
+ RM_QUIET = @ $(RM_COMMAND)
+ PROGRESS = @ echo
+.endif
+
+# neither .endif nor endef can be followed by a colon; each creates
+# warnings or errors in one or other version of make. we need some
+# magic to make them both work. Luckily, .endfor ignores the colon.
+
+.for DUMMY in $(NO_SUCH_VARIABLE)
+endef
+.endfor :
+
+PROGRESS_RM = $(PROGRESS) " [RM] "
+
+DOCBOOK_DIR = docbook
+HTML_DIR = htmlguide
+MAN_DIR = man
+
+BOOKXSL = $(DOCBOOK_DIR)/bb-book.xsl
+NOCHUNKBOOKXSL = $(DOCBOOK_DIR)/bb-nochunk-book.xsl
+MANXSL = $(DOCBOOK_DIR)/bb-man.xsl
+
+VPATH = $(DOCBOOK_DIR)
+.SUFFIXES: .html .xml .gz .1 .5 .8
+
+docs: instguide adminguide manpages
+ @mkdir -p $(HTML_DIR)/images
+ @cp $(DOCBOOK_DIR)/html/images/*.png $(HTML_DIR)/images/.
+ @cp $(DOCBOOK_DIR)/html/*.css $(HTML_DIR)/.
+ @cp $(DOCBOOK_DIR)/html/*.ico $(HTML_DIR)/.
+
+adminguide: $(DOCBOOK_DIR)/ExceptionCodes.xml $(HTML_DIR)/adminguide/index.html
+
+# $^ gives all sources on GNU make, and nothing on BSD make
+# $> gives all sources on BSD make, and nothing on GNU make
+$(HTML_DIR)/adminguide/index.html: $(BOOKXSL) $(DOCBOOK_DIR)/adminguide.xml
+ $(DBPROC) -o $(HTML_DIR)/adminguide/ $^ $>
+
+instguide: $(HTML_DIR)/instguide/index.html
+
+$(HTML_DIR)/instguide/index.html: $(BOOKXSL) $(DOCBOOK_DIR)/instguide.xml
+ $(DBPROC) -o $(HTML_DIR)/instguide/ $^ $>
+
+# On BSD make, $> contains all sources and $^ is empty
+# On GNU make, $^ contains all sources and $> is empty
+$(DOCBOOK_DIR)/ExceptionCodes.xml: ../ExceptionCodes.txt
+ $(GENERATE) $> $^ $@
+
+manpages: man-dirs man-nroff man-html
+
+man-dirs: man/.there $(HTML_DIR)/man-html/.there
+
+$(HTML_DIR)/man-html/.there:
+ mkdir -p $(HTML_DIR)/man-html
+ touch $(HTML_DIR)/man-html/.there
+
+man/.there:
+ mkdir -p man
+ touch man/.there
+
+NROFF_PAGES = bbackupd.8 bbackupd-config.8 bbackupctl.8 bbackupquery.8 \
+ bbstored.8 bbstored-config.8 bbstoreaccounts.8 bbstored-certs.8 \
+ raidfile-config.8 \
+ bbackupd.conf.5 bbstored.conf.5 raidfile.conf.5
+
+NROFF_FILES = $(NROFF_PAGES:%=$(MAN_DIR)/%.gz)
+
+man-nroff: $(NROFF_FILES)
+
+HTML_FILES_1 = $(NROFF_PAGES:%.5=%.html)
+HTML_FILES_2 = $(HTML_FILES_1:%.8=%.html)
+HTML_FILES = $(HTML_FILES_2:%=$(HTML_DIR)/man-html/%)
+
+man-html: $(HTML_FILES)
+
+# $^ gives all sources on GNU make, and nothing on BSD make
+
+# GNU make
+$(HTML_DIR)/man-html/%.html: $(NOCHUNKBOOKXSL) $(DOCBOOK_DIR)/%.xml
+ $(DBPROC) -o $@ $^
+
+# GNU make
+$(MAN_DIR)/%.8: $(MANXSL) $(DOCBOOK_DIR)/%.xml
+ $(DBPROC) -o $@ $^
+
+# GNU make
+$(MAN_DIR)/%.8.gz: $(MAN_DIR)/%.8
+ $(GZIP) $<
+
+# GNU make
+$(MAN_DIR)/%.5: $(MANXSL) $(DOCBOOK_DIR)/%.xml $(MANXSL)
+ $(DBPROC) -o $@ $^
+
+# GNU make
+$(MAN_DIR)/%.5.gz: $(MAN_DIR)/%.5
+ $(GZIP) $<
+
+# BSD make: the final colon (:) is required to make the .for and .endfor
+# lines valid in GNU make. It creates (different) dummy rules in GNU and
+# BSD make. Both dummy rules are harmless.
+
+.for MAN_PAGE in $(NROFF_PAGES) :
+$(MAN_DIR)/$(MAN_PAGE).gz: $(MANXSL) $(DOCBOOK_DIR)/$(MAN_PAGE:R).xml
+ $(DBPROC) -o $(.TARGET:.gz=) $(.ALLSRC)
+ $(GZIP) $(.TARGET:.gz=)
+
+$(HTML_DIR)/man-html/$(MAN_PAGE:R).html: $(NOCHUNKBOOKXSL) \
+$(DOCBOOK_DIR)/$(MAN_PAGE:R).xml
+ $(DBPROC) -o $(.TARGET) $(.ALLSRC)
+.endfor :
+
+dockit: clean docs documentation-kit-0.10.tar.gz
+
+documentation-kit-0.10.tar.gz:
+ $(TAR) zcf documentation-kit-0.10.tar.gz $(HTML_DIR)/
+
+clean:
+ $(PROGRESS_RM) "$(HTML_DIR)/man-html/*.html"
+ $(RM_QUIET) $(HTML_FILES)
+
+ $(PROGRESS_RM) "$(MAN_DIR)/*.[58].gz"
+ $(RM_QUIET) $(NROFF_FILES)
+
+ $(PROGRESS_RM) "$(DOCBOOK_DIR)/ExceptionCodes.xml"
+ $(RM_QUIET) $(DOCBOOK_DIR)/ExceptionCodes.xml
+
+ $(PROGRESS_RM) "documentation-kit-0.10.tar.gz"
+ $(RM_QUIET) documentation-kit-0.10.tar.gz
diff --git a/docs/api-notes/INDEX.txt b/docs/api-notes/INDEX.txt
new file mode 100644
index 00000000..f333ac3b
--- /dev/null
+++ b/docs/api-notes/INDEX.txt
@@ -0,0 +1,61 @@
+TITLE Programmers Notes for Box Backup
+
+This directory contains the programmers notes for the Box Backup system. They will be of interest only if you want to review or modify the code.
+
+These notes are intended to be run through a script to produce HTML at some later stage, hence the marks such as 'TITLE'.
+
+
+SUBTITLE Organisation
+
+The project is split up into several modules. The modules within 'lib' are building blocks for creation of the actual executable programs within 'bin'. 'test' contains unit tests for lib and bin modules.
+
+The file modules.txt lists the modules which are to be built, and their dependencies. It also allows for platform differences.
+
+
+SUBTITLE Documentation Organisation
+
+In this directory, the files correspond to modules or areas of interest. Sub directories of the same name contain files documenting specific classes within that module.
+
+
+SUBTITLE Suggested reading order
+
+* common/lib_common.txt
+* common/lib_server.txt
+* bin_bbackupd.txt
+* backup_encryption.txt
+* bin_bbstored.txt
+* raidfile/lib_raidfile.txt
+
+and refer to other sections as required.
+
+
+SUBTITLE Building
+
+The makefiles are generated by makebuildenv.pl. (The top level makefile is generated by makeparcels.pl, but this is for the end user to use, not a programmer.)
+
+To build a module, cd to it and type make. If the -DRELEASE option is specified (RELEASE=1 with GNU make) the release version will be built. The object files and exes are placed in a directory structure under 'release' or 'debug'.
+
+It is intended that a test will be written for everything, so in general make commands will be issued only within the test/* modules. Once it has been built, cd to debug/test/<testname> and run the test with ./t .
+
+
+SUBTITLE Programming style
+
+The code is written to be easy to write. Ease of programming is the primary concern, as this should lead to fewer bugs. Efficiency improvements can be made later when the system as a whole works.
+
+Much use is made of the STL.
+
+There is no common base class.
+
+All errors are reported using exceptions.
+
+Some of the boring code is generated by perl scripts from description files.
+
+There are a lot of modules and classes which can easily be used to build other projects in the future -- there is a lot of "framework" code.
+
+
+SUBTITLE Lots more documentation
+
+The files are extensively commented. Consider this notes as an overview, and then read the source files for detailed and definitive information.
+
+Each function and class has a very brief decsription of it's purpose in a standard header, and extensive efforts have been maed to comment the code itself.
+
diff --git a/docs/api-notes/Win32_Clients.txt b/docs/api-notes/Win32_Clients.txt
new file mode 100644
index 00000000..fad6c4af
--- /dev/null
+++ b/docs/api-notes/Win32_Clients.txt
@@ -0,0 +1,13 @@
+The basic client tools now run on Win32 natively.
+The port was done by nick@omniis.com.
+
+* bbackupd
+* bbackupquery
+* bbackupctl
+
+Have been ported. bbackupd runs as a NT style service.
+
+Known limitations:
+
+* File attributes and permissions are not backed up.
+
diff --git a/docs/api-notes/backup_encryption.txt b/docs/api-notes/backup_encryption.txt
new file mode 100644
index 00000000..36580581
--- /dev/null
+++ b/docs/api-notes/backup_encryption.txt
@@ -0,0 +1,109 @@
+TITLE Encryption in the backup system
+
+This document explains how everything is encrypted in the backup system, and points to the various functions which need reviewing to ensure they do actually follow this scheme.
+
+
+SUBTITLE Security objectives
+
+The crpyto system is designed to keep the following things secret from an attacker who has full access to the server.
+
+* The names of the files and directories
+* The contents of files and directories
+* The exact size of files
+
+Things which are not secret are
+
+* Directory heirarchy and number of files in each directory
+* How the files change over time
+* Approximate size of files
+
+
+SUBTITLE Keys
+
+There are four separate keys used:
+
+* Filename
+* File attributes
+* File block index
+* File data
+
+and an additional secret for file attribute hashes.
+
+The Cipher is Blowfish in CBC mode in most cases, except for the file data. All keys are maximum length 448 bit keys, since the key size only affects the setup time and this is done very infrequently.
+
+The file data is encrypted with AES in CBC mode, with a 256 bit key (max length). Blowfish is used elsewhere because the larger block size of AES, while more secure, would be terribly space inefficient. Note that Blowfish may also be used when older versions of OpenSSL are in use, and for backwards compatibility with older versions.
+
+The keys are generated using "openssl rand", and a 1k file of key material is stored in /etc/box/bbackupd. The configuration scripts make this readable only by root.
+
+Code for review: BackupClientCryptoKeys_Setup()
+in lib/backupclient/BackupClientCryptoKeys.cpp
+
+
+SUBTITLE Filenames
+
+Filenames need to be secret from the attacker, but they need to be compared on the server so it can determine whether or not is it a new version of an old file.
+
+So, the same Initialisation Vector is used for every single filename, so the same filename encrypted twice will have the same binary representation.
+
+Filenames use standard PKCS padding implemented by OpenSSL. They are proceeded by two bytes of header which describe the length, and the encoding.
+
+Code for review: BackupStoreFilenameClear::EncryptClear()
+in lib/backupclient/BackupStoreFilenameClear.cpp
+
+
+SUBTITLE File attributes
+
+These are kept secret as well, since they reveal information. Especially as they contain the target name of symbolic links.
+
+To encrypt, a random Initialisation Vector is choosen. This is stored first, followed by the attribute data encrypted with PKCS padding.
+
+Code for review: BackupClientFileAttributes::EncryptAttr()
+in lib/backupclient/BackupClientFileAttributes.cpp
+
+
+SUBTITLE File attribute hashes
+
+To detect and update file attributes efficiently, the file status change time is not used, as this would give suprious results and result in unnecessary updates to the server. Instead, a hash of user id, group id, and mode is used.
+
+To avoid revealing details about attributes
+
+1) The filename is added to the hash, so that an attacker cannot determine whether or not two files have identical attributes
+
+2) A secret is added to the hash, so that an attacker cannot compare attributes between accounts.
+
+The hash used is the first 64 bits of an MD5 hash.
+
+
+SUBTITLE File block index
+
+Files are encoded in blocks, so that the rsync algorithm can be used on them. The data is compressed first before encryption. These small blocks don't give the best possible compression, but there is no alternative because the server can't see their contents.
+
+The file contains a number of blocks, which contain among other things
+
+* Size of the block when it's not compressed
+* MD5 checksum of the block
+* RollingChecksum of the block
+
+We don't want the attacker to know the size, so the first is bad. (Because of compression and padding, there's uncertainty on the size.)
+
+When the block is only a few bytes long, the latter two reveal it's contents with only a moderate amount of work. So these need to be encrypted.
+
+In the header of the index, a 64 bit number is chosen. The sensitive parts of the block are then encrypted, without padding, with an Initialisation Vector of this 64 bit number + the block index.
+
+If a block from an previous file is included in a new version of a file, the same checksum data will be encrypted again, but with a different IV. An eavesdropper will be able to easily find out which data has been re-encrypted, but the plaintext is not revealed.
+
+Code for review: BackupStoreFileEncodeStream::Read() (IV base choosen about half-way through)
+BackupStoreFileEncodeStream::EncodeCurrentBlock() (encrypt index entry)
+in lib/backupclient/BackupStoreFileEncodeStream.cpp
+
+
+SUBTITLE File data
+
+As above, the first is split into chunks and compressed.
+
+Then, a random initialisation vector is chosen, stored first, followed by the compressed file data encrypted using PKCS padding.
+
+Code for review: BackupStoreFileEncodeStream::EncodeCurrentBlock()
+in lib/backupclient/BackupStoreFileEncodeStream.cpp
+
+
diff --git a/docs/api-notes/bin_bbackupd.txt b/docs/api-notes/bin_bbackupd.txt
new file mode 100644
index 00000000..67ad9267
--- /dev/null
+++ b/docs/api-notes/bin_bbackupd.txt
@@ -0,0 +1,88 @@
+TITLE bin/bbackupd
+
+The backup client daemon.
+
+This aims to maintain as little information as possible to record which files have been uploaded to the server, while minimising the amount of queries which have to be made to the server.
+
+
+SUBTITLE Scanning
+
+The daemon is given a length of time, t, which files over this age should be uploaded to the server. This is to stop recently updated files being uploaded immediately to avoid uploading something repeatedly (on the assumption that if a file has been written, it is likely to be modified again shortly).
+
+It will scan the files at a configured interval, and connect to the server if it needs to upload files or make queries about files and directories.
+
+The scan interval is actually varied slightly between each run by adding a random number up to a 64th of the configured time. This is to reduce cyclic patterns of load on the backup servers -- otherwise if all the boxes are turned on at about 9am, every morning at 9am there will be a huge spike in load on the server.
+
+Each scan chooses a time interval, which ends at the current time - t. This will be from 0 to current time - t on the first run, then the next run takes the start time as the end time of the previous run. The scan is only performed if the difference between the start and end times is greater or equal to t.
+
+For each configured location, the client scans the directories on disc recursively.
+
+For each directory
+
+* If the directory has never been scanned before (in this invocation of the daemon) or the modified time on the directory is not that recorded, the listing on the server is downloaded.
+
+* For each file, if it's modified time is within the time period, it is uploaded. If the directory has been downloaded, it is compared against that, and only uploaded if it's changed.
+
+* Find all the new files, and upload them if they lie within the time interval.
+
+* Recurse to sub directories, creating them on the server if necessary.
+
+Hence, the first time it runs, it will download and compare the entries on the disc to those on the server, but in future runs it will use the file and directory modification times to work out if there is anything which needs uploading.
+
+If there aren't any changes, it won't even need to connect to the server.
+
+There are some extra details which allow this to work reliably, but they are documented in the source.
+
+
+SUBTITLE File attributes
+
+The backup client will update the file attributes on files as soon as it notices they are changed. It records most of the details from stat(), but only a few can be restored. Attributes will only be considered changed if the user id, group id or mode is changed. Detection is by a 64 bit hash, so detection is strictly speaking probablistic.
+
+
+SUBTITLE Encryption
+
+All the user data is encrypted. There is a separate file, backup_encryption.txt which describes this, and where in the code to look to verify it works as described.
+
+
+SUBTITLE Tracking files and directories
+
+Renaming files is a difficult problem under this minimal data scanning scheme, because you don't really know whether a file has been renamed, or another file deleted and new one created.
+
+The solution is to keep (on disc) a map of inode numbers to server object IDs for all directories and files over a certain user configurable threshold. Then, when a new file is discovered, it is first checked to see if it's in this map. If so, a rename is considered, which will take place if the local object corresponding to the name of the tracked object doesn't exist any more.
+
+Because of the renaming requirement, deletions of objects from the server are recorded and delayed until the end of the scan.
+
+
+SUBTITLE Running out of space
+
+If the store server indicates on login to the backup client, it will scan, but not upload anything nor adjust it's internal stored details of the local objects. However, deletions and renames happen.
+
+This is to allow deletions to still work and reduce the amount of storage space used on the server, in the hope that in the future there will be enough space.
+
+Just not doing anything would mean that one big file created and then deleted at the wrong time would stall the whole backup process.
+
+
+SUBTITLE BackupDaemon
+
+This is the daemon class for the backup daemon. It handles setting up of all the objects, and implements calulcation of the time intervals for the scanning.
+
+
+SUBTITLE BackupClientContext
+
+State information for the scans, including maintaining a connection to the store server if required.
+
+
+SUBTITLE BackupClientDirectoryRecord
+
+A record of state of a directory on the local filesystem. Containing the recursive scanning function, which is long and entertaining, but very necessary. It contains lots of comments which explain the exact details of what's going on.
+
+
+SUBTITLE BackupClientInodeToIDMap
+
+A implementation of a map of inode number to object ID on the server. If Berkeley DB is available on the platform, it is stored on disc, otherwise there is an in memory version which isn't so good.
+
+
+
+
+
+
diff --git a/docs/api-notes/bin_bbstored.txt b/docs/api-notes/bin_bbstored.txt
new file mode 100644
index 00000000..c9c4e229
--- /dev/null
+++ b/docs/api-notes/bin_bbstored.txt
@@ -0,0 +1,54 @@
+TITLE bin/bbstored
+
+The backup store daemon.
+
+Maintains a store of encrypted files, and every so often goes through deleting unnecessary data.
+
+Uses an implementation of Protocol to communicate with the backup client daemon. See bin/bbstored/backupprotocol.txt for details.
+
+
+SUBTITLE Data storage
+
+The data is arranged as a set of objects within a RaidFile disc set. Each object has a 64 bit object ID, which is turned into a filename in a mildly complex manner which ensure that directories don't have too many objects in them, but there is a minimal number of nested directories. See StoreStructure::MakeObjectFilename in lib/backupstore/StoreStructure.cpp for more details.
+
+An object can be a directory or a file. Directories contain files and other directories.
+
+Files in directories are supersceded by new versions when uploaded, but the old versions are flagged as such. A new version has a different object ID to the old version.
+
+Every so often, a housekeeping process works out what can be deleted, and deletes unnecessary files to take them below the storage limits set in the store info file.
+
+
+SUBTITLE Note about file storage and downloading
+
+There's one slight entertainment to file storage, in that the format of the file streamed depends on whether it's being downloaded or uploaded.
+
+The problem is that it contains an index of all the blocks. For efficiency in managing these blocks, they all need to be in the same place.
+
+Files are encoded and decoded as they are streamed to and from the server. With encoding, the index is only completely known at the end of the process, so it's sent last, and lives in the filesystem last.
+
+When it's downloaded, it can't be decoded without knowing the index. So the index is sent first, followed by the data.
+
+
+SUBTITLE BackupContext
+
+The context of the current connection, and the object which modifies the store.
+
+Maintains a cache of directories, to avoid reading them continuously, and keeps a track of a BackupStoreInfo object which is written back periodiocally.
+
+
+SUBTITLE BackupStoreDaemon
+
+A ServerTLS daemon which forks off a separate housekeeping process as it starts up.
+
+Handling connections is delegated to a Protocol implementation.
+
+
+SUBTITLE BackupCommands.cpp
+
+Implementation of all the commands. Work which requires writing is handled in the context, read only commands mainly in this file.
+
+
+SUBTITLE HousekeepStoreAccount
+
+A class which performs housekeeping on a single account.
+
diff --git a/docs/api-notes/common/lib_common.txt b/docs/api-notes/common/lib_common.txt
new file mode 100644
index 00000000..11d7b02d
--- /dev/null
+++ b/docs/api-notes/common/lib_common.txt
@@ -0,0 +1,52 @@
+TITLE lib/common
+
+This module is the basic building block of the project. It is included implicitly as a dependency of all other modules.
+
+It provides basic services such as file and stream functionality, platform information, and various bits of utility code which doesn't fit naturally anywhere else but is useful to many other applications.
+
+
+SUBTITLE Box.h
+
+The main include file for the project. It should be the first file included in every cpp file, followed by any system headers, then other project headers. This order has been chosen so that eventually it can be used as a target for pre-compiled headers. (This will be important for the Windows port)
+
+
+SUBTITLE BoxPlatform.h
+
+This contains various bits of information on platform differences. The build scripts include a compile command line definition like PLATFORM_OPENBSD, which is then used to select the required options.
+
+Some of the stuff is not particularly pleasant, but it aims to produce a consistent compilation environment, and to have a abstracted way of setting other defines to tell the other files what things are available on this platform.
+
+GNU configure is not used, as it would be just another dependency. Although something does have to be done about compilation on Linux, which is just too different on each distribution to be caught by a common configuration here.
+
+
+SUBTITLE Streams
+
+Much use is made of streams -- files, connections, buffers, all sorts of things are implemented using streams.
+
+The abstract base class IOStream defines the interface, see the class file for more details.
+
+Streams are lib/common's basic contribution to the project. A standard interface for handling data, and a number of utility classes which make performing common stream functions easy.
+
+
+SUBTITLE Serialisation
+
+Note there is no "serialisable" class. Instead, objects which need to be serialised into Streams simply have two functions, ReadFromStream and WriteToStream. These perform as expected.
+
+As it turns out, there's no real need for a specific serialisation base class. If you do need to be able to serialise arbitary objects, there are two approaches.
+
+1) If you're serialising an arbitary object, you're going to know roughly what type it is. So it's likely to be a subclass of a known base class... in which case, you simply use virtual functions.
+
+2) If it really is an arbitary type, then you just write your function which accepts any type of object to serialise as a template.
+
+
+SUBTITLE BoxException
+
+The exception base class for the project. All exceptions thrown by this code are dervied from BoxException. In general, each module which has unique errors has it's own exception class.
+
+CommonException errors are thrown throughout the project.
+
+
+SUBTITLE Other bits
+
+There are some other extra useful bits which are documented only in the source files.
+
diff --git a/docs/api-notes/common/lib_common/BoxTime.txt b/docs/api-notes/common/lib_common/BoxTime.txt
new file mode 100644
index 00000000..18bef5a5
--- /dev/null
+++ b/docs/api-notes/common/lib_common/BoxTime.txt
@@ -0,0 +1,7 @@
+TITLE BoxTime
+
+Not strictly a class, but time is presented in the project as 64 bit integers as microseconds since the UNIX Epoch.
+
+There are a number of utility functions in the BoxTime*.h files, which are useful.
+
+To get BoxTime values from a struct stat, use the FileModificationTime.h functions. \ No newline at end of file
diff --git a/docs/api-notes/common/lib_common/CollectInBufferStream.txt b/docs/api-notes/common/lib_common/CollectInBufferStream.txt
new file mode 100644
index 00000000..5f9556a3
--- /dev/null
+++ b/docs/api-notes/common/lib_common/CollectInBufferStream.txt
@@ -0,0 +1,26 @@
+CLASS CollectInBufferStream
+
+This class is essentially a buffer. Data is written to it, and stored in memory. Then when all data is written which will be written, it can be read out again.
+
+Useful for building streams in memory.
+
+
+FUNCTION CollectInBufferStream::SetForReading()
+
+After you've written all the data, call this to set it to read mode.
+
+
+FUNCTION CollectInBufferStream::Reset()
+
+Reset the stream to the state where is has no data, and is about to have data written.
+
+
+FUNCTION CollectInBufferStream::GetSize()
+
+Get the size of the buffered data -- the entire data. Use the interface function BytesLeftToRead() in most cases.
+
+
+FUNCTION CollectInBufferStream::GetBuffer()
+
+Get the buffer, so you can do bad things with it if you're feeling naughty.
+
diff --git a/docs/api-notes/common/lib_common/Configuration.txt b/docs/api-notes/common/lib_common/Configuration.txt
new file mode 100644
index 00000000..ef5f38f6
--- /dev/null
+++ b/docs/api-notes/common/lib_common/Configuration.txt
@@ -0,0 +1,102 @@
+CLASS Configuration
+
+Implements the reading of multi-level configuration files. This is intended to be a generic way of representing configuration implementation.
+
+Basic validation is performed on files as they are read, specified by a data structure.
+
+test/common has some examples of usage.
+
+
+SUBTITLE Configuration file format
+
+The format is simple, a list of Key = Value pairs. For example
+
+Key1 = Value1
+Key2 = Value2
+
+Optionally, multiple values for the same key are allowed.
+
+Lists of configurations can be nested to any level. These are called Sub-configurations:
+
+SubConfig
+{
+ SubKey1 = ValueX
+ SubKey2 = ValueY
+}
+
+
+SUBTITLE Verification
+
+The verification structure specifies what keys are required, what are optional, and what sub-configurations are expected. Default values can be specified.
+
+See Configuration.h for the structures.
+
+RaidFileController::Initialise has a good example of a simple verification layout.
+
+Wildcards can be used for SubConfigurations, by specifying a name of "*". This allows you to use multiple sections to configure any number of items.
+
+Each item has a number of flags, which are combined to say whether an item is required, should be an integer or boolean, and rather importantly, whether it's the last item in the list.
+
+Verification is limited, so you may wish to do more verification the file. There are unimplemented hooks for custom verification functions to be included in the verification definitions. Should be done at some point.
+
+Boolean keys have possible values "true", "yes", "false", "no" (case insensitive).
+
+
+FUNCTION Configuration::LoadAndVerify()
+
+Loads the configuration from disc, and verifies it. If there are problems with the verification, it returns some text which can be used to tell the user the problems with the file. These are fairly basic error messages, but do say what should be done to get it to parse properly.
+
+This returns a Configuration object, which can then be queries for Keys and Values. Sub-configurations are implemented through an interface which returns a reference to another Configuration object.
+
+
+
+FUNCTION Configuration::KeyExists()
+
+Does a specified key exist?
+
+Use this for optional key values only -- specify them in the verification structure if they are required.
+
+
+FUNCTION Configuration::GetKeyValue()
+
+Get the value of a key as a string.
+
+If ConfigTest_MultiValueAllowed is set in the relevant entry in the verify structure, this string may contain multiple values, separated by a single byte with value 0x01 (use Configuration::MultiValueSeparator in code). Use SplitString() defined in Utils.h to split it into components.
+
+This representation was chosen as multi-values are probably rare, and unlikely to justify writing a nicer (but more memory intensive and complex) solution.
+
+
+FUNCTION Configuration::GetKeyValueInt()
+
+Get the value of a key as an integer. Make sure the AsInt property is requried in the verification structure.
+
+
+FUNCTION Configuration::GetKeyValueBool()
+
+Get the value of a key as a boolean value. Make sure the AsBool property is requried in the verification structure.
+
+Default to "false", should this verification not be performed and an unknown value is specified.
+
+
+FUNCTION Configuration::GetKeyNames()
+
+Return a list of all the keys in this configuration.
+
+
+FUNCTION Configuration::SubConfigurationExists()
+
+Does a specified sub-configuration exist?
+
+
+FUNCTION Configuration::GetSubConfiguration()
+
+Return another Configuration object representing the sub section.
+
+
+FUNCTION Configuration::GetSubConfigurationNames()
+
+Get a list of all the sub configurations.
+
+As there isn't a particularly neat way that configurations can be iterated over, mSubConfigurations is public. (BAD!)
+
+
diff --git a/docs/api-notes/common/lib_common/Conversion.txt b/docs/api-notes/common/lib_common/Conversion.txt
new file mode 100644
index 00000000..62d1967a
--- /dev/null
+++ b/docs/api-notes/common/lib_common/Conversion.txt
@@ -0,0 +1,14 @@
+TITLE Generic type conversion
+
+Conversion.h provides generic type conversion. Within the BoxConvert namespace, it defines the templated function
+
+ ToType Convert<ToType, FromType>(FromType From)
+
+which converts the data type as expected. In general, from and to types have to be specified explicitly.
+
+Templates rather than overloaded functions are used, firstly to be absolutely explicit about the conversion required, and secondly because overloaded functions can't have differing return types for the same argument type.
+
+The function is specialised for various types, and the generic version uses C++ type conversion.
+
+Exceptions may be thrown if the conversion is not possible. These are all of the ConversionException type.
+
diff --git a/docs/api-notes/common/lib_common/ExcludeList.txt b/docs/api-notes/common/lib_common/ExcludeList.txt
new file mode 100644
index 00000000..8a5bf36c
--- /dev/null
+++ b/docs/api-notes/common/lib_common/ExcludeList.txt
@@ -0,0 +1,21 @@
+TITLE ExcludeList
+
+A class implementing a list of strings which are to be excluded in some way. Entries can be added as strings to be matched exactly, or as regular expressions.
+
+Multiple entries can be added in a single function call in a manner designed to work with the multi-value entries store in a Configuation object.
+
+
+FUNCTION ExcludeList::AddDefiniteEntries()
+
+Definite entries are exact strings to match.
+
+
+FUNCTION ExcludeList::AddRegexEntries()
+
+Regular expressions as defined by POSIX, and supported by the host platform. Will throw an exception if regular expressions are not supported by the platform.
+
+
+FUNCTION ExcludeList::IsExcluded()
+
+Test a string for being excluded by definite or regex entries.
+
diff --git a/docs/api-notes/common/lib_common/FdGetLine.txt b/docs/api-notes/common/lib_common/FdGetLine.txt
new file mode 100644
index 00000000..d92ff94d
--- /dev/null
+++ b/docs/api-notes/common/lib_common/FdGetLine.txt
@@ -0,0 +1,11 @@
+CLASS FdGetLine
+
+See IOStreamGetLine, difference is that it works on basic UNIX file descriptors rather than full blown streams. Follows basic interface, except...
+
+
+FUNCTION FdGetLine::GetLine
+
+Returns a string containing the optionally preprocessed line.
+
+Do not call if IsEOF if true.
+
diff --git a/docs/api-notes/common/lib_common/Guards.txt b/docs/api-notes/common/lib_common/Guards.txt
new file mode 100644
index 00000000..6174fea6
--- /dev/null
+++ b/docs/api-notes/common/lib_common/Guards.txt
@@ -0,0 +1,5 @@
+TITLE Guards.h
+
+This file contains a couple of classes for using file and memory. When the class goes out of scope, the underlying object is closed or freed, respectively.
+
+
diff --git a/docs/api-notes/common/lib_common/IOStream.txt b/docs/api-notes/common/lib_common/IOStream.txt
new file mode 100644
index 00000000..09460656
--- /dev/null
+++ b/docs/api-notes/common/lib_common/IOStream.txt
@@ -0,0 +1,89 @@
+CLASS IOStream
+
+The base class for streams of data. See IOStream.h for specific details on functions, but the interface is described here.
+
+Most streams only implement one direction, but some both.
+
+
+SUBTITLE Reading
+
+
+FUNCTION IOStream::Read()
+
+Reads data from the stream. Returns 0 if there is no data available within the timeout requested.
+
+Unlike the UNIX API, a return of 0 does not mean that there is no more data to read. Use IOStream::StreamDataLeft() to find this out.
+
+
+FUNCTION IOStream::ReadFullBuffer()
+
+If you want to read a specific sized block of data from a stream, it is annoying ot use the Read function, because it might return less, so you have to loop.
+
+This implements that loop. Note that the timeout is the timeout for each individual read -- it might take a lot longer to complete.
+
+You must check the return value, which is whether or not it managed to get all that data.
+
+
+FUNCTION IOStream::BytesLeftToRead()
+
+How many bytes are left to read in the stream treated as a whole. May return IOStream::SizeOfStreamUnknown if it is something like a socket which doesn't know how much data is in the stream.
+
+
+FUNCTION IOStream::StreamDataLeft()
+
+Returns true if more data can be read. Or more specifically, if more data might be able to be read some time in the future.
+
+
+SUBTITLE Writing
+
+
+FUNCTION IOStream::Write()
+
+Write data to a stream. Writes the entire block, or exceptions.
+
+
+FUNCTION IOStream::WriteAllBuffered()
+
+Writes any buffered data to the underlying object.
+
+Call at the end of a series of writes to make sure the data is actually written. (Buffering is not yet implemented anywhere, but it should be soon.)
+
+
+FUNCTION IOStream::StreamClosed()
+
+Is the stream closed, and writing no longer possible?
+
+
+FUNCTION IOStream::CopyStreamTo()
+
+A utility function to copy the contents of one stream to another, until the reading stream has no data left.
+
+
+SUBTITLE Other interfaces
+
+These are slightly nasty interfaces, because they have to match the UNIX API to some extent.
+
+
+FUNCTION IOStream::Close()
+
+Close the stream -- intended to indicate that nothing more will be written.
+
+However, also closes reading in most cases. Stream dependent. Probably best just to delete the object and let it sort itself out.
+
+
+FUNCTION IOStream::Seek()
+
+Seeks within the stream -- mainly for using files within a stream interface, although some of the utility stream classes support it too.
+
+This is actually a bad interface, because it does not specify whether it applies to reading or writing. This matches the interface provided by files with a single file pointer, but does not map well onto other stream types.
+
+Should it be changed? Perhaps. But then it means that files would either have to have an inconsitent interface, or the class keep track of two separate file pointers. Which isn't nice.
+
+So use carefully, and remember whether you're using a file stream, a reading stream, or a writing stream.
+
+
+FUNCTION IOStream::GetPosition()
+
+Get the current file pointer. Subject to same problems as Seek with regard to semantics.
+
+
diff --git a/docs/api-notes/common/lib_common/IOStreamGetLine.txt b/docs/api-notes/common/lib_common/IOStreamGetLine.txt
new file mode 100644
index 00000000..04c56b57
--- /dev/null
+++ b/docs/api-notes/common/lib_common/IOStreamGetLine.txt
@@ -0,0 +1,29 @@
+CLASS IOStreamGetLine
+
+This class provides a convenient way to read text from a file, line by line. It also can preprocess the line to remove leading and trailing whitespace and comments. Comments are started by the character # and run to the end of the line.
+
+Create an instance by passing a reference to a stream into the constructor.
+
+Note the class does internal buffering, so you can only detach it later if the stream supports seeking backwards.
+
+
+FUNCTION IOStreamGetLine::GetLine()
+
+Returns true if a line could be retreieved without a read timing out.
+
+
+FUNCTION IOStreamGetLine::IsEOF()
+
+Whether the end of the stream has been reached. Do not call GetLine if this is true.
+
+
+FUNCTION IOStreamGetLine::GetLineNumber()
+
+Returns the line number.
+
+
+FUNCTION IOStreamGetLine::DetachFile()
+
+Detaches the stream from the GetLine class. Will seek backwards to "replace" data it's buffered back in the stream.
+
+
diff --git a/docs/api-notes/common/lib_common/MainHelper.txt b/docs/api-notes/common/lib_common/MainHelper.txt
new file mode 100644
index 00000000..eb5b07f0
--- /dev/null
+++ b/docs/api-notes/common/lib_common/MainHelper.txt
@@ -0,0 +1,4 @@
+TITLE MainHelper.h
+
+This header contains a couple of macros which add exception handling and reporting to main() functions for executable programs.
+
diff --git a/docs/api-notes/common/lib_common/WaitForEvent.txt b/docs/api-notes/common/lib_common/WaitForEvent.txt
new file mode 100644
index 00000000..0bc55726
--- /dev/null
+++ b/docs/api-notes/common/lib_common/WaitForEvent.txt
@@ -0,0 +1,16 @@
+CLASS WaitForEvent
+
+This class implements a way to efficiently wait on one or more system objects, for example sockets and file descriptors. Where kqueue() is available, this is used, otherwise poll(). The poll() implementation is less comprehensive and rather more limited.
+
+To add a compatible object, call Add(). To remove it, call Remove(). To wait for an object to become ready, call Wait(), which returns a pointer to the first ready object, or 0 for a timeout.
+
+The timeout is set either in the constructor, or using the SetTimout() method. It is specified in milliseconds.
+
+The kqueue based implementation will automatically remove objects when they are closed (actually, the OS does this), but the poll implementation requires that Remove() be called.
+
+The flags passed to Add() or Remove() are passed to the object, and are ignored by this class.
+
+For an object to be able to be added to the list, it should implement FillInKEvent() and FillInPoll() for kqueue and poll implementations respectively. Use the PLATFORM_KQUEUE_NOT_SUPPORTED define to test which is necessary for the platform.
+
+It does not have to be derived off any particular class, as it uses templates to be compatible with any class.
+
diff --git a/docs/api-notes/common/lib_common/xStream.txt b/docs/api-notes/common/lib_common/xStream.txt
new file mode 100644
index 00000000..91e9c0ea
--- /dev/null
+++ b/docs/api-notes/common/lib_common/xStream.txt
@@ -0,0 +1,40 @@
+TITLE Various stream types
+
+Some useful streams are implemented in lib/common.
+
+
+SUBTITLE CollectInBufferStream
+
+Described in it's own page.
+
+
+SUBTITLE FileStream
+
+Implements a stream from a file, allowing both reading and writing.
+
+
+SUBTITLE MemBlockStream
+
+Turns a memory block into a readable stream.
+
+Can also be constructed using StreamableMemBlock, CollectInBufferStream and MemBlockStream as sources of the buffer.
+
+
+SUBTITLE PartialReadStream
+
+Create a readable stream which will read a set number of bytes from another stream, and then declare itself as closed.
+
+Useful for extracting a small chunk of another stream to present to a function which expects to consume all of a stream.
+
+
+SUBTITLE ReadGatherStream
+
+Create a readable stream out of blocks from many streams -- so various sections of any number of streams are composed into a single stream.
+
+To use, register each stream with AddComponent, then use the returned 'handle' with AddBlock to add blocks to the composed stream.
+
+Optionally, the object will take ownership of the streams added, and delete them when itself is deleted.
+
+See the comments in the function blocks in the cpp file for more info.
+
+
diff --git a/docs/api-notes/common/lib_compress.txt b/docs/api-notes/common/lib_compress.txt
new file mode 100644
index 00000000..f3e26f20
--- /dev/null
+++ b/docs/api-notes/common/lib_compress.txt
@@ -0,0 +1,8 @@
+TITLE lib/compress
+
+This is a horrid C++ interface to zlib. It is written this way to avoid having to buffer any data, and so be unnecessarily inefficient. But this does end up just being a wrapper to the zlib interface.
+
+See test/compress for an example of how to use it. But it should be very familiar.
+
+For an easier interface, use CompressStream.
+
diff --git a/docs/api-notes/common/lib_compress/CompressStream.txt b/docs/api-notes/common/lib_compress/CompressStream.txt
new file mode 100644
index 00000000..eca43eb6
--- /dev/null
+++ b/docs/api-notes/common/lib_compress/CompressStream.txt
@@ -0,0 +1,27 @@
+TITLE CompressStream
+
+This implements a compressing stream class, which compresses and decompresses data sent to an underlying stream object. Data is likely to be buffered.
+
+
+WARNING: Use WriteAllBuffered() (after objects which need to be sent in their entirity) and Close() (after you have finished writing to the stream) otherwise the compression buffering will lose the last bit of data for you.
+
+
+The class works as a filter to an existing stream. Ownership can optionally be taken so that the source stream is deleted when this object is deleted.
+
+It can operate in one or two directions at any time. Data written to the stream is compressed, data read from the stream is decompressed. If a direction is not being (de)compressed, then it can act as a pass-through without touching the data.
+
+The constructor specifies the actions to be taken:
+
+CompressStream(IOStream *pStream, bool TakeOwnership,
+ bool DecompressRead, bool CompressWrite,
+ bool PassThroughWhenNotCompressed = false);
+
+pStream - stream to filter
+TakeOwnership - if true, delete the stream when this object is deleted.
+DecompressRead - reads pass through a decompress filter
+CompressWrite - writes pass through a compression filter
+PassThroughWhenNotCompressed - if not filtering a direction, pass through the data unaltered, otherwise exception if an attempt is made on that direction.
+
+
+Note that the buffering and compression will result in different behaviour than the underlying stream: data may not be written in one go, and data being read may come out in different sized chunks.
+
diff --git a/docs/api-notes/common/lib_crypto.txt b/docs/api-notes/common/lib_crypto.txt
new file mode 100644
index 00000000..9ddafe69
--- /dev/null
+++ b/docs/api-notes/common/lib_crypto.txt
@@ -0,0 +1,28 @@
+TITLE lib/crypto
+
+Provides cryptographic primatives using the OpenSSL implementation.
+
+
+SUBTITLE CipherContexts and CipherDescriptions
+
+A CipherContext is the interface to encryption and decryption, providing a generic interface.
+
+It is constructed with a decrypt or encrypt flag, and a CipherDescription. The CipherDescription specifies which cipher is to be used, the key, and all other cipher specific paramteres.
+
+The CipherContext has support for padding and initialisation vectors.
+
+
+SUBTITLE Random numbers
+
+An interface to the OpenSSL psuedo random number generater is provided.
+
+
+SUBTITLE Digests
+
+An interface to the MD5 digest is provided.
+
+
+SUBTITLE RollingChecksum
+
+The rsync rolling checksum is implemented. The interface is a little tricky to be efficient as the caller must track the position and provide relevant bytes to advance the checksum.
+
diff --git a/docs/api-notes/common/lib_crypto/CipherContext.txt b/docs/api-notes/common/lib_crypto/CipherContext.txt
new file mode 100644
index 00000000..30fb4608
--- /dev/null
+++ b/docs/api-notes/common/lib_crypto/CipherContext.txt
@@ -0,0 +1,28 @@
+CLASS CipherContext
+
+Encryption and decryption using OpenSSL EVP interface.
+
+See the cpp file for more documentation in the function headers, and test/crypto for examples.
+
+General notes below.
+
+
+SUBTITLE Construction
+
+Construct with the encryption direction, and a CipherDescription of the cipher and key required.
+
+
+SUBTITLE Encrypting or decrypting
+
+Begin() and Transform() allow piece by piece transformation of a block.
+
+TransformBlock() transforms an entire block.
+
+
+SUBTITLE Buffering
+
+All transforms expect to have enough space in the buffers for their entire output. Because of block boundaries and padding, it is necessary that the output buffer should be bigger than the input buffer. The amount of space depends on the cipher.
+
+InSizeForOutBufferSize() and MaxOutSizeForInBufferSize() perform these space calculations, returning the maximuim in size for a specified out size, and the reverse, respectively.
+
+
diff --git a/docs/api-notes/common/lib_crypto/RollingChecksum.txt b/docs/api-notes/common/lib_crypto/RollingChecksum.txt
new file mode 100644
index 00000000..d871b3f2
--- /dev/null
+++ b/docs/api-notes/common/lib_crypto/RollingChecksum.txt
@@ -0,0 +1,36 @@
+CLASS RollingChecksum
+
+Implementing the rsync rolling checksum algorithm. Read it's description first:
+
+http://samba.anu.edu.au/rsync/tech_report/node3.html
+
+
+SUBTITLE Construction and initial checksum calculation
+
+The constructor takes a pointer to a block of data and a size, and calculates the checksum of this block. It can now be "rolled forward" to find the checksum of the block of the same size, one byte forward, with minimal calculation.
+
+
+FUNCTION RollingChecksum::GetChecksum()
+
+Returns the checksum for the current block.
+
+
+FUNCTION RollingChecksum::RollForward()
+
+This function takes the byte at the start of the current block, and the last byte of the block it's rolling forward to, and moves the checksum on.
+
+If the block is
+
+ char *pBlock = <something>;
+
+with size s, then it should be called with
+
+ RollForward(pBlock[0], pBlock[s])
+
+and now GetChecksum will return the checksum of the block (pBlock+1) of size s.
+
+
+FUNCTION RollingChecksum::RollForwardSeveral()
+
+Similar to RollForward(), but is more efficient for skipping several bytes at once. Takes pointers to the data buffer rather than the actual data values.
+
diff --git a/docs/api-notes/common/lib_server.txt b/docs/api-notes/common/lib_server.txt
new file mode 100644
index 00000000..392f331d
--- /dev/null
+++ b/docs/api-notes/common/lib_server.txt
@@ -0,0 +1,9 @@
+TITLE lib/server
+
+This provides various classes for implementing client/server applications (and UNIX daemons).
+
+The stars of the show are ServerTLS and Protocol, which allow client server applications which communicate using TLS (SSL successor) to be built with surprisingly few lines of code.
+
+All details in the respective class files.
+
+Look at test/basicserver for examples.
diff --git a/docs/api-notes/common/lib_server/Daemon.txt b/docs/api-notes/common/lib_server/Daemon.txt
new file mode 100644
index 00000000..6956ec2b
--- /dev/null
+++ b/docs/api-notes/common/lib_server/Daemon.txt
@@ -0,0 +1,96 @@
+CLASS Daemon
+
+Implement a UNIX daemon which
+
+* Daemonises (detach from console, etc)
+* Sets up signal handlers, and does useful things with them
+* Reads configuration files
+* Writes PID file
+* Opens syslog
+
+all the usual UNIX basic daemon behaviour.
+
+The daemon exe takes optional arguments: The first is a configuration file filename which overrides the default. If the second argument is 'SINGLEPROCESS' the daemon will not daemonise.
+
+The configuration file must have a section like this
+
+Server
+{
+ PidFile = /var/run/daemon.pid
+ User = username
+}
+
+Use DAEMON_VERIFY_SERVER_KEYS (defined in Daemon.h) to include the necessary keys in your configuration file's verify structure.
+
+The "User" line is optional, and if it is present the Daemon will change user to this username just before it daemonises. Note that unless the directory the PID file is written to has write permission for this user, the PID file will not be deleted on exit.
+
+
+To implement a daemon, derive a class from Daemon, and override Run().
+
+Then in your main file, do something like
+
+int main(int argc, const char *argv[])
+{
+ MAINHELPER_START
+
+ BackupDaemon daemon;
+ return daemon.Main(BOX_FILE_BBACKUPD_DEFAULT_CONFIG, argc, argv);
+
+ MAINHELPER_END
+}
+
+and that's it. Obviously it's worth doing a few more things as well, but that's it.
+
+
+FUNCTION Daemon::Run()
+
+Override with the main daemon code. It should behave like this
+
+void SomethingDaemon::Run()
+{
+ // Read configuration file
+
+ // Do lots of work until StopRun() returns true
+ while(!StopRun())
+ {
+ ::sleep(10);
+ }
+
+ // Clean up nicely
+}
+
+which allows the base class to implement the standard start, terminate and -HUP behaviours correctly.
+
+
+FUNCTION Daemon::DaemonName()
+
+Returns the name of the daemon, for use in syslog.
+
+
+FUNCTION Daemon::DaemonBanner()
+
+Returns the banner to be displayed on startup, or 0 for no banner.
+
+
+FUNCTION Daemon::GetConfigVerify()
+
+Returns a configuration verify structure for verifying the config file. Note that this configuration structure should include a sub-configuration called "Server, and have entries defined by DAEMON_VERIFY_SERVER_KEYS. See one of the bin/bbackupd for an example.
+
+
+FUNCTION Daemon::StopRun()
+
+Returns true when the daemon needs to be terminated or restarted. Use IsReloadConfigWanted() and IsTerminateWanted() to find out which one, if you need to know.
+
+
+FUNCTION Daemon::SetupInInitialProcess()
+
+Override to perform additional functions in the initial process, before forking and detachment happens.
+
+
+FUNCTION Daemon::EnterChild()
+
+Called when a child is entered. If you override it, remember to call the base class.
+
+
+
+
diff --git a/docs/api-notes/common/lib_server/Protocol.txt b/docs/api-notes/common/lib_server/Protocol.txt
new file mode 100644
index 00000000..09d3c1f1
--- /dev/null
+++ b/docs/api-notes/common/lib_server/Protocol.txt
@@ -0,0 +1,120 @@
+CLASS Protocol
+
+Protocol
+
+* serialises and deserialises data objects
+* sends arbitary streams
+
+through a bi-directional IOStream object, usually a socket.
+
+These data objects are auto-generated by a perl script, along with the logic to implement a simple protocol where one end is a client, and the other a server. The client sends a command object (and optional streams) and the server returns a reply object (and optional streams).
+
+The perl script uses a description file which specifies the data inside these objects (which can be extended to include any type which implements the standard serialisation functions), the required responses to the commands, and whether streams are involved.
+
+It then implements a server object, which given a stream and a user defined context object, waits for commands, processes them, and sends the results back. All you need to do is implement a DoCommand() function for each command object you define.
+
+On the client side, a Query() function is implemented which takes objects as parameters, and returns the right type of reply object (or throws an exception if it doesn't get it.) Short cut Query<CommandName>() functions are also implemented which don't require objects to be created manually.
+
+Thus, implementing a server is as simple as deriving a daemon off ServerStream or ServerTLS, and implementing the Connection() function as
+
+ void TestProtocolServer::Connection(SocketStream &rStream)
+ {
+ TestProtocolServer server(rStream);
+ TestContext context;
+ server.DoServer(context);
+ }
+
+and that's it. TestContext is a user defined class which keeps track of all the state of the connection, and is passed to all the DoCommand() functions, which look like this:
+
+ std::auto_ptr<ProtocolObject>
+ TestProtocolServerSimple::DoCommand(TestProtocolServer &rProtocol,
+ TestContext &rContext)
+ {
+ return std::auto_ptr<ProtocolObject>
+ (new TestProtocolServerSimpleReply(mValue+1));
+ }
+
+(taken from test/basicserver)
+
+The client code looks like this
+
+ SocketStream conn;
+ conn.Open(Socket::TypeUNIX, "testfiles/srv4.sock");
+
+ TestProtocolClient protocol(conn);
+
+ // Query
+ {
+ std::auto_ptr<TestProtocolClientSimpleReply>
+ reply(protocol.QuerySimple(41));
+ TEST_THAT(reply->GetValuePlusOne() == 42);
+ }
+
+
+Finally, debug logging can be generated which allows a list of all commands and their parameters to be logged to syslog or a file.
+
+
+SUBTITLE Protocol Description File
+
+This file is passed to the lib/server/makeprotocol.pl script, which generates a h and cpp file to implement the protocol.
+
+It is in two sections, separated by a 'BEGIN_OBJECTS' on a line of it's own.
+
+In the top half, the following statements must be made.
+
+Name <name>
+ The name of the protocol, used in naming classes.
+
+IdentString <string>
+ The idenfitifaction string sent over the IOStream to confirm it it
+ is talking to another Protocol object speaking the same Protocol.
+
+ServerContextClass <class-name> <header-file>
+ The user defined context class used for the server, and the header
+ file it is defined in.
+
+Additionally, the following optional commands can be made.
+
+ClientType <description-typename> <C++ typename> <headerfile>
+ServerType (similarly)
+ Extends the types used in the objects below. Server and client
+ can use different types for the same object type.
+
+ImplementLog (Client|Server) (syslog|file)
+ Implement command logging for client or server into syslog or a file.
+
+LogTypeToText (Client|Server) <description-typename> <printf-element>
+ <evaluate>
+ For extended types, optionally define how to convert them into printf
+ elements and the code to run to get the argument. Within the evaluate
+ parameter, VAR is replaced by the name of the variable to display.
+ If this is not specified for a given type, OPAQUE is output instead.
+
+
+In the object section, an object is defined by a line
+
+<name> <id number> <attributes>
+
+followed by lines beginning with whitespace defining the data transmitted in the object. The type may be list<type>, which specifies a list (implemented as a std::vector) of entries of that type.
+
+The attributes specify exactly how that object is used in the defined protocol.
+
+Reply
+ The object is a reply object, sent from the server to the client.
+
+Command(Reply-Type)
+ The object is a command, send from the client to the server, and the server
+ will send back an object of type Reply-Type.
+
+IsError(Type-Field,SubType-Field)
+ The command is an error object, and the two files specify the data member
+ which describes the error type and sub type.
+
+EndsConversation
+ When this command is received, the connection is to be terminated.
+ (ie a logout command)
+
+StreamWithCommand
+ When this command is sent as a command, a stream follows it.
+
+
diff --git a/docs/api-notes/common/lib_server/ServerStream.txt b/docs/api-notes/common/lib_server/ServerStream.txt
new file mode 100644
index 00000000..6c5932a0
--- /dev/null
+++ b/docs/api-notes/common/lib_server/ServerStream.txt
@@ -0,0 +1,29 @@
+CLASS ServerStream
+
+ServerStream implementes a Daemon which accepts stream connections over sockets, and forks into a child process to handle them.
+
+To implement a daemon, derive from
+
+ ServerStream<SocketStream, SERVER_LISTEN_PORT>
+
+The type SocketStream specifies that incoming connections should be treated as normal sockets, and SERVER_LISTEN_PORT is the port to listen to (if it's a inet socket, and if not overridden in the config file). The actual addresses (or names) to bind to are specified in the configuration file by the user.
+
+Make sure SERVERSTREAM_VERIFY_SERVER_KEYS(0) is included in the configuration verification structure in the "Server" sub configuration. 0 could be replaced with a default address, for example "unix:/var/run/server.sock" to specific a default UNIX socket in the filesystem.
+
+See test/basicserver for a simple example.
+
+The ListenAddresses key in the Server subconfiguration is a comma separated list of addresses, specified as family:name. Internet sockets are family 'inet', for example 'inet:localhost' (or 'inet:localhost:1080' to specify a port number as well), and unix domain sockets are 'unix', example above.
+
+
+Override Connection to handle the connection.
+
+Remember to override Daemon functions like the server name, and start it up, just like a generic Daemon.
+
+
+FUNCTION ServerStream::Connection
+
+This function takes a connected stream as it's argument. It should then proceed to do whatever it needs to do to talk to the client.
+
+Using IOStreamGetLine or a Protocol class to communicate may be quick ways of implementing this functionality.
+
+
diff --git a/docs/api-notes/common/lib_server/ServerTLS.txt b/docs/api-notes/common/lib_server/ServerTLS.txt
new file mode 100644
index 00000000..dbde500f
--- /dev/null
+++ b/docs/api-notes/common/lib_server/ServerTLS.txt
@@ -0,0 +1,6 @@
+CLASS ServerTLS
+
+Implements a server which uses TLS (SSL) to encrypt and authenticate connections.
+
+Very similar to ServerStream, except it reads the certificate files for the TLSContext out of the Server sub-configuration to set up a TLSContext ("CertificateFile", "PrivateKeyFile" and "TrustedCAsFile"). Otherwise works exactly the same.
+
diff --git a/docs/api-notes/common/lib_server/SocketStream.txt b/docs/api-notes/common/lib_server/SocketStream.txt
new file mode 100644
index 00000000..82813279
--- /dev/null
+++ b/docs/api-notes/common/lib_server/SocketStream.txt
@@ -0,0 +1,8 @@
+CLASS SocketStream
+
+A implementation of IOStream which wraps a socket connection.
+
+It can either be created by attaching to an existing object, or use the Open() function to open a connection to a named host on a specific port (or a local UNIX socket in the filesystem).
+
+Follows stream interface.
+
diff --git a/docs/api-notes/common/lib_server/SocketStreamTLS.txt b/docs/api-notes/common/lib_server/SocketStreamTLS.txt
new file mode 100644
index 00000000..ebb3f233
--- /dev/null
+++ b/docs/api-notes/common/lib_server/SocketStreamTLS.txt
@@ -0,0 +1,11 @@
+CLASS SocketStreamTLS
+
+An implementation of IOStream which wraps a TLS (SSL) connection over a socket.
+
+The Open function takes a TLSContext reference which specifies the parameters for the connection.
+
+
+FUNCTION GetPeerCommonName()
+
+Returns the common name of the certificate presented by the remote end.
+
diff --git a/docs/api-notes/common/lib_server/TLSContext.txt b/docs/api-notes/common/lib_server/TLSContext.txt
new file mode 100644
index 00000000..ff50d3e6
--- /dev/null
+++ b/docs/api-notes/common/lib_server/TLSContext.txt
@@ -0,0 +1,16 @@
+CLASS TLSContext
+
+A wrapper over the OpenSSL context object.
+
+Note: you need to call SSLLib::Initialise at the beginning of your program to use these functions.
+
+
+SUBTITLE Construction
+
+The constuctor takes the following parameters
+
+* Boolean for whether this is acting as a server or a client
+* The .pem file containing the certificate which will be used
+* The .pem file containing the private key for this certificate
+* The .pem file containing the certificates which will certify the other end of the connection.
+
diff --git a/docs/api-notes/common/memory_leaks.txt b/docs/api-notes/common/memory_leaks.txt
new file mode 100644
index 00000000..9a9764ea
--- /dev/null
+++ b/docs/api-notes/common/memory_leaks.txt
@@ -0,0 +1,44 @@
+TITLE Memory leak detection
+
+The build system contains a primative memory leak detection system in debug builds.
+
+It works by using #defines to replace calls to malloc, free, realloc, new and delete with debug versions which record their use. When a process ends, it dumps a list of all the blocks or objects which were allocated by not freed, and the file and line of the source where they are originally allocated.
+
+It's not perfect, but should catch most things and work on most platforms.
+
+If it doesn't work on your platform, define PLATFORM_DISABLE_MEM_LEAK_TESTING in BoxPlatform.h within the relevant section.
+
+
+SUBTITLE Requirements in source
+
+It does require some extra lines in the source file. The last included file in each .cpp file must be
+
+ #include "MemLeakFindOn.h"
+
+and if a .h file uses any of these functions, the contents of the .h file should be bounded with
+
+ #include "MemLeakFindOn.h"
+
+ // ... some code, but absolutely no #includes
+
+ #include "MemLeakFindOff.h"
+
+The cleanupforcvs.pl script checks for correct usage.
+
+
+SUBTITLE Use in tests
+
+Tests will automatically dump memory leaks and regard them as a failure for anything executing in the main test process.
+
+To test for memory leaks in programs run from the test, or daemons, use something like
+
+ TestRemoteProcessMemLeaks("bbackupd.memleaks");
+
+If memory leak detection is being used, it will check the specified file for memory leak reports (deleting it afterwards). Any leak is an error.
+
+The Daemon class automactically arranges for the memory leak reports to be written. Other exes should set this up themselves, preferably using the define in MainHelper.h, as the first thing in their main() function.
+
+ MAINHELPER_SETUP_MEMORY_LEAK_EXIT_REPORT(file, name)
+
+File is the filename to write the report to, conventionally called "<programname>.memleaks", and name is the name of the exe.
+
diff --git a/docs/api-notes/encrypt_rsync.txt b/docs/api-notes/encrypt_rsync.txt
new file mode 100644
index 00000000..a5db2df2
--- /dev/null
+++ b/docs/api-notes/encrypt_rsync.txt
@@ -0,0 +1,66 @@
+TITLE Encrypted rsync algorithm
+
+The backup system uses a modified version of the rsync algorithm. A description of the plain algorithm can be found here:
+
+ http://samba.anu.edu.au/rsync/tech_report/
+
+The algorithm is modified to allow the server side to be encrypted, yet still benefit from the reduced bandwidth usage. For a single file transfer, the result will be only slightly less efficient than plain rsync. For a backup of a large directory, the overall bandwidth may be less due to the way the backup client daemon detects changes.
+
+This document assumes you have read the rsync document.
+
+The code is in lib/backupclient/BackupStoreFile*.*.
+
+
+SUBTITLE Blocks
+
+Each file is broken up into small blocks. These are individually compressed and encrypted, and have an entry in an index which contains, encrypted, it's weak and strong checksums and decoded plaintext size. This is all done on the client.
+
+Why not just encrypt the file, and use the standard rsync algorithm?
+
+1) Compression cannot be used, since encryption turns the file into essentially random data. This is not very compressible.
+
+2) Any modification to the file will result in all data after that in the file having different ciphertext (in any cipher mode we might want to use). Therefore the rsync algorithm will only be able to detect "same" blocks up until the first modification. This significantly reduces the effectiveness of the process.
+
+Note that blocks are not all the same size. The last block in the file is unlikely to be a full block, and if data is inserted which is not a integral multiple of the block size, odd sized blocks need to be created. This is because the server cannot reassemble the blocks, because the contents are opaque to the server.
+
+
+SUBTITLE Modifed algorithm
+
+To produce a list of the changes to send the new version, the client requests the block index of the file. This is the same step as requesting the weak and strong checksums from the remote side with rsync.
+
+The client then decrypts the index, and builds a list of the 8 most used block sizes above a certain threshold size.
+
+The new version of the file is then scanned in exactly the same way as rsync for these 8 block sizes. If a block is found, then it is added to a list of found blocks, sorted by position in the file. If a block has already been found at that position, then the old entry is only replaced by the new entry if the new entry is a "better" (bigger) match.
+
+The block size covering the biggest file area is searched first, so that most of the file can be skipped over after the first pass without expensive checksumming.
+
+A "recipe" is then built from the found list, by trivially discarding overlapping blocks. Each entry consists of a number of bytes of "new" data, a block start number, and a number of blocks from the old file. The data is stored like this as a memory optimisation, assuming that files mostly stay the same rather than having all their blocks reordered.
+
+The file is then encoded, with new data being sent as blocks of data, and references to blocks in the old file. The new index is built completely, as the checksums and size need to be rencrypted to match their position in the index.
+
+
+SUBTITLE Combination on server
+
+The "diff" which is sent from the client is assembled into a full file on the server, simply by adding in blocks from the old file where they are specified in the block index.
+
+
+SUBTITLE Storage on server
+
+Given that the server will in general store several versions of a file, combining old and new files to form a new file is not terribly efficient on storage space. Particularly for large multi-Gb database files.
+
+An alternative scheme is outlined below, however, it is significantly more complex to implement, and so is not implemented in this version.
+
+1) In the block index of the files, store the file ID of the file which each block is source from. This allows a single file to reference blocks from many files.
+
+2) When the file is downloaded, the server combines the blocks from all the files into a new file as it is streamed to the client. (This is not particuarly complicated to do.)
+
+This all sounds fine, until housekeeping is considered. Old versions need to be deleted, without losing any blocks necessary for future versions.
+
+Instead of just deleting a file, the server works out which blocks are still required, and rebuilds the file omitting those blocks which aren't required.
+
+This complicates working out how much space a file will release when it is "deleted", and indeed, adds a whole new level of complexity to the housekeeping process. (And the tests!)
+
+The directory structure will need an additional flag, "Partial file", which specifies that the entry cannot be built as previous blocks are no longer available. Entries with this flag should never be sent to the client.
+
+
+
diff --git a/docs/api-notes/lib_backupclient.txt b/docs/api-notes/lib_backupclient.txt
new file mode 100644
index 00000000..3e4a079b
--- /dev/null
+++ b/docs/api-notes/lib_backupclient.txt
@@ -0,0 +1,46 @@
+TITLE lib/backupclient
+
+Classes used on the store and on the server.
+
+See documentation in the files for more details.
+
+
+SUBTITLE BackupStoreDirectory
+
+The directory listing class, containing a number of entries, representing files.
+
+
+SUBTITLE BackupStoreFile
+
+Handles compressing and encrypting files, and decoding files downloaded from the server.
+
+
+SUBTITLE BackupStoreFilename
+
+An encrypted filename.
+
+
+SUBTITLE BackupStoreFilenameClear
+
+Derived from BackupStoreFilename, but with the ability to encrypt and decrypt filenames. Client side only.
+
+
+SUBTITLE BackupClientFileAttributes
+
+Only used on the client -- the server treats attributes as blocks of opaque data.
+
+This reads attributes from files on discs, stores them, encrypts them, and applies them to new files.
+
+Also has a static function to generate filename attribute hashes given a struct stat and the filename.
+
+
+SUBTITLE BackupClientRestore
+
+Routines to restore files from the server onto the client filesystem.
+
+
+SUBTITLE BackupClientCryptoKeys
+
+This reads the key material from disc, and sets up the crypto for storing files, attributes and directories.
+
+
diff --git a/docs/api-notes/lib_backupstore.txt b/docs/api-notes/lib_backupstore.txt
new file mode 100644
index 00000000..8f24eb7b
--- /dev/null
+++ b/docs/api-notes/lib_backupstore.txt
@@ -0,0 +1,30 @@
+TITLE lib/backupstore
+
+Classes which are shared amongst the server side store utilities, bbstored and bbstoreaccounts. Note also depends on lib/backupclient, as a lot of code is shared between the client and server.
+
+
+SUBTITLE BackupStoreAccountDatabase
+
+A simple implementation of an account database. This will be replaced with a more suitable implementation.
+
+
+SUBTITLE BackupStoreAccounts
+
+An interface to the account database, and knowledge of how to initialise an account on disc.
+
+
+SUBTITLE BackupStoreConfigVerify
+
+The same configuration file is used by all the utilities. This is the Configuration verification structure for this file.
+
+
+SUBTITLE BackupStoreInfo
+
+The "header" information about an account, specifying current disc usage, space limits, etc.
+
+
+SUBTITLE StoreStructure
+
+Functions specifying how the files are laid out on disc in the store.
+
+
diff --git a/docs/api-notes/raidfile/RaidFileRead.txt b/docs/api-notes/raidfile/RaidFileRead.txt
new file mode 100644
index 00000000..0a5efbf7
--- /dev/null
+++ b/docs/api-notes/raidfile/RaidFileRead.txt
@@ -0,0 +1,14 @@
+CLASS RaidFileRead
+
+Read a raid file.
+
+IOStream interface, plus a few extras, including reading directories and checking that files exist.
+
+
+FUNCTION RaidFileRead::Open
+
+Open a given raid file -- returns a pointer to a new RaidFileRead object.
+
+Note that one of two types could be returned, depending on the representation of the file.
+
+
diff --git a/docs/api-notes/raidfile/RaidFileWrite.txt b/docs/api-notes/raidfile/RaidFileWrite.txt
new file mode 100644
index 00000000..89500c37
--- /dev/null
+++ b/docs/api-notes/raidfile/RaidFileWrite.txt
@@ -0,0 +1,36 @@
+CLASS RaidFileWrite
+
+Interface to writing raidfiles.
+
+See IOStream interface.
+
+Some other useful functions are available, see h and cpp files.
+
+
+FUNCTION RaidFileWrite::RaidFileWrite()
+
+The constructor takes the disc set number and filename of the file you're interested.
+
+
+FUNCTION RaidFileWrite::Open()
+
+Open() opens the file for writing, and takes an "allow overwrite" flag.
+
+
+FUNCTION RaidFileWrite::Commit()
+
+Commmit the file, and make it visible to RaidFileRead. If ConvertToRaidNow == true, it will be converted to raid file representation immediately.
+
+Setting it to false is not a good idea. Later on, it will tell a daemon to convert it in the background, but for now it simply won't be converted.
+
+
+FUNCTION RaidFileWrite::Discard()
+
+Abort the creation/update. Equivalent to just deleting the object without calling Commit().
+
+
+FUNCTION RaidFileWrite::Delete()
+
+Delete a file -- don't need to Open() it first.
+
+
diff --git a/docs/api-notes/raidfile/lib_raidfile.txt b/docs/api-notes/raidfile/lib_raidfile.txt
new file mode 100644
index 00000000..0c4244ce
--- /dev/null
+++ b/docs/api-notes/raidfile/lib_raidfile.txt
@@ -0,0 +1,73 @@
+TITLE lib/raidfile
+
+Implements RAID type abilities in files in userland, along with simple transaction like semantics for writing and reading files.
+
+IOStream interfaces are used to read and write files.
+
+Eventually a raid file daemon will be written to "raidify" files in the background. This will allow fast streaming of data to a single disc, followed by splitting into separate raid files later.
+
+There is an option to disable raidification for use on systems with only one hard disc, or a hardware RAID array.
+
+
+SUBTITLE Controller
+
+The raid disc sets are managed by RaidFileController. This reads the configuration file, /etc/box/raidfile.conf, and then stores the sets of discs for use by the other classes.
+
+In the code, files are referenced using an integer set number, and a filename within that set. For example, (0, "dir/subdir/filename.ext"). The RAID file controller turns this into actual physcial filenames transparently.
+
+The files are devided into blocks, which should match the fragment/block size of the underlying filesystem for maximum space efficiency.
+
+If the directories specified in the configuration files are all equal, then userland RAID is disabled. The files will not be processed into the redundant parts.
+
+
+SUBTITLE Writing
+
+Files are written (and modified) using the RaidFileWrite class. This behaves as a seekable IOStream for writing.
+
+When all data has been written, the file is committed. This makes it available to be read. Processing to split it into the three files can be delayed.
+
+If the data is not commited, the temporary write file will be deleted.
+
+RaidFileWrite will optionally refuse to overwrite another file. If it is being overwritten, a read to that file will get the old file until it has been committed.
+
+
+SUBTITLE Reading
+
+File are opened and read with RaidFileRead::Open. This returns an IOStream (with some extras) which reads a file.
+
+If the file has been turned into the RAID representation, then if an EIO error occurs on any operation, it will switch transparently into recovery mode where the file will be regenerated from the remaining two files using the parity file. (and log an error to syslog)
+
+
+SUBTITLE Layout on disc
+
+The directory structure is replicated onto each of the three directories within the disc set.
+
+Given a filename x, within the disc set, one of the three discs is chosen as the 0th disc for this file. This is done by hashing the filename. This ensures that an equal load is placed on each disc -- otherwise one disc would only be accessed when a RAID file was being written.
+
+When the file is being written, the actual physical file is "x.rfwX". This just a striaght normal file -- nothing is done to the data.
+
+When it is commited, it is renamed to "x.rfw".
+
+Then, when it is turned into the raid representation, it is split across three discs, each file named "x.rf".
+
+When trying to open a file, the first attempt is for "x.rfw". If this exists, it is used as is.
+
+If this fails, two of the "x.rf" files are attempted to be opened. If this succeeds, the file is opened in RAID mode.
+
+This procedure guarenettes that a file will be opened either as a normal file, or as the correct three RAID file elements, even if a new version is being commited at the same time, or another process is working to turn it into a raid file.
+
+
+SUBTITLE Raid file representation
+
+The file is split into three files, stripe 1, stripe 2 and parity.
+
+Considering the file as a set of blocks of the size specified in the configuration, odd numbered blocks go in stripe 1, even blocks in stripe 2, and a XOR of the corresponding blocks in parity.
+
+Thus only two files are needed to recreate the original.
+
+The complexity comes because the size of the file is not stored inside the files at any point. This means if stripe 2 is missing, it is ambiguous as to how big the file is.
+
+Size is stored as a 64 bit integer. This is appended to the parity file, unless it can be stored by XORing it into the last 8 bytes of the parity file.
+
+This scheme is complex to implement (see the RaidFileRead.cpp!) but minimises the disc spaced wasted.
+
diff --git a/docs/api-notes/win32_build_on_cygwin_using_mingw.txt b/docs/api-notes/win32_build_on_cygwin_using_mingw.txt
new file mode 100644
index 00000000..e93af6cd
--- /dev/null
+++ b/docs/api-notes/win32_build_on_cygwin_using_mingw.txt
@@ -0,0 +1,113 @@
+How to build Box Backup on Win32 using Cygwin and MinGW
+By Chris Wilson, 2009-03-31
+
+(To read this document online with better formatting, browse to:
+[http://www.boxbackup.org/trac/wiki/CompileWithMinGW])
+
+== MinGW C++ ==
+
+Start by installing Cygwin on your Windows machine from [http://www.cygwin.org/cygwin/].
+
+Make sure to select the following packages during installation:
+
+ * Devel/automake
+ * Devel/autoconf
+ * Devel/gcc-mingw
+ * Devel/gcc-mingw-core
+ * Devel/gcc-mingw-g++
+ * Devel/make
+ * Devel/mingw-runtime
+ * Lib/libxml2
+ * Lib/libxslt (for xsltproc)
+ * Mingw/mingw-zlib
+ * Perl/Perl
+
+If you already have Cygwin installed, please re-run the installer and
+ensure that those packages are installed.
+
+You may also want to install the debugger, Devel/gdb.
+
+== Base Directory ==
+
+Choose a directory where you will unpack and compile OpenSSL, Zlib and Box Backup. We will call this the ''base directory''. An example might be:
+
+ C:\Cygwin\Home\YourUsername
+
+Make sure you know the full path to this directory.
+
+If your user name has spaces in it, which is quite common on Windows,
+please rename your home directory to one without any spaces, and change
+your user's home directory in /etc/passwd to match.
+
+== OpenSSL ==
+
+Download OpenSSL from [http://www.openssl.org/source/openssl-1.0.0a.tar.gz]
+
+Open a Cygwin shell, go to the base directory, and unpack OpenSSL:
+
+ tar xzvf openssl-1.0.0a.tar.gz
+
+Configure OpenSSL for MinGW compilation, and build and install it:
+
+ cd openssl-1.0.0a
+ ./Configure --prefix=/usr/i686-pc-mingw32/ mingw
+ make
+ make install
+
+== PCRE ==
+
+This step is only required to support regular expressions in including/excluding files from backups. However, this is a very useful feature.
+
+Download PCRE from
+[http://prdownloads.sourceforge.net/pcre/pcre-8.10.tar.bz2?download]
+
+Open a Cygwin shell, go to the base directory, and unpack PCRE:
+
+ tar xjvf pcre-8.10.tar.bz2
+
+Configure PCRE for MinGW compilation, and build and install it:
+
+ cd pcre-8.10
+ export CFLAGS="-mno-cygwin"
+ export CXXFLAGS="-mno-cygwin"
+ ./configure --prefix=/usr/i686-pc-mingw32
+ make
+ make install
+
+== Download Box Backup ==
+
+Go back to the base directory, and download the latest Box Backup sources:
+
+ svn co https://www.boxbackup.org/svn/box/trunk/ trunk
+
+Note: If you have problems during the configure or make stage, please try to eliminate one potential source of problems by running the following command to convert all line endings to Unix format:
+
+ find -type f -not \( -wholename .*svn*. \) -exec dos2unix {} \;
+
+== Compile Box Backup ==
+
+Enter the source directory and configure like this:
+
+ cd trunk
+ ./infrastructure/mingw/configure.sh
+ make
+
+== Installation ==
+
+Create the destination directory, ''C:\Program Files\Box Backup\bbackupd''.
+
+Write a configuration file, keys and certificate on a Unix machine, and copy them into the ''Box Backup'' directory, together with the following files from the ''base directory'':
+
+ * boxbackup\release\bin\bbackupd\bbackupd.exe
+ * boxbackup\release\bin\bbackupquery\bbackupquery.exe
+ * boxbackup\release\bin\bbackupctl\bbackupctl.exe
+ * openssl\out32dll\libeay32.dll
+ * openssl\out32dll\ssleay32.dll
+ * zlib\zlib1.dll
+
+Ensure that the user running Box Backup can read from the ''Box Backup'' directory, and write to the ''bbackupd'' directory inside it.
+
+Run Box Backup by double-clicking on it, and check that it connects to the server. If the window opens and closes immediately, it's probably due to a problem with the configuration file - check the Windows Event Viewer for details.
+
+See also the service installation and upgrade instructions at
+[https://www.boxbackup.org/trac/wiki/CompilationOnWindows].
diff --git a/docs/api-notes/win32_build_on_linux_using_mingw.txt b/docs/api-notes/win32_build_on_linux_using_mingw.txt
new file mode 100644
index 00000000..2c3e4fe9
--- /dev/null
+++ b/docs/api-notes/win32_build_on_linux_using_mingw.txt
@@ -0,0 +1,108 @@
+How to build Box Backup for Windows (Native) on Linux using MinGW
+By Chris Wilson, 2005-12-07
+
+Install the MinGW cross-compiler for Windows:
+
+- Debian and Ubuntu users can "apt-get install mingw32"
+- Fedora and SuSE users can download RPM packages from
+ [http://mirzam.it.vu.nl/mingw/]
+
+You will need to know the prefix used by the cross-compiler executables.
+It will usually be something like "ix86-mingw32*-". All the binaries in the
+cross-compiler package will start with this prefix. The documentation below
+assumes that it is "i386-mingw32-". Adjust to taste.
+
+You will also need to install Wine and the Linux kernel "binary formats"
+(binfmt) support, so that you can run Windows executables on Linux,
+otherwise the configure scripts will not work properly with a cross-compiler.
+On Ubuntu, run:
+
+ apt-get install wine binfmt-support
+ /etc/init.d/binfmt-support start
+
+Start by downloading Zlib from [http://www.zlib.net/], unpack and enter
+source directory:
+
+ export CC=i386-mingw32-gcc
+ export AR="i386-mingw32-ar rc"
+ export RANLIB="i386-mingw32-ranlib"
+ ./configure
+ make
+ make install prefix=/usr/local/i386-mingw32
+
+Download OpenSSL 0.9.8b from
+[http://www.openssl.org/source/openssl-0.9.8b.tar.gz]
+
+Unpack and configure:
+
+ tar xzvf openssl-0.9.8b.tar.gz
+ cd openssl-0.9.8b
+ ./Configure --prefix=/usr/local/i386-mingw32 mingw
+ make makefile.one
+ wget http://www.boxbackup.org/svn/box/chris/win32/support/openssl-0.9.8b-mingw-cross.patch
+ patch -p1 < openssl-0.9.8b-mingw-cross.patch
+ make -f makefile.one
+ make -f makefile.one install
+
+Download PCRE from
+[http://prdownloads.sourceforge.net/pcre/pcre-6.3.tar.bz2?download]
+
+Unpack:
+
+ tar xjvf pcre-6.3.tar.bz2
+ cd pcre-6.3
+
+Configure and make:
+
+ export AR=i386-mingw32-ar
+ ./configure --host=i386-mingw32 --prefix=/usr/local/i386-mingw32/
+ make winshared
+
+If you get this error:
+
+ ./dftables.exe pcre_chartables.c
+ /bin/bash: ./dftables.exe: cannot execute binary file
+ make: *** [pcre_chartables.c] Error 126
+
+then run:
+
+ wine ./dftables.exe pcre_chartables.c
+ make winshared
+
+to complete the build. Finally:
+
+ cp .libs/libpcre.a /usr/local/i386-pc-mingw32/lib
+ cp .libs/libpcreposix.a /usr/local/i386-pc-mingw32/lib
+ cp pcreposix.h /usr/local/i386-pc-mingw32/include
+
+You will need to find a copy of mingwm10.dll that matches your cross-compiler.
+Most MinGW distributions should come with it. On Debian and Ubuntu, for some
+bizarre reason, you'll find it compressed as
+/usr/share/doc/mingw32-runtime/mingwm10.dll.gz, in which case you'll
+have to un-gzip it with "gzip -d". Copy it to a known location, e.g.
+/usr/local/i386-mingw32/bin.
+
+Download and extract Box Backup, and change into the base directory,
+e.g. boxbackup-0.11rc2. Change the path to mingwm10.dll in parcels.txt to
+match where you found or installed it.
+
+Now configure Box with:
+
+ ./configure --host=i386-mingw32 \
+ CXXFLAGS="-mthreads -I/usr/local/i386-mingw32/include" \
+ LDFLAGS=" -mthreads -L/usr/local/i386-mingw32/lib" \
+ LIBS="-lcrypto -lws2_32 -lgdi32"
+ make
+
+or, if that fails, try this:
+
+ export CXX="i386-mingw32-g++"
+ export AR=i386-mingw32-ar
+ export RANLIB=i386-mingw32-ranlib
+ export CFLAGS="-mthreads"
+ export CXXFLAGS="-mthreads"
+ export LDFLAGS="-mthreads"
+ export LIBS="-lcrypto -lws2_32 -lgdi32"
+ (if you don't have a "configure" file, run "./bootstrap")
+ ./configure --target=i386-mingw32
+ make CXX="$CXX" AR="$AR" RANLIB="$RANLIB" WINDRES="i386-mingw32-windres"
diff --git a/docs/api-notes/windows_porting.txt b/docs/api-notes/windows_porting.txt
new file mode 100644
index 00000000..ada3b857
--- /dev/null
+++ b/docs/api-notes/windows_porting.txt
@@ -0,0 +1,100 @@
+TITLE Notes on porting the backup client to Windows
+
+It should be relatively easy to port the backup client (bbackupd) to Windows. However, the server relies on unlink() behaviour of the UNIX filesystem which is different on the Windows platform, so it will not be so easy to port.
+
+An installation of perl is required to build the system. The ActiveState port is the easiest to install.
+
+
+SUBTITLE Build environment
+
+The build environment generation script, makebuildenv.pl, uses perl to scan all the files and generate makefiles. It's rather orientated towards UNIX systems with gcc.
+
+Probably the easiest way to handle this is to detect the Windows platform, set up a few variables appropriately (in BoxPlatform.pm) and then post-process the generated Makefiles to mould them into something more handy for the MS Windows compiler and toolchain.
+
+The script itself is a bit messy. It was fine at first, but then the multi-platform thing got in the way. I do intend to rewrite it at some point in the future.
+
+Make sure your new version defines PLATFORM_WIN32 on the compile line.
+
+All files #include "Box.h" as the first include file. Use this for pre-compiled headers. Edit BoxPlatform.h to include the Windows headers required, and include a PLATFORM_WIN32 section. The easiest start will be to leave this blank, apart from typedefs for the basic types and any "not supported" #defines you can find.
+
+Boring bits of the code, such as exceptions and protocol definitions, are autogenerated using perl scripts. This code should be portable without modification.
+
+I have tried to avoid the things I know won't work with the MS compiler, so hopefully the code will be fairly clean. However, it might be a little easier to use the MinGW compiler [ http://www.mingw.org/ ] just to be consistent with the UNIX version. But I hope this won't be necessary.
+
+You'll need the latest version of OpenSSL. This was slightly difficult to get to compile last time I tried -- especially if you're determined to use the optimised assembler version. The main difficulty was getting a version which would link properly with the options used in my project, the default libraries selected got in the way.
+
+
+SUBTITLE Porting as UNIX emulation
+
+Since the daemon uses so few UNIX system calls and with a limited set of options, it seems to make sense to port it by writing emulations of these functions. It's probably nicest to create a lib/win32 directory, and populate this with header files corresponding to the UNIX header files used. These just contain inline functions which map the UNIX calls to Win32 calls.
+
+File/socket handles may have to be translated. -1 is used as a failure return value and by the code internally to mark an invalid socket handle. (0 is a valid socket handle)
+
+Of course, some bits of code aren't relevant, so will just be #ifdefed out, or replaced. But this should be minimal. (Only perhaps the small bit relating to filesystem structure -- there aren't really mount points as such.)
+
+
+SUBTITLE File tracking
+
+The daemon uses the inode number of a file to keep track of files and directories, so when they're renamed they can be moved efficiently on the store. Some unique (per filesystem) number will have to be found and used instead.
+
+It uses the Berkeley DB to store these on disc. It's likely another storage system will need to be used. (It just has to map the file's unique number into to a 8 byte struct.)
+
+There is a in-memory implementation for platforms which don't support Berkeley DB, but this isn't so good when the daemon has to be restarted as all the tracking is lost. But it's an easy start.
+
+
+SUBTITLE Expected filesystem behaviour
+
+File and directories have (at least) two modification times, for contents and attributes.
+
+For files, the contents modification time must change when the contents change, and the attributes time when the attributes change (and may change when the contents change too.)
+
+For directories, the contents modification time must change when files or directories are deleted or added. If it changes any more frequently than this, then the client will be slightly less efficient -- it will download the store's directory listing whenever this time changes. The attributes modification time is less important, as the actual attributes are compared and only uploaded if different.
+
+
+SUBTITLE Attributes
+
+Attributes means file modification times, flags, and filesystem permissions.
+
+The BackupClientFileAttribute class will need to be extended. Allocate another "attribute type" for the Win32 attributes, and then serialise it in a compatible way -- put your new attribute type in the header, and then a serialised network byte order structure in the rest. The different size of block is handled for you, and the server never looks inside.
+
+Add code so that under UNIX, Win32 attributes are ignored, and UNIX attributes under Win32.
+
+It's probably not necessary to worry too much about these for the first version. Not many people seem to use these attributes anyway.
+
+
+SUBTITLE Times
+
+The system uses it's own 64 bit time type -- see BoxTime.h. Everything is translated to this from the various different system time types, and calculated and stored internally in this form.
+
+
+SUBTITLE Daemon as a Service
+
+The client is derived from the Daemon class, which implements a daemon. The interface is simple, and it shouldn't be hard to write a compatible class which implements a Windows Service instead.
+
+Or cheat and run it as a Win32 application.
+
+Note that the daemon expects to be able to read every file it wants, and will abort a scan and upload run if it gets an error. The daemon must therefore be run with sufficient privileges. It runs as root under UNIX.
+
+
+SUBTITLE Command Socket
+
+The backup daemon accepts commands from bbackupctl through a UNIX domain socket. When a connection is made, the user ID of the connecting process is checked to see if it's the same user ID as the daemon is running under.
+
+This may not have any exact analogue under Win32, so another communications scheme may have to be devised.
+
+This is only actually necessary if the client is to be run in snapshot mode. It can be safely left unimplemented if snapshot mode is not required, or the prompts for it to sync with the server are implemented some other way.
+
+
+SUBTITLE NTFS streams
+
+If you want to back up NTFS streams, then a generic solution should probably be defined, so that the Mac OS X resource forks can be backed up with the same mechanism.
+
+
+SUBTITLE Source code
+
+I work on a slightly different version of the source files. A make distribution script adds the license header and removes private sections of code. This means submitted diffs need a slight bit of translation.
+
+
+
+
+
diff --git a/docs/docbook/adminguide.xml b/docs/docbook/adminguide.xml
new file mode 100644
index 00000000..edb0a58c
--- /dev/null
+++ b/docs/docbook/adminguide.xml
@@ -0,0 +1,1981 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+<!ENTITY __ExceptionCodes__elfjz3fu SYSTEM "ExceptionCodes.xml">
+]>
+<book>
+ <title>Box Backup administrator's guide</title>
+
+ <preface>
+ <title>License</title>
+
+ <para>Copyright © 2003 - 2007, Ben Summers and contributors. All rights
+ reserved.</para>
+
+ <para>Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.</para>
+ </listitem>
+
+ <listitem>
+ <para>Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.</para>
+ </listitem>
+
+ <listitem>
+ <para>All use of this software and associated advertising materials
+ must display the following acknowledgement: This product includes
+ software developed by Ben Summers and contributors.</para>
+ </listitem>
+
+ <listitem>
+ <para>The names of the Authors may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>[Where legally impermissible the Authors do not disclaim liability
+ for direct physical injury or death caused solely by defects in the
+ software unless it is modified by a third party.]</para>
+
+ <para>THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</para>
+ </preface>
+
+ <chapter>
+ <title>Configuration</title>
+
+ <section>
+ <title>System configuration</title>
+
+ <section>
+ <title>Server</title>
+
+ <para>After you've downloaded and compiled the programs you need to
+ install the programs on your server. As root do the following:</para>
+
+ <programlisting>make install-backup-server</programlisting>
+
+ <para>This assumes that you are installing on the same server that you
+ compiled the software on. If not, copy the
+ boxbackup-x.xx-backup-server-OSNAME.tgz file to the server you want to
+ run on, and install there. For example (on Mac OS X):</para>
+
+ <programlisting>tar zxvf boxbackup-0.10-server-darwin8.5.0.tgz
+cd boxbackup-0.10-server-darwin8.5.0
+./install-backup-server</programlisting>
+
+ <para>Then create the user for the backup daemon on the server:</para>
+
+ <programlisting>useradd _bbstored</programlisting>
+
+ <para>Box Backup has a built-in software RAID facility (redundant
+ array of inexpensive disks) for the backup store. This allows you to
+ spread the store data over three disks, and recover from the loss of
+ any one disk without losing data. However, this is now deprecated, and
+ you are recommended to use the software or hardware RAID facilities of
+ your operating system instead. Use the following command if you want
+ to create a simple server without Box Backup RAID:</para>
+
+ <programlisting>mkdir /tmp/boxbackupRepository # Create the directory
+chown _bbstored /tmp/boxbackupRepository/ # Change the owner to the new boxbackup daemon user
+
+/usr/local/sbin/raidfile-config /etc/box/ 1024 /tmp/boxbackupRepository
+
+#substitute 1024 with the desired blocksize
+#substitute /tmp/boxbackupRepository with a directory that exists where you want the backup store located
+#/usr/local/sbin/raidfile-config --help shows you the options</programlisting>
+
+ <para>Then create the configuration file /etc/box/bbstored.conf The
+ hostname is tricky as it is used for two things: The name of the
+ server in the certificate and the address the server is listening on.
+ Since you might be using NAT, might move the server around or the
+ domain name might change, choose a name that describes the server.
+ When the network address of the server changes, you need to update the
+ <literal>ListenAddresses</literal> directive in the
+ <filename>/etc/box/bbstored.conf</filename> file.</para>
+
+ <programlisting>/usr/local/sbin/bbstored-config /etc/box hostname _bbstored</programlisting>
+
+ <para>This last step outputs 5 instructions that you must execute to
+ the letter. A lot of questions are raised on the mailing list because
+ these steps have not been followed properly.</para>
+
+ <para>TODO: Expand on this. Explain the 5 steps in detail.</para>
+
+ <para>If you want to run the server as a non-root user, look <link
+ linkend="WORoot">here</link>.</para>
+ </section>
+
+ <section>
+ <title>Certificate Management</title>
+
+ <para>There are two steps involved to create an account. You need to
+ create the account on the server, and sign a certificate to give the
+ client permission to connect to the server.</para>
+
+ <para>Running a Certification Authority for TLS (SSL) connections is
+ not trivial. However, a script to does most of the work in a way which
+ should be good enough for most deployments.</para>
+
+ <important>
+ <para>The certificate authority directory is intended to be stored
+ on another server. It should not be kept on the backup server, in
+ order to limit the impact of a server compromise. The instructions
+ and the script assume that it will be kept elsewhere, so will ask
+ you to copy files to and from the CA.</para>
+ </important>
+
+ <warning>
+ <para>SSL certificates contain validity dates, including a "valid
+ from" time. If the clock on the machine which signs the certificates
+ is not syncronised to the clocks of the machines using these
+ certificates, you will probably get strange errors until the start
+ time is reached on all machines. If you get strange errors when
+ attempting to use new certificates, check the clocks on all machines
+ (client, store and CA). You will probably just need to wait a while
+ until the certificates become valid, rather than having to
+ regenerate them.</para>
+ </warning>
+
+ <section>
+ <title>Set up a Certificate Authority</title>
+
+ <para>It is recommended that you keep your Certificate Authority on
+ a separate machine than either the client or the server, preferably
+ without direct network access. The contents of this directory
+ control who can access your backup store server.</para>
+
+ <para>To setup the basic key structure, do the following:</para>
+
+ <programlisting>/usr/local/sbin/bbstored-certs ca init</programlisting>
+
+ <para>(See <ulink url="instguide.xml">OpenSSL notes</ulink> if you
+ get an OpenSSL error)</para>
+
+ <para>This creates the directory called <filename>ca</filename> in
+ the current directory, and initialises it with basic keys.</para>
+ </section>
+
+ <section>
+ <title>Sign a server certificate</title>
+
+ <para>When you use the <command>bbstored-config</command> script to
+ set up a config file for a server, it will generate a certificate
+ request (CSR) for you. Transfer it to the machine with your CA, then
+ do:</para>
+
+ <programlisting>/usr/local/sbin/bbstored-certs ca sign-server hostname-csr.pem</programlisting>
+
+ <para>This signs the certificate for the server. Follow the
+ instructions in the output on which files to install on the server.
+ The CSR file is now no longer needed. Make sure you run this command
+ from the directory above the directory 'ca'.</para>
+
+ <para>TODO: Explain instructions in output.</para>
+ </section>
+
+ <section>
+ <title>Set up an account</title>
+
+ <para>Choose an account number for the user. This must be unique on
+ the server, and is presented as a 31 bit number in hex greater than
+ 0, for example, 1 or 75AB23C. Then on the backup store server,
+ create the account with:</para>
+
+ <programlisting>/usr/local/sbin/bbstoreaccounts create 75AB23C 0 4096M 4505M</programlisting>
+
+ <para>This looks complicated. The numbers are, in order:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The account number allocated (hex)</para>
+ </listitem>
+
+ <listitem>
+ <para>The RAID disc set (0 if you use raidfile-config and don't
+ add a new set)</para>
+ </listitem>
+
+ <listitem>
+ <para>Soft limit (size)</para>
+ </listitem>
+
+ <listitem>
+ <para>Hard limit (size)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The sizes are are specified in Mb, Gb, or blocks, depending on
+ the suffix. 1M specifies 1 Mb, 1G specifies 1 Gb, and 1B specifies 1
+ block, the size of which depends on how you have configured the
+ raidfile system with raidfile-config.</para>
+
+ <para>In this example, I have allocated 4Gb (assuming you use 2048
+ byte blocks as per my example) as the soft limit, and 4Gb + 10% as
+ the hard limit.</para>
+
+ <para>NOTE The sizes specified here are pre-RAID. So if you are
+ using userland RAID, you are actually allocating two-thirds of this
+ amount. This means that, when you take compression into account,
+ that if you allocate 2Gb on the server, it'll probably hold about
+ 2Gb of backed up files (depending on the compressability of those
+ files).</para>
+
+ <para>The backup client will (voluntarily) try not to upload more
+ data than is allowed by the soft limit. The store server will refuse
+ to accept a file if it would take it over the hard limit, and when
+ doing housekeeping for this account, try and delete old versions and
+ deleted files to reduce the space taken to below the soft
+ limit.</para>
+
+ <para>This command will create some files on disc in the raid file
+ directories (if you run as root, the utility will change to the user
+ specified in the bbstored.conf file to write them) and update the
+ accounts file. A server restart is not required.</para>
+
+ <para>NOTE If you get a message saying 'Exception: RaidFile (2/8)',
+ the directories you specified in the raidfile.conf are not writable
+ by the _bbstored user -- fix it, and try again.</para>
+
+ <para>Finally, tell the user their account number, and the hostname
+ of your server. They will use this to set up the backup client, and
+ send you a CSR. This has the account number embedded in it, and you
+ should be sure that it has the right account number in it.</para>
+
+ <para>Sign this CSR with this command:</para>
+
+ <programlisting>/usr/local/sbin/bbstored-certs ca sign 75AB23C-csr.pem</programlisting>
+
+ <para>Don't forget to check that the embedded account number is
+ correct! Then send the two files back to the user, as instructed by
+ the script.</para>
+
+ <para>Please read the Troubleshooting page if you have
+ problems.</para>
+
+ <para>TODO: Link to troubleshooting...</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Log Files</title>
+
+ <para>You may wish to see what's going on with the server. Edit
+ /etc/syslog.conf, and add:</para>
+
+ <programlisting>local6.info /var/log/box
+local5.info /var/log/raidfile</programlisting>
+
+ <para><emphasis role="bold">Note:</emphasis> Separators must be tabs,
+ otherwise these entries will be ignored.</para>
+
+ <programlisting>touch /var/log/box
+touch /var/log/raidfile</programlisting>
+
+ <para>Set up log rotation for these new log files. For example, if you
+ have <filename>/etc/newsyslog.conf</filename>, add the following lines
+ to it:</para>
+
+ <programlisting>/var/log/box 644 7 2000 * Z
+/var/log/raidfile 644 7 2000 * Z</programlisting>
+
+ <para>If you have <filename>/etc/logrotate.d</filename>, create a new
+ file in there (for example
+ <filename>/etc/logrotate.d/boxbackup</filename>) containing the
+ following:</para>
+
+ <programlisting>/var/log/box /var/log/raidfile {
+ weekly
+ create
+ compress
+ rotate 52
+}</programlisting>
+
+ <para>Then restart syslogd, for example:</para>
+
+ <programlisting>/etc/init.d/syslogd restart</programlisting>
+ </section>
+
+ <section>
+ <title>Configuring a client</title>
+
+ <para>Before you can do any configuration, you need to know the
+ hostname of the server you will be using, and your account number on
+ that server.</para>
+
+ <para>Later in the process, you will need to send a certificate
+ request to the administrator of that server for it to be
+ signed.</para>
+
+ <para>Installation is covered in the compiling and installing section.
+ You only need the backup-client parcel.</para>
+
+ <para>It is important that you read all the output of the config
+ scripts. See the end of this page for an example.</para>
+
+ <para>The backup client has to be run as root, because it needs to
+ read all your files to back them up, although it is possible to back
+ up a single user's files by running it as that user. (Tip: specify a
+ directory other than <filename>/etc/box</filename>, and then give the
+ alternate config file as the first argument to
+ <command>bbackupd</command>). However, it will fall over if you don't
+ give yourself read access to one of your files.</para>
+
+ <section>
+ <title id="BasicConfig">Basic configuration</title>
+
+ <para>Run the <command>bbackupd-config</command> script to generate
+ the configuration files and generate a private key and certificate
+ request.</para>
+
+ <programlisting>/usr/local/sbin/bbackupd-config /etc/box lazy <emphasis
+ role="bold">999 hostname</emphasis> /var/bbackupd <emphasis
+ role="bold">/home</emphasis></programlisting>
+
+ <para>(See <ulink url="instguide.xml">OpenSSL notes</ulink> if you
+ get an OpenSSL error)</para>
+
+ <para>The items in bold need to be changed. In order, they are the
+ account number, the hostname of the server you're using, and
+ finally, the directories you want backed up. You can include as many
+ you want here.</para>
+
+ <para>However, the directories you specify must not contain other
+ mounted file systems within them at any depth. Specify them
+ separately, one per mount point. No checks are currently made to
+ catch bad configuration of this nature!</para>
+
+ <para>You may also want to consider changing the mode from lazy to
+ snapshot, depending on what your system is used for:</para>
+
+ <glosslist>
+ <glossentry>
+ <glossterm>Lazy Mode</glossterm>
+
+ <glossdef>
+ <para>This mode regularly scans the files, with only a rough
+ schedule. It uploads files as and when they are changed, if
+ the latest version is more than a set age. This is good for
+ backing up user's documents stored on a server, and spreads
+ the load out over the day.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>Snapshot Mode</glossterm>
+
+ <glossdef>
+ <para>This mode emulates the traditional backup behaviour of
+ taking a snapshot of the filesystem. The backup daemon does
+ absolutely nothing until it is instructed to make a backup
+ using the bbackupctl utility (probably as a cron job), at
+ which point it uploads all files which have been changed since
+ the last time it uploaded.</para>
+ </glossdef>
+ </glossentry>
+ </glosslist>
+
+ <para>When you run the config script, it will tell you what you need
+ to do next. Don't forget to read all the output. An example is shown
+ at the end of this page, but the instructions for your installation
+ may be different.</para>
+ </section>
+
+ <section>
+ <title>Certificates</title>
+
+ <para>After you have sent your certificate request off to the server
+ administrator and received your certificate and CA root back,
+ install them where instructed by the bbackupd-config script during
+ basic bbackupd configuration.</para>
+
+ <para>You can then run the daemon (as root) by running
+ <command>/usr/local/sbin/bbackupd</command>, and of course, adding it
+ to your system's startup scripts. The first time it's run it will
+ upload everything. Interrupting it and restarting it will only
+ upload files which were not uploaded before - it's very
+ tolerant.</para>
+
+ <para>If you run in snapshot mode, you will need to add a cron job
+ to schedule backups. The config script will tell you the exact
+ command to use for your system.</para>
+
+ <para>Please read the Troubleshooting page if you have
+ problems.</para>
+
+ <para>Remember to make a traditional backup of the keys file, as
+ instructed. You cannot restore files without it.</para>
+
+ <para>It is recommended that you backup up all of /etc/box as it
+ will make things easier if you need to restore files. But only the
+ keys are absolutely essential.</para>
+
+ <para>If you want to see what it's doing in more detail (probably a
+ good idea), follow the instructions in the server setup to create
+ new log files with syslog. </para>
+ </section>
+
+ <section>
+ <title>Adding and removing backed up locations</title>
+
+ <para>By editing the /etc/box/bbackupd.conf file, you can add and
+ remove directories to back up - see comments in this file for help.
+ Send bbackupd a HUP signal after you modify it.</para>
+
+ <para>When you remove a location, it will not be marked as deleted
+ immediately. Instead, bbackupd waits about two days before doing so,
+ just in case you change your mind. After this, it will be eventually
+ removed from the store by the housekeeping process. Run as
+ root.</para>
+
+ <para>The backup client is designed to be run as root. It is
+ possible to run without root, but this is not recommended. Clock
+ synchronisation for file servers.</para>
+
+ <para>If you are using the backup client to backup a filesystem
+ served from a fileserver, you should ideally ensure that the
+ fileserver clocks are synchronised with the fileserver.</para>
+
+ <para>bbackupd will cope perfectly well if the clocks are not
+ synchronised. Errors up to about half an hour cause no problems.
+ Larger discrepancies cause a loss of efficiency and the potential to
+ back up a file during a write process.</para>
+
+ <para>There is a configuration parameter MaxFileTimeInFuture, which
+ specifies how far in the future a file must be for it to be uploaded
+ as soon as it is seen. You should not need to adjust this (default
+ is 2 days). Instead, get those clocks synchronised. Excluding files
+ and directories from the backup.</para>
+
+ <para>Within the bbackupd.conf file, there is a section named
+ BackupLocations which specifies which locations on disc should be
+ backed up. It has subsections, each of which is in the
+ format:</para>
+
+ <programlisting> name
+ {
+ Path = /path/of/directory
+ (optional exclude directives)
+ }</programlisting>
+
+ <para><emphasis role="bold">name</emphasis> is derived from the Path
+ by the config script, but should merely be unique.</para>
+
+ <para>The exclude directives are of the form:</para>
+
+ <programlisting>[Exclude|AlwaysInclude][File|Dir][|sRegex] = regex or full pathname</programlisting>
+
+ <para>(The regex suffix is shown as 'sRegex' to make File or Dir
+ plural)</para>
+
+ <para>For example:</para>
+
+ <programlisting> ExcludeDir = /home/guest-user
+ ExcludeFilesRegex = *.(mp3|MP3)\$
+ AlwaysIncludeFile = /home/username/veryimportant.mp3</programlisting>
+
+ <para>This excludes the directory /home/guest-user from the backup
+ along with all mp3 files, except one MP3 file in particular.</para>
+
+ <para>In general, Exclude excludes a file or directory, unless the
+ directory is explicitly mentioned in a AlwaysInclude
+ directive.</para>
+
+ <para>If a directive ends in Regex, then it is a regular expression
+ rather than a explicit full pathname. See</para>
+
+ <programlisting> man 7 re_format</programlisting>
+
+ <para>for the regex syntax on your platform.</para>
+ </section>
+
+ <section>
+ <title>Example configuration output</title>
+
+ <para>This is an example of output from the bbstored-config
+ script.</para>
+
+ <important>
+ <para>Follow the instructions output by your script, not the ones
+ here -- they may be different for your system.</para>
+ </important>
+
+ <programlisting>/usr/local/sbin/bbackupd-config /etc/box lazy 51 server.example.com /var/bbackupd /home /etc/samba
+
+Setup bbackupd config utility.
+
+Configuration:
+ Writing configuration file: /etc/box/bbackupd.conf
+ Account: 51
+ Server hostname: server.example.com
+ Directories to back up:
+ /home
+ /etc/samba
+
+Note: If other file systems are mounted inside these directories, then problems may occur
+with files on the store server being renamed incorrectly. This will cause efficiency
+problems, but not affect the integrity of the backups.
+
+WARNING: Directories not checked against mountpoints. Check mounted filesystems manually.
+
+Creating /etc/box...
+Creating /etc/box/bbackupd
+Generating private key...
+ [OpenSSL output omitted]
+
+Generating keys for file backup
+Writing notify script /etc/box/bbackupd/NotifyStoreFull.sh
+Writing configuration file /etc/box/bbackupd.conf
+
+===================================================================
+
+bbackupd basic configuration complete.
+
+What you need to do now...
+
+1) Make a backup of /etc/box/bbackupd/51-FileEncKeys.raw
+ This should be a secure offsite backup.
+ Without it, you cannot restore backups. Everything else can
+ be replaced. But this cannot.
+ KEEP IT IN A SAFE PLACE, OTHERWISE YOUR BACKUPS ARE USELESS.
+
+2) Send /etc/box/bbackupd/51-csr.pem
+ to the administrator of the backup server, and ask for it to
+ be signed.
+
+3) The administrator will send you two files. Install them as
+ /etc/box/bbackupd/51-cert.pem
+ /etc/box/bbackupd/serverCA.pem
+ after checking their authenticity.
+
+4) You may wish to read the configuration file
+ /etc/box/bbackupd.conf
+ and adjust as appropraite.
+
+ There are some notes in it on excluding files you do not
+ wish to be backed up.
+
+5) Review the script
+ /etc/box/bbackupd/NotifyStoreFull.sh
+ and check that it will email the right person when the store
+ becomes full. This is important -- when the store is full, no
+ more files will be backed up. You want to know about this.
+
+6) Start the backup daemon with the command
+ /usr/local/sbin/bbackupd
+ in /etc/rc.local, or your local equivalent.
+ Note that bbackupd must run as root.
+
+===================================================================</programlisting>
+
+ <para>Remember to make a secure, offsite backup of your backup keys,
+ as described in <link linkend="BasicConfig">Basic
+ configuration</link> above. If you do not, and that key is lost, you
+ have no backups.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Configuration Options</title>
+
+ <para>Box Backup has many options in its configuration file. We will
+ try to list them all here.</para>
+
+ <para>First of all, here is an example configuration file, for
+ reference:</para>
+
+ <example>
+ <title>Example Configuration File</title>
+
+ <programlisting>StoreHostname = localhost
+AccountNumber = 0x2
+
+KeysFile = /etc/box/2-FileEncKeys.raw
+CertificateFile = /etc/box/2-cert.pem
+PrivateKeyFile = /etc/box/2-key.pem
+TrustedCAsFile = /etc/box/serverCA.pem
+DataDirectory = /var/run/boxbackup
+NotifyScript = /etc/box/NotifySysadmin.sh
+CommandSocket = /var/run/box/bbackupd.sock
+
+UpdateStoreInterval = 86400
+MinimumFileAge = 3600
+MaxUploadWait = 7200
+FileTrackingSizeThreshold = 65536
+DiffingUploadSizeThreshold = 65536
+MaximumDiffingTime = 20
+ExtendedLogging = no
+LogAllFileAccess = yes
+
+Server
+{
+ PidFile = /var/run/bbackupd.pid
+}
+BackupLocations
+{
+ etc
+ {
+ Path = /etc
+ }
+ home
+ {
+ Path = /home
+ ExcludeDir = /home/shared
+ ExcludeDir = /home/chris/.ccache
+ ExcludeDir = /home/chris/.mozilla/firefox/vvvkq3vp.default/Cache
+ }
+}</programlisting>
+ </example>
+
+ <para>As you can see from the example above, the configuration file
+ has a number of subsections, enclosed in curly braces {}. Some options
+ appear outside of any subsection, and we will refer to these as <link
+ linkend="RootOptions">root options</link>. The available options in
+ each section are described below.</para>
+
+ <para>Every option has the form <quote>name = value</quote>. Names are
+ not case-sensitive, but values are. Depending on the option, the value
+ may be:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>a path (to a file or directory);</para>
+ </listitem>
+
+ <listitem>
+ <para>a number (usually in seconds or bytes);</para>
+ </listitem>
+
+ <listitem>
+ <para>a boolean (the word Yes or No);</para>
+ </listitem>
+
+ <listitem>
+ <para>a hostname (or IP address).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Paths are specified in native format, i.e. a full Windows path
+ with drive letter on Windows clients, or a full Unix path on Unix
+ clients.</para>
+
+ <para><example>
+ <title>Example:</title>
+
+ <para>StoreObjectInfoFile =
+ /var/state/boxbackup/bbackupd.dat</para>
+
+ <para>StoreObjectInfoFile = C:\Program Files\Box
+ Backup\data\bbackupd.dat</para>
+ </example>The use of relative paths (which do not start with a
+ forward slash on Unix, or a drive specification on Windows) is
+ possible but not recommended, since they are interpreted relative to
+ the current working directory when bbackupd was started, which is
+ liable to change unexpectedly over time.</para>
+
+ <para>Numbers which start with "0x" are interpreted as hexadecimal.
+ Numbers which do not start with "0x" are interpreted as
+ decimal.</para>
+
+ <section>
+ <title id="RootOptions">Root Options</title>
+
+ <para>These options appear outside of any subsection. By convention
+ they are at the beginning of the configuration file.</para>
+
+ <para>Some options are required, and some are optional.</para>
+
+ <glosslist>
+ <glossentry>
+ <glossterm>StoreHostname (required)</glossterm>
+
+ <glossdef>
+ <para>The Internet host name (DNS name) or IP address of the
+ server. This is only used to connect to the server.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>AccountNumber (required)</glossterm>
+
+ <glossdef>
+ <para>The number of the client's account on the server. This
+ must be provided by the server operator, and must match the
+ account number in the client's certificate, otherwise the
+ client will not be able to log into the server.</para>
+
+ <para>The account number may be specified in hexadecimal
+ (starting with 0x, as in the example above) or in decimal, but
+ since the server operator works in hexadecimal, that format is
+ highly recommended and is the default.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>KeysFile (required)</glossterm>
+
+ <glossdef>
+ <para>The path to the file containing the encryption key used
+ for data encryption of client file data and filenames. This is
+ the most important file to keep safe, since without it your
+ backups cannot be decrypted and are useless. Likewise, if an
+ attacker gets access to this key and to your encrypted
+ backups, he can decrypt them and read all your data. </para>
+
+ <para>Do not change the encryption key without deleting all
+ files from the account on the server first. None of your old
+ files on the store will be readable if you do so, and if you
+ change it back, none of the files uploaded with the new key
+ will be readable.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>CertificateFile (required)</glossterm>
+
+ <glossdef>
+ <para>The path to the OpenSSL client certificate in PEM
+ format. This is supplied by the server operator in response to
+ the certificate request which you send to them. Together with
+ the PrivateKeyFile, this provides access to the store server
+ and the encrypted data stored there.</para>
+
+ <para>It is not critical to protect this file or to back it up
+ safely, since it can be regenerated by creating a new
+ certificate request, and asking the server operator to sign
+ it. You may wish to back it up, together with the
+ PrivateKeyFile, to avoid this inconvenience if you lose all
+ your data and need quick access to your backups.</para>
+
+ <para>If you do back them up, you should keep them in a
+ separate location to the KeysFile, since any person holding
+ the KeysFile and the PrivateKeyFile can gain access to your
+ encrypted data and decrypt it.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>PrivateKeyFile (required)</glossterm>
+
+ <glossdef>
+ <para>The path to the OpenSSL private key in PEM format. This
+ is generated at the same time as the certificate request, but
+ there is no need to send it to the server operator, and you
+ should not do so, in case the communication is intercepted by
+ an attacker. Together with the CertificateFile, this provides
+ access to the store server and the encrypted data stored
+ there.</para>
+
+ <para>See the notes under CertificateFile for information
+ about backing up this file.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>TrustedCAsFile (required)</glossterm>
+
+ <glossdef>
+ <para>The path to the OpenSSL certificate of the Client
+ Certificate Authority (CCA), in PEM format. This is supplied
+ by the server operator along with your account details, or
+ along with your signed client certificate. This is used to
+ verify that the server which you are connecting to is
+ authorised by the person who signed your certificate. It
+ protects you against DNS and ARP poisoning and IP spoofing
+ attacks.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>DataDirectory (required)</glossterm>
+
+ <glossdef>
+ <para>The path to a directory where bbackupd will keep local
+ state information. This consists of timestamp files which
+ identify the last backup start and end times, used by
+ <command>bbackupquery</command> to determine whether files
+ have changed, and optionally a database of inode numbers,
+ which are used to check for files being renamed. The database
+ is only saved if Box Backup is built with Berkeley Database
+ (BDB) support.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>NotifyScript (optional)</glossterm>
+
+ <glossdef>
+ <para>The path to the script or command to run when the Box
+ Backup client detects an error during the backup process. This
+ is normally used to notify the client system administrator by
+ e-mail when a backup fails for any reason.</para>
+
+ <para>The script or command is called with one of the
+ following additional arguments to identify the cause of the
+ problem:</para>
+
+ <glosslist>
+ <glossentry>
+ <glossterm>store-full</glossterm>
+
+ <glossdef>
+ <para>The backup store is full. No new files are being
+ uploaded. If some files are marked as deleted, they
+ should be removed in due course by the server's
+ housekeeping process. Otherwise, you need to remove some
+ files from your backup set, or ask the store operator
+ for more space.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>read-error</glossterm>
+
+ <glossdef>
+ <para>One or more files which were supposed to be backed
+ up could not be read. This could be due to:<itemizedlist>
+ <listitem>
+ <para>running the server as a non-root user;</para>
+ </listitem>
+
+ <listitem>
+ <para>backing up a mounted filesystem such as
+ NFS;</para>
+ </listitem>
+
+ <listitem>
+ <para>access control lists being applied to some
+ files;</para>
+ </listitem>
+
+ <listitem>
+ <para>SELinux being enabled;</para>
+ </listitem>
+
+ <listitem>
+ <para>trying to back up open files under
+ Windows;</para>
+ </listitem>
+
+ <listitem>
+ <para>strange directory permissions such as 0000 or
+ 0400.</para>
+ </listitem>
+ </itemizedlist>Check the client logs, e.g.
+ /var/log/bbackupd on Unix, or the Windows Event Viewer
+ in Control Panel &gt; Administrative Tools, for more
+ information about which files are not being backed up
+ and why.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>backup-error</glossterm>
+
+ <glossdef>
+ <para>There was a communications error with the server,
+ or an unexpected exception was encountered during a
+ backup run. Check the client logs, e.g.
+ <filename>/var/log/box</filename> on Unix, or the
+ Windows Event Viewer in Control Panel &gt;
+ Administrative Tools, for more information about the
+ problem.</para>
+
+ <para>You may wish to check your Internet access to the
+ server, check that the server is running, and ask your
+ server operator to check your account on the
+ server.</para>
+ </glossdef>
+ </glossentry>
+ </glosslist>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>CommandSocket (optional)</glossterm>
+
+ <glossdef>
+ <para>The path to the Unix socket which
+ <command>bbackupd</command> creates when running, and which
+ <command>bbackupctl</command> uses to communicate with it, for
+ example to force a sync or a configuration reload. If this
+ option is omitted, no socket will be created, and
+ <command>bbackupctl</command> will not function.</para>
+
+ <para>Unix sockets appear within the filesystem on Unix, as a
+ special type of file, and must be created in a directory which
+ exists and to which bbackupd has write access, and bbackupctl
+ has read access. </para>
+
+ <para>On Windows, the path is ignored, and a <glossterm>named
+ pipe</glossterm> is created instead. This does not currently
+ have any security attached, so it can be accessed by any user.
+ Unlike a Unix socket it can also be accessed remotely. Please
+ use this option with extreme caution on Windows, and only on
+ fully trusted networks.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>AutomaticBackup (optional)</glossterm>
+
+ <glossdef>
+ <para>Enable or disable the client from connecting
+ automatically to the store every
+ <glossterm>UpdateStoreInterval</glossterm> seconds. When
+ enabled (set to <quote>Yes</quote>), the client is in
+ <glossterm>Lazy Mode</glossterm>. When disabled (set to
+ <quote>No</quote>), it is in <glossterm>Snapshot
+ Mode</glossterm>. This setting is optional, and the default
+ value is <quote>Yes</quote>.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>UpdateStoreInterval (required)</glossterm>
+
+ <glossdef>
+ <para>The approximate time between successive connections to
+ the server, in seconds, when the client is in <glossterm>Lazy
+ Mode</glossterm>. The actual time is randomised slightly to
+ prevent "rush hour" traffic jams on the server, where many
+ clients try to connect at the same time.</para>
+
+ <para>This value is ignored if the client is in
+ <glossterm>Snapshot Mode</glossterm>. However, it is still
+ required. It can be set to zero in this case.</para>
+
+ <para>You will probably need to experiment with the value of
+ this option. A good value to start with is probably 86400
+ seconds, which is one day.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>MinimumFileAge (required)</glossterm>
+
+ <glossdef>
+ <para>The number of seconds since a file was last modified
+ before it will be backed up. The reason for this is to avoid
+ repeatedly backing up files which are repeatedly changing. A
+ good value is about 3600 seconds (one hour). If set to zero,
+ files which have changed will always be backed up on the next
+ backup run. </para>
+
+ <para>The <glossterm>MaxUploadWait</glossterm> option
+ overrides this option in some circumstances.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>MaxUploadWait (required)</glossterm>
+
+ <glossdef>
+ <para>The number of seconds since a file was last uploaded
+ before it will be uploaded again, even if it keeps changing.
+ The reason for this is to ensure that files which are
+ continuously modified are eventually uploaded anyway. This
+ should be no less than the value of
+ <glossterm>MinimumFileAge</glossterm>. A good value is about
+ 14400 seconds (4 hours).</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>MaxFileTimeInFuture (optional)</glossterm>
+
+ <glossdef>
+ <para>The maximum time that a file's timestamp can be in the
+ future, before it will be backed up anyway. Due to clock
+ synchronisation problems, it is inevitable that you will
+ occasionally see files timestamped in the future. Normally,
+ for files which are dated only slightly in the future, you
+ will want to wait until after the file's date before backing
+ it up. However, for files whose dates are very wrong (more
+ than a few hours) you will normally prefer to back them up
+ immediately.</para>
+
+ <para>A good value is about 7200 seconds (2 hours) to cope
+ with potential problems when moving in and out of daylight
+ saving time, if applicable in your timezone. The default
+ value, if this setting is not provided, is 172800 seconds (2
+ days).</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>FileTrackingSizeThreshold (required)</glossterm>
+
+ <glossdef>
+ <para>The minimum size of files which will be tracked by inode
+ number to detect renames. It is not worth detecting renames of
+ small files, since they are quick to upload again in full, and
+ keeping their inode numbers in memory increases the client's
+ memory usage and slows down searches. Larger files should be
+ tracked to avoid wasting space on the store and long
+ uploads.</para>
+
+ <para>A good value is about 65536 bytes (64 kilobytes).</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>DiffingUploadSizeThreshold (required)</glossterm>
+
+ <glossdef>
+ <para>The minimum size of files which will be compared to the
+ old file on the server, and for which only changes will be
+ uploaded. It is not worth comparing small files, since they
+ are quick to upload again in full, and sending the entire file
+ reduces the risk of data loss if the store is accidentally
+ corrupted. Larger files should have only their differences
+ uploaded to avoid wasting space on the store and long
+ uploads.</para>
+
+ <para>A good value is about 65536 bytes (64 kilobytes).</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>MaximumDiffingTime (optional)</glossterm>
+
+ <glossdef>
+ <para>The maximum time for which the client will attempt to
+ find differences between the current version and the old
+ version in the store, before giving up and uploading the
+ entire file again. Very large files (several gigabytes) may
+ take a very long time to scan for changes, but would also take
+ a very long time to upload again and use a lot of space on the
+ store, so it is normally worth omitting this value. </para>
+
+ <para>Use this option only if, for some bizarre reason, you
+ prefer to upload really large files in full rather than spend
+ a long time scanning them for changes.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>KeepAliveTime (optional)</glossterm>
+
+ <glossdef>
+ <para>The interval (in seconds) between sending Keep-Alive
+ messages to the server while performing long operations such
+ as finding differences in large files, or scanning large
+ directories. </para>
+
+ <para>These messages ensure that the SSL connection is not
+ closed by the server, or an intervening firewall, due to lack
+ of activity.</para>
+
+ <para>The server will normally wait up to 15 minutes (900
+ seconds) before disconnecting the client, so the value should
+ be given and should be less than 900. Some firewalls may time
+ out inactive connections after 10 or 5 minutes. </para>
+
+ <para>A good value is 300 seconds (5 minutes). You may need to
+ reduce this if you frequently see TLSReadFailed or
+ TLSWriteFailed errors on the client.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>StoreObjectInfoFile (optional)</glossterm>
+
+ <glossdef>
+ <para>Enables the use of a state file, which stores the
+ client's internal state when the client is not running. This
+ is useful on clients machines which are frequently shut down,
+ for example desktop and laptop computers, because it removes
+ the need for the client to recontact the store and rescan all
+ directories on the first backup run, which may take some time.
+ This feature is somewhat experimental and not well tested.
+ </para>
+
+ <para>This is option is disabled by default, in which case the
+ state is stored in memory only. The value is the path to the
+ state file.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>ExtendedLogging (optional)</glossterm>
+
+ <glossdef>
+ <para>Enables the connection debugging mode of the client,
+ which writes all commands sent to or received from the server
+ to the system logs. This generates a <emphasis>lot</emphasis>
+ of output, so it should only be used when instructed, or when
+ you suspect a connection problem or client-server protocol
+ error (and you know how to interpret the output).</para>
+
+ <para>This is a boolean value, which may be set to
+ <quote>Yes</quote> or <quote>No</quote>. The default is of
+ course <quote>No</quote>.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>ExtendedLogFile (optional, new in 0.11)</glossterm>
+
+ <glossdef>
+ <para>Enables the same debugging output as
+ <glossterm>ExtendedLogging</glossterm>, but written to a file
+ instead of the system logs. This is useful if you need
+ extended logging, but do not have access to the system logs,
+ for example if you are not the administrator of the
+ computer.</para>
+
+ <para>The value is the path to the file where these logs will
+ be written. If omitted, extended logs will not be written to a
+ file. This is entirely independent of the
+ <glossterm>ExtendedLogging</glossterm> option. It does not
+ make much sense to use both at the same time.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>LogAllFileAccess (optional, new in 0.11)</glossterm>
+
+ <glossdef>
+ <para>Enables logging of all local file and directory access,
+ file uploads (full and differential), and excluded files. This
+ may be useful if the client is failing to upload a particular
+ file, or crashing while trying to upload it. The logs will be
+ sent to the system log or Windows Event Viewer.</para>
+
+ <para>This generates a <emphasis>lot</emphasis>
+ of output, so it should only be used when instructed, or when
+ you suspect that bbackupd is skipping some files and want to
+ know why. Because it is verbose, the messages are hidden by
+ default even if the option is enabled. To see them, you must
+ run bbackupd with at least one -v option.</para>
+
+ <para>This is a boolean value, which may be set to
+ <quote>Yes</quote> or <quote>No</quote>. The default is of
+ course <quote>No</quote>.</para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry>
+ <glossterm>SyncAllowScript (optional)</glossterm>
+
+ <glossdef>
+ <para>The path to the script or command to run when the client
+ is about to start an automatic backup run, and wishes to know
+ whether it is safe to do so. This is useful for clients which
+ do not always have access to the server, for example laptops
+ and computers on dial-up Internet connections.</para>
+
+ <para>The script should either output the word
+ <quote>now</quote> if the backup should proceed, or else a
+ number, in seconds, which indicates how long the client should
+ wait before trying to connect again. Any other output will
+ result in an error on the client, and the backup will not
+ run.</para>
+
+ <para>This value is optional, and by default no such script is
+ used.</para>
+ </glossdef>
+ </glossentry>
+ </glosslist>
+ </section>
+
+ <section>
+ <title>Server Section</title>
+
+ <para>These options appear within the Server subsection, which is at
+ the root level.</para>
+
+ <glosslist>
+ <glossentry>
+ <glossterm>PidFile</glossterm>
+
+ <glossdef>
+ <para>This option enables the client to write its processs
+ identifier (PID) to the specified file after starting. The
+ file will be deleted when the client daemon exits for any
+ reason. This is disabled by default, but is recommended
+ whenever you run the client daemon as a daemon (in the
+ background), which is usually the case. This file can be used
+ by scripts to determine whether the daemon is still running,
+ and to send it messages to reload its configuration or to
+ terminate.</para>
+
+ <example>
+ <title>Example Server Section</title>
+
+ <programlisting>Server
+{
+ PidFile = /var/state/boxbackup/bbackupd.pid
+}</programlisting>
+ </example>
+ </glossdef>
+ </glossentry>
+ </glosslist>
+ </section>
+
+ <section>
+ <title>Backup Locations Section</title>
+
+ <para>This section serves only as a container for all defined backup
+ locations.</para>
+
+ <example>
+ <title>Example Backup Locations Section</title>
+
+ <programlisting>BackupLocations
+{
+ etc
+ {
+ Path = /etc
+ }
+ home
+ {
+ Path = /home
+ ExcludeDir = /home/shared
+ ExcludeDir = /home/chris/.ccache
+ ExcludeDir = /home/chris/.mozilla/firefox/vvvkq3vp.default/Cache
+ }
+}</programlisting>
+ </example>
+
+ <para>Each subsection is a backup location. The name of the
+ subsection is the name that will be used on the server. The root
+ directory of the account on the server contains one subdirectory per
+ location. The name should be simple, not containing any spaces or
+ special characters.</para>
+
+ <para>If you do not define any locations, the client will not back
+ up any files!</para>
+
+ <para>It is currently not recommended to back up the root directory
+ of the filesystem on Unix. Box Backup is designed to back up
+ important data and configuration files, not full systems.
+ Nevertheless, nothing prevents you from doing so if you
+ desire.</para>
+
+ <para>On Windows, it is currently not possible to back up files
+ which are open (currently in use), such as open documents in
+ Microsoft Office, and system files such as the registry and the
+ paging file. You will get an error for each open file which the
+ client attempts to back up. Once the file has been closed, it will
+ be backed up normally. System files will always be open, and should
+ be excluded from your backups.</para>
+ </section>
+ </section>
+ </section>
+ </chapter>
+
+ <chapter>
+ <title>Administration</title>
+
+ <para>This chapter deals with the dauily running and management of the Box
+ Backup system. It explains most day-to-day tasks.</para>
+
+ <section>
+ <title>Regular Maintenance</title>
+
+ <para>The steps involved in maintaining and keeping the backup sets
+ healthy are outlined in this section.</para>
+
+ <section>
+ <title>Controlling a backup client</title>
+
+ <para>The bbackupctl program sends control commands to the bbackupd
+ daemon. It must be run as the same user as the daemon, and there is no
+ exception for root.</para>
+
+ <para>The command line syntax is:</para>
+
+ <programlisting>/usr/local/sbin/bbackupctl [-q] [-c config-file] command</programlisting>
+
+ <para>The -q option reduces the amount of output the program emits,
+ and -c allows an alternative configuration file to be
+ specified.</para>
+
+ <para>Valid commands are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis role="bold">terminate</emphasis></para>
+
+ <para>Stop the bbackupd daemon now (equivalent to kill)</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">reload</emphasis></para>
+
+ <para>Reload the configuration file (equivalent to kill
+ -HUP)</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">sync</emphasis></para>
+
+ <para>Connect to the server and synchronise files now</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><emphasis role="bold">bbackupctl</emphasis> communicates with
+ the server via a UNIX domain socket, specified in bbackupd.conf with
+ the CommandSocket directive. This does not need to be specified, and
+ <emphasis role="bold">bbackupd</emphasis> will run without the command
+ socket, but in this case bbackupctl will not be able to communicate
+ with the daemon.</para>
+
+ <para>Some platforms cannot check the user id of the connecting
+ process, so this command socket becomes a denial of service security
+ risk. <emphasis role="bold">bbackupd</emphasis> will warn you when it
+ starts up if this is the case on your platform, and you should
+ consider removing the CommandSocket directive on these
+ platforms.</para>
+ </section>
+
+ <section>
+ <title>Using bbackupctl to perform snapshots</title>
+
+ <para><emphasis role="bold">bbackupctl</emphasis>'s main purpose is to
+ implement snapshot based backups, emulating the behaviour of
+ traditional backup software.</para>
+
+ <para>Use bbackupd-config to write a configuration file in snapshot
+ mode, and then run the following command as a cron job.</para>
+
+ <programlisting>/usr/local/sbin/bbackupctl -q sync</programlisting>
+
+ <para>This will cause the backup daemon to upload all changed files
+ immediately. <emphasis role="bold">bbackupctl</emphasis> will exit
+ almost immediately, and will not output anything unless there is an
+ error.</para>
+ </section>
+
+ <section>
+ <title>Checking storage space used on the server</title>
+
+ <section>
+ <title>From the client machine</title>
+
+ <para>bbackupquery can tell you how much space is used on the server
+ for this account. Either use the usage command in interactive mode,
+ or type:</para>
+
+ <programlisting>/usr/local/sbin/bbackupquery -q usage quit</programlisting>
+
+ <para>to show the space used as a single command.</para>
+ </section>
+
+ <section>
+ <title>On the server</title>
+
+ <para>bbstoreaccounts allows you to query the space used, and change
+ the limits. To display the space used on the server for an account,
+ use:</para>
+
+ <programlisting>/usr/local/sbin/bbstoreaccounts info 75AB23C</programlisting>
+
+ <para>To adjust the soft and hard limits on an account, use:</para>
+
+ <programlisting>/usr/local/sbin/bbstoreaccounts setlimit 75AB23C new-soft-limit new-hard-limit</programlisting>
+
+ <para>You do not need to restart the server.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Verify and restore files</title>
+
+ <para>Backups are no use unless you can restore them. The bbackupquery
+ utility does this and more.</para>
+
+ <para>You don't provide any login information to it, as it just picks
+ up the data it needs from /etc/box/bbackupd.conf. You should run it as
+ root so it can find everything it needs.</para>
+
+ <para>Full documentation can be found in the <ulink
+ url="bbackupquery.xml">bbackupquery manual page</ulink>. It follows
+ the model of a command line sftp client quite closely.</para>
+
+ <para>TODO: Link to bbackupquery man-page here.</para>
+
+ <para>On systems where GNU readline is available (by default) it uses
+ that for command line history and editing. Otherwise it falls back to
+ very basic UNIX text entry.</para>
+
+ <para>TODO: Did the readline dependency change to editline?</para>
+
+ <section>
+ <title>Using bbackupquery</title>
+
+ <para>bbackupquery is the tool you use to verify, restore and
+ investigate your backup files with. When invoked, it simply logs
+ into the server using the certificates you have listed in
+ bbackupd.conf.</para>
+
+ <para>After you run bbackupquery, you will see a prompt, allowing
+ you to execute commands. The list (or ls) command lets you view
+ files in the store. It works much like unix ls, but with different
+ options. An example:</para>
+
+ <programlisting>[pthomsen@host bbackupquery]$ bbackupquery
+Box Backup Query Tool v0.10, (c) Ben Summers and contributors 2003-2006
+Using configuration file /etc/box/bbackupd.conf
+Connecting to store...
+Handshake with store...
+Login to store...
+Login complete.
+
+Type "help" for a list of commands.
+
+query &gt; ls
+00000002 -d---- mp3
+00000003 -d---- video
+00000004 -d---- home-pthomsen
+00000005 -d---- root
+query &gt; </programlisting>
+
+ <para>The ls commands shows the directories that are backed up. Now
+ we'll take a closer look at the home-pthomsen directory:</para>
+
+ <programlisting>query &gt; cd home-pthomsen
+query &gt; ls
+00002809 f----- sample.tiff
+0000280a f----- s3.tiff
+0000280b f----- s4.tiff
+0000280d f----- s2.tiff
+0000280e f----- foo.pdf
+0000286c f----- core.28720
+0000339a -d---- .emacs.d
+0000339d -d---- bbackup-contrib
+00003437 f----- calnut.compare.txt
+0000345d f----- DSCN1783.jpg
+0000345e f----- DSCN1782.jpg
+query &gt;</programlisting>
+
+ <para>The ls command takes the following options;</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis role="bold">-r </emphasis>-- recursively list
+ all files</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">-d</emphasis> -- list deleted
+ files/directories</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">-o</emphasis> -- list old versions
+ of files/directories</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">-I</emphasis> -- don't display
+ object ID</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">-F </emphasis>-- don't display
+ flags</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">-t </emphasis>-- show file
+ modification time (and attr mod time if has the object has
+ attributes, ~ separated)</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">-s</emphasis> -- show file size in
+ blocks used on server (only very approximate indication of size
+ locally)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The flags displayed from the ls command are as follows:</para>
+
+ <simplelist>
+ <member>f = file</member>
+
+ <member>d = directory</member>
+
+ <member>X = deleted</member>
+
+ <member>o = old version</member>
+
+ <member>R = remove from server as soon as marked deleted or
+ old</member>
+
+ <member>a = has attributes stored in directory record which
+ override attributes in backup file</member>
+ </simplelist>
+ </section>
+
+ <section>
+ <title>Verify backups</title>
+
+ <para>As with any backup system, you should frequently check that
+ your backups are working properly by comparing them. Box Backup
+ makes this very easy and completely automatic. All you have to do is
+ schedule the <command>bbackupquery compare</command> command to run
+ regularly, and check its output. You can run the command manually as
+ follows:</para>
+
+ <programlisting>/usr/local/sbin/bbackupquery "compare -a" quit</programlisting>
+
+ <para>This command will report all the differences found between the
+ store and the files on disc. It will download everything, so may
+ take a while. You should expect to see some differences on a typical
+ compare, because files which have recently changed are unlikely to
+ have been uploaded yet. It will also tell you how many files have
+ been modified since the last backup run, since these will normally
+ have changed, and such failures are expected.</para>
+
+ <para>You are strongly recommended to add this command as a
+ <command>cron</command> job, at least once a month, and to check the
+ output for anything suspicious, particularly a large number of
+ compare failures, failures on files that have not been modified, or
+ any error (anything except a compare mismatch) that occurs during
+ the compare operation.</para>
+
+ <para>Consider keeping a record of these messages and comparing them
+ with a future verification.</para>
+
+ <para>If you would like to do a "quick" check which just downloads
+ file checksums and compares against that, then run:</para>
+
+ <programlisting>/usr/local/sbin/bbackupquery "compare -aq" quit</programlisting>
+
+ <para>However, this does not check that the file attributes are
+ correct, and since the checksums are generated on the client they
+ may not reflect the data on the server if there is a problem -- the
+ server cannot check the encrypted contents. View this as a quick
+ indication, rather than a definite check that your backup verifies
+ correctly.</para>
+ </section>
+
+ <section>
+ <title>Restore backups</title>
+
+ <para>You will need the keys file created when you configured the
+ server. Without it, you cannot restore the files; this is the
+ downside of encrypted backups. However, by keeping the small keys
+ file safe, you indirectly keep your entire backup safe.</para>
+
+ <para>The first step is to recreate the configuration of the backup
+ client. It's probably best to have stored the /etc/box directory
+ with your keys. But if you're recreating it, all you really need is
+ to have got the login infomation correct (ie the certs and
+ keys).</para>
+
+ <para>Don't run bbackupd yet! It will mark all your files as deleted
+ if you do, which is not hugely bad in terms of losing data, just a
+ major inconvenience. (This assumes that you are working from a blank
+ slate. If you want to restore some files to a different location,
+ it's fine to restore while bbackupd is running, just do it outside a
+ backed up directory to make sure it doesn't start uploading the
+ restored files.)</para>
+
+ <para>Type:</para>
+
+ <programlisting>/usr/local/sbin/bbackupquery</programlisting>
+
+ <para>to run it in interactive mode.</para>
+
+ <para>Type:</para>
+
+ <programlisting>list</programlisting>
+
+ <para>to see a list of the locations stored on the server.</para>
+
+ <para>For each location you want to restore, type:</para>
+
+ <programlisting>restore name-on-server local-dir-name</programlisting>
+
+ <para>The directory specified by local-dir-name must not exist yet.
+ If the restore is interrupted for any reason, repeat the above
+ steps, but add the <emphasis role="bold">-r</emphasis> flag to the
+ restore command to tell it to resume.</para>
+ </section>
+
+ <section>
+ <title>Retrieving deleted and old files</title>
+
+ <para>Box Backup makes old versions of files and files you have
+ deleted available, subject to there being enough disc space on the
+ server to hold them.</para>
+
+ <para>This is how to retrieve them using bbackupquery. Future
+ versions will make this far more user-friendly.</para>
+
+ <para>Firstly, run bbackupquery in interactive mode. It behaves in a
+ similar manner to a command line sftp client.</para>
+
+ <programlisting>/usr/local/sbin/bbackupquery</programlisting>
+
+ <para>Then navigate to the directory containing the file you want,
+ using list, cd and pwd.</para>
+
+ <programlisting>query &gt; cd home/profiles/USERNAME</programlisting>
+
+ <para>List the directory, using the "o" option to list the files
+ available without filtering out everything apart from the current
+ version. (if you want to see deleted files as well, use list
+ -odt)</para>
+
+ <programlisting>query &gt; list -ot
+00000078 f--o- 2004-01-21T20:17:48 NTUSER.DAT
+00000079 f--o- 2004-01-21T20:17:48 ntuser.dat.LOG
+0000007a f--o- 2004-01-21T17:55:12 ntuser.ini
+0000007b f---- 2004-01-12T15:32:00 ntuser.pol
+0000007c -d--- 1970-01-01T00:00:00 Templates
+00000089 -d--- 1970-01-01T00:00:00 Start Menu
+000000a0 -d--- 1970-01-01T00:00:00 SendTo
+000000a6 -d--- 1970-01-01T00:00:00 Recent
+00000151 -d--- 1970-01-01T00:00:00 PrintHood
+00000152 -d--- 1970-01-01T00:00:00 NetHood
+00000156 -d--- 1970-01-01T00:00:00 My Documents
+0000018d -d--- 1970-01-01T00:00:00 Favorites
+00000215 -d--- 1970-01-01T00:00:00 Desktop
+00000219 -d--- 1970-01-01T00:00:00 Cookies
+0000048b -d--- 1970-01-01T00:00:00 Application Data
+000005da -d--- 1970-01-01T00:00:00 UserData
+0000437e f--o- 2004-01-24T02:45:43 NTUSER.DAT
+0000437f f--o- 2004-01-24T02:45:43 ntuser.dat.LOG
+00004380 f--o- 2004-01-23T17:01:29 ntuser.ini
+00004446 f--o- 2004-01-24T02:45:43 NTUSER.DAT
+00004447 f--o- 2004-01-24T02:45:43 ntuser.dat.LOG
+000045f4 f---- 2004-01-26T15:54:16 NTUSER.DAT
+000045f5 f---- 2004-01-26T15:54:16 ntuser.dat.LOG
+000045f6 f---- 2004-01-26T16:54:31 ntuser.ini</programlisting>
+
+ <para>(this is a listing from a server which is used as a Samba
+ server for a network of Windows clients.) You now need to fetch the
+ file using it's ID, rather than it's name. The ID is the hex number
+ in the first column. Fetch it like this:</para>
+
+ <programlisting>query &gt; get -i 0000437e NTUSER.DAT
+Object ID 0000437e fetched successfully.</programlisting>
+
+ <para>The object is now available on your local machine. You can use
+ lcd to move around, and sh ls to list directories on your local
+ machine.</para>
+ </section>
+ </section>
+ </section>
+
+ <section>
+ <title id="FixCorruptions">Fixing corruptions of store data</title>
+
+ <para>This section gives help on what to do if your server has suffered
+ corruption, for example, after an unclean shutdown or other operating
+ system or hardware problem.</para>
+
+ <para>In general, as updates to the store are made in an atomic manner,
+ the most likely result is wasted disc space. However, if really bad
+ things happen, or you believe that there is a lot of wasted space, then
+ these instructions will help to restore your data.</para>
+
+ <para>You know you will need to do something if you get strange errors,
+ and bbackupd attempts to contact the server every 100 seconds or so. Or
+ if one of the discs in your RAID disc set has failed.</para>
+
+ <para>After following these instructions, the end result will be that
+ bbackupquery will be able to see all the files which were stored on your
+ server, and retrieve them. Some of them may be in lost+found directories
+ in the root of the store (or in their original position if they have
+ been moved) but they will all be able to be retrieved.</para>
+
+ <para>After you have retrieved the files you want, bbackupd will upload
+ new versions where necessary, and after about two days, mark any
+ lost+found directories as deleted. Finally, those directories will be
+ removed by the housekeeping process on the server.</para>
+
+ <para>These instructions assume you're working on account 1234. Replace
+ this with the account number that you actually want to check (the one
+ that is experiencing errors). These steps will need to be repeated for
+ all affected accounts.</para>
+
+ <section>
+ <title>Stop bbackupd</title>
+
+ <para>First, make sure that bbackupd is not running on the client
+ machine for the account you are going to recover. Use
+ <command>bbackupctl terminate</command> to stop it. This step is not
+ strictly necessary, but is recommended. During any checks on the
+ account, bbackupd will be unable to log in, and after they are
+ complete, the account is marked as changed on the server so bbackupd
+ will perform a complete scan.</para>
+ </section>
+
+ <section>
+ <title>Are you using RAID on the server?</title>
+
+ <para>The raidfile recovery tools have not been written, and probably
+ will not be, since Box Backup RAID is deprecated. However, when two
+ out of three files are available, the server will successfully allow
+ access to your data, even if it complains a lot in the logs. The best
+ thing to do is to fix the accounts, if necessary, and retrieve any
+ files you need. Then move the old store directories aside (in case you
+ need them) and start afresh with new accounts, and let the clients
+ upload all their data again.</para>
+ </section>
+
+ <section>
+ <title>Check and fix the account</title>
+
+ <para>First, run the check utility, and see what errors it
+ reports.</para>
+
+ <programlisting>/usr/local/sbin/bbstoreaccounts check 1234</programlisting>
+
+ <para>This will take some time, and use a fair bit of memory (about 16
+ bytes per file and directory). If the output looks plausible and
+ reports errors which need fixing, run it again but with the fix
+ flag:</para>
+
+ <programlisting>/usr/local/sbin/bbstoreaccounts check 1234 fix</programlisting>
+
+ <para>This will fix any errors, and remove unrecoverable files.
+ Directories will be recreated if necessary.</para>
+
+ <para><emphasis role="bold">NOTE</emphasis>: The utility may adjust
+ the soft and hard limits on the account to make sure that housekeeping
+ will not remove anything -- check these afterwards.</para>
+ </section>
+
+ <section>
+ <title>Grab any files you need with bbackupquery</title>
+
+ <para>At this point, you will have a working store. Every file which
+ was on the server, and wasn't corrupt, will be available.</para>
+
+ <para>On the client, use bbackupquery to log in and examine the store.
+ (type help at the prompt for instructions). Retrieve any files you
+ need, paying attention to any lost+found directories in the root
+ directory of the store.</para>
+
+ <para>You can skip this step if you are sure that the client machine
+ is fine -- in this case, bbackupd will bring the store up to
+ date.</para>
+ </section>
+
+ <section>
+ <title>Restart bbackupd</title>
+
+ <para>Restart bbackupd on the client machine. The store account will
+ be brought up to date, and files in the wrong place will be marked for
+ eventual deletion.</para>
+ </section>
+ </section>
+
+ <section>
+ <title id="Troubleshooting">Troubleshooting</title>
+
+ <para>If you are trying to fix a store after your disc has been
+ corrupted, see <link linkend="FixCorruptions">Fixing corruptions of
+ store data</link>.</para>
+
+ <para>Unfortunately, the error messages are not particularly helpful at
+ the moment. This page lists some of the common errors, and the most
+ likely causes of them.</para>
+
+ <para>When an error occurs, you will see a message like 'Exception:
+ RaidFile/OSFileError (2/8)' either on the screen or in your log files.
+ (it is recommended you set up another log file as recommended in the
+ server setup instructions.)</para>
+
+ <para>This error may not be particularly helpful, although some do have
+ extra information about probable causes. To get further information,
+ check the ExceptionCodes.txt file in the root of the distribution. This
+ file is generated by the ./configure script, so you will need to have
+ run that first.</para>
+
+ <para>Some common causes of exceptions are listed below.</para>
+
+ <para>Please email me with any other codes you get, and I will let you
+ know what they mean, and add notes here.</para>
+
+ <section>
+ <title>RaidFile (2/8)</title>
+
+ <para>This is found either when running bbstoreaccounts or in the
+ bbstored logs.</para>
+
+ <para><emphasis role="bold">Problem</emphasis>: The directories you
+ specified in the raidfile.conf are not writable by the _bbstored
+ user.</para>
+
+ <para><emphasis role="bold">Resolution</emphasis>: Change permissions
+ appropriately.</para>
+ </section>
+
+ <section>
+ <title>Common (1/2)</title>
+
+ <para>This usually occurs when the configuration files can't be
+ opened.</para>
+
+ <para><emphasis role="bold">Problem</emphasis>: You created your
+ configurations in non-standard locations, and the programs cannot find
+ them.</para>
+
+ <para><emphasis role="bold">Resolution</emphasis>: Explicitly specify
+ configuration file locations to daemons and programs. For
+ example</para>
+
+ <programlisting>/usr/local/sbin/bbstored /some/other/dir/bbstored.config /usr/local/sbin/bbackupquery -c /some/other/dir/bbackupd.config</programlisting>
+
+ <para>(daemons specify the name as the first argument, utility
+ programs with the -c option).</para>
+
+ <para><emphasis role="bold">Problem</emphasis>: bbstored can't find
+ the raidfile.conf file specified in bbstored.conf.</para>
+
+ <para><emphasis role="bold">Resolution</emphasis>: Edit bbstored.conf
+ to point to the correct location of this additional configuration
+ file.</para>
+ </section>
+
+ <section>
+ <title>Server (3/16)</title>
+
+ <para>The server can't listen for connections on the IP address
+ specified when you configured it.</para>
+
+ <para><emphasis role="bold">Problem</emphasis>: This probably means
+ you've specified the wrong hostname to bbstored-config -- maybe your
+ server is behind a NAT firewall?</para>
+
+ <para><emphasis role="bold">Resolution</emphasis>: Edit bbstored.conf
+ and correct the ListenAddresses line. You should replace the server
+ address with the IP address of your machine.</para>
+ </section>
+
+ <section>
+ <title>Connection (7/x)</title>
+
+ <para>These errors all relate to connections failing -- you may see
+ them during operation if there are network failures or other problems
+ between the client and server. The backup system will recover from
+ them automatically.</para>
+
+ <section>
+ <title>Connection (7/30) - SSL problems</title>
+
+ <para>Log snippet from client side:</para>
+
+ <programlisting>bbackupd[1904]: Opening connection to server xxxx.xxx...
+bbackupd[1904]: SSL err during Connect: error:xxxxxxxx:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
+bbackupd[1904]: SSL err during Connect: error:xxxxxxxx:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding check failed
+bbackupd[1904]: SSL err during Connect: error:xxxxxxxx:asn1 encoding routines:ASN1_verify:EVP lib
+bbackupd[1904]: SSL err during Connect: error:xxxxxxxx:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
+bbackupd[1904]: TRACE: Exception thrown: ConnectionException(Conn_TLSHandshakeFailed) at SocketStreamTLS.cpp(237)
+bbackupd[1904]: Exception caught (7/30), reset state and waiting to retry...</programlisting>
+
+ <para>And from the server:</para>
+
+ <programlisting>bbstored[19291]: Incoming connection from xx.xxx.xx.xxx port xxxxx (handling in child xxxxx)
+bbstored[21588]: SSL err during Accept: error:xxxxxxxx:SSL routines:SSL3_READ_BYTES:tlsv1 alert decrypt error
+bbstored[21588]: in server child, exception Connection TLSHandshakeFailed (7/30) -- terminating child</programlisting>
+
+ <para><emphasis role="bold">Solution</emphasis>: Create a new CA on
+ the server side and re-generate the client certificate. Re-creating
+ the client certificate request is not necessary.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Advanced troubleshooting</title>
+
+ <para>If this really doesn't help, then using the DEBUG builds of the
+ system will give you much more information -- a more descriptive
+ exception message and the file and line number where the error
+ occurred.</para>
+
+ <para>For example, if you are having problems with bbstoreaccounts,
+ build the debug version with:</para>
+
+ <programlisting>cd boxbackup-0.0
+cd bin/bbstoreaccounts
+make</programlisting>
+
+ <para>Within the module directories, make defaults to building the
+ debug version. At the top level, it defaults to release.</para>
+
+ <para>This will build an executable in debug/bin/bbstoreaccounts which
+ you can then use instead of the release version. It will give far more
+ useful error messages.</para>
+
+ <para>When you get an error message, use the file and line number to
+ locate where the error occurs in the code. There will be comments
+ around that line to explain why the exception happened.</para>
+
+ <para>If you are using a debug version of a daemon, these extended
+ messages are found in the log files.</para>
+ </section>
+ </section>
+ </chapter>
+
+ &__ExceptionCodes__elfjz3fu;
+
+ <appendix>
+ <title id="WORoot">Running without root</title>
+
+ <para>It is possible to run both the server and client without root
+ privileges.</para>
+
+ <section>
+ <title>Server</title>
+
+ <para>The server, by default, runs as a non-root user. However, it
+ expects to be run as root and changes user to a specified user as soon
+ as it can, simply for administrative convenience. The server uses a port
+ greater than 1024, so it doesn't need root to start.</para>
+
+ <para>To run it entirely as a non-root user, edit the bbstored.conf
+ file, and remove the User directive from the Server section. Then simply
+ run the server as your desired user.</para>
+ </section>
+
+ <section>
+ <title>Client</title>
+
+ <para>The client requires root for normal operation, since it must be
+ able to access all files to back them up. However, it is possible to run
+ the client as a non-root user, with certain limitations.</para>
+
+ <para>Follow the installation instructions, but install the executable
+ files manually to somewhere in your home directory. Then use
+ bbackupd-config to configure the daemon, but use a directory other than
+ /etc/box, probably somewhere in your home directory.</para>
+
+ <para>All directories you specify to be backed up must be readable, and
+ all files must be owned by the user and readable to that user.</para>
+
+ <para>Important: If any file or directory is not readable by this user,
+ the backup process will skip that file or directory. Keep an eye on the
+ logs for reports of this failure.</para>
+
+ <para>Non-root operation of the backup client is recommended only for
+ testing, and should not be relied on in a production environment.</para>
+ </section>
+ </appendix>
+</book>
diff --git a/docs/docbook/bb-book.xsl b/docs/docbook/bb-book.xsl
new file mode 100644
index 00000000..a4f05fdb
--- /dev/null
+++ b/docs/docbook/bb-book.xsl
@@ -0,0 +1,17 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl"/>
+
+<xsl:param name="html.stylesheet" select="'../bbdoc.css'"/>
+<xsl:param name="chunk.section.depth" select="'0'"/>
+<xsl:template name="user.header.navigation">
+<div id="header">
+<div id="logo">
+<img src="../images/bblogo.png" alt="logo" height="65" width="331" border="0" vspace="5" align="middle" /> <img src="../images/stepahead.png" alt="a step ahead in data security" width="182" height="11" hspace="10" vspace="20" border="0" align="middle" /></div>
+</div>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/docs/docbook/bb-man.xsl b/docs/docbook/bb-man.xsl
new file mode 100644
index 00000000..0f9e5c75
--- /dev/null
+++ b/docs/docbook/bb-man.xsl
@@ -0,0 +1,9 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="../xsl-generic/manpages/docbook.xsl"/>
+
+<xsl:param name="chunk.section.depth" select="'0'"/>
+
+</xsl:stylesheet>
diff --git a/docs/docbook/bb-nochunk-book.xsl b/docs/docbook/bb-nochunk-book.xsl
new file mode 100644
index 00000000..6099256c
--- /dev/null
+++ b/docs/docbook/bb-nochunk-book.xsl
@@ -0,0 +1,17 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="../xsl-generic/html/docbook.xsl"/>
+
+<xsl:param name="html.stylesheet" select="'../bbdoc-man.css'"/>
+<xsl:param name="chunk.section.depth" select="'0'"/>
+<xsl:template name="user.header.content">
+<div id="header">
+<div id="logo">
+<img src="../images/bblogo.png" alt="logo" height="65" width="331" border="0" vspace="5" align="middle" /> <img src="../images/stepahead.png" alt="a step ahead in data security" width="182" height="11" hspace="10" vspace="20" border="0" align="middle" /></div>
+</div>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/docs/docbook/bbackupctl.xml b/docs/docbook/bbackupctl.xml
new file mode 100644
index 00000000..b4880bfd
--- /dev/null
+++ b/docs/docbook/bbackupctl.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbackupctl</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbackupctl</refname>
+
+ <refpurpose>Control the Box Backup client daemon</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbackupctl</command>
+
+ <arg>-q</arg>
+
+ <arg>-c config-file</arg>
+
+ <arg choice="plain">command</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para><command>bbackupctl</command> sends commands to a running
+ <command>bbackupd</command> daemon on a client machine. It can be used to
+ force an immediate backup, tell the daemon to reload its configuration
+ files or stop the daemon. If <command>bbackupd</command> is configured in
+ snapshot mode, it will not back up automatically, and the
+ <command>bbackupctl</command> must be used to tell it when to start a
+ backup.</para>
+
+ <para>Communication with the bbackupd daemon takes place over a local
+ socket (not over the network). Some platforms (notably Windows) can't
+ determine if the user connecting on this socket has the correct
+ credentials to execute the commands. On these platforms, ANY local user
+ can interfere with bbackupd. To avoid this, remove the CommandSocket
+ option from bbackupd.conf, which will also disable bbackupctl. See the
+ Client Configuration page for more information.</para>
+
+ <para><command>bbackupctl</command> needs to read the
+ <command>bbackupd</command> configuration file to find out the name of the
+ CommandSocket. If you have to tell <command>bbackupd</command> where to
+ find the configuration file, you will have to tell
+ <command>bbackupctl</command> as well. The default on Unix systems is
+ usually <filename>/etc/box/bbackupd.conf</filename>. On Windows systems,
+ it is <filename>bbackupd.conf</filename> in the same directory where
+ <command>bbackupd.exe</command> is located. If
+ <command>bbackupctl</command> cannot find or read the configuration file,
+ it will log an error message and exit.</para>
+
+ <para><command>bbackupctl</command> usually writes error messages to the
+ console and the system logs. If it is not doing what you expect, please
+ check these outputs first of all.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-q</option></term>
+
+ <listitem>
+ <para>Run in quiet mode.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option> config-file</term>
+
+ <listitem>
+ <para>Specify configuration file.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <refsection>
+ <title>Commands</title>
+
+ <para>The following commands are available in bbackupctl:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>terminate</command></term>
+
+ <listitem>
+ <para>This command cleanly shuts down <command>bbackupd</command>.
+ This is better than killing or terminating it any other
+ way.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>reload</command></term>
+
+ <listitem>
+ <para>Causes the <command>bbackupd</command> daemon to re-read all
+ its configuration files. Equivalent to <command>kill
+ -HUP</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>sync</command></term>
+
+ <listitem>
+ <para>Initiates a backup. If no files need to be backed up, no
+ connection will be made to the server.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>force-sync</command></term>
+
+ <listitem>
+ <para>Initiates a backup, even if the
+ <varname>SyncAllowScript</varname> says that no backup should run
+ now.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>wait-for-sync</command></term>
+
+ <listitem>
+ <para>Passively waits until the next backup starts of its own
+ accord, and then terminates.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>wait-for-end</command></term>
+
+ <listitem>
+ <para>Passively waits until the next backup starts of its own
+ accord and finishes, and then terminates.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>sync-and-wait</command></term>
+
+ <listitem>
+ <para>Initiates a backup, waits for it to finish, and then
+ terminates.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbackupd.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbackupd.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupd-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupctl</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbackupd-config.xml b/docs/docbook/bbackupd-config.xml
new file mode 100644
index 00000000..41bb6587
--- /dev/null
+++ b/docs/docbook/bbackupd-config.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbackupd-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbackupd-config</refname>
+
+ <refpurpose>Box Backup client daemon configuration file
+ generator</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbackupd-config</command>
+
+ <arg choice="plain">config-dir</arg>
+
+ <arg choice="plain">backup-mode</arg>
+
+ <arg choice="plain">account-num</arg>
+
+ <arg choice="plain">server-hostname</arg>
+
+ <arg choice="plain">working-dir</arg>
+
+ <arg choice="plain">backup-dir</arg>
+
+ <arg choice="opt">backup-dir ...</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>The bbackupd-config script creates configuration files and client
+ certificates. It takes at least six parameters:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>config-dir</term>
+
+ <listitem>
+ <para>Configuration directory. Usually
+ <filename>/etc/box</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>backup-mode</term>
+
+ <listitem>
+ <para>Either lazy or snapshot.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>account-num</term>
+
+ <listitem>
+ <para>The client account number. This is set by the bbstored
+ administrator.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>server-hostname</term>
+
+ <listitem>
+ <para>The hostname or IP address of the bbstored server.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>working-dir</term>
+
+ <listitem>
+ <para>A directory to keep temporary state files. This is usually
+ something like <filename>/var/bbackupd</filename>. This can be
+ changed in <filename>bbackupd.conf</filename> later on if
+ required.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>backup-dir</term>
+
+ <listitem>
+ <para>A space-separated list of directories to be backed up. Note
+ that this <emphasis>does not</emphasis> traverse mount
+ points.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbackupd.conf</filename></para>
+
+ <para><filename>/etc/box/bbackupd/NotifySysAdmin.sh</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbackupd.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupd</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupctl</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbackupd.conf.xml b/docs/docbook/bbackupd.conf.xml
new file mode 100644
index 00000000..43ae2bed
--- /dev/null
+++ b/docs/docbook/bbackupd.conf.xml
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbackupd.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbackupd.conf</refname>
+
+ <refpurpose>Box Backup client daemon configuration file</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>/etc/box/bbackupd.conf</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>AccountNumber</varname></term>
+
+ <listitem>
+ <para>The account number of this client. This is set by the admin of
+ the store server.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>UpdateStoreInterval</varname></term>
+
+ <listitem>
+ <para>Specifies the interval between scanning of the local discs. To
+ avoid cycles of load on the server, this time is randomly adjusted
+ by a small percentage as the daemon runs. Defaults to 1 hour.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>MinimumFileAge</varname></term>
+
+ <listitem>
+ <para>Specifies how long since a file was last modified before it
+ will be uploaded. Defaults to 6 hours.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>MaxUploadWait</varname></term>
+
+ <listitem>
+ <para>If a file is repeatedly modified it won't be uploaded
+ immediately in case it's modified again. However it should be
+ uploaded eventually. This is how long we should wait after first
+ noticing a change. Defaults to 1 day.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>MaxFileTimeInFuture</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>AutomaticBackup</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>SyncAllowScript</varname></term>
+
+ <listitem>
+ <para>Use this to temporarily stop bbackupd from syncronising or
+ connecting to the store. This specifies a program or script script
+ which is run just before each sync, and ideally the full path to the
+ interpreter. It will be run as the same user bbackupd is running as,
+ usually root.</para>
+
+ <para>The script prints either "now" or a number to STDOUT (and a
+ terminating newline, no quotes). If the result was "now", then the
+ sync will happen. If it's a number, then the script will be asked
+ again in that number of seconds.</para>
+
+ <para>For example, you could use this on a laptop to only backup
+ when on a specific network. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>MaximumDiffingTime</varname></term>
+
+ <listitem>
+ <para>How much time should be spent on diffing files.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>DeleteRedundantLocationsAfter</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>FileTrackingSizeThreshold</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>DiffingUploadSizeThreshold</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>StoreHostname</varname></term>
+
+ <listitem>
+ <para>The hostname or IP address of the <citerefentry>
+ <refentrytitle>bbstored</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry> server.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>StorePort</varname></term>
+
+ <listitem>
+ <para>The port used by the server. Defaults to 2201.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExtendedLogging</varname></term>
+
+ <listitem>
+ <para>Logs everything that happens between the client and server.
+ The <citerefentry>
+ <refentrytitle>bbackupd</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry> client must also be started with
+ <option>-V</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExtendedLogFile</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>LogAllFileAccess</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>LogFile</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>LogFileLevel</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>CommandSocket</varname></term>
+
+ <listitem>
+ <para>Where the command socket is created in the filesystem.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>KeepAliveTime</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>StoreObjectInfoFile</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>NotifyScript</varname></term>
+
+ <listitem>
+ <para>The location of the script which runs at certain events. This
+ script is generated by <citerefentry>
+ <refentrytitle>bbackupd-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>. Defaults to
+ <filename>/etc/box/bbackupd/NotifySysAdmin.sh</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>NotifyAlways</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>CertificateFile</varname></term>
+
+ <listitem>
+ <para>The path to the client's public certificate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>PrivateKeyFile</varname></term>
+
+ <listitem>
+ <para>The path to the client's private key. This should only be
+ readable by root.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TrustedCAsFile</varname></term>
+
+ <listitem>
+ <para>The Certificate Authority created by <citerefentry>
+ <refentrytitle>bbstored-certs</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>KeysFile</varname></term>
+
+ <listitem>
+ <para>The data encryption key. This <emphasis
+ role="bold">must</emphasis> be kept safe at all costs, your data is
+ useless without it!</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>DataDirectory</varname></term>
+
+ <listitem>
+ <para>A directory to keep temporary state files. This is usually
+ something like <filename>/var/bbackupd</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Server</varname></term>
+
+ <listitem>
+ <para>This section relates to the running daemon.</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><varname>PidFile</varname></term>
+
+ <listitem>
+ <para>The location of the process ID file. Defaults to
+ <filename>/var/run/bbackupd.pid</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>BackupLocations</varname></term>
+
+ <listitem>
+ <para>This section defines each directory to be backed up. Each
+ entry must have at least a Path entry and, optionally, include and
+ exclude directives.</para>
+
+ <para>Multiple include and exclude directives may appear.</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><varname>Path</varname></term>
+
+ <listitem>
+ <para>The path to back up.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExcludeFile</varname></term>
+
+ <listitem>
+ <para>Exclude a single file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExcludeFilesRegex</varname></term>
+
+ <listitem>
+ <para>Exclude multiple files based on a regular expression.
+ See <citerefentry>
+ <refentrytitle>re_format</refentrytitle>
+
+ <manvolnum>7</manvolnum>
+ </citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExcludeDir</varname></term>
+
+ <listitem>
+ <para>Exclude a single directory.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExcludeDirsRegex</varname></term>
+
+ <listitem>
+ <para>Exclude multiple directories based on a regular
+ expression. See <citerefentry>
+ <refentrytitle>re_format</refentrytitle>
+
+ <manvolnum>7</manvolnum>
+ </citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>AlwaysIncludeFile</varname></term>
+
+ <listitem>
+ <para>Include a single file from a directory which has been
+ excluded.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>AlwaysIncludeFilesRegex</varname></term>
+
+ <listitem>
+ <para>Include multiple files from an excluded directory,
+ based on a regular expression.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>AlwaysIncludeDir</varname></term>
+
+ <listitem>
+ <para>Include a single directory from a directory which has
+ been excluded.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>AlwaysIncludeDirsRegex</varname></term>
+
+ <listitem>
+ <para>Include multiple directories from an excluded
+ directory, based on a regular expression.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+
+ <para>The following is an example of a backup location:</para>
+
+ <programlisting>home
+{
+ Path = /home
+ ExcludeDir = /home/guest
+ ExcludeDir = /home/[^/]+/tmp
+ ExcludeFilesRegex = .*\.(mp3|MP3)$
+ AlwaysIncludeFile = /home/someuser/importantspeech.mp3
+}</programlisting>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbackupd.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbackupd</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupd-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupctl</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbackupd.xml b/docs/docbook/bbackupd.xml
new file mode 100644
index 00000000..11de0f3f
--- /dev/null
+++ b/docs/docbook/bbackupd.xml
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbackupd</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbackupd</refname>
+
+ <refpurpose>Box Backup client daemon</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbackupd</command>
+
+ <arg>-DFkqvVT</arg>
+
+ <arg>-c config-file</arg>
+
+ <arg>-t tag</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para><command>bbackupd</command> runs on client computers in the
+ background, finding new files to back up. When it is time for a backup,
+ <command>bbackupd</command> will connect to the server
+ (<command>bbstored</command>) to upload the files.</para>
+
+ <para>A running <command>bbackupd</command> daemon can be controlled with
+ the <command>bbackupctl</command> command, to make it shut down, reload
+ its configuration, or start an immediate backup.</para>
+
+ <para><command>bbackupd</command> needs to be configured to tell it which
+ files to back up, how often, and to which server (running
+ <command>bbstored</command>). See the Client Configuration page for more
+ information. For this, you must write a configuration file. You must
+ either place it in the default location, or tell
+ <command>bbackupd</command> where to find it.</para>
+
+ <para>You can check the default location with the <option>-h</option>
+ option. The default on Unix systems is usually
+ <filename>/etc/box/bbackupd.conf</filename>. On Windows systems, it is
+ <filename>bbackupd.conf</filename> in the same directory where
+ <command>bbackupd.exe</command> is located. If bbackupd cannot find or
+ read the configuration file, it will log an error message and exit.</para>
+
+ <para><command>bbackupd</command> usually writes log messages to the
+ system logs, using the facility <function>local5</function>, which you can
+ use to filter them to send them to a separate file. It can also write them
+ to the console, see options below. If <command>bbackupd</command> is not
+ doing what you expect, please check the logs first of all.</para>
+
+ <refsection>
+ <title>Options</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-c</option> config-file</term>
+
+ <listitem>
+ <para>Use the specified configuration file. If <option>-c</option>
+ is omitted, the last argument is the configuration file. If none
+ is specified, the default is used (see above).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-D</option></term>
+
+ <listitem>
+ <para>Debugging mode. Do not fork into the background (do not run
+ as a daemon). Not available on Windows.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-F</option></term>
+
+ <listitem>
+ <para>No-fork mode. Same as <option>-D</option> for bbackupd. Not
+ available on Windows.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-k</option></term>
+
+ <listitem>
+ <para>Keep console open after fork, keep writing log messages to
+ it. Not available on Windows.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-q</option></term>
+
+ <listitem>
+ <para>Run more quietly. Reduce verbosity level by one. Available
+ levels are <varname>NOTHING</varname>, <varname>FATAL</varname>,
+ <varname>ERROR</varname>, <varname>WARNING</varname>,
+ <varname>NOTICE</varname>, <varname>INFO</varname>,
+ <varname>TRACE</varname>, <varname>EVERYTHING</varname>. Default
+ level is <varname>NOTICE</varname> in non-debugging builds. Use
+ once to drop to <varname>WARNING</varname> level, twice for
+ <varname>ERROR</varname> level, four times for no logging at
+ all.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-v</term>
+
+ <listitem>
+ <para>Run more verbosely. Increase verbosity level by one. Use
+ once to raise to <varname>INFO</varname> level, twice for
+ <varname>TRACE</varname> level, three times for
+ <varname>EVERYTHING</varname> (currently the same as
+ <varname>TRACE</varname>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-V</option></term>
+
+ <listitem>
+ <para>Run at maximum verbosity (<varname>EVERYTHING</varname>
+ level).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-t</option> tag</term>
+
+ <listitem>
+ <para>Tag each console message with specified marker. Mainly
+ useful in testing when running multiple daemons on the same
+ console.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-T</option></term>
+
+ <listitem>
+ <para>Timestamp each line of console output.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbackupd.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbackupd.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupd-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbackupctl</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbackupquery.xml b/docs/docbook/bbackupquery.xml
new file mode 100644
index 00000000..016d5c7d
--- /dev/null
+++ b/docs/docbook/bbackupquery.xml
@@ -0,0 +1,506 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbackupquery</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbackupquery</refname>
+
+ <refpurpose>Box Backup store query and file retrieval</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbackupquery</command>
+
+ <arg>-q</arg>
+
+ <arg>-c configfile</arg>
+
+ <arg>command ...</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para><command>bbackupquery</command> is the main way of interacting with
+ the backup store from a Box Backup client machine. It supports both
+ interactive and batch modes of operation.</para>
+
+ <para>It can be used to reviewing the status of a client machine's backup
+ store, getting status from the store server. The main use is to retrieve
+ files and directories when needed.</para>
+
+ <para><command>bbackupquery</command> supports interactive and batch modes
+ of operation. Interactive mode allows for interaction with the server much
+ like an interactive FTP client.</para>
+
+ <para>Batch mode is invoked by putting commands into the invocation of
+ <command>bbackupquery</command>. Example:</para>
+
+ <para><programlisting>bbackupquery "list home-dirs" quit</programlisting></para>
+
+ <para>Note that commands that contain spaces are enclosed in double
+ quotes. If the <command>quit</command> command is omitted, after the
+ preceding commands are completed, <command>bbackupquery</command> will
+ enter interactive mode.</para>
+ </refsection>
+
+ <refsection>
+ <title>Options</title>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>-q</option></term>
+
+ <listitem>
+ <para>Quiet. Suppresses status output while running.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option> <option>configfile</option></term>
+
+ <listitem>
+ <para>Use configfile instead of the default bbackupd.conf file.
+ Can be a relative or full path.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </refsection>
+
+ <refsection>
+ <title>Commands</title>
+
+ <para>The commands that can be used in bbackupquery are listed
+ below.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>help</command></term>
+
+ <listitem>
+ <para>Displays the basic help message, which gives information about
+ the commands available in <command>bbackupquery</command>. Use the
+ form <command>help command</command> to get help on a specific
+ command.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>quit</command></term>
+
+ <listitem>
+ <para>End the session with the store server, and quit
+ bbackupquery.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>cd</command> <optional>options</optional>
+ <varname>directory-name</varname></term>
+
+ <listitem>
+ <para>Change directory. Options: <variablelist>
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>consider deleted directories for traversal</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-o</option></term>
+
+ <listitem>
+ <para>consider old versions of directories for traversal.
+ This option should never be useful in a correctly formed
+ store.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>lcd</command>
+ <varname>local-directory-name</varname></term>
+
+ <listitem>
+ <para>Change directory on the client machine. To list the contents
+ of the local directory, type <command>sh ls</command> (on Unix-like
+ machines).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>list</command> <optional>options</optional>
+ <optional>directory-name</optional></term>
+
+ <listitem>
+ <para>The list (or its synonym <command>ls</command>) command lists
+ the content of the current, or specified, directory. The options are
+ as follows:</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>recursively list all files</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>list deleted files and directories</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-o</option></term>
+
+ <listitem>
+ <para>list old versions of files and directories</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-I</option></term>
+
+ <listitem>
+ <para>don't display object IDs</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-F</option></term>
+
+ <listitem>
+ <para>don't display flags</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-t</option></term>
+
+ <listitem>
+ <para>show file modification time (and attr mod time, if the
+ object has attributes).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-s</option></term>
+
+ <listitem>
+ <para>show file size in blocks used on server. Note that
+ this is only a very approximate indication of local file
+ size.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>ls</command> <optional>options</optional>
+ <optional>directory-name</optional></term>
+
+ <listitem>
+ <para>Synonym for <command>list</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>pwd</command></term>
+
+ <listitem>
+ <para>Print current directory, always relative to the backup store
+ root.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>sh</command> <varname>shell-command</varname></term>
+
+ <listitem>
+ <para>Everything after the sh is passed to a shell and run. All
+ output from the command is displayed in the client.</para>
+
+ <para>Example: to list the contents of the current directory on the
+ client machine type <command>sh ls</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>compare -a</command></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>compare -l</command>
+ <varname>location-name</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>compare</command> <varname>store-dir-name</varname>
+ <varname>local-dir-name</varname></term>
+
+ <listitem>
+ <para>Compare the current data in the store with the data on the
+ disc. Please note that all the data will be downloaded from the
+ store, so this can be a very lengthy process depending on the size
+ of the store, and the size of the part you are comparing.</para>
+
+ <para>Options:</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>-a</option></term>
+
+ <listitem>
+ <para>compare all locations.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-l</option></term>
+
+ <listitem>
+ <para>compare one backup location as specified in the
+ configuration file. This compares one of the top level store
+ directories.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>set return code. The return code is set to the
+ following values, if quit is the next command. So, if
+ another command is run after the compare, the return code
+ will not refer to the compare. This option is very useful
+ for automating compares. Return code values:<itemizedlist>
+ <listitem>
+ <para><option>1</option> -- no differences were
+ found</para>
+ </listitem>
+
+ <listitem>
+ <para><option>2</option> -- differences were
+ found</para>
+ </listitem>
+
+ <listitem>
+ <para><option>3</option> -- an error occured</para>
+ </listitem>
+ </itemizedlist></para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>get</command> <varname>object-filename</varname>
+ <optional>local-filename</optional></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>get -i</command> <varname>object-id</varname>
+ <varname>local-filename</varname></term>
+
+ <listitem>
+ <para>Gets a file from the store. Object is specified as the
+ filename within the current directory. Local filename is optional.
+ Ignores old and deleted files when searching the directory for the
+ file to retrieve.</para>
+
+ <para>To get an old or deleted file, use the <option>-i</option>
+ option and select the object as a hex object ID (first column in
+ listing). The local filename must be specified.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>getobject</command> <varname>object-id</varname>
+ <varname>local-filename</varname></term>
+
+ <listitem>
+ <para>Gets the object specified by the object id (in hex) and stores
+ the raw contents in the local file specified. Note: This is only
+ useful for debugging as it does not decode files from the stored
+ format, which is encrypted and compressed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>restore</command> <optional>-d</optional>
+ <varname>directory-name</varname>
+ <varname>local-directory-name</varname></term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>restore -r</command></term>
+
+ <listitem>
+ <para>Restores a directory to the local disc. The local directory
+ specified must not exist (unless a previous restore is being
+ restarted). The root cannot be restored -- restore locations
+ individually.</para>
+
+ <para>Options:</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>restore a deleted directory</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>resume an interrupted restore</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>If a restore operation is interrupted for any
+ reason, it can be restarted using the <option>-r</option> switch.
+ Restore progress information is saved in a file at regular intervals
+ during the restore operation to allow restarts.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>usage</command> <optional>-m</optional></term>
+
+ <listitem>
+ <para>Show space used on the server for this account. Display
+ fields:<itemizedlist>
+ <listitem>
+ <para><property>Used</property>: Total amount of space used on
+ the server</para>
+ </listitem>
+
+ <listitem>
+ <para><property>Old files</property>: Space used by old
+ files</para>
+ </listitem>
+
+ <listitem>
+ <para><property>Deleted files</property>: Space used by
+ deleted files</para>
+ </listitem>
+
+ <listitem>
+ <para><property>Directories</property>: Space used by the
+ directory structure</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>When <property>Used</property> exceeds the soft limit, the
+ server will start to remove old and deleted files until the usage
+ drops below the soft limit. After a while, you should expect to see
+ the usage stay at just below the soft limit. You only need more
+ space if the space used by old and deleted files is near
+ zero.</para>
+
+ <para>The <option>-m</option> option displays output in
+ machine-readable form.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+
+ <refsection>
+ <title>Bugs</title>
+
+ <para>If you find a bug in Box Backup and you want to let us know about
+ it, join the <link
+ xlink:href="http://lists.warhead.org.uk/mailman/listinfo/boxbackup">mailing
+ list</link> and send us a description of the problem there.</para>
+
+ <para>To report a bug, give us at least the following information:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The version of Box Backup you are running</para>
+ </listitem>
+
+ <listitem>
+ <para>The platform you are running on (hardware and OS), for both
+ client and server.</para>
+ </listitem>
+
+ <listitem>
+ <para>If possible attach your config files (bbstored.conf,
+ bbackupd.conf) to the bug report.</para>
+ </listitem>
+
+ <listitem>
+ <para>Also attach any log file output that helps shed light on the
+ problem you are seeing.</para>
+ </listitem>
+
+ <listitem>
+ <para>And last but certainly not least, a description of what you are
+ seeing, in as much detail as possible.</para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbstoreaccounts.xml b/docs/docbook/bbstoreaccounts.xml
new file mode 100644
index 00000000..08092acf
--- /dev/null
+++ b/docs/docbook/bbstoreaccounts.xml
@@ -0,0 +1,386 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbstoreaccounts</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbstoreaccounts</refname>
+
+ <refpurpose>Box Backup store accounts manager</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbstoreaccounts</command>
+
+ <arg>-c config-file</arg>
+
+ <arg choice="plain">command</arg>
+
+ <arg choice="plain">account-id</arg>
+
+ <arg>command-specific arguments</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para><command>bbstoreaccounts</command> is the tool for managing accounts
+ on the store server. It can be used to view information related to
+ accounts, as well as create, change and delete accounts on the store
+ server.</para>
+
+ <para><command>bbstoreaccounts</command> always takes at least 2
+ parameters: the command name and the account ID. Some commands require
+ additional parameters, and some commands have optional parameters.</para>
+
+ <refsection>
+ <title>Options</title>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>-c config-file</option></term>
+
+ <listitem>
+ <para>The configfile to use for connecting to the store. Default
+ is <filename>/etc/box/bbstored.conf</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </refsection>
+
+ <refsection>
+ <title>Commands</title>
+
+ <para>The commands tells bbstoreaccounts what action to perform.</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><command>check</command> <varname>account-id</varname>
+ <optional>fix</optional></term>
+
+ <listitem>
+ <para>The <command>check</command> command verifies the
+ integrity of the store account given, and optionally fixes any
+ corruptions. <emphasis role="bold">Note</emphasis>: It is
+ recommended to run the 'simple' check command (without
+ <command>fix</command>) before using the <command>fix</command>
+ option. This gives an overview of the extent of any problems,
+ before attempting to fix them.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>create</command> <varname>account-id</varname>
+ <varname>disc-set</varname> <varname>soft-limit</varname>
+ <varname>hard-limit</varname></term>
+
+ <listitem>
+ <para>Creates a new store account with the parameters given. The
+ parameters are as follows:</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>account-id</option></term>
+
+ <listitem>
+ <para>The ID of the new account to be created. A 32-bit
+ hexadecimal number. Cannot already exist on the
+ server.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>disc-set</option></term>
+
+ <listitem>
+ <para>The disc set from <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry> where the backups for this client will
+ be stored. A number. Each RAID-file set has a number in
+ raidfile.conf. This number is what's used.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>soft-limit</option></term>
+
+ <listitem>
+ <para>The soft limit is the amount of storage that the
+ server will guarantee to be available for
+ storage.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>hard-limit</option></term>
+
+ <listitem>
+ <para>The amount of storage that the the server will
+ allow, before rejecting uploads, and starting to
+ eliminate old and deleted files to get back down to
+ soft-limit.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>delete</command> <varname>account-id</varname>
+ <optional>yes</optional></term>
+
+ <listitem>
+ <para>Deletes the account from the store server completely.
+ Removes all backups and deletes all references to the account in
+ the config files.</para>
+
+ <para><command>delete</command> will ask for confirmation from
+ the user, when called. Using the <option>yes</option> flag,
+ eliminates that need. This is useful when deleting accounts from
+ within a script or some other automated means. 0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>info</command> <varname>account-id</varname></term>
+
+ <listitem>
+ <para>Display information about the given account.
+ Example:<programlisting>[root]# bbstoreaccounts info 1
+ Account ID: 00000001
+ Last object ID: 58757
+ Blocks used: 9864063 (38531.50Mb)
+ Blocks used by old files: 62058 (242.41Mb)
+Blocks used by deleted files: 34025 (132.91Mb)
+ Blocks used by directories: 6679 (26.09Mb)
+ Block soft limit: 11796480 (46080.00Mb)
+ Block hard limit: 13107200 (51200.00Mb)
+ Client store marker: 1139559852000000</programlisting></para>
+
+ <para>Explanation:</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term>Account ID</term>
+
+ <listitem>
+ <para>The account ID being displayed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Last Object ID</term>
+
+ <listitem>
+ <para>A counter that keeps track of the objects that
+ have been backed up. This number refers to the last file
+ that was written to the store. The ID is displayed as a
+ decimal number, and the object ID can be converted to a
+ path name to a file as follows: convert the number to
+ hex (e.g.: 58757 =&gt; 0xE585); The last backed up file
+ will be (relative from the client's store root):
+ <filename>e5/o85.rfw</filename>. Longer numbers infer
+ more directories in the structure, so as an example
+ 3952697264 as the last object ID gives 0xEB995FB0, which
+ translates to a backup pathname of
+ <filename>eb/99/5f/ob0.rfw</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Blocks used</term>
+
+ <listitem>
+ <para>The number of blocks used by the store. The size
+ in Mb depends on the number of blocks, as well as the
+ block size for the disc set given in <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>. In this case the block size is
+ 4096.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Blocks used by old files</term>
+
+ <listitem>
+ <para>The number of blocks occupied by files that have
+ newer versions in the store. This data is at risk for
+ being removed during housekeeping.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Blocks used by deleted files</term>
+
+ <listitem>
+ <para>The number of blocks used by files that have been
+ deleted on the client. This data is at risk for being
+ removed during housekeeping.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Blocks used by directories</term>
+
+ <listitem>
+ <para>The number of blocks used by directories in the
+ store.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Block soft limit</term>
+
+ <listitem>
+ <para>The soft limit in blocks. The soft limit is the
+ maximum guaranteed storage space available to the
+ account. When housekeeping starts, and the old and
+ deleted files are removed, they are removed in
+ chronological order (oldest first), until the data used
+ is less than the soft limit.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Block hard limit</term>
+
+ <listitem>
+ <para>The hard limit in blocks. The hard limit is the
+ most amount of storage the server will allow in an
+ account. Any data above this amount will be rejected.
+ Housekeeping will reduce the storage use, so more data
+ can be uploaded.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Client store marker</term>
+
+ <listitem>
+ <para><citerefentry>
+ <refentrytitle>bbstored</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry> uses this number to determine if it
+ needs to rescan the entire store. If this number is
+ different from the last time it checked, a rescan will
+ take place.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>setlimit</command> <varname>account-id</varname>
+ <varname>soft-limit</varname> <varname>hard-limit</varname></term>
+
+ <listitem>
+ <para>Changes the storage space allocation for the given
+ account. No server restart is needed.</para>
+
+ <para>Parameters:</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><option>account-id</option></term>
+
+ <listitem>
+ <para>The ID of the account to be modified.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>soft-limit</option></term>
+
+ <listitem>
+ <para>The soft limit is the amount of storage that the
+ server will guarantee to be available for
+ storage.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>hard-limit</option></term>
+
+ <listitem>
+ <para>The amount of storage that the the server will
+ allow before rejecting uploads and starting to eliminate
+ old and deleted files to get back down to
+ <option>soft-limit</option>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </refsection>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+
+ <para>Create an account with ID 3af on disc set 0, with a 20GB soft-limit
+ and a 22GB hard-limit:<programlisting>bbstoreaccounts create 3af 0 20G 22G</programlisting>Alter
+ existing account ID 20 to have a 50GB soft-limit and a 55GB
+ hard-limit:<programlisting>bbstoreaccounts setlimit 20 50G 55G</programlisting></para>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbstored/accounts.txt</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbstored</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbstored-certs.xml b/docs/docbook/bbstored-certs.xml
new file mode 100644
index 00000000..79308089
--- /dev/null
+++ b/docs/docbook/bbstored-certs.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbstored-certs</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbstored-certs</refname>
+
+ <refpurpose>Manage certificates for the Box Backup system</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbstored-certs</command>
+
+ <arg choice="plain">certs-dir</arg>
+
+ <arg choice="plain">command</arg>
+
+ <arg>arguments</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para><command>bbstored-certs</command> creates and signs certificates for
+ use in Box Backup. It allows the user to create and sign the server keys,
+ as well as signing client keys.</para>
+
+ <para>All commands must be followed by the <varname>certs-dir</varname>,
+ which is the directory in which the certificates are stored.</para>
+
+ <refsection>
+ <title>Commands</title>
+
+ <para>There are 3 commands:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>init</command></term>
+
+ <listitem>
+ <para>Create the <varname>certs-dir</varname>, and generate the
+ server keys for bbstored. <varname>certs-dir</varname> cannot
+ exist before running the command.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>sign-server</command>
+ <varname>servercsrfile</varname></term>
+
+ <listitem>
+ <para>Sign the server certificate. The
+ <varname>servercsrfile</varname> is the file generated by the
+ <command>init</command> command.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>sign</command>
+ <varname>clientcsrfile</varname></term>
+
+ <listitem>
+ <para>Sign a client certificate. The
+ <varname>clientcsrfile</varname> is generated during client setup.
+ See <citerefentry>
+ <refentrytitle>bbackupd-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>. Send the signed certificate back to the client,
+ and install according to the instructions given by
+ <command>bbackupd-config</command>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><citerefentry>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry> generates the <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry> file.</para>
+ </refsection>
+
+ <refsection>
+ <title>Bugs</title>
+
+ <para>If you find a bug in Box Backup, and you want to let us know about
+ it, join the <ulink
+ url="http://lists.warhead.org.uk/mailman/listinfo/boxbackup">mailing
+ list</ulink>, and send a description of the problem there.</para>
+
+ <para>To report a bug, give us at least the following information:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The version of Box Backup you are running</para>
+ </listitem>
+
+ <listitem>
+ <para>The platform you are running on (hardware and OS), for both
+ client and server.</para>
+ </listitem>
+
+ <listitem>
+ <para>If possible attach your config files (bbstored.conf,
+ bbackupd.conf) to the bug report.</para>
+ </listitem>
+
+ <listitem>
+ <para>Also attach any log file output that helps shed light on the
+ problem you are seeing.</para>
+ </listitem>
+
+ <listitem>
+ <para>And last but certainly not least, a description of what you are
+ seeing, in as much detail as possible.</para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbstored-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstoreaccounts</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbstored-config.xml b/docs/docbook/bbstored-config.xml
new file mode 100644
index 00000000..6d0113c1
--- /dev/null
+++ b/docs/docbook/bbstored-config.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbstored-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbstored-config</refname>
+
+ <refpurpose>Box Backup store daemon configuration file
+ generator</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbstored-config</command>
+
+ <arg choice="plain">configdir</arg>
+
+ <arg choice="plain">servername</arg>
+
+ <arg choice="plain">username</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>The bbstored-config script creates configuration files and server
+ certificates for a bbstored instance. It takes three parameters:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>configdir</term>
+
+ <listitem>
+ <para>The directory where config files will reside. A
+ <filename>bbstored</filename> subdirectory will be created where
+ several config files will reside. The
+ <filename>bbstored.conf</filename> file will be created in
+ <varname>configdir</varname>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>servername</term>
+
+ <listitem>
+ <para>The name of the server that is being configured. Usually the
+ fully qualified domain name of the machine in question.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>username</term>
+
+ <listitem>
+ <para>The name of the user that should be running the
+ <command>bbstored</command> process. Recommended name:
+ _bbstored.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>A valid <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry> must be found in configdir. Several steps are taken
+ during the run of <command>bbstored-config</command>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Server certificates are created. This requires interaction from
+ the operator.</para>
+ </listitem>
+
+ <listitem>
+ <para>The RAID volumes are checked to ensure that the configuration is
+ consistent and will work.</para>
+ </listitem>
+
+ <listitem>
+ <para>Instructions for next steps to take are shown. These steps may
+ be different for different OS platforms, so pay close attention to
+ these instructions.</para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbstored.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbstored.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored-certs</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbstored.conf.xml b/docs/docbook/bbstored.conf.xml
new file mode 100644
index 00000000..136b1bd0
--- /dev/null
+++ b/docs/docbook/bbstored.conf.xml
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbstored.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbstored.conf</refname>
+
+ <refpurpose>Box Backup store daemon configuration file</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>/etc/box/bbstored.conf</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>The following configuration options are valid:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>RaidFileConf</varname></term>
+
+ <listitem>
+ <para>Specifies the path to the <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>. This is normally
+ <filename>/etc/box/raidfile.conf</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>AccountDatabase</varname></term>
+
+ <listitem>
+ <para>Specifies the path to the account database created by
+ <citerefentry>
+ <refentrytitle>bbstoreaccounts</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>. This is usually
+ <filename>/etc/box/bbstored/accounts.txt</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExtendedLogging</varname></term>
+
+ <listitem>
+ <para>Specifies whether extended logging should be enabled to show
+ what commands are being received from clients.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TimeBetweenHousekeeping</varname></term>
+
+ <listitem>
+ <para>How long between scanning for files which need
+ deleting.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Server</varname></term>
+
+ <listitem>
+ <para>These options relate to the actual daemon.<variablelist>
+ <varlistentry>
+ <term><varname>PidFile</varname></term>
+
+ <listitem>
+ <para>The location of the pidfile, where the daemon's
+ process ID is kept.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>User</varname></term>
+
+ <listitem>
+ <para>The user to run as.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ListenAddresses</varname></term>
+
+ <listitem>
+ <para>The interface addresses to listen on. Hostnames may be
+ used instead of IP addresses. The format is:
+ <option>inet:hostname</option> or
+ <option>inet:10.0.0.1</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>CertificateFile</varname></term>
+
+ <listitem>
+ <para>The path to the server's public certificate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>PrivateKeyFile</varname></term>
+
+ <listitem>
+ <para>The path to the server's private key. This should only
+ be readable by root and/or the <option>User</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>TrustedCAsFile</varname></term>
+
+ <listitem>
+ <para>The Certificate Authority created by <citerefentry>
+ <refentrytitle>bbstored-certs</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+
+ <para>The following is an example bbstored.conf:</para>
+
+ <para><programlisting>RaidFileConf = /etc/box/raidfile.conf
+AccountDatabase = /etc/box/bbstored/accounts.txt
+
+TimeBetweenHousekeeping = 900
+
+Server
+{
+ PidFile = /var/run/bbstored.pid
+ User = _bbstored
+ ListenAddresses = inet:server.example.com
+ CertificateFile = /etc/box/bbstored/server.example.com-cert.pem
+ PrivateKeyFile = /etc/box/bbstored/server.example.com-key.pem
+ TrustedCAsFile = /etc/box/bbstored/clientCA.pem
+}</programlisting></para>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbstored.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbstored</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/bbstored.xml b/docs/docbook/bbstored.xml
new file mode 100644
index 00000000..81891a8d
--- /dev/null
+++ b/docs/docbook/bbstored.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>bbstored</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>bbstored</refname>
+
+ <refpurpose>Box Backup store daemon</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>bbstored</command>
+
+ <arg>config-file</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para><command>bbstored</command> runs on a central server. Clients
+ running <command>bbackupd</command> connect to the server and upload
+ files.</para>
+
+ <para>The only argument is optional and specifies a non-default
+ configuration file. By default it will look for the configuration file as
+ <filename>/etc/box/bbstored.conf</filename>.</para>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/bbstored.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbstored.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/html/bbdoc-man.css b/docs/docbook/html/bbdoc-man.css
new file mode 100644
index 00000000..0345560e
--- /dev/null
+++ b/docs/docbook/html/bbdoc-man.css
@@ -0,0 +1,104 @@
+body {
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ background-color: #edeef3;
+ font-size: .75em;
+ line-height: 180%;
+ text-align: left;
+ margin-top: 20px;
+ margin-right: 100px;
+ margin-left: 250px;
+ position: relative;
+ width: auto; }
+
+table {
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ background-color: #edeef3;
+ font-size: 10pt;
+ line-height: 100%; }
+
+
+code {
+ font-size: 11pt; }
+
+
+
+div.navheader {
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ background-color: #edeef3;
+ line-height: 100%; }
+
+#header {
+ background-color: #e4e6ed;
+ text-align: left;
+ padding-top: 10px;
+ margin-right: -100px;
+ margin-left: -250px;
+ top: 20px;
+ border-top: 1px solid #c4c4d5;
+ border-bottom: 1px solid white }
+
+#logo {
+ position: relative;
+ margin-left: 200px }
+
+
+#page {
+ font-size: .75em;
+ line-height: 180%;
+ text-align: left;
+ margin-top: 50px;
+ margin-right: 100px;
+ margin-left: 250px;
+ position: relative;
+ width: auto }
+
+#disc { }
+
+.informaltable td,tr {font-size: 1em;
+ line-height: 140%;
+ text-align: left;
+ background-color: #e4e6ed;
+ padding: 4px }
+
+tr,td {font-size: 1em;
+ line-height: 100%;
+ background-color: #edeef3; }
+
+pre, tt { font-size: 1.3em;
+ color: #088;
+ letter-spacing: 1px;
+ word-spacing: 2px}
+
+h1 {
+ color: #c00;
+ font-size: 16pt;
+ margin-bottom: 2em;
+ margin-left: -50px }
+
+h2 {
+ color: #324e95;
+ font-size: 12pt;
+ margin-top: 2em;
+ margin-left: -50px }
+
+h3 {
+ color: #324e95;
+ font-size: 10pt;
+ margin-top: 2em;
+ margin-left: -50px }
+
+dt { font-weight: bold }
+
+a:link {
+ color: #324e95;
+ text-decoration: none;
+ background-color: transparent }
+
+a:visited {
+ color: #90c;
+ text-decoration: none }
+
+a:hover {
+ color: #c00;
+ text-decoration: underline;
+ background-color: transparent }
diff --git a/docs/docbook/html/bbdoc.css b/docs/docbook/html/bbdoc.css
new file mode 100644
index 00000000..d3b4a1c2
--- /dev/null
+++ b/docs/docbook/html/bbdoc.css
@@ -0,0 +1,112 @@
+body {
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ background-color: #edeef3;
+ font-size: .75em;
+ line-height: 180%;
+ text-align: left;
+ margin-top: 20px;
+ margin-right: 100px;
+ margin-left: 250px;
+ position: relative;
+ width: auto; }
+
+table {
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ background-color: #edeef3;
+ font-size: 10pt;
+ line-height: 100%; }
+
+
+
+
+div.navheader {
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ background-color: #edeef3;
+ line-height: 100%; }
+
+#header {
+ background-color: #e4e6ed;
+ text-align: left;
+ padding-top: 10px;
+ margin-right: -100px;
+ margin-left: -250px;
+ top: 20px;
+ border-top: 1px solid #c4c4d5;
+ border-bottom: 1px solid white }
+
+#logo {
+ position: relative;
+ margin-left: 200px }
+
+
+#page {
+ font-size: .75em;
+ line-height: 180%;
+ text-align: left;
+ margin-top: 50px;
+ margin-right: 100px;
+ margin-left: 250px;
+ position: relative;
+ width: auto }
+
+#disc { }
+
+.informaltable td,tr {font-size: 1em;
+ line-height: 140%;
+ text-align: left;
+ background-color: #e4e6ed;
+ padding: 4px }
+
+tr,td {font-size: 1em;
+ line-height: 100%;
+ background-color: #edeef3; }
+
+pre, tt { font-size: 1.3em;
+ color: #088;
+ letter-spacing: 1px;
+ word-spacing: 2px}
+
+h1 {
+ color: #c00;
+ font-size: 16pt;
+ margin-bottom: 2em;
+ margin-left: -50px }
+
+h2 {
+ color: #324e95;
+ font-size: 12pt;
+ margin-top: 2em;
+ margin-left: -50px }
+
+h3 {
+ color: #324e95;
+ font-size: 10pt;
+ margin-top: 2em;
+ margin-left: -50px }
+
+dt { font-weight: bold }
+
+ul {
+ list-style-image: url(images/arrow.png) }
+
+ul li {
+ background-color: #e4e6ed;
+ margin: 1em 6em 1em -2em;
+ padding: 0.2em 0.5em 0.2em 1em;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #c4c4d5 #fff #fff #c4c4d5 }
+
+a:link {
+ color: #324e95;
+ text-decoration: none;
+ background-color: transparent }
+
+a:visited {
+ color: #90c;
+ text-decoration: none }
+
+a:hover {
+ color: #c00;
+ text-decoration: underline;
+ background-color: transparent }
diff --git a/docs/docbook/html/favicon.ico b/docs/docbook/html/favicon.ico
new file mode 100644
index 00000000..f8cbb3b3
--- /dev/null
+++ b/docs/docbook/html/favicon.ico
Binary files differ
diff --git a/docs/docbook/html/images/arrow.png b/docs/docbook/html/images/arrow.png
new file mode 100644
index 00000000..4c60805d
--- /dev/null
+++ b/docs/docbook/html/images/arrow.png
Binary files differ
diff --git a/docs/docbook/html/images/bblogo.png b/docs/docbook/html/images/bblogo.png
new file mode 100644
index 00000000..b33230b4
--- /dev/null
+++ b/docs/docbook/html/images/bblogo.png
Binary files differ
diff --git a/docs/docbook/html/images/stepahead.png b/docs/docbook/html/images/stepahead.png
new file mode 100644
index 00000000..9ac05b8c
--- /dev/null
+++ b/docs/docbook/html/images/stepahead.png
Binary files differ
diff --git a/docs/docbook/instguide.xml b/docs/docbook/instguide.xml
new file mode 100644
index 00000000..addef297
--- /dev/null
+++ b/docs/docbook/instguide.xml
@@ -0,0 +1,766 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
+<book>
+ <title>Box Backup Build and Installation Guide</title>
+
+ <preface>
+ <title>License</title>
+
+ <para>Copyright &copy; 2003 - 2007, Ben Summers and contributors.
+ All rights reserved.</para>
+
+ <para>Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.</para>
+ </listitem>
+
+ <listitem>
+ <para>Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.</para>
+ </listitem>
+
+ <listitem>
+ <para>All use of this software and associated advertising materials
+ must display the following acknowledgement: This product includes
+ software developed by Ben Summers.</para>
+ </listitem>
+
+ <listitem>
+ <para>The names of the Authors may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <para>[Where legally impermissible the Authors do not disclaim liability
+ for direct physical injury or death caused solely by defects in the
+ software unless it is modified by a third party.]</para>
+
+ <para>THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.</para>
+ </preface>
+
+ <chapter>
+ <title>Introduction</title>
+
+ <para>The backup daemon, bbackupd, runs on all machines to be backed up.
+ The store server daemon, bbstored runs on a central server. Data is sent
+ to the store server, which stores all data on local filesystems, that is,
+ only on local hard drives. Tape or other archive media is not used.</para>
+
+ <para>The system is designed to be easy to set up and run, and cheap to
+ use. Once set up, there should be no need for user or administrative
+ intervention, apart from usual system maintenance.</para>
+
+ <section>
+ <title>Client daemon</title>
+
+ <para>bbackupd is configured with a list of directories to back up. It
+ has a lazy approach to backing up data. Every so often, the directories
+ are scanned, and new data is uploaded to the server. This new data must
+ be over a set age before it is uploaded. This prevents rapid revisions
+ of a file resulting in many uploads of the same file in a short period
+ of time.</para>
+
+ <para>It can also operate in a snapshot mode, which behaves like
+ traditional backup software. When instructed by an external bbackupctl
+ program, it will upload all changed files to the server.</para>
+
+ <para>The daemon is always running, although sleeping most of the time.
+ In lazy mode, it is completely self contained -- scripts running under
+ cron jobs are not used. The objective is to keep files backed up, not to
+ make snapshots of the filesystem at particular points in time
+ available.</para>
+
+ <para>If an old version of the file is present on the server, a modified
+ version of the rsync algorithm is used to upload only the changed
+ portions of the file.</para>
+
+ <para>After a new version is uploaded, the old version is still
+ available (subject to disc space on the server). Similarly, a deleted
+ file is still available. The only limit to their availability is space
+ allocated to this account on the server</para>
+
+ <para>Future versions will add the ability to mark the current state of
+ files on the server, and restore from this mark. This will emulate the
+ changing of tapes in a tape backup system.</para>
+
+ <section>
+ <title>Restoration</title>
+
+ <para>Restoring files is performed using a query tool, bbackupquery.
+ This can be used to restore entire directories, or as an 'FTP-like'
+ tool to list and retrieve individual files. Old versions and deleted
+ files can be retrieved using this tool for as long as they are kept on
+ the server.</para>
+ </section>
+
+ <section>
+ <title>Client Resource Usage</title>
+
+ <para>bbackupd uses only a minimal amount of disc space to store
+ records on uploaded files -- less than 32 bytes per directory and file
+ over a set size threshold. However, it minimises the amount of queries
+ it must make to the server by storing, in memory, a data structure
+ which allows it to determine what data is new. It does not need to
+ store a record of all files, essentially just the directory names and
+ last modification times. This is not a huge amount of memory.</para>
+
+ <para>If there are no changes to the directories, then the client will
+ not even connect to the server.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Security</title>
+
+ <para>Box Backup is designed to be secure in several ways. The data
+ stored on the backup store server is encrypted using secret-key
+ cryptography. Additionally, the transport layer is encrypted using TLS,
+ to ensure that the communications can't be snooped.</para>
+
+ <section>
+ <title>Encryption</title>
+
+ <para>The files, directories, filenames and file attributes are all
+ encrypted. By examining the stored files on the server, it is only
+ possible to determine the approximate sizes of a files and the tree
+ structure of the disc (not names, just number of files and
+ subdirectories in a directory). By monitoring the actions performed by
+ a client, it is possible to determine the frequency and approximate
+ scope of changes to files and directories.</para>
+
+ <para>The connections between the server and client are encrypted
+ using TLS (latest version of SSL). Traffic analysis is possible to
+ some degree, but limited in usefulness.</para>
+
+ <para>An attacker will not be able to recover the backed up data
+ without the encryption keys. Of course, you won't be able to recover
+ your files without the keys either, so you must make a conventional,
+ secure, backup of these keys.</para>
+ </section>
+
+ <section>
+ <title>Authentication</title>
+
+ <para>SSL certificates are used to authenticate clients. UNIX user
+ accounts are not used to minimise the dependence on the configuration
+ of the operating system hosting the server.</para>
+
+ <para>A script is provided to run the necessary certification
+ authority with minimal effort.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Server daemon</title>
+
+ <para>The server daemon is designed to be simple to deploy, and run on
+ the cheapest hardware possible. To avoid the necessity to use expensive
+ hardware RAID or software RAID with complex setup, it (optionally)
+ stores files using RAID techniques.</para>
+
+ <para>It does not need to run as a privileged user.</para>
+
+ <para>Each account has a set amount of disc space allocated, with a soft
+ and a hard limit. If the account exceeds the soft limit, a housekeeping
+ process will start deleting old versions and deleted files to reduce the
+ space used to below the soft limit. If the backup client attempts to
+ upload a file which causes the store to exceed the hard limit, the
+ upload will be refused.</para>
+ </section>
+ </chapter>
+
+ <chapter>
+ <title>Building and installing</title>
+
+ <section>
+ <title>Before you start</title>
+
+ <para>Firstly, check that all the clocks on your clients, servers and
+ signing machines are accurate and in sync. A disagreement in time
+ between a client and a server is the biggest cause of installation
+ difficulties, as the times in the generated certificates will cause
+ login failures if the start date is in the future.</para>
+ </section>
+
+ <section>
+ <title>Box Backup compile</title>
+
+ <para>In the following instructions, replace 0.00 with the actual
+ version number of the archive you have downloaded.</para>
+
+ <para>For help building on Windows, see the <link linkend="AppB">Windows
+ Compile Appendix</link>. And if you want to build a Linux RPM, <link
+ linkend="AppC">look here</link>.</para>
+
+ <para>You need the latest version of OpenSSL, as some of the extra APIs
+ it provides are required. You should have this anyway, as earlier
+ versions have security flaws. (If you have an earlier version installed,
+ the configuration script will give you instructions on enabling
+ experimental support for older versions.)</para>
+
+ <para>See <link linkend="AppA">OpenSSL notes</link> for more information
+ on OpenSSL issues.</para>
+
+ <para>There are some notes in the archive about compiling on various
+ platforms within the boxbackup-0.00 directory -- read them first. For
+ example, if you are compiling under Linux, look for LINUX.txt as
+ boxbackup-0.00/LINUX.txt after untaring the archive.</para>
+
+ <para>Download the archive, then in that directory type</para>
+
+ <programlisting>tar xvzf boxbackup-0.00.tgz
+cd boxbackup-0.00
+./configure
+make</programlisting>
+
+ <para>The server and client will be built and packaged up for
+ installation on this machine, or ready to be transferred as tar files to
+ another machine for installation.</para>
+
+ <para>This builds two parcels of binaries and scripts, 'backup-client'
+ and 'backup-server'. The generated installation scripts assumes you want
+ everything installed in <emphasis
+ role="bold">/usr/local/bin</emphasis></para>
+
+ <para>Optionally, type <emphasis role="bold">make test</emphasis> to run
+ all the tests.</para>
+ </section>
+
+ <section>
+ <title>Local installation</title>
+
+ <para>Type <emphasis role="bold">make install-backup-client</emphasis>
+ to install the backup client.</para>
+
+ <para>Type <emphasis role="bold">make install-backup-server</emphasis>
+ to install the backup server.</para>
+ </section>
+
+ <section>
+ <title>Remote installation</title>
+
+ <para>In the parcels directory, there are tar files for each parcel. The
+ name reflects the version and platform you have built it for.</para>
+
+ <para>Transfer this tar file to the remote server, and unpack it, then
+ run the install script. For example:</para>
+
+ <programlisting>tar xvzf boxbackup-0.00-backup-server-OpenBSD.tgz
+cd boxbackup-0.00-backup-server-OpenBSD
+./install-backup-server</programlisting>
+ </section>
+
+ <section>
+ <title>Configure options</title>
+
+ <para>You can use arguments to the configure script to adjust the
+ compile and link lines in the generated Makefiles, should this be
+ necessary for your platform. The configure script takes the usual GNU
+ autoconf arguments, a full list of which can be obtained with <emphasis
+ role="bold">--help</emphasis>. Additional options for Box Backup
+ include:</para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry char="-">--enable-gnu-readline</entry>
+
+ <entry>Use GNU readline if present. Linking Box Backup against
+ GNU readline may create licence implications if you then
+ distribute the binaries. libeditline is also supported as a safe
+ alternative, and is used by default if available.</entry>
+ </row>
+
+ <row>
+ <entry>--disable-largefile</entry>
+
+ <entry>Omit support for large files</entry>
+ </row>
+
+ <row>
+ <entry>--with-bdb-lib=DIR</entry>
+
+ <entry>Specify Berkeley DB library location</entry>
+ </row>
+
+ <row>
+ <entry>--with-bdb-headers=DIR</entry>
+
+ <entry>Specify Berkeley DB headers location</entry>
+ </row>
+
+ <row>
+ <entry>--with-random=FILE</entry>
+
+ <entry>Use FILE as random number seed (normally
+ auto-detected)</entry>
+ </row>
+
+ <row>
+ <entry>--with-tmp-dir=DIR</entry>
+
+ <entry>Directory for temporary files (normally /tmp)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>See <link linkend="AppA">OpenSSL notes</link> for the OpenSSL
+ specific options.</para>
+ </section>
+
+ <section>
+ <title>Tests</title>
+
+ <para>There are a number of unit tests provided. To compile and run one
+ type:</para>
+
+ <programlisting>./runtest.pl bbackupd release
+./runtest.pl common debug
+./runtest.pl ALL</programlisting>
+
+ <para>The runtest.pl script will compile and run the test. The first
+ argument is the test name, and the second the type of build. Use ALL as
+ a test name to run all the tests.</para>
+
+ <para>The output from the tests is slightly muddled using this script.
+ If you're developing, porting or trying out new things, it might be
+ better to use the following scheme:</para>
+
+ <programlisting>cd test/bbackupd
+make
+cd ../../debug/test/bbackupd
+./t</programlisting>
+
+ <para>or in release mode...</para>
+
+ <programlisting>cd test/bbackupd
+make -D RELEASE
+cd ../../release/test/bbackupd
+./t</programlisting>
+
+ <para>(use RELEASE=1 with GNU make)</para>
+
+ <para>I tend to use two windows, one for compilation, and one for
+ running tests.</para>
+ </section>
+ </chapter>
+
+ <appendix>
+ <title id="AppA">Box Backup and SSL</title>
+
+ <section>
+ <title>General notes</title>
+
+ <para>Ideally, you need to use version 0.9.7 or later of OpenSSL. If
+ this is installed on your system by default (and it is on most recent
+ releases of UNIX like OSes) then everything should just work.</para>
+
+ <para>However, if it isn't, you have a few options.</para>
+
+ <section>
+ <title>Upgrade your installation</title>
+
+ <para>The best option is to upgrade your installation to use 0.9.7.
+ Hopefully your package manager will make this easy for you. This may
+ require reinstallation of lots of software which depends on OpenSSL,
+ so may not be ideal.</para>
+
+ <para>(But as there have been a few security flaws in OpenSSL
+ recently, you probably want to upgrade it anyway.)</para>
+ </section>
+
+ <section>
+ <title>Install another OpenSSL</title>
+
+ <para>The second best option is to install another copy. If you
+ download and install from source, it will probably install into
+ /usr/local/ssl. You can then configure Box Backup to use it
+ using:</para>
+
+ <programlisting>./configure --with-ssl-headers=/usr/local/ssl/include --with-ssl-lib=/usr/local/ssl/lib</programlisting>
+
+ <para>which will set up the various includes and libraries for
+ you.</para>
+
+ <para>The configuration scripts may be a problem, depending on your
+ installation. See below for more information.</para>
+ </section>
+
+ <section>
+ <title>Use the old version of OpenSSL</title>
+
+ <para>If you have an old version installed, the configuration script
+ will give you instructions on how to enable support for older
+ versions. Read the warnings, and please, whatever you do, don't
+ release binary packages or ports which enable this option.</para>
+
+ <para>You may have issues with the configuration scripts, see
+ below.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>If you have problems with the config scripts</title>
+
+ <para>If you get OpenSSL related errors with the configuration scripts,
+ there are two things to check:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The bin directory within your OpenSSL directory is in the path
+ (if you have installed another version)</para>
+ </listitem>
+
+ <listitem>
+ <para>You have an openssl.cnf file which works and can be
+ found.</para>
+ </listitem>
+ </itemizedlist>
+
+ <section>
+ <title>OpenSSL config file</title>
+
+ <para>You need to have an openssl.cnf file. The default will generally
+ work well (see example at end). Make sure the openssl utility can find
+ it, either set the OPENSSL_CONF environment variable, or install it
+ into the location that is mentioned in the error messages.</para>
+
+ <para>Example OpenSSL config file:</para>
+
+ <programlisting id="openssl.cnf" xreflabel="openssl.cnf">#
+# OpenSSL example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = /dev/arandom
+
+####################################################################
+[ req ]
+default_bits = 1024
+default_keyfile = privkey.pem
+distinguished_name = req_distinguished_name
+attributes = req_attributes
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+#countryName_default = AU
+countryName_min = 2
+countryName_max = 2
+
+stateOrProvinceName = State or Province Name (full name)
+#stateOrProvinceName_default = Some-State
+
+localityName = Locality Name (eg, city)
+
+0.organizationName = Organization Name (eg, company)
+#0.organizationName_default = Internet Widgits Pty Ltd
+
+# we can do this but it is not needed normally :-)
+#1.organizationName = Second Organization Name (eg, company)
+#1.organizationName_default = CryptSoft Pty Ltd
+
+organizationalUnitName = Organizational Unit Name (eg, section)
+#organizationalUnitName_default =
+
+commonName = Common Name (eg, fully qualified host name)
+commonName_max = 64
+
+emailAddress = Email Address
+emailAddress_max = 64
+
+[ req_attributes ]
+challengePassword = A challenge password
+challengePassword_min = 4
+challengePassword_max = 20
+
+unstructuredName = An optional company name
+
+[ x509v3_extensions ]
+
+nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem
+nsComment = "This is a comment"
+
+# under ASN.1, the 0 bit would be encoded as 80
+nsCertType = 0x40</programlisting>
+ </section>
+ </section>
+ </appendix>
+
+ <appendix>
+ <title id="AppB">Compiling bbackupd on Windows using Visual C++</title>
+
+ <para>This Appendix explains how to build the bbackupd daemon for Windows
+ using the Visual C++ compiler.</para>
+
+ <para>If you have any problems following these instructions, please sign
+ up to the <ulink
+ url="http://lists.warhead.org.uk/mailman/listinfo/boxbackup">mailing
+ lis</ulink>t and report them to us, or send an email to <ulink
+ url="mailto:bbwiki@qwirx.com">Chris Wilson</ulink>. Thanks!</para>
+
+ <para><emphasis role="bold">Note</emphasis>: bbstored will not be built
+ with this process. bbstored is not currently supported on Windows. There
+ are no plans for bbstored support on Windows.</para>
+
+ <section>
+ <title>Tools</title>
+
+ <para>You will need quite a bit of software to make this work. All of it
+ is available for free on the Internet, although Visual C++ Express has
+ license restrictions and a time limit.</para>
+
+ <section>
+ <title>Visual C++</title>
+
+ <para>Microsoft's Visual C++ compiler and development environment are
+ part of their commercial product <ulink
+ url="http://msdn.microsoft.com/vstudio/">Visual Studio</ulink>. Visual
+ Studio 2005 is supported, and 2003 should work as well.</para>
+
+ <para>You can also <ulink
+ url="http://msdn.microsoft.com/vstudio/express/visualc/download/">download</ulink>
+ a free copy of Visual C++ 2005 Express. This copy must be registered
+ (activated) within 30 days, and is free for one year.</para>
+
+ <para>You will need the <ulink
+ url="http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/">Platform
+ SDK</ulink> to allow you to compile Windows applications.</para>
+ </section>
+
+ <section>
+ <title>Perl</title>
+
+ <para>Download and install <ulink
+ url="http://www.activestate.com/Products/ActivePerl/">ActivePerl for
+ Windows</ulink>, which you can probably find <ulink
+ url="http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi">here</ulink>.</para>
+ </section>
+
+ <section>
+ <title>Libraries</title>
+
+ <para>You will need to download and install several libraries. They
+ must all be built in the same directory, to be able to link
+ properly.</para>
+
+ <para>Choose a directory where you will unpack and compile OpenSSL,
+ Zlib and Box Backup. We will call this the base directory. An example
+ might be:</para>
+
+ <programlisting>C:\Documents and Settings\Your Username\Desktop\Box</programlisting>
+
+ <para>Make sure you know the full path to this directory.</para>
+
+ <section>
+ <title>OpenSSL</title>
+
+ <para>You will need to compile OpenSSL using Visual C++. The latest
+ release at this time, OpenSSL 0.9.8a, does not compile with Visual
+ C++ 2005 out of the box, so you need <ulink
+ url="http://www.boxbackup.org/svn/box/chris/win32/support/openssl-0.9.8a-vc2005.zip">a
+ patched version</ulink>. The <ulink
+ url="http://www.openssl.org/source/openssl-0.9.8a.tar.gz">original
+ source</ulink> and <ulink
+ url="http://www.boxbackup.org/svn/box/chris/win32/support/openssl-0.9.8a-win32fix.patch">patch</ulink>
+ are also available.</para>
+
+ <para>To compile OpenSSL:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Use a Windows unzipper such as <ulink
+ url="http://www.winzip.com/">WinZip (free trial)</ulink> to
+ extract the <emphasis
+ role="bold">openssl-0.9.8a-vc2005.tar.gz</emphasis> archive,
+ which you just downloaded, into the base directory.</para>
+ </listitem>
+
+ <listitem>
+ <para>Rename the folder from <emphasis
+ role="bold">openssl-0.9.8a-vc2005</emphasis> to <emphasis
+ role="bold">openssl</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>Open a command shell (run <emphasis
+ role="bold">cmd.exe</emphasis>) and <emphasis
+ role="bold">cd</emphasis> to the openssl directory</para>
+ </listitem>
+
+ <listitem>
+ <para>Run the following commands:</para>
+
+ <programlisting>perl Configure VC-WIN32
+ms\do_ms
+"c:\program files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
+nmake -f ms\ntdll.mak</programlisting>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Zlib</title>
+
+ <para>You will need to download the <ulink
+ url="http://www.zlib.net/zlib123-dll.zip">Zlib compiled DLL</ulink>.
+ Create a directory called <emphasis role="bold">zlib</emphasis> in
+ the base directory, and unzip the file you just downloaded into that
+ directory. You don't need to compile anything.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Download Box Backup</title>
+
+ <para>The first version of Box Backup that's known to compile and with
+ Visual C++ 2005 is available on the <ulink
+ url="http://www.boxbackup.org/svn/box/chris/win32/vc2005-compile-fixes/">Subversion
+ server</ulink>. However, this version has not been extensively tested
+ and may be out of date.</para>
+
+ <para>The changes are expected to be merged into the <ulink
+ url="http://www.boxbackup.org/svn/box/trunk">Subversion trunk</ulink>
+ at some point, and this page should then be updated. If in doubt,
+ please sign up to the <ulink
+ url="http://lists.warhead.org.uk/mailman/listinfo/boxbackup">mailing
+ list</ulink> and ask us.</para>
+
+ <para>To get the source code out of Subversion you will need a <ulink
+ url="http://subversion.tigris.org/files/documents/15/25364/svn-1.2.3-setup.exe">Subversion
+ client for Windows</ulink>. After installing it, open a new command
+ prompt, go to the base directory, and type:</para>
+
+ <programlisting>svn co http://www.boxbackup.org/svn/box/chris/win32/vc2005-compile-fixes/ boxbackup</programlisting>
+
+ <para>This should create a directory called <emphasis
+ role="bold">boxbackup</emphasis> inside the base directory.</para>
+ </section>
+
+ <section>
+ <title>Configure Box Backup</title>
+
+ <para>Open a command prompt, change to the base directory then
+ <emphasis role="bold">boxbackup</emphasis>, and run <emphasis
+ role="bold">win32.bat</emphasis> to configure the sources. Otherwise,
+ Visual C++ will complain about missing files whose names start with
+ <emphasis role="bold">autogen</emphasis>, and missing <emphasis
+ role="bold">config.h</emphasis>.</para>
+ </section>
+
+ <section>
+ <title>Compile Box Backup</title>
+
+ <para>Open Visual C++. Choose "File/Open/Project", navigate to the
+ base directory, then to <emphasis
+ role="bold">boxbackup\infrastructure\msvc\2005</emphasis> (or
+ <emphasis role="bold">2003</emphasis> if using Visual Studio 2003),
+ and open any project or solution file in that directory.</para>
+
+ <para>Press F7 to compile Box Backup. If the compilation is
+ successful, <emphasis
+ role="bold">boxbackup\Debug\bbackupd.exe</emphasis> will be
+ created.</para>
+ </section>
+
+ <section>
+ <title>Install Box Backup</title>
+
+ <para>Create the destination directory, <emphasis
+ role="bold">C:\Program Files\Box Backup\bbackupd</emphasis>.</para>
+
+ <para>Write a configuration file, keys and certificate on a Unix
+ machine, and copy them into the <emphasis role="bold">Box
+ Backup</emphasis> directory, together with the following files from
+ the base directory:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>boxbackup\Debug\bbackupd.exe</para>
+ </listitem>
+
+ <listitem>
+ <para>openssl\out32dll\libeay32.dll</para>
+ </listitem>
+
+ <listitem>
+ <para>openssl\out32dll\ssleay32.dll</para>
+ </listitem>
+
+ <listitem>
+ <para>zlib\zlib1.dll</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ensure that the user running Box Backup can read from the
+ <emphasis role="bold">Box Backup</emphasis> directory, and write to
+ the <emphasis role="bold">bbackupd</emphasis> directory inside
+ it.</para>
+
+ <para>Run Box Backup by double-clicking on it, and check that it
+ connects to the server. If the window opens and closes immediately,
+ it's probably due to a problem with the configuration file - check the
+ Windows Event Viewer for details.</para>
+ </section>
+
+ <section>
+ <title>Windows Service</title>
+
+ <para>Box Backup can also run as a Windows service, in which case it
+ will be automatically started at boot time in the background. To
+ install this, open a command prompt, and run:</para>
+
+ <programlisting>cd "C:\Program Files\Box Backup"
+bbackupd.exe -i</programlisting>
+
+ <para>This should output Box Backup service installed.</para>
+ </section>
+ </section>
+ </appendix>
+
+ <appendix>
+ <title id="AppC">Compilation and installation by building an RPM on
+ Linux</title>
+
+ <para>It is very easy to build an RPM of Box Backup on Linux platforms.
+ This should work on all Red Hat distributions (including Fedora), SuSE,
+ and probably others too.</para>
+
+ <para>Given that you have the correct development packages installed
+ simply execute this command (replacing the version number):</para>
+
+ <programlisting>rpmbuild -ta boxbackup-0.00.tgz</programlisting>
+
+ <para>rpmbuild will report where the packages have been written to, and
+ these can be installed in the normal manner.</para>
+
+ <para>If you have never built an RPM before you should set up a convenient
+ build area as described in the <ulink
+ url="http://www.rpm.org/max-rpm/s1-rpm-anywhere-different-build-area.html">RPM
+ book</ulink>.</para>
+
+ <para>If you wish to customise the package you can find the spec file in
+ the contrib/rpm directory.</para>
+ </appendix>
+</book>
diff --git a/docs/docbook/raidfile-config.xml b/docs/docbook/raidfile-config.xml
new file mode 100644
index 00000000..78a3e94c
--- /dev/null
+++ b/docs/docbook/raidfile-config.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>raidfile-config</refname>
+
+ <refpurpose>Configure Box Backup's RAID files</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>raidfile-config</command>
+
+ <arg choice="plain">config-dir</arg>
+
+ <arg choice="plain">blocksize</arg>
+
+ <arg choice="plain">dir1 <arg>dir2 <arg>dir3</arg></arg></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>raidfile-config creates a raidfile.conf file for Box Backup. This
+ file holds information about the directories used to store backups in. Box
+ Backup supports userland RAID, in a restricted RAID5 configuration, where
+ 3 and only 3 'drives' are supported. You can read more about RAID5 (and
+ other RAID-levels) <ulink
+ url="http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks#RAID_5">here</ulink>.</para>
+
+ <refsection>
+ <title>Parameters</title>
+
+ <para>The parameters are as follows:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>config-dir</varname></term>
+
+ <listitem>
+ <para>The directory path where configuration files are located.
+ Usually this is <filename>/etc/box</filename>.
+ <filename>raidfile.conf</filename> will be written in this
+ directory.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>blocksize</varname></term>
+
+ <listitem>
+ <para>The block size used for file storage in the system, in
+ bytes. Using a multiple of the file system block size is a good
+ strategy. Depending on the size of the files you will be backing
+ up, this multiple varies. Of course it also depends on the native
+ block size of your file system.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dir1</varname></term>
+
+ <listitem>
+ <para>The first directory in the built-in RAID array.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dir2</varname></term>
+
+ <listitem>
+ <para>The second directory in the built-in RAID array. If you are
+ not using the built-in RAID functionality, this field should be
+ ignored. You should not use the built-in RAID if you have a
+ hardware RAID solution or if you're using another type of software
+ RAID (like md on Linux).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dir3</varname></term>
+
+ <listitem>
+ <para>The third directory in the built-in RAID array. The same
+ notes that apply to <varname>dir2</varname> also apply to
+ <varname>dir3</varname>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Note that there are currently no way to add multiple disk sets to
+ the raidfile.conf file using command line tools, etc. See <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry> for details on adding more disks.</para>
+ </refsection>
+ </refsection>
+
+ <refsection>
+ <title>Bugs</title>
+
+ <para>If you find a bug in Box Backup, and you want to let us know about
+ it, join the <ulink
+ url="http://lists.warhead.org.uk/mailman/listinfo/boxbackup">mailing
+ list</ulink>, and send a description of the problem there.</para>
+
+ <para>To report a bug, give us at least the following information:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The version of Box Backup you are running</para>
+ </listitem>
+
+ <listitem>
+ <para>The platform you are running on (hardware and OS), for both
+ client and server.</para>
+ </listitem>
+
+ <listitem>
+ <para>If possible attach your config files (bbstored.conf,
+ bbackupd.conf) to the bug report.</para>
+ </listitem>
+
+ <listitem>
+ <para>Also attach any log file output that helps shed light on the
+ problem you are seeing.</para>
+ </listitem>
+
+ <listitem>
+ <para>And last but certainly not least, a description of what you are
+ seeing, in as much detail as possible.</para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><command>raidfile-config</command> generates the <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry> file.</para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>bbstored-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/docbook/raidfile.conf.xml b/docs/docbook/raidfile.conf.xml
new file mode 100644
index 00000000..7a8b6410
--- /dev/null
+++ b/docs/docbook/raidfile.conf.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <refmeta>
+ <refentrytitle>raidfile.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+
+ <refmiscinfo class="manual">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="source">Box Backup</refmiscinfo>
+
+ <refmiscinfo class="version">0.11</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>raidfile.conf</refname>
+
+ <refpurpose>Userland RAID for Box Backup</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>/etc/box/raidfile.conf</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+
+ <para>The raidfile.conf is usually generated by <citerefentry>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry> but may be manually edited if the store locations move
+ or if more than one disc set is required.</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term>disc<varname>X</varname></term>
+
+ <listitem>
+ <para>Specifies a set of discs.</para>
+
+ <para><variablelist>
+ <varlistentry>
+ <term><varname>SetNumber</varname></term>
+
+ <listitem>
+ <para>The set number of the RAID disc, referenced by each
+ account.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>BlockSize</varname></term>
+
+ <listitem>
+ <para>The block size of the file system (usually 2048).
+ Under BSD with FFS, set this to your file system's
+ fragment size (most likely an 8th of the block
+ size).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Dir0</varname></term>
+
+ <listitem>
+ <para>The first directory in the RAID array.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Dir1</varname></term>
+
+ <listitem>
+ <para>The second directory in the RAID array. If you do
+ not wish to use the built-in RAID functionality, this
+ field should be set to the same as
+ <varname>Dir0</varname>. You should not use the built-in
+ RAID if you have a hardware RAID solution or if you're
+ using another type of software RAID (like md on
+ Linux).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Dir2</varname></term>
+
+ <listitem>
+ <para>The third directory in the RAID array. The same
+ notes that apply to <varname>Dir2</varname> also apply to
+ <varname>Dir3</varname>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </refsection>
+
+ <refsection>
+ <title>Files</title>
+
+ <para><filename>/etc/box/raidfile.conf</filename></para>
+ </refsection>
+
+ <refsection>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>raidfile-config</refentrytitle>
+
+ <manvolnum>8</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>bbstored.conf</refentrytitle>
+
+ <manvolnum>5</manvolnum>
+ </citerefentry></para>
+ </refsection>
+
+ <refsection>
+ <title>Authors</title>
+
+ <para><author>
+ <personname>Ben Summers</personname>
+ </author></para>
+
+ <para><author>
+ <personname>Per Thomsen</personname>
+ </author></para>
+
+ <para><author>
+ <personname>James O'Gorman</personname>
+ </author></para>
+ </refsection>
+</refentry>
diff --git a/docs/images/bblogo-alpha.xcf b/docs/images/bblogo-alpha.xcf
new file mode 100644
index 00000000..18f494f9
--- /dev/null
+++ b/docs/images/bblogo-alpha.xcf
Binary files differ
diff --git a/docs/tools/generate_except_xml.pl b/docs/tools/generate_except_xml.pl
new file mode 100644
index 00000000..38ee9074
--- /dev/null
+++ b/docs/tools/generate_except_xml.pl
@@ -0,0 +1,74 @@
+#!/usr/bin/perl -w
+use strict;
+
+open (EXCEPT, "< $ARGV[0]") or die "Can't open $ARGV[0]: $!\n";
+open (DOCBOOK, "> $ARGV[1]") or die "Can't open $ARGV[1] for writing: $!\n";
+
+print DOCBOOK <<EOD;
+<?xml version="1.0" encoding="UTF-8"?>
+
+<appendix>
+ <title>Exception codes</title>
+
+EOD
+my $sectionName;
+my $sectionNum;
+my $sectionDesc;
+my $exceptionCode;
+my $exceptionShortDesc;
+my $exceptionLongDesc;
+while(<EXCEPT>)
+{
+ next if(m/^#/);
+ chomp;
+ if(m/^EXCEPTION TYPE (\w+) (\d+)/)
+ {
+ $sectionName = ucfirst(lc($1));
+ $sectionNum = $2;
+ if($sectionName ne "Common")
+ {
+ $sectionDesc = "the " . $sectionName;
+ }
+ else
+ {
+ $sectionDesc = "any";
+ }
+ print DOCBOOK <<EOD;
+ <section>
+ <title>$sectionName Exceptions ($sectionNum)</title>
+
+ <para>These are exceptions that can occur in $sectionDesc module
+ of the system.</para>
+
+ <itemizedlist>
+EOD
+ }
+
+ # The END TYPE line
+ if(m/^END TYPE$/)
+ {
+ print DOCBOOK " </itemizedlist>\n </section>\n";
+ }
+
+ # The actual exceptions
+ if(m/(\(\d+\/\d+\)) - (\w+ \w+)(?: - )?(.*)$/)
+ {
+ $exceptionCode = $1;
+ $exceptionShortDesc = $2;
+ $exceptionLongDesc = $3;
+
+ print DOCBOOK " <listitem>\n <para><emphasis role=\"bold\">";
+ print DOCBOOK $exceptionCode . ": " . $exceptionShortDesc . "</emphasis>";
+ if($exceptionLongDesc ne "")
+ {
+ print DOCBOOK " -- " . $exceptionLongDesc;
+ }
+ print DOCBOOK "</para>\n </listitem>\n";
+ }
+}
+
+print DOCBOOK "</appendix>\n";
+
+close EXCEPT;
+close DOCBOOK;
+
diff --git a/docs/xsl-generic/VERSION b/docs/xsl-generic/VERSION
new file mode 100644
index 00000000..14b04f23
--- /dev/null
+++ b/docs/xsl-generic/VERSION
@@ -0,0 +1,113 @@
+<?xml version='1.0'?> <!-- -*- nxml -*- vim: set foldlevel=2: -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fm="http://freshmeat.net/projects/freshmeat-submit/"
+ xmlns:sf="http://sourceforge.net/"
+ xmlns:dyn="http://exslt.org/dynamic"
+ xmlns:saxon="http://icl.com/saxon"
+ exclude-result-prefixes="fm sf"
+ version='1.0'>
+
+<xsl:output omit-xml-declaration="yes"/>
+
+<xsl:param name="get"/>
+<xsl:param name="VERSION" select="string(document('')//fm:Version[1])"/>
+<xsl:param name="Tag" select="concat('V',translate(string(document('')//fm:Version[1]),'.',''))"/>
+<xsl:param name="DistroTitle" select="string(document('')//fm:Branch[1])"/>
+<xsl:param name="sf-relid" select="0"/>
+
+<xsl:param name="DistroName">docbook-xsl</xsl:param>
+<xsl:param name="PreviousRelease">1.72.0</xsl:param>
+<xsl:param name="PreviousReleaseRevision">6549</xsl:param>
+<xsl:param name="Revision">$Revision: 7388 $</xsl:param>
+<xsl:param name="VersionFileURL">$URL: https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl/VERSION $</xsl:param>
+
+<xsl:strip-space elements="fm:*"/>
+
+<fm:project>
+ <fm:Project>DocBook</fm:Project>
+ <fm:Branch>XSL Stylesheets</fm:Branch>
+ <fm:Version>1.73.2</fm:Version>
+<!--
+ <fm:License>MIT/X Consortium License</fm:License>
+-->
+ <fm:Release-Focus>
+<!-- * Initial freshmeat announcement -->
+<!-- * Documentation -->
+<!-- * Code cleanup -->
+<!-- * Minor feature enhancements -->
+<!-- * Major feature enhancements -->
+Minor bugfixes
+<!-- * Major bugfixes -->
+<!-- * Minor security fixes -->
+<!-- * Major security fixes -->
+ </fm:Release-Focus>
+ <fm:Home-Page-URL>http://sourceforge.net/projects/docbook/</fm:Home-Page-URL>
+ <fm:Gzipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.tar.gz?download</fm:Gzipped-Tar-URL>
+ <fm:Zipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.zip?download</fm:Zipped-Tar-URL>
+ <fm:Bzipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.bz2?download</fm:Bzipped-Tar-URL>
+ <fm:Changelog-URL>http://sourceforge.net/project/shownotes.php?release_id={SFRELID}</fm:Changelog-URL>
+ <fm:CVS-URL>http://docbook.svn.sourceforge.net/viewvc/docbook/</fm:CVS-URL>
+ <fm:Mailing-List-URL>http://lists.oasis-open.org/archives/docbook-apps/</fm:Mailing-List-URL>
+ <fm:Changes>This is a bug-fix update to the 1.73.1 release.
+</fm:Changes>
+</fm:project>
+
+<xsl:template match="/" priority="-100">
+ <xsl:choose>
+ <xsl:when test="$get = 'Tag'">
+ <xsl:value-of select="$Tag"/>
+ </xsl:when>
+ <xsl:when test="$get = 'PreviousRelease'">
+ <xsl:value-of select="$PreviousRelease"/>
+ </xsl:when>
+ <xsl:when test="$get = 'PreviousReleaseRevision'">
+ <xsl:value-of select="$PreviousReleaseRevision"/>
+ </xsl:when>
+ <xsl:when test="$get = 'DistroTitle'">
+ <xsl:value-of select="$DistroTitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$sf-relid = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>You must specify the sf-relid as a parameter.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:apply-templates select="//fm:project"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="fm:project">
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:apply-templates select="fm:Changes" mode="text"/>
+</xsl:template>
+
+<xsl:template match="fm:Changes"/>
+
+<xsl:template match="fm:Gzipped-Tar-URL|fm:Zipped-Tar-URL|fm:Bzipped-Tar-URL">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="substring-before(., '{DISTRONAME-VERSION}')"/>
+ <xsl:value-of select="concat($DistroName, '-', $VERSION)"/>
+ <xsl:value-of select="substring-after(., '{DISTRONAME-VERSION}')"/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="fm:Changelog-URL">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="substring-before(., '{SFRELID}')"/>
+ <xsl:value-of select="$sf-relid"/>
+ <xsl:value-of select="substring-after(., '{SFRELID}')"/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="fm:*">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/af.xml b/docs/xsl-generic/common/af.xml
new file mode 100644
index 00000000..a60fe6a3
--- /dev/null
+++ b/docs/xsl-generic/common/af.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="af" english-language-name="Afrikaans">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/af.xml -->
+<!-- * -->
+<!-- * E-mail the edited af.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Samevatting"/>
+<l:gentext key="abstract" text="samevatting"/>
+<l:gentext key="Answer" text="Antwoord:"/>
+<l:gentext key="answer" text="antwoord:"/>
+<l:gentext key="Appendix" text="Aanhangsel"/>
+<l:gentext key="appendix" text="aanhangsel"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="artikel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografie"/>
+<l:gentext key="bibliography" text="bibliografie"/>
+<l:gentext key="Book" text="Boek"/>
+<l:gentext key="book" text="boek"/>
+<l:gentext key="CAUTION" text="PAS OP"/>
+<l:gentext key="Caution" text="Pas op"/>
+<l:gentext key="caution" text="pas op"/>
+<l:gentext key="Chapter" text="Hoofdstuk"/>
+<l:gentext key="chapter" text="hoofdstuk"/>
+<l:gentext key="Colophon" text="Kolifon"/>
+<l:gentext key="colophon" text="kolifon"/>
+<l:gentext key="Copyright" text="Kopie reg"/>
+<l:gentext key="copyright" text="kopie reg"/>
+<l:gentext key="Dedication" text="Opgedra aan"/>
+<l:gentext key="dedication" text="opgedra aan"/>
+<l:gentext key="Edition" text="Uitgawe"/>
+<l:gentext key="edition" text="uitgawe"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Vergelyking"/>
+<l:gentext key="equation" text="vergelyking"/>
+<l:gentext key="Example" text="Voorbeeld"/>
+<l:gentext key="example" text="voorbeeld"/>
+<l:gentext key="Figure" text="Figuur"/>
+<l:gentext key="figure" text="figuur"/>
+<l:gentext key="Glossary" text="Woordlys"/>
+<l:gentext key="glossary" text="woordlys"/>
+<l:gentext key="GlossSee" text="WoordelysSien"/>
+<l:gentext key="glosssee" text="woordelyssien"/>
+<l:gentext key="GlossSeeAlso" text="WoordelysSienOok"/>
+<l:gentext key="glossseealso" text="woordelyssienook"/>
+<l:gentext key="IMPORTANT" text="BELANGRIK"/>
+<l:gentext key="important" text="belangrik"/>
+<l:gentext key="Important" text="Belangrik"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="RegsKennisgewing"/>
+<l:gentext key="legalnotice" text="regskennisgewing"/>
+<l:gentext key="MsgAud" text="Teikengroep"/>
+<l:gentext key="msgaud" text="teikengroep"/>
+<l:gentext key="MsgLevel" text="Vlak"/>
+<l:gentext key="msglevel" text="vlak"/>
+<l:gentext key="MsgOrig" text="Herkoms"/>
+<l:gentext key="msgorig" text="herkoms"/>
+<l:gentext key="NOTE" text="OPMERKING"/>
+<l:gentext key="Note" text="Opmerking"/>
+<l:gentext key="note" text="opmerking"/>
+<l:gentext key="Part" text="Deel"/>
+<l:gentext key="part" text="deel"/>
+<l:gentext key="Preface" text="Voorwoord"/>
+<l:gentext key="preface" text="voorwoord"/>
+<l:gentext key="Procedure" text="Prosedure"/>
+<l:gentext key="procedure" text="prosedure"/>
+<l:gentext key="ProductionSet" text="ProduksieStel"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Uitgegee"/>
+<l:gentext key="published" text="uitgegee"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Vraag et Antwoord"/>
+<l:gentext key="qandadiv" text="Vraag et Antwoord"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Vraag:"/>
+<l:gentext key="question" text="vraag:"/>
+<l:gentext key="RefEntry" text="Verwysingslemma"/>
+<l:gentext key="refentry" text="verwysingslemma"/>
+<l:gentext key="Reference" text="Verwysing"/>
+<l:gentext key="reference" text="verwysing"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Verwysingsnaam"/>
+<l:gentext key="refname" text="verwysingsnaam"/>
+<l:gentext key="RefSection" text="Verwysingsparagraaf"/>
+<l:gentext key="refsection" text="verwysingsparagraaf"/>
+<l:gentext key="RefSynopsisDiv" text="Verwysingsamevatting"/>
+<l:gentext key="refsynopsisdiv" text="verwysingsamevatting"/>
+<l:gentext key="RevHistory" text="Hersiening geskiedenis"/>
+<l:gentext key="revhistory" text="hersiening geskiedenis"/>
+<l:gentext key="revision" text="hersiening"/>
+<l:gentext key="Revision" text="Hersiening"/>
+<l:gentext key="sect1" text="Paragraaf"/>
+<l:gentext key="sect2" text="Paragraaf"/>
+<l:gentext key="sect3" text="Paragraaf"/>
+<l:gentext key="sect4" text="Paragraaf"/>
+<l:gentext key="sect5" text="Paragraaf"/>
+<l:gentext key="section" text="paragraaf"/>
+<l:gentext key="Section" text="Paragraaf"/>
+<l:gentext key="see" text="sien"/>
+<l:gentext key="See" text="Sien"/>
+<l:gentext key="seealso" text="sien ook"/>
+<l:gentext key="Seealso" text="Sien ook"/>
+<l:gentext key="SeeAlso" text="Sien Ook"/>
+<l:gentext key="set" text="versameling"/>
+<l:gentext key="Set" text="Versameling"/>
+<l:gentext key="setindex" text="versamelingindeks"/>
+<l:gentext key="SetIndex" text="VersamelingIndeks"/>
+<l:gentext key="Sidebar" text="Kantbalk"/>
+<l:gentext key="sidebar" text="kantbalk"/>
+<l:gentext key="step" text="stap"/>
+<l:gentext key="Step" text="Stap"/>
+<l:gentext key="table" text="tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="leidraad"/>
+<l:gentext key="TIP" text="LEIDRAAD"/>
+<l:gentext key="Tip" text="Leidraad"/>
+<l:gentext key="Warning" text="Waarskuwing"/>
+<l:gentext key="warning" text="waarskuwing"/>
+<l:gentext key="WARNING" text="WAARSKUWING"/>
+<l:gentext key="and" text="en"/>
+<l:gentext key="by" text="deur"/>
+<l:gentext key="Edited" text="Geredigeer"/>
+<l:gentext key="edited" text="geredigeer"/>
+<l:gentext key="Editedby" text="Geredigeer deur"/>
+<l:gentext key="editedby" text="geredigeer deur"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="element bestaan nie"/>
+<l:gentext key="notes" text="Notas"/>
+<l:gentext key="Notes" text="notas"/>
+<l:gentext key="Pgs" text="bl."/>
+<l:gentext key="pgs" text="bl."/>
+<l:gentext key="Revisedby" text="Hersien deur"/>
+<l:gentext key="revisedby" text="hersien deur"/>
+<l:gentext key="TableNotes" text="TabelOpmerking"/>
+<l:gentext key="tablenotes" text="tabelopmerking"/>
+<l:gentext key="TableofContents" text="Inhoudsopgawe"/>
+<l:gentext key="tableofcontents" text="inhoudsopgawe"/>
+<l:gentext key="unexpectedelementname" text="onverwagte element naam"/>
+<l:gentext key="unsupported" text="nie geondersteun"/>
+<l:gentext key="xrefto" text="verwysing na"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="lys van vergelykings"/>
+<l:gentext key="ListofEquations" text="Lys van vergelykings"/>
+<l:gentext key="ListofExamples" text="Lys van voorbeelde"/>
+<l:gentext key="listofexamples" text="lys van voorbeelde"/>
+<l:gentext key="ListofFigures" text="Lys van figure"/>
+<l:gentext key="listoffigures" text="lys van figure"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="lys van tabelle"/>
+<l:gentext key="ListofTables" text="Lys van tabelle"/>
+<l:gentext key="ListofUnknown" text="Lys van onbekende tipes"/>
+<l:gentext key="listofunknown" text="lys van onbekende tipes"/>
+<l:gentext key="nav-home" text="Begin"/>
+<l:gentext key="nav-next" text="Volgende"/>
+<l:gentext key="nav-next-sibling" text="Verder vooruit"/>
+<l:gentext key="nav-prev" text="Terug"/>
+<l:gentext key="nav-prev-sibling" text="Verder terug"/>
+<l:gentext key="nav-up" text="Boontoe"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Proef"/>
+<l:gentext key="above" text="bo"/>
+<l:gentext key="below" text="onder"/>
+<l:gentext key="sectioncalled" text="die seksie genaamd"/>
+<l:gentext key="index symbols" text="indeks simbole"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Aanhangsel %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Vergelyking %n. %t"/>
+<l:template name="example" text="Voorbeeld %n. %t"/>
+<l:template name="figure" text="Figuur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ProduksieStel %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Aanhangsel %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="die seksie genaamd “%t”"/>
+<l:template name="refsection" text="die seksie genaamd “%t”"/>
+<l:template name="refsect1" text="die seksie genaamd “%t”"/>
+<l:template name="refsect2" text="die seksie genaamd “%t”"/>
+<l:template name="refsect3" text="die seksie genaamd “%t”"/>
+<l:template name="sect1" text="die seksie genaamd “%t”"/>
+<l:template name="sect2" text="die seksie genaamd “%t”"/>
+<l:template name="sect3" text="die seksie genaamd “%t”"/>
+<l:template name="sect4" text="die seksie genaamd “%t”"/>
+<l:template name="sect5" text="die seksie genaamd “%t”"/>
+<l:template name="section" text="die seksie genaamd “%t”"/>
+<l:template name="simplesect" text="die seksie genaamd “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="Aanhangsel %n"/>
+<l:template name="bridgehead" text="Paragraaf %n"/>
+<l:template name="chapter" text="Hoofdstuk %n"/>
+<l:template name="equation" text="Vergelyking %n"/>
+<l:template name="example" text="Voorbeeld %n"/>
+<l:template name="figure" text="Figuur %n"/>
+<l:template name="part" text="Deel %n"/>
+<l:template name="procedure" text="Prosedure %n"/>
+<l:template name="productionset" text="ProduksieStel %n"/>
+<l:template name="qandadiv" text="Vraag et Antwoord %n"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="sect1" text="Paragraaf %n"/>
+<l:template name="sect2" text="Paragraaf %n"/>
+<l:template name="sect3" text="Paragraaf %n"/>
+<l:template name="sect4" text="Paragraaf %n"/>
+<l:template name="sect5" text="Paragraaf %n"/>
+<l:template name="section" text="Paragraaf %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Aanhangsel %n, %t"/>
+<l:template name="bridgehead" text="Paragraaf %n, “%t”"/>
+<l:template name="chapter" text="Hoofdstuk %n, %t"/>
+<l:template name="equation" text="Vergelyking %n, “%t”"/>
+<l:template name="example" text="Voorbeeld %n, “%t”"/>
+<l:template name="figure" text="Figuur %n, “%t”"/>
+<l:template name="part" text="Deel %n, “%t”"/>
+<l:template name="procedure" text="Prosedure %n, “%t”"/>
+<l:template name="productionset" text="ProduksieStel %n, “%t”"/>
+<l:template name="qandadiv" text="Vraag et Antwoord %n, “%t”"/>
+<l:template name="refsect1" text="die seksie genaamd “%t”"/>
+<l:template name="refsect2" text="die seksie genaamd “%t”"/>
+<l:template name="refsect3" text="die seksie genaamd “%t”"/>
+<l:template name="refsection" text="die seksie genaamd “%t”"/>
+<l:template name="sect1" text="Paragraaf %n, “%t”"/>
+<l:template name="sect2" text="Paragraaf %n, “%t”"/>
+<l:template name="sect3" text="Paragraaf %n, “%t”"/>
+<l:template name="sect4" text="Paragraaf %n, “%t”"/>
+<l:template name="sect5" text="Paragraaf %n, “%t”"/>
+<l:template name="section" text="Paragraaf %n, “%t”"/>
+<l:template name="simplesect" text="die seksie genaamd “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" en "/>
+<l:template name="seplast" text=", en "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="WoordelysSien %t"/>
+<l:template name="seealso" text="WoordelysSienOok %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Teikengroep: "/>
+<l:template name="MsgLevel" text="Vlak: "/>
+<l:template name="MsgOrig" text="Herkoms: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0436 Afrikaans"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/am.xml b/docs/xsl-generic/common/am.xml
new file mode 100644
index 00000000..10be46ee
--- /dev/null
+++ b/docs/xsl-generic/common/am.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="am" english-language-name="Amharic">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/am.xml -->
+<!-- * -->
+<!-- * E-mail the edited am.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ረቂቅ"/>
+<l:gentext key="abstract" text="ረቂቅ"/>
+<l:gentext key="Answer" text="መ፦"/>
+<l:gentext key="answer" text="መ፦"/>
+<l:gentext key="Appendix" text="ተጨማሪ"/>
+<l:gentext key="appendix" text="ተጨማሪ"/>
+<l:gentext key="Article" text="ጽሑፍ"/>
+<l:gentext key="article" text="ጽሑፍ"/>
+<l:gentext key="Author" text="ደራሲ"/>
+<l:gentext key="Bibliography" text="የመጻሕፍት ዝርዝር"/>
+<l:gentext key="bibliography" text="የመጻሕፍት ዝርዝር"/>
+<l:gentext key="Book" text="መጽሐፍ"/>
+<l:gentext key="book" text="መጽሐፍ"/>
+<l:gentext key="CAUTION" text="ጥንቃቄ"/>
+<l:gentext key="Caution" text="ጥንቃቄ"/>
+<l:gentext key="caution" text="ጥንቃቄ"/>
+<l:gentext key="Chapter" text="ምዕራፍ"/>
+<l:gentext key="chapter" text="ምዕራፍ"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="የቅጂው መብት"/>
+<l:gentext key="copyright" text="የቅጂው መብት"/>
+<l:gentext key="Dedication" text="ለአላማ መሰዋት"/>
+<l:gentext key="dedication" text="ለአላማ መሰዋት"/>
+<l:gentext key="Edition" text="ቅጂ"/>
+<l:gentext key="edition" text="ቅጂ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="እኩሌታ"/>
+<l:gentext key="equation" text="እኩሌታ"/>
+<l:gentext key="Example" text="ለምሳሌ"/>
+<l:gentext key="example" text="ለምሳሌ"/>
+<l:gentext key="Figure" text="ምስል"/>
+<l:gentext key="figure" text="ምስል"/>
+<l:gentext key="Glossary" text="የቃላቶች ፍቺ ዝርዝር"/>
+<l:gentext key="glossary" text="የቃላቶች ፍቺ ዝርዝር"/>
+<l:gentext key="GlossSee" text="ማየት (እይ)"/>
+<l:gentext key="glosssee" text="ማየት (እይ)"/>
+<l:gentext key="GlossSeeAlso" text="…ንም እይ"/>
+<l:gentext key="glossseealso" text="…ንም እይ"/>
+<l:gentext key="IMPORTANT" text="አስፈላጊ"/>
+<l:gentext key="important" text="አስፈላጊ"/>
+<l:gentext key="Important" text="አስፈላጊ"/>
+<l:gentext key="Index" text="ማውጫ"/>
+<l:gentext key="index" text="ማውጫ"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ህጋዊ ማስታወቂያ"/>
+<l:gentext key="legalnotice" text="ህጋዊ ማስታወቂያ"/>
+<l:gentext key="MsgAud" text="ተመልካች"/>
+<l:gentext key="msgaud" text="ተመልካች"/>
+<l:gentext key="MsgLevel" text="ደረጃ"/>
+<l:gentext key="msglevel" text="ደረጃ"/>
+<l:gentext key="MsgOrig" text="ምንጭ"/>
+<l:gentext key="msgorig" text="ምንጭ"/>
+<l:gentext key="NOTE" text="ማስታወሻ"/>
+<l:gentext key="Note" text="ማስታወሻ"/>
+<l:gentext key="note" text="ማስታወሻ"/>
+<l:gentext key="Part" text="ክፍል"/>
+<l:gentext key="part" text="ክፍል"/>
+<l:gentext key="Preface" text="መቅድም"/>
+<l:gentext key="preface" text="መቅድም"/>
+<l:gentext key="Procedure" text="ቅደም ተከተል"/>
+<l:gentext key="procedure" text="ቅደም ተከተል"/>
+<l:gentext key="ProductionSet" text="ምርት"/>
+<l:gentext key="PubDate" text="የታተመበት ቀን"/>
+<l:gentext key="pubdate" text="የታተመበት ቀን"/>
+<l:gentext key="Published" text="ታትሟል"/>
+<l:gentext key="published" text="ታትሟል"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ጥያቄ እና መልስ"/>
+<l:gentext key="qandadiv" text="ጥያቄ እና መልስ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ጥ፦"/>
+<l:gentext key="question" text="ጥ፦"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="ማጣቀሻ"/>
+<l:gentext key="reference" text="ማጣቀሻ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ስም"/>
+<l:gentext key="refname" text="ስም"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="መግለጫ"/>
+<l:gentext key="refsynopsisdiv" text="መግለጫ"/>
+<l:gentext key="RevHistory" text="የተሻሻለ ታሪክ"/>
+<l:gentext key="revhistory" text="የተሻሻለ ታሪክ"/>
+<l:gentext key="revision" text="የተሻሻለ"/>
+<l:gentext key="Revision" text="የተሻሻለ"/>
+<l:gentext key="sect1" text="ክፍል"/>
+<l:gentext key="sect2" text="ክፍል"/>
+<l:gentext key="sect3" text="ክፍል"/>
+<l:gentext key="sect4" text="ክፍል"/>
+<l:gentext key="sect5" text="ክፍል"/>
+<l:gentext key="section" text="ክፍል"/>
+<l:gentext key="Section" text="ክፍል"/>
+<l:gentext key="see" text="ማየት (እይ)"/>
+<l:gentext key="See" text="ማየት (እይ)"/>
+<l:gentext key="seealso" text="…ንም እይ"/>
+<l:gentext key="Seealso" text="…ንም እይ"/>
+<l:gentext key="SeeAlso" text="…ንም እይ"/>
+<l:gentext key="set" text="አድርግ"/>
+<l:gentext key="Set" text="አድርግ"/>
+<l:gentext key="setindex" text="ማውጫውን ይመልከቱ"/>
+<l:gentext key="SetIndex" text="ማውጫውን ይመልከቱ"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="የጥግ ቋሚ"/>
+<l:gentext key="step" text="ደረጃ"/>
+<l:gentext key="Step" text="ደረጃ"/>
+<l:gentext key="table" text="ሠንጠረዥ"/>
+<l:gentext key="Table" text="ሠንጠረዥ"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ፍንጭ"/>
+<l:gentext key="TIP" text="ፍንጭ"/>
+<l:gentext key="Tip" text="ፍንጭ"/>
+<l:gentext key="Warning" text="ማስጠንቀቂያ"/>
+<l:gentext key="warning" text="ማስጠንቀቂያ"/>
+<l:gentext key="WARNING" text="ማስጠንቀቂያ"/>
+<l:gentext key="and" text="እና"/>
+<l:gentext key="by" text="በ"/>
+<l:gentext key="Edited" text="የተዘጋጀ"/>
+<l:gentext key="edited" text="የተዘጋጀ"/>
+<l:gentext key="Editedby" text="የተዘጋጀው በ"/>
+<l:gentext key="editedby" text="የተዘጋጀው በ"/>
+<l:gentext key="in" text="ውስጥ"/>
+<l:gentext key="lastlistcomma" text="፣"/>
+<l:gentext key="listcomma" text="፣"/>
+<l:gentext key="nonexistantelement" text="የሌለ መሠረታዊ ነገር"/>
+<l:gentext key="notes" text="ማስታወሻዎች"/>
+<l:gentext key="Notes" text="ማስታወሻዎች"/>
+<l:gentext key="Pgs" text="ገጾች"/>
+<l:gentext key="pgs" text="ገጾች"/>
+<l:gentext key="Revisedby" text="የተሻሻለው በ"/>
+<l:gentext key="revisedby" text="የተሻሻለው በ"/>
+<l:gentext key="TableNotes" text="ማስታወሻዎች"/>
+<l:gentext key="tablenotes" text="ማስታወሻዎች"/>
+<l:gentext key="TableofContents" text="ማውጫ"/>
+<l:gentext key="tableofcontents" text="ማውጫ"/>
+<l:gentext key="unexpectedelementname" text="ያልተጠበቀ የመሠረታዊ ነገር ስም"/>
+<l:gentext key="unsupported" text="ያልተደገፈ"/>
+<l:gentext key="xrefto" text="xref ወደ"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="የእኩሌታዎች ዝርዝር"/>
+<l:gentext key="ListofEquations" text="የእኩሌታዎች ዝርዝር"/>
+<l:gentext key="ListofExamples" text="የምሳሌዎች ዝርዝር"/>
+<l:gentext key="listofexamples" text="የምሳሌዎች ዝርዝር"/>
+<l:gentext key="ListofFigures" text="የምስሎች ዝርዝር"/>
+<l:gentext key="listoffigures" text="የምስሎች ዝርዝር"/>
+<l:gentext key="ListofProcedures" text="የቅደም ተከተሎቹ ዝርዝር"/>
+<l:gentext key="listofprocedures" text="የቅደም ተከተሎቹ ዝርዝር"/>
+<l:gentext key="listoftables" text="የሠንጠረዦቹ ዝርዝር"/>
+<l:gentext key="ListofTables" text="የሠንጠረዦቹ ዝርዝር"/>
+<l:gentext key="ListofUnknown" text="ያልታወቁ ዝርዝር"/>
+<l:gentext key="listofunknown" text="ያልታወቁ ዝርዝር"/>
+<l:gentext key="nav-home" text="መጀመሪያ"/>
+<l:gentext key="nav-next" text="የሚቀጥለው"/>
+<l:gentext key="nav-next-sibling" text="በፍጥነት ወደፊት"/>
+<l:gentext key="nav-prev" text="ያለፈው"/>
+<l:gentext key="nav-prev-sibling" text="በፍጥነት ወደኋላ"/>
+<l:gentext key="nav-up" text="ወደ ላይ"/>
+<l:gentext key="nav-toc" text="ወደ ሲ"/>
+<l:gentext key="Draft" text="ንድፍ"/>
+<l:gentext key="above" text="ከላይ"/>
+<l:gentext key="below" text="ከስር"/>
+<l:gentext key="sectioncalled" text="የክፍሉ መጠሪያ"/>
+<l:gentext key="index symbols" text="ምልክቶች"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ተጨማሪ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ምዕራፍ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="እኩሌታ %n. %t"/>
+<l:template name="example" text="ለምሳሌ %n. %t"/>
+<l:template name="figure" text="ምስል %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ክፍል %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ቅደም ተከተል %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ምርት %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ሠንጠረዥ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ተጨማሪ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ምዕራፍ %n. %t"/>
+<l:template name="part" text="ክፍል %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="መ፦ %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ጥ፦ %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ጥ፦ %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" በ%o"/>
+<l:template name="olink.page.citation" text=" (ገጽ %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(ገጽ %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" በዶሴው ውስጥ ርዕስ የተሰጠው %o"/>
+<l:template name="pageabbrev" text="(ገጽ %p)"/>
+<l:template name="Page" text="ገጽ %p"/>
+<l:template name="bridgehead" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsection" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect1" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect2" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect3" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect1" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect2" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect3" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect4" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect5" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="section" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="simplesect" text="የክፍሉ መጠሪያ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="መ፦ %n"/>
+<l:template name="appendix" text="ተጨማሪ %n"/>
+<l:template name="bridgehead" text="ክፍል %n"/>
+<l:template name="chapter" text="ምዕራፍ %n"/>
+<l:template name="equation" text="እኩሌታ %n"/>
+<l:template name="example" text="ለምሳሌ %n"/>
+<l:template name="figure" text="ምስል %n"/>
+<l:template name="part" text="ክፍል %n"/>
+<l:template name="procedure" text="ቅደም ተከተል %n"/>
+<l:template name="productionset" text="ምርት %n"/>
+<l:template name="qandadiv" text="ጥያቄ እና መልስ %n"/>
+<l:template name="qandaentry" text="ጥ፦ %n"/>
+<l:template name="question" text="ጥ፦ %n"/>
+<l:template name="sect1" text="ክፍል %n"/>
+<l:template name="sect2" text="ክፍል %n"/>
+<l:template name="sect3" text="ክፍል %n"/>
+<l:template name="sect4" text="ክፍል %n"/>
+<l:template name="sect5" text="ክፍል %n"/>
+<l:template name="section" text="ክፍል %n"/>
+<l:template name="table" text="ሠንጠረዥ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ተጨማሪ %n, %t"/>
+<l:template name="bridgehead" text="ክፍል %n, “%t”"/>
+<l:template name="chapter" text="ምዕራፍ %n, %t"/>
+<l:template name="equation" text="እኩሌታ %n, “%t”"/>
+<l:template name="example" text="ለምሳሌ %n, “%t”"/>
+<l:template name="figure" text="ምስል %n, “%t”"/>
+<l:template name="part" text="ክፍል %n, “%t”"/>
+<l:template name="procedure" text="ቅደም ተከተል %n, “%t”"/>
+<l:template name="productionset" text="ምርት %n, “%t”"/>
+<l:template name="qandadiv" text="ጥያቄ እና መልስ %n, “%t”"/>
+<l:template name="refsect1" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect2" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect3" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsection" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect1" text="ክፍል %n, “%t”"/>
+<l:template name="sect2" text="ክፍል %n, “%t”"/>
+<l:template name="sect3" text="ክፍል %n, “%t”"/>
+<l:template name="sect4" text="ክፍል %n, “%t”"/>
+<l:template name="sect5" text="ክፍል %n, “%t”"/>
+<l:template name="section" text="ክፍል %n, “%t”"/>
+<l:template name="simplesect" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="table" text="ሠንጠረዥ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="፣ "/>
+<l:template name="sep2" text=" እና "/>
+<l:template name="seplast" text="፣ እና "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ማየት (እይ) %t"/>
+<l:template name="seealso" text="…ንም እይ %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ተመልካች፦ "/>
+<l:template name="MsgLevel" text="ደረጃ፦ "/>
+<l:template name="MsgOrig" text="ምንጭ፦ "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d B Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[ትርጉም፦ "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ጃንዩወሪ"/>
+<l:template name="February" text="ፌብሩወሪ"/>
+<l:template name="March" text="ማርች"/>
+<l:template name="April" text="ኤፕረል"/>
+<l:template name="May" text="ሜይ"/>
+<l:template name="June" text="ጁን"/>
+<l:template name="July" text="ጁላይ"/>
+<l:template name="August" text="ኦገስት"/>
+<l:template name="September" text="ሴፕቴምበር"/>
+<l:template name="October" text="ኦክተውበር"/>
+<l:template name="November" text="ኖቬምበር"/>
+<l:template name="December" text="ዲሴምበር"/>
+<l:template name="Monday" text="ሰኞ"/>
+<l:template name="Tuesday" text="ማክሰኞ"/>
+<l:template name="Wednesday" text="ረቡዕ"/>
+<l:template name="Thursday" text="ሐሙስ"/>
+<l:template name="Friday" text="ዓርብ"/>
+<l:template name="Saturday" text="ቅዳሜ"/>
+<l:template name="Sunday" text="እሑድ"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ጃንዩ"/>
+<l:template name="Feb" text="ፌብሩ"/>
+<l:template name="Mar" text="ማርች"/>
+<l:template name="Apr" text="ኤፕረ"/>
+<l:template name="May" text="ሜይ "/>
+<l:template name="Jun" text="ጁን "/>
+<l:template name="Jul" text="ጁላይ"/>
+<l:template name="Aug" text="ኦገስ"/>
+<l:template name="Sep" text="ሴፕቴ"/>
+<l:template name="Oct" text="ኦክተ"/>
+<l:template name="Nov" text="ኖቬም"/>
+<l:template name="Dec" text="ዲሴም"/>
+<l:template name="Mon" text="ሰኞ "/>
+<l:template name="Tue" text="ማክሰ"/>
+<l:template name="Wed" text="ረቡዕ"/>
+<l:template name="Thu" text="ሐሙስ"/>
+<l:template name="Fri" text="ዓርብ"/>
+<l:template name="Sat" text="ቅዳሜ"/>
+<l:template name="Sun" text="እሑድ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">ምልክቶች</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ar.xml b/docs/xsl-generic/common/ar.xml
new file mode 100644
index 00000000..64d6f3bc
--- /dev/null
+++ b/docs/xsl-generic/common/ar.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ar" english-language-name="Arabic">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ar.xml -->
+<!-- * -->
+<!-- * E-mail the edited ar.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="خلاصة"/>
+<l:gentext key="abstract" text="خلاصة"/>
+<l:gentext key="Answer" text="ج:"/>
+<l:gentext key="answer" text="ج:"/>
+<l:gentext key="Appendix" text="ملحق"/>
+<l:gentext key="appendix" text="ملحق"/>
+<l:gentext key="Article" text="مقال"/>
+<l:gentext key="article" text="مقال"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="قائمة المراجع"/>
+<l:gentext key="bibliography" text="قائمة المراجع"/>
+<l:gentext key="Book" text="كتاب"/>
+<l:gentext key="book" text="كتاب"/>
+<l:gentext key="CAUTION" text="تحذير"/>
+<l:gentext key="Caution" text="تحذير"/>
+<l:gentext key="caution" text="تحذير"/>
+<l:gentext key="Chapter" text="فصل"/>
+<l:gentext key="chapter" text="فصل"/>
+<l:gentext key="Colophon" text="الناشر"/>
+<l:gentext key="colophon" text="الناشر"/>
+<l:gentext key="Copyright" text="حقوق النشر"/>
+<l:gentext key="copyright" text="حقوق النشر"/>
+<l:gentext key="Dedication" text="إهداء"/>
+<l:gentext key="dedication" text="إهداء"/>
+<l:gentext key="Edition" text="نسخة"/>
+<l:gentext key="edition" text="نسخة"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="معادلة"/>
+<l:gentext key="equation" text="معادلة"/>
+<l:gentext key="Example" text="مثال"/>
+<l:gentext key="example" text="مثال"/>
+<l:gentext key="Figure" text="شكل"/>
+<l:gentext key="figure" text="شكل"/>
+<l:gentext key="Glossary" text="قاموس المفردات"/>
+<l:gentext key="glossary" text="قاموس المفردات"/>
+<l:gentext key="GlossSee" text="انظر"/>
+<l:gentext key="glosssee" text="انظر"/>
+<l:gentext key="GlossSeeAlso" text="انظر أيضاً"/>
+<l:gentext key="glossseealso" text="انظر أيضاً"/>
+<l:gentext key="IMPORTANT" text="هام"/>
+<l:gentext key="important" text="هام"/>
+<l:gentext key="Important" text="هام"/>
+<l:gentext key="Index" text="فهرس"/>
+<l:gentext key="index" text="فهرس"/>
+<l:gentext key="ISBN" text="الترقيم العالمي القياسي للكتاب"/>
+<l:gentext key="isbn" text="الترقيم العالمي القياسي للكتاب"/>
+<l:gentext key="LegalNotice" text="ملاحظة قانونية"/>
+<l:gentext key="legalnotice" text="ملاحظة قانونية"/>
+<l:gentext key="MsgAud" text="الجمهور"/>
+<l:gentext key="msgaud" text="الجمهور"/>
+<l:gentext key="MsgLevel" text="المستوى"/>
+<l:gentext key="msglevel" text="المستوى"/>
+<l:gentext key="MsgOrig" text="المصدر"/>
+<l:gentext key="msgorig" text="المصدر"/>
+<l:gentext key="NOTE" text="ملاحظة"/>
+<l:gentext key="Note" text="ملاحظة"/>
+<l:gentext key="note" text="ملاحظة"/>
+<l:gentext key="Part" text="جزء"/>
+<l:gentext key="part" text="جزء"/>
+<l:gentext key="Preface" text="مقدمة"/>
+<l:gentext key="preface" text="مقدمة"/>
+<l:gentext key="Procedure" text="إجراء"/>
+<l:gentext key="procedure" text="إجراء"/>
+<l:gentext key="ProductionSet" text="منتج"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="منشور"/>
+<l:gentext key="published" text="منشور"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="س و ج"/>
+<l:gentext key="qandadiv" text="س و ج"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="س:"/>
+<l:gentext key="question" text="س:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="مرجع"/>
+<l:gentext key="reference" text="مرجع"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="الاسم"/>
+<l:gentext key="refname" text="الاسم"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="المختصر"/>
+<l:gentext key="refsynopsisdiv" text="المختصر"/>
+<l:gentext key="RevHistory" text="تاريخ المراجعة"/>
+<l:gentext key="revhistory" text="تاريخ المراجعة"/>
+<l:gentext key="revision" text="مراجعة"/>
+<l:gentext key="Revision" text="مراجعة"/>
+<l:gentext key="sect1" text="قسم"/>
+<l:gentext key="sect2" text="قسم"/>
+<l:gentext key="sect3" text="قسم"/>
+<l:gentext key="sect4" text="قسم"/>
+<l:gentext key="sect5" text="قسم"/>
+<l:gentext key="section" text="قسم"/>
+<l:gentext key="Section" text="قسم"/>
+<l:gentext key="see" text="استعرض"/>
+<l:gentext key="See" text="See" lang="en"/>
+<l:gentext key="seealso" text="استعرض أيضاً"/>
+<l:gentext key="Seealso" text="See also" lang="en"/>
+<l:gentext key="SeeAlso" text="See Also" lang="en"/>
+<l:gentext key="set" text="مجموعة"/>
+<l:gentext key="Set" text="مجموعة"/>
+<l:gentext key="setindex" text="فهرس المجموعة"/>
+<l:gentext key="SetIndex" text="فهرس المجموعة"/>
+<l:gentext key="Sidebar" text="الشريط الجانبي"/>
+<l:gentext key="sidebar" text="الشريط الجانبي"/>
+<l:gentext key="step" text="خطوة"/>
+<l:gentext key="Step" text="خطوة"/>
+<l:gentext key="table" text="جدول"/>
+<l:gentext key="Table" text="جدول"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="فكرة مفيدة"/>
+<l:gentext key="TIP" text="فكرة مفيدة"/>
+<l:gentext key="Tip" text="فكرة مفيدة"/>
+<l:gentext key="Warning" text="تنبيه"/>
+<l:gentext key="warning" text="تنبيه"/>
+<l:gentext key="WARNING" text="تنبيه"/>
+<l:gentext key="and" text="و"/>
+<l:gentext key="by" text="بواسطة"/>
+<l:gentext key="Edited" text="معدل"/>
+<l:gentext key="edited" text="معدل"/>
+<l:gentext key="Editedby" text="معدل بواسطة"/>
+<l:gentext key="editedby" text="معدل بواسطة"/>
+<l:gentext key="in" text="في"/>
+<l:gentext key="lastlistcomma" text="،"/>
+<l:gentext key="listcomma" text="،"/>
+<l:gentext key="nonexistantelement" text="عنصر مفقود"/>
+<l:gentext key="notes" text="ملاحظات"/>
+<l:gentext key="Notes" text="ملاحظات"/>
+<l:gentext key="Pgs" text="صفحات"/>
+<l:gentext key="pgs" text="صفحات"/>
+<l:gentext key="Revisedby" text="تمت المراجعة بواسطة: "/>
+<l:gentext key="revisedby" text="تمت المراجعة بواسطة: "/>
+<l:gentext key="TableNotes" text="ملاحظات"/>
+<l:gentext key="tablenotes" text="ملاحظات"/>
+<l:gentext key="TableofContents" text="قائمة المحتويات"/>
+<l:gentext key="tableofcontents" text="قائمة المحتويات"/>
+<l:gentext key="unexpectedelementname" text="اسم عنصر غير متوقع"/>
+<l:gentext key="unsupported" text="غير مدعوم"/>
+<l:gentext key="xrefto" text="إشارة إلى"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="قائمة المعادلات"/>
+<l:gentext key="ListofEquations" text="قائمة المعادلات"/>
+<l:gentext key="ListofExamples" text="قائمة الأمثلة"/>
+<l:gentext key="listofexamples" text="قائمة الأمثلة"/>
+<l:gentext key="ListofFigures" text="قائمة الأشكال"/>
+<l:gentext key="listoffigures" text="قائمة الأشكال"/>
+<l:gentext key="ListofProcedures" text="قائمة الإجراءات"/>
+<l:gentext key="listofprocedures" text="قائمة الإجراءات"/>
+<l:gentext key="listoftables" text="قائمة الجداول"/>
+<l:gentext key="ListofTables" text="قائمة الجداول"/>
+<l:gentext key="ListofUnknown" text="قائمة المجهولات"/>
+<l:gentext key="listofunknown" text="قائمة المجهولات"/>
+<l:gentext key="nav-home" text="البداية"/>
+<l:gentext key="nav-next" text="التالي"/>
+<l:gentext key="nav-next-sibling" text="إلى الأمام"/>
+<l:gentext key="nav-prev" text="السابق"/>
+<l:gentext key="nav-prev-sibling" text="إلى الخلف"/>
+<l:gentext key="nav-up" text="أعلى"/>
+<l:gentext key="nav-toc" text="الفهرس"/>
+<l:gentext key="Draft" text="مسودة"/>
+<l:gentext key="above" text="أعلى"/>
+<l:gentext key="below" text="فيما يلي"/>
+<l:gentext key="sectioncalled" text="القسم المسمى"/>
+<l:gentext key="index symbols" text="الرموز"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="‐"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ملحق %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="فصل %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="معادلة %n. %t"/>
+<l:template name="example" text="مثال %n. %t"/>
+<l:template name="figure" text="شكل %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="جزء %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="إجراء %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="منتج %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="جدول %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ملحق %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="فصل %n. %t"/>
+<l:template name="part" text="جزء %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="ج: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="س: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="س: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="القسم المسمى “%t”"/>
+<l:template name="refsection" text="القسم المسمى “%t”"/>
+<l:template name="refsect1" text="القسم المسمى “%t”"/>
+<l:template name="refsect2" text="القسم المسمى “%t”"/>
+<l:template name="refsect3" text="القسم المسمى “%t”"/>
+<l:template name="sect1" text="القسم المسمى “%t”"/>
+<l:template name="sect2" text="القسم المسمى “%t”"/>
+<l:template name="sect3" text="القسم المسمى “%t”"/>
+<l:template name="sect4" text="القسم المسمى “%t”"/>
+<l:template name="sect5" text="القسم المسمى “%t”"/>
+<l:template name="section" text="القسم المسمى “%t”"/>
+<l:template name="simplesect" text="القسم المسمى “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ج: %n"/>
+<l:template name="appendix" text="ملحق %n"/>
+<l:template name="bridgehead" text="قسم %n"/>
+<l:template name="chapter" text="فصل %n"/>
+<l:template name="equation" text="معادلة %n"/>
+<l:template name="example" text="مثال %n"/>
+<l:template name="figure" text="شكل %n"/>
+<l:template name="part" text="جزء %n"/>
+<l:template name="procedure" text="إجراء %n"/>
+<l:template name="productionset" text="منتج %n"/>
+<l:template name="qandadiv" text="س و ج %n"/>
+<l:template name="qandaentry" text="س: %n"/>
+<l:template name="question" text="س: %n"/>
+<l:template name="sect1" text="قسم %n"/>
+<l:template name="sect2" text="قسم %n"/>
+<l:template name="sect3" text="قسم %n"/>
+<l:template name="sect4" text="قسم %n"/>
+<l:template name="sect5" text="قسم %n"/>
+<l:template name="section" text="قسم %n"/>
+<l:template name="table" text="جدول %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ملحق %n, %t"/>
+<l:template name="bridgehead" text="قسم %n, “%t”"/>
+<l:template name="chapter" text="فصل %n, %t"/>
+<l:template name="equation" text="معادلة %n, “%t”"/>
+<l:template name="example" text="مثال %n, “%t”"/>
+<l:template name="figure" text="شكل %n, “%t”"/>
+<l:template name="part" text="جزء %n, “%t”"/>
+<l:template name="procedure" text="إجراء %n, “%t”"/>
+<l:template name="productionset" text="منتج %n, “%t”"/>
+<l:template name="qandadiv" text="س و ج %n, “%t”"/>
+<l:template name="refsect1" text="القسم المسمى “%t”"/>
+<l:template name="refsect2" text="القسم المسمى “%t”"/>
+<l:template name="refsect3" text="القسم المسمى “%t”"/>
+<l:template name="refsection" text="القسم المسمى “%t”"/>
+<l:template name="sect1" text="قسم %n, “%t”"/>
+<l:template name="sect2" text="قسم %n, “%t”"/>
+<l:template name="sect3" text="قسم %n, “%t”"/>
+<l:template name="sect4" text="قسم %n, “%t”"/>
+<l:template name="sect5" text="قسم %n, “%t”"/>
+<l:template name="section" text="قسم %n, “%t”"/>
+<l:template name="simplesect" text="القسم المسمى “%t”"/>
+<l:template name="table" text="جدول %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="، "/>
+<l:template name="sep2" text=" و "/>
+<l:template name="seplast" text="، و "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="انظر %t"/>
+<l:template name="seealso" text="انظر أيضاً %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="الجمهور: "/>
+<l:template name="MsgLevel" text="المستوى: "/>
+<l:template name="MsgOrig" text="المصدر: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="يناير"/>
+<l:template name="February" text="فبراير"/>
+<l:template name="March" text="مارس"/>
+<l:template name="April" text="أبريل"/>
+<l:template name="May" text="مايو"/>
+<l:template name="June" text="يونيو"/>
+<l:template name="July" text="يوليو"/>
+<l:template name="August" text="أغسطس"/>
+<l:template name="September" text="سبتمبر"/>
+<l:template name="October" text="أكتوبر"/>
+<l:template name="November" text="نوفمبر"/>
+<l:template name="December" text="ديسمبر"/>
+<l:template name="Monday" text="الإثنين"/>
+<l:template name="Tuesday" text="الثلاثاء"/>
+<l:template name="Wednesday" text="الأربعاء"/>
+<l:template name="Thursday" text="الخميس"/>
+<l:template name="Friday" text="الجمعة"/>
+<l:template name="Saturday" text="السبت"/>
+<l:template name="Sunday" text="الأحد"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="يناير"/>
+<l:template name="Feb" text="فبراير"/>
+<l:template name="Mar" text="مارس"/>
+<l:template name="Apr" text="أبريل"/>
+<l:template name="May" text="مايو"/>
+<l:template name="Jun" text="يونيو"/>
+<l:template name="Jul" text="يوليو"/>
+<l:template name="Aug" text="أغسطس"/>
+<l:template name="Sep" text="سبتمبر"/>
+<l:template name="Oct" text="أكتوبر"/>
+<l:template name="Nov" text="نوفمبر"/>
+<l:template name="Dec" text="ديسمبر"/>
+<l:template name="Mon" text="الإثنين"/>
+<l:template name="Tue" text="الثلاثاء"/>
+<l:template name="Wed" text="الأربعاء"/>
+<l:template name="Thu" text="الخميس"/>
+<l:template name="Fri" text="الجمعة"/>
+<l:template name="Sat" text="السبت"/>
+<l:template name="Sun" text="الأحد"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)" lang="en"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/autoidx-kimber.xsl b/docs/xsl-generic/common/autoidx-kimber.xsl
new file mode 100644
index 00000000..151d3af2
--- /dev/null
+++ b/docs/xsl-generic/common/autoidx-kimber.xsl
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas)]))'>
+<!-- Documents using the kimber index method must have a lang attribute -->
+<!-- Only one of these should be present in the entity -->
+
+<!ENTITY lang 'concat(/*/@lang, /*/@xml:lang)'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"
+ exclude-result-prefixes="k">
+
+<!-- ********************************************************************
+ $Id: autoidx-kimber.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook XSL Stylesheet distribution.
+ See ../README or http://docbook.sf.net/ for copyright
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="kimber.imported">
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:choose>
+ <xsl:when test="not(contains($vendor, 'SAXON '))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+ <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:param>
+
+
+<!-- The following key used in the kimber indexing method. -->
+<xsl:key name="k-group"
+ match="indexterm"
+ use="k:getIndexGroupKey(&lang;, &primary;)"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/autoidx-kosek.xsl b/docs/xsl-generic/common/autoidx-kosek.xsl
new file mode 100644
index 00000000..386e4528
--- /dev/null
+++ b/docs/xsl-generic/common/autoidx-kosek.xsl
@@ -0,0 +1,150 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas)]))'>
+
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns:func="http://exslt.org/functions"
+ xmlns:exslt="http://exslt.org/common"
+ xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ extension-element-prefixes="func exslt"
+ exclude-result-prefixes="func exslt i l"
+ xmlns:i="urn:cz-kosek:functions:index">
+
+<!-- ********************************************************************
+ $Id: autoidx-kosek.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook XSL Stylesheet distribution.
+ See ../README or http://docbook.sf.net/ for copyright
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="kosek.imported">
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'libxslt')">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+ <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:param>
+
+<!-- Returns index group code for given term -->
+<func:function name="i:group-index">
+ <xsl:param name="term"/>
+
+ <xsl:variable name="letters-rtf">
+ <xsl:variable name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:variable>
+
+ <xsl:variable name="local.l10n.letters"
+ select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:letters)[1]"/>
+
+ <xsl:variable name="l10n.letters"
+ select="($l10n.xml/l:i18n/l:l10n[@language=$lang]/l:letters)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="count($local.l10n.letters) &gt; 0">
+ <xsl:copy-of select="$local.l10n.letters"/>
+ </xsl:when>
+ <xsl:when test="count($l10n.letters) &gt; 0">
+ <xsl:copy-of select="$l10n.letters"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of index grouping letters exists</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$lang = 'en'">
+ <xsl:text>.</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>; using "en".</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:message>
+
+ <xsl:copy-of select="($l10n.xml/l:i18n/l:l10n[@language='en']/l:letters)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="letters" select="exslt:node-set($letters-rtf)/*"/>
+
+ <xsl:variable name="long-letter-index" select="$letters/l:l[. = substring($term,1,2)]/@i"/>
+ <xsl:variable name="short-letter-index" select="$letters/l:l[. = substring($term,1,1)]/@i"/>
+ <xsl:variable name="letter-index">
+ <xsl:choose>
+ <xsl:when test="$long-letter-index">
+ <xsl:value-of select="$long-letter-index"/>
+ </xsl:when>
+ <xsl:when test="$short-letter-index">
+ <xsl:value-of select="$short-letter-index"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <func:result select="number($letter-index)"/>
+</func:function>
+
+<!-- Return index group letter for given group code -->
+<func:function name="i:group-letter">
+ <xsl:param name="index"/>
+
+ <xsl:variable name="letters-rtf">
+ <xsl:variable name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:variable>
+
+ <xsl:variable name="local.l10n.letters"
+ select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:letters)[1]"/>
+
+ <xsl:variable name="l10n.letters"
+ select="($l10n.xml/l:i18n/l:l10n[@language=$lang]/l:letters)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="count($local.l10n.letters) &gt; 0">
+ <xsl:copy-of select="$local.l10n.letters"/>
+ </xsl:when>
+ <xsl:when test="count($l10n.letters) &gt; 0">
+ <xsl:copy-of select="$l10n.letters"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of index grouping letters exists</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$lang = 'en'">
+ <xsl:text>.</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>; using "en".</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:message>
+
+ <xsl:copy-of select="($l10n.xml/l:i18n/l:l10n[@language='en']/l:letters)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="letters" select="exslt:node-set($letters-rtf)/*"/>
+
+ <func:result select="$letters/l:l[@i=$index][1]"/>
+</func:function>
+
+<xsl:key name="group-code"
+ match="indexterm"
+ use="i:group-index(&primary;)"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/az.xml b/docs/xsl-generic/common/az.xml
new file mode 100644
index 00000000..b1b14c59
--- /dev/null
+++ b/docs/xsl-generic/common/az.xml
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="az" english-language-name="Azerbaijani">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/az.xml -->
+<!-- * -->
+<!-- * E-mail the edited az.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="İcmal"/>
+<l:gentext key="abstract" text="İcmal"/>
+<l:gentext key="Answer" text="Cavab:"/>
+<l:gentext key="answer" text="Cavab:"/>
+<l:gentext key="Appendix" text="Əlavə"/>
+<l:gentext key="appendix" text="Əlavə"/>
+<l:gentext key="Article" text="Məqalə"/>
+<l:gentext key="article" text="Məqalə"/>
+<l:gentext key="Author" text="Müəllif"/>
+<l:gentext key="Bibliography" text="Qaynaqça"/>
+<l:gentext key="bibliography" text="Qaynaqça"/>
+<l:gentext key="Book" text="Kitab"/>
+<l:gentext key="book" text="Kitab"/>
+<l:gentext key="CAUTION" text="DİQQƏT"/>
+<l:gentext key="Caution" text="Diqqət"/>
+<l:gentext key="caution" text="Diqqət"/>
+<l:gentext key="Chapter" text="Bölüm"/>
+<l:gentext key="chapter" text="Bölüm"/>
+<l:gentext key="Colophon" text="Kitab Haqqında"/>
+<l:gentext key="colophon" text="Kitab Haqqında"/>
+<l:gentext key="Copyright" text="Müəllif Hüququ"/>
+<l:gentext key="copyright" text="Müəllif Hüququ"/>
+<l:gentext key="Dedication" text="Həsr"/>
+<l:gentext key="dedication" text="Həsr"/>
+<l:gentext key="Edition" text="Buraxılış"/>
+<l:gentext key="edition" text="Buraxılış"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Tənlik"/>
+<l:gentext key="equation" text="Tənlik"/>
+<l:gentext key="Example" text="Nümunə"/>
+<l:gentext key="example" text="Nümunə"/>
+<l:gentext key="Figure" text="Fiqur"/>
+<l:gentext key="figure" text="Fiqur"/>
+<l:gentext key="Glossary" text="Lüğət"/>
+<l:gentext key="glossary" text="Lüğət"/>
+<l:gentext key="GlossSee" text="Bax"/>
+<l:gentext key="glosssee" text="Bax"/>
+<l:gentext key="GlossSeeAlso" text="Eləcə Də Bax"/>
+<l:gentext key="glossseealso" text="Eləcə Də Bax"/>
+<l:gentext key="IMPORTANT" text="VACİB"/>
+<l:gentext key="important" text="Vacib"/>
+<l:gentext key="Important" text="Vacib"/>
+<l:gentext key="Index" text="İndeks"/>
+<l:gentext key="index" text="İndeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Qanuni Qeyd"/>
+<l:gentext key="legalnotice" text="Qanuni Qeyd"/>
+<l:gentext key="MsgAud" text="Hədəf Oxuyucu"/>
+<l:gentext key="msgaud" text="Hədəf Oxuyucu"/>
+<l:gentext key="MsgLevel" text="Səviyyə"/>
+<l:gentext key="msglevel" text="Səviyyə"/>
+<l:gentext key="MsgOrig" text="Mənbə"/>
+<l:gentext key="msgorig" text="Mənbə"/>
+<l:gentext key="NOTE" text="QEYD"/>
+<l:gentext key="Note" text="Qeyd"/>
+<l:gentext key="note" text="Qeyd"/>
+<l:gentext key="Part" text="Hissə"/>
+<l:gentext key="part" text="Hissə"/>
+<l:gentext key="Preface" text="Önsöz"/>
+<l:gentext key="preface" text="Önsöz"/>
+<l:gentext key="Procedure" text="Üsul"/>
+<l:gentext key="procedure" text="Üsul"/>
+<l:gentext key="ProductionSet" text="Produksiya"/>
+<l:gentext key="PubDate" text="Yayimlama Tarixi"/>
+<l:gentext key="pubdate" text="Yayimlama Tarixi"/>
+<l:gentext key="Published" text="Yayimlama"/>
+<l:gentext key="published" text="Yayimlama"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="S və C"/>
+<l:gentext key="qandadiv" text="S və C"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Sual:"/>
+<l:gentext key="question" text="Sual:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Xatırlatma"/>
+<l:gentext key="reference" text="Xatırlatma"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ad"/>
+<l:gentext key="refname" text="Ad"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="İcmal"/>
+<l:gentext key="refsynopsisdiv" text="İcmal"/>
+<l:gentext key="RevHistory" text="Nəzərdən Keçirmə Tarixçəsi"/>
+<l:gentext key="revhistory" text="Nəzərdən Keçirmə Tarixçəsi"/>
+<l:gentext key="revision" text="Nəzərdən Keçirmə"/>
+<l:gentext key="Revision" text="Nəzərdən Keçirmə"/>
+<l:gentext key="sect1" text="Qisim"/>
+<l:gentext key="sect2" text="Qisim"/>
+<l:gentext key="sect3" text="Qisim"/>
+<l:gentext key="sect4" text="Qisim"/>
+<l:gentext key="sect5" text="Qisim"/>
+<l:gentext key="section" text="Qisim"/>
+<l:gentext key="Section" text="Qisim"/>
+<l:gentext key="see" text="bax"/>
+<l:gentext key="See" text="Bax"/>
+<l:gentext key="seealso" text="eləcə də bax"/>
+<l:gentext key="Seealso" text="Eləcə Də Bax"/>
+<l:gentext key="SeeAlso" text="Eləcə Də Bax"/>
+<l:gentext key="set" text="Dəstə"/>
+<l:gentext key="Set" text="Dəstə"/>
+<l:gentext key="setindex" text="İndeksi Seç"/>
+<l:gentext key="SetIndex" text="İndeksi Seç"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="Kənar Çubuğu"/>
+<l:gentext key="step" text="addım"/>
+<l:gentext key="Step" text="Addım"/>
+<l:gentext key="table" text="cədvəl"/>
+<l:gentext key="Table" text="Cədvəl"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="məsləhət"/>
+<l:gentext key="TIP" text="MƏSLƏHƏT"/>
+<l:gentext key="Tip" text="Məsləhət"/>
+<l:gentext key="Warning" text="Xəbərdarlıq"/>
+<l:gentext key="warning" text="Xəbərdarlıq"/>
+<l:gentext key="WARNING" text="XƏBƏRDARLIQ"/>
+<l:gentext key="and" text="və"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Düzəldildi"/>
+<l:gentext key="edited" text="Düzəldildi"/>
+<l:gentext key="Editedby" text="Düzəliş edən"/>
+<l:gentext key="editedby" text="Düzəliş edən"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="mövcud olmayan element"/>
+<l:gentext key="notes" text="Qeydlər"/>
+<l:gentext key="Notes" text="Qeydlər"/>
+<l:gentext key="Pgs" text="Shflr."/>
+<l:gentext key="pgs" text="Shflr."/>
+<l:gentext key="Revisedby" text="Gözdən keçirən: "/>
+<l:gentext key="revisedby" text="Gözdən keçirən: "/>
+<l:gentext key="TableNotes" text="Qeydlər"/>
+<l:gentext key="tablenotes" text="Qeydlər"/>
+<l:gentext key="TableofContents" text="Məzmun"/>
+<l:gentext key="tableofcontents" text="Məzmun"/>
+<l:gentext key="unexpectedelementname" text="Gözlənməyən element adı"/>
+<l:gentext key="unsupported" text="dəstəklənmir"/>
+<l:gentext key="xrefto" text=""/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Tənliklər"/>
+<l:gentext key="ListofEquations" text="Tənliklər"/>
+<l:gentext key="ListofExamples" text="Nümunələr"/>
+<l:gentext key="listofexamples" text="Nümunələr"/>
+<l:gentext key="ListofFigures" text="Fiqurlar"/>
+<l:gentext key="listoffigures" text="Fiqurlar"/>
+<l:gentext key="ListofProcedures" text="Üsullar"/>
+<l:gentext key="listofprocedures" text="Üsullar"/>
+<l:gentext key="listoftables" text="Cədvəllər"/>
+<l:gentext key="ListofTables" text="Cədvəllər"/>
+<l:gentext key="ListofUnknown" text="Naməlumlar"/>
+<l:gentext key="listofunknown" text="List of Unknown" lang="en"/>
+<l:gentext key="nav-home" text="Ev"/>
+<l:gentext key="nav-next" text="Sonrakı"/>
+<l:gentext key="nav-next-sibling" text="İrəli"/>
+<l:gentext key="nav-prev" text="Əvvəlki"/>
+<l:gentext key="nav-prev-sibling" text="Geri"/>
+<l:gentext key="nav-up" text="Yuxarı"/>
+<l:gentext key="nav-toc" text="Məzmun"/>
+<l:gentext key="Draft" text="Şablon"/>
+<l:gentext key="above" text="Üstündə"/>
+<l:gentext key="below" text="Altında"/>
+<l:gentext key="sectioncalled" text=""/>
+<l:gentext key="index symbols" text="Simvollar"/>
+<l:gentext key="lowercase.alpha" text="abcçdeəfgğhxıijkqlmnoöprsştuüvyz"/>
+<l:gentext key="uppercase.alpha" text="ABCÇDEƏFGĞHXIİJKQLMNOÖPRSŞTUÜVYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Əlavə %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Tənlik %n. %t"/>
+<l:template name="example" text="Nümunə %n. %t"/>
+<l:template name="figure" text="Fiqur %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Hissə %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Üsul %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produksiya %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Cədvəl %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Əlavə %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="part" text="Hissə %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Cavab: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Sual: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Sual: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="sect1" text=" “%t”"/>
+<l:template name="sect2" text=" “%t”"/>
+<l:template name="sect3" text=" “%t”"/>
+<l:template name="sect4" text=" “%t”"/>
+<l:template name="sect5" text=" “%t”"/>
+<l:template name="section" text=" “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Cavab: %n"/>
+<l:template name="appendix" text="Əlavə %n"/>
+<l:template name="bridgehead" text="Qisim %n"/>
+<l:template name="chapter" text="Bölüm %n"/>
+<l:template name="equation" text="Tənlik %n"/>
+<l:template name="example" text="Nümunə %n"/>
+<l:template name="figure" text="Fiqur %n"/>
+<l:template name="part" text="Hissə %n"/>
+<l:template name="procedure" text="Üsul %n"/>
+<l:template name="productionset" text="Produksiya %n"/>
+<l:template name="qandadiv" text="S və C %n"/>
+<l:template name="qandaentry" text="Sual: %n"/>
+<l:template name="question" text="Sual: %n"/>
+<l:template name="sect1" text="Qisim %n"/>
+<l:template name="sect2" text="Qisim %n"/>
+<l:template name="sect3" text="Qisim %n"/>
+<l:template name="sect4" text="Qisim %n"/>
+<l:template name="sect5" text="Qisim %n"/>
+<l:template name="section" text="Qisim %n"/>
+<l:template name="table" text="Cədvəl %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Əlavə %n, %t"/>
+<l:template name="bridgehead" text="Qisim %n, “%t”"/>
+<l:template name="chapter" text="Bölüm %n, %t"/>
+<l:template name="equation" text="Tənlik %n, “%t”"/>
+<l:template name="example" text="Nümunə %n, “%t”"/>
+<l:template name="figure" text="Fiqur %n, “%t”"/>
+<l:template name="part" text="Hissə %n, “%t”"/>
+<l:template name="procedure" text="Üsul %n, “%t”"/>
+<l:template name="productionset" text="Produksiya %n, “%t”"/>
+<l:template name="qandadiv" text="S və C %n, “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="sect1" text="Qisim %n, “%t”"/>
+<l:template name="sect2" text="Qisim %n, “%t”"/>
+<l:template name="sect3" text="Qisim %n, “%t”"/>
+<l:template name="sect4" text="Qisim %n, “%t”"/>
+<l:template name="sect5" text="Qisim %n, “%t”"/>
+<l:template name="section" text="Qisim %n, “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+<l:template name="table" text="Cədvəl %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" və "/>
+<l:template name="seplast" text=", və "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Bax %t"/>
+<l:template name="seealso" text="Eləcə Də Bax %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Hədəf Oxuyucu: "/>
+<l:template name="MsgLevel" text="Səviyyə: "/>
+<l:template name="MsgOrig" text="Mənbə: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janvar"/>
+<l:template name="February" text="Fevral"/>
+<l:template name="March" text="Mart"/>
+<l:template name="April" text="Aprel"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="İyun"/>
+<l:template name="July" text="İyul"/>
+<l:template name="August" text="Avqust"/>
+<l:template name="September" text="Sentyabr"/>
+<l:template name="October" text="Oktyabr"/>
+<l:template name="November" text="Noyabr"/>
+<l:template name="December" text="Dekabr"/>
+<l:template name="Monday" text="Bazar Ertəsi"/>
+<l:template name="Tuesday" text="Çərşənbə Axşamı "/>
+<l:template name="Wednesday" text="Çərşənbə"/>
+<l:template name="Thursday" text="Cümə Axşamı"/>
+<l:template name="Friday" text="Cümə"/>
+<l:template name="Saturday" text="Şənbə"/>
+<l:template name="Sunday" text="Bazar"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Yan"/>
+<l:template name="Feb" text="Fev"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="İyn"/>
+<l:template name="Jul" text="İyl"/>
+<l:template name="Aug" text="Avq"/>
+<l:template name="Sep" text="Sen"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Noy"/>
+<l:template name="Dec" text="Dek"/>
+<l:template name="Mon" text="Ber"/>
+<l:template name="Tue" text="Çax"/>
+<l:template name="Wed" text="Çər"/>
+<l:template name="Thu" text="Cax"/>
+<l:template name="Fri" text="Cüm"/>
+<l:template name="Sat" text="Şnb"/>
+<l:template name="Sun" text="Baz"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x042c Azerbaijani"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">İşarələr</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Ç</l:l>
+<l:l i="5">ç</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="6">E</l:l>
+<l:l i="6">e</l:l>
+<l:l i="7">e</l:l>
+<l:l i="7">e</l:l>
+<l:l i="8">Ə</l:l>
+<l:l i="8">ə</l:l>
+<l:l i="9">G</l:l>
+<l:l i="9">g</l:l>
+<l:l i="10">Ğ</l:l>
+<l:l i="10">ğ</l:l>
+<l:l i="11">H</l:l>
+<l:l i="11">h</l:l>
+<l:l i="12">X</l:l>
+<l:l i="12">x</l:l>
+<l:l i="13">I</l:l>
+<l:l i="13">ı</l:l>
+<l:l i="14">İ</l:l>
+<l:l i="14">i</l:l>
+<l:l i="15">J</l:l>
+<l:l i="15">j</l:l>
+<l:l i="16">K</l:l>
+<l:l i="16">k</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">L</l:l>
+<l:l i="18">l</l:l>
+<l:l i="19">M</l:l>
+<l:l i="19">m</l:l>
+<l:l i="20">N</l:l>
+<l:l i="20">n</l:l>
+<l:l i="21">O</l:l>
+<l:l i="21">o</l:l>
+<l:l i="22">Ö</l:l>
+<l:l i="22">ö</l:l>
+<l:l i="23">P</l:l>
+<l:l i="23">p</l:l>
+<l:l i="24">R</l:l>
+<l:l i="24">r</l:l>
+<l:l i="25">S</l:l>
+<l:l i="25">s</l:l>
+<l:l i="26">Ş</l:l>
+<l:l i="26">ş</l:l>
+<l:l i="27">T</l:l>
+<l:l i="27">t</l:l>
+<l:l i="28">U</l:l>
+<l:l i="28">u</l:l>
+<l:l i="29">Ü</l:l>
+<l:l i="29">ü</l:l>
+<l:l i="30">V</l:l>
+<l:l i="30">v</l:l>
+<l:l i="31">Y</l:l>
+<l:l i="31">y</l:l>
+<l:l i="32">Z</l:l>
+<l:l i="32">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/bg.xml b/docs/xsl-generic/common/bg.xml
new file mode 100644
index 00000000..1e6e7a13
--- /dev/null
+++ b/docs/xsl-generic/common/bg.xml
@@ -0,0 +1,718 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bg" english-language-name="Bulgarian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bg.xml -->
+<!-- * -->
+<!-- * E-mail the edited bg.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Анотация"/>
+<l:gentext key="abstract" text="Анотация"/>
+<l:gentext key="Answer" text="О"/>
+<l:gentext key="answer" text="О"/>
+<l:gentext key="Appendix" text="Приложение"/>
+<l:gentext key="appendix" text="Приложение"/>
+<l:gentext key="Article" text="Статия"/>
+<l:gentext key="article" text="Статия"/>
+<l:gentext key="Author" text="Автор"/>
+<l:gentext key="Bibliography" text="Литература"/>
+<l:gentext key="bibliography" text="Литература"/>
+<l:gentext key="Book" text="Книга"/>
+<l:gentext key="book" text="Книга"/>
+<l:gentext key="CAUTION" text="Внимание"/>
+<l:gentext key="Caution" text="Внимание"/>
+<l:gentext key="caution" text="Внимание"/>
+<l:gentext key="Chapter" text="Глава"/>
+<l:gentext key="chapter" text="Глава"/>
+<l:gentext key="Colophon" text="Библиографско каре"/>
+<l:gentext key="colophon" text="Библиографско каре"/>
+<l:gentext key="Copyright" text="Авторски права"/>
+<l:gentext key="copyright" text="Авторски права"/>
+<l:gentext key="Dedication" text="Посвещение"/>
+<l:gentext key="dedication" text="Посвещение"/>
+<l:gentext key="Edition" text="Издание"/>
+<l:gentext key="edition" text="Издание"/>
+<l:gentext key="Editor" text="Редактор"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="Формула"/>
+<l:gentext key="Example" text="Пример"/>
+<l:gentext key="example" text="Пример"/>
+<l:gentext key="Figure" text="Фигура"/>
+<l:gentext key="figure" text="Фигура"/>
+<l:gentext key="Glossary" text="Терминологичен речник"/>
+<l:gentext key="glossary" text="Терминологичен речник"/>
+<l:gentext key="GlossSee" text="вж."/>
+<l:gentext key="glosssee" text="вж."/>
+<l:gentext key="GlossSeeAlso" text="вж."/>
+<l:gentext key="glossseealso" text="вж."/>
+<l:gentext key="IMPORTANT" text="Важно"/>
+<l:gentext key="important" text="Важно"/>
+<l:gentext key="Important" text="Важно"/>
+<l:gentext key="Index" text="Азбучен указател"/>
+<l:gentext key="index" text="Азбучен указател"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Авторски права"/>
+<l:gentext key="legalnotice" text="Авторски права"/>
+<l:gentext key="MsgAud" text="Насоченост"/>
+<l:gentext key="msgaud" text="Насоченост"/>
+<l:gentext key="MsgLevel" text="Ниво"/>
+<l:gentext key="msglevel" text="Ниво"/>
+<l:gentext key="MsgOrig" text="Източник"/>
+<l:gentext key="msgorig" text="Източник"/>
+<l:gentext key="NOTE" text="Забележка"/>
+<l:gentext key="Note" text="Забележка"/>
+<l:gentext key="note" text="Забележка"/>
+<l:gentext key="Part" text="Част"/>
+<l:gentext key="part" text="Част"/>
+<l:gentext key="Preface" text="Предговор"/>
+<l:gentext key="preface" text="Предговор"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="Процедура"/>
+<l:gentext key="ProductionSet" text="Множество от декартови произведения по Бакхус-Наур"/>
+<l:gentext key="PubDate" text="Дата на издаване"/>
+<l:gentext key="pubdate" text="Дата на издаване"/>
+<l:gentext key="Published" text="Издаден"/>
+<l:gentext key="published" text="Издаден"/>
+<l:gentext key="Publisher" text="Издател"/>
+<l:gentext key="Qandadiv" text="Въпроси и отговори"/>
+<l:gentext key="qandadiv" text="Въпроси и отговори"/>
+<l:gentext key="QandASet" text="Често задавани въпроси"/>
+<l:gentext key="Question" text="В"/>
+<l:gentext key="question" text="В"/>
+<l:gentext key="RefEntry" text="вж."/>
+<l:gentext key="refentry" text="вж."/>
+<l:gentext key="Reference" text="Справочник"/>
+<l:gentext key="reference" text="Справочник"/>
+<l:gentext key="References" text="Препратки"/>
+<l:gentext key="RefName" text="Название"/>
+<l:gentext key="refname" text="Название"/>
+<l:gentext key="RefSection" text="вж."/>
+<l:gentext key="refsection" text="вж."/>
+<l:gentext key="RefSynopsisDiv" text="Синтаксис"/>
+<l:gentext key="refsynopsisdiv" text="Синтаксис"/>
+<l:gentext key="RevHistory" text="Промени"/>
+<l:gentext key="revhistory" text="Промени"/>
+<l:gentext key="revision" text="Издание"/>
+<l:gentext key="Revision" text="Издание"/>
+<l:gentext key="sect1" text="Раздел"/>
+<l:gentext key="sect2" text="Раздел"/>
+<l:gentext key="sect3" text="Раздел"/>
+<l:gentext key="sect4" text="Раздел"/>
+<l:gentext key="sect5" text="Раздел"/>
+<l:gentext key="section" text="Раздел"/>
+<l:gentext key="Section" text="Раздел"/>
+<l:gentext key="see" text="вж."/>
+<l:gentext key="See" text="вж."/>
+<l:gentext key="seealso" text="вж."/>
+<l:gentext key="Seealso" text="вж."/>
+<l:gentext key="SeeAlso" text="вж."/>
+<l:gentext key="set" text="Указател"/>
+<l:gentext key="Set" text="Указател"/>
+<l:gentext key="setindex" text="Указател"/>
+<l:gentext key="SetIndex" text="Указател"/>
+<l:gentext key="Sidebar" text="Разделител"/>
+<l:gentext key="sidebar" text="Разделител"/>
+<l:gentext key="step" text="Стъпка"/>
+<l:gentext key="Step" text="Стъпка"/>
+<l:gentext key="table" text="Таблица"/>
+<l:gentext key="Table" text="Таблица"/>
+<l:gentext key="task" text="Задача"/>
+<l:gentext key="Task" text="Задача"/>
+<l:gentext key="tip" text="Подсказка"/>
+<l:gentext key="TIP" text="Подсказка"/>
+<l:gentext key="Tip" text="Подсказка"/>
+<l:gentext key="Warning" text="Внимание"/>
+<l:gentext key="warning" text="Внимание"/>
+<l:gentext key="WARNING" text="Внимание"/>
+<l:gentext key="and" text="и"/>
+<l:gentext key="by" text="от"/>
+<l:gentext key="Edited" text="Редактирано от"/>
+<l:gentext key="edited" text="Редактирано от"/>
+<l:gentext key="Editedby" text="Редактирано от"/>
+<l:gentext key="editedby" text="Редактирано от"/>
+<l:gentext key="in" text="в"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="липсващ елемент"/>
+<l:gentext key="notes" text="Забележки"/>
+<l:gentext key="Notes" text="Забележки"/>
+<l:gentext key="Pgs" text="стр."/>
+<l:gentext key="pgs" text="стр."/>
+<l:gentext key="Revisedby" text="Преработено от"/>
+<l:gentext key="revisedby" text="Преработено от"/>
+<l:gentext key="TableNotes" text="Забележки"/>
+<l:gentext key="tablenotes" text="Забележки"/>
+<l:gentext key="TableofContents" text="Съдържание"/>
+<l:gentext key="tableofcontents" text="Съдържание"/>
+<l:gentext key="unexpectedelementname" text="неочакван елемент"/>
+<l:gentext key="unsupported" text="неподдържан елемент"/>
+<l:gentext key="xrefto" text="вж."/>
+<l:gentext key="Authors" text="Автори"/>
+<l:gentext key="copyeditor" text="Редактор"/>
+<l:gentext key="graphicdesigner" text="Автор на графичното оформление"/>
+<l:gentext key="productioneditor" text="Редактор на изданието"/>
+<l:gentext key="technicaleditor" text="Технически редактор"/>
+<l:gentext key="translator" text="Преводач"/>
+<l:gentext key="listofequations" text="Списък на формулите"/>
+<l:gentext key="ListofEquations" text="Списък на формулите"/>
+<l:gentext key="ListofExamples" text="Списък на примерите"/>
+<l:gentext key="listofexamples" text="Списък на примерите"/>
+<l:gentext key="ListofFigures" text="Списък на фигурите"/>
+<l:gentext key="listoffigures" text="Списък на фигурите"/>
+<l:gentext key="ListofProcedures" text="Списък на процедурите"/>
+<l:gentext key="listofprocedures" text="Списък на процедурите"/>
+<l:gentext key="listoftables" text="Списък на таблиците"/>
+<l:gentext key="ListofTables" text="Списък на таблиците"/>
+<l:gentext key="ListofUnknown" text="Списък с други неща"/>
+<l:gentext key="listofunknown" text="Списък с други неща"/>
+<l:gentext key="nav-home" text="Начало"/>
+<l:gentext key="nav-next" text="Напред"/>
+<l:gentext key="nav-next-sibling" text="Прескачане напред"/>
+<l:gentext key="nav-prev" text="Назад"/>
+<l:gentext key="nav-prev-sibling" text="Прескачане назад"/>
+<l:gentext key="nav-up" text="Ниво нагоре"/>
+<l:gentext key="nav-toc" text="Съдържание"/>
+<l:gentext key="Draft" text="Чернова"/>
+<l:gentext key="above" text="по-горе"/>
+<l:gentext key="below" text="по-долу"/>
+<l:gentext key="sectioncalled" text="разделът със заглавие"/>
+<l:gentext key="index symbols" text="символи"/>
+<l:gentext key="lowercase.alpha" text="абвгдежзийклмнопрстуфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="«"/>
+<l:dingbat key="singleendquote" text="»"/>
+<l:dingbat key="bullet" text="—"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Пример %n. %t"/>
+<l:template name="figure" text="Фигура %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Част %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Множество от декартови произведения по Бакхус-Наур %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблица %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="part" text="Част %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="О. %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="В. %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="В. %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="разделът със заглавие „%t“"/>
+<l:template name="refsection" text="разделът със заглавие „%t“"/>
+<l:template name="refsect1" text="разделът със заглавие „%t“"/>
+<l:template name="refsect2" text="разделът със заглавие „%t“"/>
+<l:template name="refsect3" text="разделът със заглавие „%t“"/>
+<l:template name="sect1" text="разделът със заглавие „%t“"/>
+<l:template name="sect2" text="разделът със заглавие „%t“"/>
+<l:template name="sect3" text="разделът със заглавие „%t“"/>
+<l:template name="sect4" text="разделът със заглавие „%t“"/>
+<l:template name="sect5" text="разделът със заглавие „%t“"/>
+<l:template name="section" text="разделът със заглавие „%t“"/>
+<l:template name="simplesect" text="разделът със заглавие „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="О. %n"/>
+<l:template name="appendix" text="Приложение %n"/>
+<l:template name="bridgehead" text="Раздел %n"/>
+<l:template name="chapter" text="Глава %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Пример %n"/>
+<l:template name="figure" text="Фигура %n"/>
+<l:template name="part" text="Част %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Множество от декартови произведения по Бакхус-Наур %n"/>
+<l:template name="qandadiv" text="Въпроси и отговори %n"/>
+<l:template name="qandaentry" text="В. %n"/>
+<l:template name="question" text="В. %n"/>
+<l:template name="sect1" text="Раздел %n"/>
+<l:template name="sect2" text="Раздел %n"/>
+<l:template name="sect3" text="Раздел %n"/>
+<l:template name="sect4" text="Раздел %n"/>
+<l:template name="sect5" text="Раздел %n"/>
+<l:template name="section" text="Раздел %n"/>
+<l:template name="table" text="Таблица %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Приложение %n, %t"/>
+<l:template name="bridgehead" text="Раздел %n, „%t“"/>
+<l:template name="chapter" text="Глава %n, %t"/>
+<l:template name="equation" text="Формула %n, „%t“"/>
+<l:template name="example" text="Пример %n, „%t“"/>
+<l:template name="figure" text="Фигура %n, „%t“"/>
+<l:template name="part" text="Част %n, „%t“"/>
+<l:template name="procedure" text="Процедура %n, „%t“"/>
+<l:template name="productionset" text="Множество от декартови произведения по Бакхус-Наур %n, „%t“"/>
+<l:template name="qandadiv" text="Въпроси и отговори %n, „%t“"/>
+<l:template name="refsect1" text="разделът със заглавие „%t“"/>
+<l:template name="refsect2" text="разделът със заглавие „%t“"/>
+<l:template name="refsect3" text="разделът със заглавие „%t“"/>
+<l:template name="refsection" text="разделът със заглавие „%t“"/>
+<l:template name="sect1" text="Раздел %n, „%t“"/>
+<l:template name="sect2" text="Раздел %n, „%t“"/>
+<l:template name="sect3" text="Раздел %n, „%t“"/>
+<l:template name="sect4" text="Раздел %n, „%t“"/>
+<l:template name="sect5" text="Раздел %n, „%t“"/>
+<l:template name="section" text="Раздел %n, „%t“"/>
+<l:template name="simplesect" text="разделът със заглавие „%t“"/>
+<l:template name="table" text="Таблица %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" и "/>
+<l:template name="seplast" text=" и "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="вж. %t"/>
+<l:template name="seealso" text="вж. %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Насоченост: "/>
+<l:template name="MsgLevel" text="Ниво: "/>
+<l:template name="MsgOrig" text="Източник: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y г."/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="януари"/>
+<l:template name="February" text="февруари"/>
+<l:template name="March" text="март"/>
+<l:template name="April" text="април"/>
+<l:template name="May" text="май"/>
+<l:template name="June" text="юни"/>
+<l:template name="July" text="юли"/>
+<l:template name="August" text="август"/>
+<l:template name="September" text="септември"/>
+<l:template name="October" text="октомври"/>
+<l:template name="November" text="ноември"/>
+<l:template name="December" text="декември"/>
+<l:template name="Monday" text="понеделник"/>
+<l:template name="Tuesday" text="вторник"/>
+<l:template name="Wednesday" text="сряда"/>
+<l:template name="Thursday" text="четвъртък"/>
+<l:template name="Friday" text="петък"/>
+<l:template name="Saturday" text="събота"/>
+<l:template name="Sunday" text="неделя"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ян."/>
+<l:template name="Feb" text="фев."/>
+<l:template name="Mar" text="март"/>
+<l:template name="Apr" text="апр."/>
+<l:template name="May" text="май"/>
+<l:template name="Jun" text="юни"/>
+<l:template name="Jul" text="юли"/>
+<l:template name="Aug" text="авг."/>
+<l:template name="Sep" text="сеп."/>
+<l:template name="Oct" text="окт."/>
+<l:template name="Nov" text="ноем."/>
+<l:template name="Dec" text="дек."/>
+<l:template name="Mon" text="пон."/>
+<l:template name="Tue" text="вт."/>
+<l:template name="Wed" text="ср."/>
+<l:template name="Thu" text="чет."/>
+<l:template name="Fri" text="пет."/>
+<l:template name="Sat" text="съб."/>
+<l:template name="Sun" text="нед."/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0402 Bulgarian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="—"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Цифри и знаци</l:l>
+<l:l i="10">А</l:l>
+<l:l i="10">а</l:l>
+<l:l i="20">Б</l:l>
+<l:l i="20">б</l:l>
+<l:l i="30">В</l:l>
+<l:l i="30">в</l:l>
+<l:l i="40">Г</l:l>
+<l:l i="40">г</l:l>
+<l:l i="50">Д</l:l>
+<l:l i="50">д</l:l>
+<l:l i="60">Е</l:l>
+<l:l i="60">е</l:l>
+<l:l i="70">Ж</l:l>
+<l:l i="70">ж</l:l>
+<l:l i="80">З</l:l>
+<l:l i="80">з</l:l>
+<l:l i="90">И</l:l>
+<l:l i="90">и</l:l>
+<l:l i="100">Й</l:l>
+<l:l i="100">й</l:l>
+<l:l i="110">К</l:l>
+<l:l i="110">к</l:l>
+<l:l i="120">Л</l:l>
+<l:l i="120">л</l:l>
+<l:l i="130">М</l:l>
+<l:l i="130">м</l:l>
+<l:l i="140">Н</l:l>
+<l:l i="140">н</l:l>
+<l:l i="150">О</l:l>
+<l:l i="150">о</l:l>
+<l:l i="160">П</l:l>
+<l:l i="160">п</l:l>
+<l:l i="170">Р</l:l>
+<l:l i="170">р</l:l>
+<l:l i="180">С</l:l>
+<l:l i="180">с</l:l>
+<l:l i="190">Т</l:l>
+<l:l i="190">т</l:l>
+<l:l i="200">У</l:l>
+<l:l i="200">у</l:l>
+<l:l i="210">Ф</l:l>
+<l:l i="210">ф</l:l>
+<l:l i="220">Х</l:l>
+<l:l i="220">х</l:l>
+<l:l i="230">Ц</l:l>
+<l:l i="230">ц</l:l>
+<l:l i="240">Ч</l:l>
+<l:l i="240">ч</l:l>
+<l:l i="250">Ш</l:l>
+<l:l i="250">ш</l:l>
+<l:l i="260">Щ</l:l>
+<l:l i="260">щ</l:l>
+<l:l i="270">Ъ</l:l>
+<l:l i="270">ъ</l:l>
+<l:l i="280">Ь</l:l>
+<l:l i="280">ь</l:l>
+<l:l i="290">Ю</l:l>
+<l:l i="290">ю</l:l>
+<l:l i="300">Я</l:l>
+<l:l i="300">я</l:l>
+<l:l i="310">Э</l:l>
+<l:l i="310">э</l:l>
+<l:l i="320">Ы</l:l>
+<l:l i="320">ы</l:l>
+<l:l i="410">A</l:l>
+<l:l i="410">a</l:l>
+<l:l i="420">B</l:l>
+<l:l i="420">b</l:l>
+<l:l i="430">C</l:l>
+<l:l i="430">c</l:l>
+<l:l i="440">D</l:l>
+<l:l i="440">d</l:l>
+<l:l i="450">E</l:l>
+<l:l i="450">e</l:l>
+<l:l i="460">F</l:l>
+<l:l i="460">f</l:l>
+<l:l i="470">G</l:l>
+<l:l i="470">g</l:l>
+<l:l i="480">H</l:l>
+<l:l i="480">h</l:l>
+<l:l i="490">I</l:l>
+<l:l i="490">i</l:l>
+<l:l i="500">J</l:l>
+<l:l i="500">j</l:l>
+<l:l i="510">K</l:l>
+<l:l i="510">k</l:l>
+<l:l i="520">L</l:l>
+<l:l i="520">l</l:l>
+<l:l i="530">M</l:l>
+<l:l i="530">m</l:l>
+<l:l i="540">N</l:l>
+<l:l i="540">n</l:l>
+<l:l i="550">O</l:l>
+<l:l i="550">o</l:l>
+<l:l i="560">P</l:l>
+<l:l i="560">p</l:l>
+<l:l i="570">Q</l:l>
+<l:l i="570">q</l:l>
+<l:l i="580">R</l:l>
+<l:l i="580">r</l:l>
+<l:l i="590">S</l:l>
+<l:l i="590">s</l:l>
+<l:l i="600">T</l:l>
+<l:l i="600">t</l:l>
+<l:l i="610">U</l:l>
+<l:l i="610">u</l:l>
+<l:l i="620">V</l:l>
+<l:l i="620">v</l:l>
+<l:l i="630">W</l:l>
+<l:l i="630">w</l:l>
+<l:l i="640">X</l:l>
+<l:l i="640">x</l:l>
+<l:l i="650">Y</l:l>
+<l:l i="650">y</l:l>
+<l:l i="660">Z</l:l>
+<l:l i="660">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/bn.xml b/docs/xsl-generic/common/bn.xml
new file mode 100644
index 00000000..f31e01c4
--- /dev/null
+++ b/docs/xsl-generic/common/bn.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bn" english-language-name="Bangla">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bn.xml -->
+<!-- * -->
+<!-- * E-mail the edited bn.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="সারসংক্ষেপ"/>
+<l:gentext key="abstract" text="সারসংক্ষেপ"/>
+<l:gentext key="Answer" text="উত্তর:"/>
+<l:gentext key="answer" text="উত্তর:"/>
+<l:gentext key="Appendix" text="পরিশিষ্ট"/>
+<l:gentext key="appendix" text="পরিশিষ্ট"/>
+<l:gentext key="Article" text="প্রবন্ধ"/>
+<l:gentext key="article" text="প্রবন্ধ"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="গ্রন্থ তালিকা"/>
+<l:gentext key="bibliography" text="গ্রন্থ তালিকা"/>
+<l:gentext key="Book" text="বই"/>
+<l:gentext key="book" text="বই"/>
+<l:gentext key="CAUTION" text="সতর্কতা"/>
+<l:gentext key="Caution" text="সতর্কতা"/>
+<l:gentext key="caution" text="সতর্কতা"/>
+<l:gentext key="Chapter" text="অধ্যায়"/>
+<l:gentext key="chapter" text="অধ্যায়"/>
+<l:gentext key="Colophon" text="প্রকাশনা তথ্য পৃষ্ঠা"/>
+<l:gentext key="colophon" text="প্রকাশনা তথ্য পৃষ্ঠা"/>
+<l:gentext key="Copyright" text="স্বত্ব"/>
+<l:gentext key="copyright" text="স্বত্ব"/>
+<l:gentext key="Dedication" text="উত্‍সর্গ"/>
+<l:gentext key="dedication" text="উত্‍সর্গ"/>
+<l:gentext key="Edition" text="সংস্করণ"/>
+<l:gentext key="edition" text="সংস্করণ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="সমীকরণ"/>
+<l:gentext key="equation" text="সমীকরণ"/>
+<l:gentext key="Example" text="উদাহরণ"/>
+<l:gentext key="example" text="উদাহরণ"/>
+<l:gentext key="Figure" text="চিত্র"/>
+<l:gentext key="figure" text="চিত্র"/>
+<l:gentext key="Glossary" text="নির্ঘন্ট"/>
+<l:gentext key="glossary" text="নির্ঘন্ট"/>
+<l:gentext key="GlossSee" text="দেখুন"/>
+<l:gentext key="glosssee" text="দেখুন"/>
+<l:gentext key="GlossSeeAlso" text="আরো দেখুন"/>
+<l:gentext key="glossseealso" text="আরো দেখুন"/>
+<l:gentext key="IMPORTANT" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="important" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="Important" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="Index" text="সূচি"/>
+<l:gentext key="index" text="সূচি"/>
+<l:gentext key="ISBN" text="আইএসবিএন (ISBN)"/>
+<l:gentext key="isbn" text="আইএসবিএন (ISBN)"/>
+<l:gentext key="LegalNotice" text="আইনী বিজ্ঞপ্তি"/>
+<l:gentext key="legalnotice" text="আইনী বিজ্ঞপ্তি"/>
+<l:gentext key="MsgAud" text="শ্রোতা"/>
+<l:gentext key="msgaud" text="শ্রোতা"/>
+<l:gentext key="MsgLevel" text="স্তর"/>
+<l:gentext key="msglevel" text="স্তর"/>
+<l:gentext key="MsgOrig" text="উত্‍স"/>
+<l:gentext key="msgorig" text="উত্‍স"/>
+<l:gentext key="NOTE" text="লক্ষণীয়"/>
+<l:gentext key="Note" text="লক্ষণীয়"/>
+<l:gentext key="note" text="লক্ষণীয়"/>
+<l:gentext key="Part" text="খন্ড"/>
+<l:gentext key="part" text="খন্ড"/>
+<l:gentext key="Preface" text="মুখবন্ধ"/>
+<l:gentext key="preface" text="মুখবন্ধ"/>
+<l:gentext key="Procedure" text="পদ্ধতি"/>
+<l:gentext key="procedure" text="পদ্ধতি"/>
+<l:gentext key="ProductionSet" text="উত্‍পাদন"/>
+<l:gentext key="PubDate" text="প্রকাশনার তারিখ"/>
+<l:gentext key="pubdate" text="প্রকাশনার তারিখ"/>
+<l:gentext key="Published" text="প্রকাশিত"/>
+<l:gentext key="published" text="প্রকাশিত"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="প্রশ্নএবংউত্তর"/>
+<l:gentext key="qandadiv" text="প্রশ্নএবংউত্তর"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="প্রশ্ন:"/>
+<l:gentext key="question" text="প্রশ্ন:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="গ্রন্থসূত্র"/>
+<l:gentext key="reference" text="গ্রন্থসূত্র"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="নাম"/>
+<l:gentext key="refname" text="নাম"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="সারাংশ"/>
+<l:gentext key="refsynopsisdiv" text="সারাংশ"/>
+<l:gentext key="RevHistory" text="পরিবর্ধন ও পরিবর্তন তালিকা"/>
+<l:gentext key="revhistory" text="পরিবর্ধন ও পরিবর্তন তালিকা"/>
+<l:gentext key="revision" text="সংস্করণ"/>
+<l:gentext key="Revision" text="সংস্করণ"/>
+<l:gentext key="sect1" text="অনুচ্ছেদ"/>
+<l:gentext key="sect2" text="অনুচ্ছেদ"/>
+<l:gentext key="sect3" text="অনুচ্ছেদ"/>
+<l:gentext key="sect4" text="অনুচ্ছেদ"/>
+<l:gentext key="sect5" text="অনুচ্ছেদ"/>
+<l:gentext key="section" text="অনুচ্ছেদ"/>
+<l:gentext key="Section" text="অনুচ্ছেদ"/>
+<l:gentext key="see" text="দেখুন"/>
+<l:gentext key="See" text="দেখুন"/>
+<l:gentext key="seealso" text="আরো দেখুন"/>
+<l:gentext key="Seealso" text="আরো দেখুন"/>
+<l:gentext key="SeeAlso" text="আরো দেখুন"/>
+<l:gentext key="set" text="সমষ্টি"/>
+<l:gentext key="Set" text="সমষ্টি"/>
+<l:gentext key="setindex" text="সূচিসমষ্টি"/>
+<l:gentext key="SetIndex" text="সূচিসমষ্টি"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="সাইডবার"/>
+<l:gentext key="step" text="ধাপ"/>
+<l:gentext key="Step" text="ধাপ"/>
+<l:gentext key="table" text="ছক"/>
+<l:gentext key="Table" text="ছক"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ইঙ্গিত"/>
+<l:gentext key="TIP" text="ইঙ্গিত"/>
+<l:gentext key="Tip" text="ইঙ্গিত"/>
+<l:gentext key="Warning" text="সতর্কবাণী"/>
+<l:gentext key="warning" text="সতর্কবাণী"/>
+<l:gentext key="WARNING" text="সতর্কবাণী"/>
+<l:gentext key="and" text="এবং"/>
+<l:gentext key="by" text="দ্বারা"/>
+<l:gentext key="Edited" text="সম্পাদিত"/>
+<l:gentext key="edited" text="সম্পাদিত"/>
+<l:gentext key="Editedby" text="সম্পাদক"/>
+<l:gentext key="editedby" text="সম্পাদক"/>
+<l:gentext key="in" text="মধ্যে"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="অস্তিত্বহীন উপাদান"/>
+<l:gentext key="notes" text="নোট"/>
+<l:gentext key="Notes" text="নোট"/>
+<l:gentext key="Pgs" text="পৃষ্ঠা."/>
+<l:gentext key="pgs" text="পৃষ্ঠা."/>
+<l:gentext key="Revisedby" text="পরিমার্জনাকারী: "/>
+<l:gentext key="revisedby" text="পরিমার্জনাকারী: "/>
+<l:gentext key="TableNotes" text="নোট"/>
+<l:gentext key="tablenotes" text="নোট"/>
+<l:gentext key="TableofContents" text="সূচিপত্র"/>
+<l:gentext key="tableofcontents" text="সূচিপত্র"/>
+<l:gentext key="unexpectedelementname" text="অপ্রত্যাশিত উপাদানের নাম"/>
+<l:gentext key="unsupported" text="অসমর্থিত"/>
+<l:gentext key="xrefto" text="নির্দেশ করে"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="সমীকরণ তালিকা"/>
+<l:gentext key="ListofEquations" text="সমীকরণ তালিকা"/>
+<l:gentext key="ListofExamples" text="উদাহরণ তালিকা"/>
+<l:gentext key="listofexamples" text="উদাহরণ তালিকা"/>
+<l:gentext key="ListofFigures" text="চিত্রতালিকা"/>
+<l:gentext key="listoffigures" text="চিত্রতালিকা"/>
+<l:gentext key="ListofProcedures" text="পদ্ধতির তালিকা"/>
+<l:gentext key="listofprocedures" text="পদ্ধতির তালিকা"/>
+<l:gentext key="listoftables" text="ছকের তালিকা"/>
+<l:gentext key="ListofTables" text="ছকের তালিকা"/>
+<l:gentext key="ListofUnknown" text="অজ্ঞাত বস্তুর তালিকা"/>
+<l:gentext key="listofunknown" text="অজ্ঞাত বস্তুর তালিকা"/>
+<l:gentext key="nav-home" text="প্রথম অবস্থান (Home)"/>
+<l:gentext key="nav-next" text="পরবর্তী"/>
+<l:gentext key="nav-next-sibling" text="দ্রুত সম্মুখে"/>
+<l:gentext key="nav-prev" text="পূর্ববর্তী"/>
+<l:gentext key="nav-prev-sibling" text="দ্রুত পশ্চাতে"/>
+<l:gentext key="nav-up" text="উপর"/>
+<l:gentext key="nav-toc" text="সূচিপত্র"/>
+<l:gentext key="Draft" text="খসড়া"/>
+<l:gentext key="above" text="উপর"/>
+<l:gentext key="below" text="নিচ"/>
+<l:gentext key="sectioncalled" text="অনুচ্ছেদ"/>
+<l:gentext key="index symbols" text="প্রতীক"/>
+<l:gentext key="lowercase.alpha" text="অআইঈউঊএঐওঔঋকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহংঃ"/>
+<l:gentext key="uppercase.alpha" text="অআইঈউঊএঐওঔঋকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহংঃ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="পরিশিষ্ট %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="সমীকরণ %n. %t"/>
+<l:template name="example" text="উদাহরণ %n. %t"/>
+<l:template name="figure" text="চিত্র %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="খন্ড %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="পদ্ধতি %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="উত্‍পাদন %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ছক %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="পরিশিষ্ট %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="part" text="খন্ড %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="উত্তর: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="প্রশ্ন: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="প্রশ্ন: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsection" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect1" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect2" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect3" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect1" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect2" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect3" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect4" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect5" text="অনুচ্ছেদ “%t”"/>
+<l:template name="section" text="অনুচ্ছেদ “%t”"/>
+<l:template name="simplesect" text="অনুচ্ছেদ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="উত্তর: %n"/>
+<l:template name="appendix" text="পরিশিষ্ট %n"/>
+<l:template name="bridgehead" text="অনুচ্ছেদ %n"/>
+<l:template name="chapter" text="অধ্যায় %n"/>
+<l:template name="equation" text="সমীকরণ %n"/>
+<l:template name="example" text="উদাহরণ %n"/>
+<l:template name="figure" text="চিত্র %n"/>
+<l:template name="part" text="খন্ড %n"/>
+<l:template name="procedure" text="পদ্ধতি %n"/>
+<l:template name="productionset" text="উত্‍পাদন %n"/>
+<l:template name="qandadiv" text="প্রশ্নএবংউত্তর %n"/>
+<l:template name="qandaentry" text="প্রশ্ন: %n"/>
+<l:template name="question" text="প্রশ্ন: %n"/>
+<l:template name="sect1" text="অনুচ্ছেদ %n"/>
+<l:template name="sect2" text="অনুচ্ছেদ %n"/>
+<l:template name="sect3" text="অনুচ্ছেদ %n"/>
+<l:template name="sect4" text="অনুচ্ছেদ %n"/>
+<l:template name="sect5" text="অনুচ্ছেদ %n"/>
+<l:template name="section" text="অনুচ্ছেদ %n"/>
+<l:template name="table" text="ছক %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="পরিশিষ্ট %n, %t"/>
+<l:template name="bridgehead" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="chapter" text="অধ্যায় %n, %t"/>
+<l:template name="equation" text="সমীকরণ %n, “%t”"/>
+<l:template name="example" text="উদাহরণ %n, “%t”"/>
+<l:template name="figure" text="চিত্র %n, “%t”"/>
+<l:template name="part" text="খন্ড %n, “%t”"/>
+<l:template name="procedure" text="পদ্ধতি %n, “%t”"/>
+<l:template name="productionset" text="উত্‍পাদন %n, “%t”"/>
+<l:template name="qandadiv" text="প্রশ্নএবংউত্তর %n, “%t”"/>
+<l:template name="refsect1" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect2" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect3" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsection" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect1" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect2" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect3" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect4" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect5" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="section" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="simplesect" text="অনুচ্ছেদ “%t”"/>
+<l:template name="table" text="ছক %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" এবং "/>
+<l:template name="seplast" text=", এবং "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="দেখুন %t"/>
+<l:template name="seealso" text="আরো দেখুন %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="শ্রোতা: "/>
+<l:template name="MsgLevel" text="স্তর: "/>
+<l:template name="MsgOrig" text="উত্‍স: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="জানুয়ারী"/>
+<l:template name="February" text="ফেব্রুয়ারী"/>
+<l:template name="March" text="মার্চ"/>
+<l:template name="April" text="এপ্রিল"/>
+<l:template name="May" text="মে"/>
+<l:template name="June" text="জুন"/>
+<l:template name="July" text="জুলাই"/>
+<l:template name="August" text="আগস্ট"/>
+<l:template name="September" text="সেপ্টেম্বর"/>
+<l:template name="October" text="অক্টোবর"/>
+<l:template name="November" text="নভেম্বর"/>
+<l:template name="December" text="ডিসেম্বর"/>
+<l:template name="Monday" text="সোমবার"/>
+<l:template name="Tuesday" text="মঙ্গলবার"/>
+<l:template name="Wednesday" text="বুধবার"/>
+<l:template name="Thursday" text="বৃহঃস্পতিবার"/>
+<l:template name="Friday" text="শুক্রবার"/>
+<l:template name="Saturday" text="শনিবার"/>
+<l:template name="Sunday" text="রবিবার"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="জানুয়ারী"/>
+<l:template name="Feb" text="ফেব্রুয়ারী"/>
+<l:template name="Mar" text="মার্চ"/>
+<l:template name="Apr" text="এপ্রিল"/>
+<l:template name="May" text="মে"/>
+<l:template name="Jun" text="জুন"/>
+<l:template name="Jul" text="জুলাই"/>
+<l:template name="Aug" text="আগস্ট"/>
+<l:template name="Sep" text="সেপ্টেম্বর"/>
+<l:template name="Oct" text="অক্টোবর"/>
+<l:template name="Nov" text="নভেম্বর"/>
+<l:template name="Dec" text="ডিসেম্বর"/>
+<l:template name="Mon" text="সোম"/>
+<l:template name="Tue" text="মঙ্গল"/>
+<l:template name="Wed" text="বুধ"/>
+<l:template name="Thu" text="বৃহঃস্পতি"/>
+<l:template name="Fri" text="শুক্র"/>
+<l:template name="Sat" text="শনি"/>
+<l:template name="Sun" text="রবি"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0445 Bangla (Bangladesh and India)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/bs.xml b/docs/xsl-generic/common/bs.xml
new file mode 100644
index 00000000..341c211d
--- /dev/null
+++ b/docs/xsl-generic/common/bs.xml
@@ -0,0 +1,656 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bs" english-language-name="Bosnian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bs.xml -->
+<!-- * -->
+<!-- * E-mail the edited bs.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sažetak"/>
+<l:gentext key="abstract" text="Sažetak"/>
+<l:gentext key="Answer" text="O:"/>
+<l:gentext key="answer" text="O:"/>
+<l:gentext key="Appendix" text="Dodatak"/>
+<l:gentext key="appendix" text="Dodatak"/>
+<l:gentext key="Article" text="Članak"/>
+<l:gentext key="article" text="Članak"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="Literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="Knjiga"/>
+<l:gentext key="CAUTION" text="PAŽNJA"/>
+<l:gentext key="Caution" text="Pažnja"/>
+<l:gentext key="caution" text="Pažnja"/>
+<l:gentext key="Chapter" text="Poglavlje"/>
+<l:gentext key="chapter" text="Poglavlje"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="Kolofon"/>
+<l:gentext key="Copyright" text="Autorska prava"/>
+<l:gentext key="copyright" text="Autorska prava"/>
+<l:gentext key="Dedication" text="Posveta"/>
+<l:gentext key="dedication" text="Posveta"/>
+<l:gentext key="Edition" text="Izdanje"/>
+<l:gentext key="edition" text="Izdanje"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Jednačina"/>
+<l:gentext key="equation" text="Jednačina"/>
+<l:gentext key="Example" text="Primjer"/>
+<l:gentext key="example" text="Primjer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="Slika"/>
+<l:gentext key="Glossary" text="Glosar"/>
+<l:gentext key="glossary" text="Glosar"/>
+<l:gentext key="GlossSee" text="Vidi"/>
+<l:gentext key="glosssee" text="Vidi"/>
+<l:gentext key="GlossSeeAlso" text="Vidi takođe"/>
+<l:gentext key="glossseealso" text="Vidi takođe"/>
+<l:gentext key="IMPORTANT" text="VAŽNO"/>
+<l:gentext key="important" text="Važno"/>
+<l:gentext key="Important" text="Važno"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravne odredbe"/>
+<l:gentext key="legalnotice" text="Pravne odredbe"/>
+<l:gentext key="MsgAud" text="Primatelji"/>
+<l:gentext key="msgaud" text="Primatelji"/>
+<l:gentext key="MsgLevel" text="Nivo"/>
+<l:gentext key="msglevel" text="Nivo"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="Izvor"/>
+<l:gentext key="NOTE" text="BILJEŠKA"/>
+<l:gentext key="Note" text="Bilješka"/>
+<l:gentext key="note" text="Bilješka"/>
+<l:gentext key="Part" text="Dio"/>
+<l:gentext key="part" text="Dio"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="Predgovor"/>
+<l:gentext key="Procedure" text="Postupak"/>
+<l:gentext key="procedure" text="Postupak"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Objavljeno"/>
+<l:gentext key="pubdate" text="Objavljeno"/>
+<l:gentext key="Published" text="Objavljeno"/>
+<l:gentext key="published" text="Objavljeno"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P &amp; O"/>
+<l:gentext key="qandadiv" text="P &amp; O"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referenca"/>
+<l:gentext key="reference" text="Referenca"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="Ime"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Pregled"/>
+<l:gentext key="refsynopsisdiv" text="Pregled"/>
+<l:gentext key="RevHistory" text="Historija verzija"/>
+<l:gentext key="revhistory" text="Historija verzija"/>
+<l:gentext key="revision" text="Verzija"/>
+<l:gentext key="Revision" text="Verzija"/>
+<l:gentext key="sect1" text="Odjeljak"/>
+<l:gentext key="sect2" text="Odjeljak"/>
+<l:gentext key="sect3" text="Odjeljak"/>
+<l:gentext key="sect4" text="Odjeljak"/>
+<l:gentext key="sect5" text="Odjeljak"/>
+<l:gentext key="section" text="Odjeljak"/>
+<l:gentext key="Section" text="Odjeljak"/>
+<l:gentext key="see" text="vidi"/>
+<l:gentext key="See" text="Vidi"/>
+<l:gentext key="seealso" text="vidi takođe"/>
+<l:gentext key="Seealso" text="Vidi takođe"/>
+<l:gentext key="SeeAlso" text="Vidi takođe"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Savjet"/>
+<l:gentext key="TIP" text="SAVJET"/>
+<l:gentext key="Tip" text="Savjet"/>
+<l:gentext key="Warning" text="Upozorenje"/>
+<l:gentext key="warning" text="Upozorenje"/>
+<l:gentext key="WARNING" text="UPOZORENJE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="by" text="od"/>
+<l:gentext key="Edited" text="Izdao"/>
+<l:gentext key="edited" text="Izdao"/>
+<l:gentext key="Editedby" text="Izdao"/>
+<l:gentext key="editedby" text="Izdao"/>
+<l:gentext key="in" text="u"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="nepostojeći element"/>
+<l:gentext key="notes" text="Bilješke"/>
+<l:gentext key="Notes" text="Bilješke"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Izmijenjeno od: "/>
+<l:gentext key="revisedby" text="Izmijenjeno od: "/>
+<l:gentext key="TableNotes" text="Napomene"/>
+<l:gentext key="tablenotes" text="Napomene"/>
+<l:gentext key="TableofContents" text="Sadržaj"/>
+<l:gentext key="tableofcontents" text="Sadržaj"/>
+<l:gentext key="unexpectedelementname" text="Neočkivano ime elementa"/>
+<l:gentext key="unsupported" text="nepodržano"/>
+<l:gentext key="xrefto" text="xref prema"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Spisak jednačina"/>
+<l:gentext key="ListofEquations" text="Spisak jednačina"/>
+<l:gentext key="ListofExamples" text="Spisak primjera"/>
+<l:gentext key="listofexamples" text="Spisak primjera"/>
+<l:gentext key="ListofFigures" text="Spisak slika"/>
+<l:gentext key="listoffigures" text="Spisak slika"/>
+<l:gentext key="ListofProcedures" text="Spisak postupaka"/>
+<l:gentext key="listofprocedures" text="Spisak postupaka"/>
+<l:gentext key="listoftables" text="Spisak tabela"/>
+<l:gentext key="ListofTables" text="Spisak tabela"/>
+<l:gentext key="ListofUnknown" text="Spisak ???"/>
+<l:gentext key="listofunknown" text="Spisak ???"/>
+<l:gentext key="nav-home" text="Početak"/>
+<l:gentext key="nav-next" text="Naprijed"/>
+<l:gentext key="nav-next-sibling" text="Brzo naprijed"/>
+<l:gentext key="nav-prev" text="Nazad"/>
+<l:gentext key="nav-prev-sibling" text="Brzo nazad"/>
+<l:gentext key="nav-up" text="Gore"/>
+<l:gentext key="nav-toc" text="Sadržaj"/>
+<l:gentext key="Draft" text="Nacrt"/>
+<l:gentext key="above" text="iznad"/>
+<l:gentext key="below" text="ispod"/>
+<l:gentext key="sectioncalled" text="odjeljak sa nazivom"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="lowercase.alpha" text="abcčćdđefghijklmnoprsštuvzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČĆDĐEFGHIJKLMNOPRSŠTUVZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="3"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Jednačina %n. %t"/>
+<l:template name="example" text="Primjer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postupak %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" u %o"/>
+<l:template name="olink.page.citation" text=" (strana %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(strana %p)"/>
+<l:template name="docname" text=" u %o"/>
+<l:template name="docnamelong" text=" u dokumentu sa naslovom %o"/>
+<l:template name="pageabbrev" text="(s. %p)"/>
+<l:template name="Page" text="Strana %p"/>
+<l:template name="bridgehead" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsection" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect1" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect2" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect3" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect1" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect2" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect3" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect4" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect5" text="odjeljak sa nazivom “%t”"/>
+<l:template name="section" text="odjeljak sa nazivom “%t”"/>
+<l:template name="simplesect" text="odjeljak sa nazivom “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="Dodatak %n"/>
+<l:template name="bridgehead" text="Odjeljak %n"/>
+<l:template name="chapter" text="Poglavlje %n"/>
+<l:template name="equation" text="Jednačina %n"/>
+<l:template name="example" text="Primjer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Dio %n"/>
+<l:template name="procedure" text="Postupak %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="P &amp; O %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Odjeljak %n"/>
+<l:template name="sect2" text="Odjeljak %n"/>
+<l:template name="sect3" text="Odjeljak %n"/>
+<l:template name="sect4" text="Odjeljak %n"/>
+<l:template name="sect5" text="Odjeljak %n"/>
+<l:template name="section" text="Odjeljak %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatak %n, %t"/>
+<l:template name="bridgehead" text="Odjeljak %n, “%t”"/>
+<l:template name="chapter" text="Poglavlje %n, %t"/>
+<l:template name="equation" text="Jednačina %n, “%t”"/>
+<l:template name="example" text="Primjer %n, “%t”"/>
+<l:template name="figure" text="Slika %n, “%t”"/>
+<l:template name="part" text="Dio %n, “%t”"/>
+<l:template name="procedure" text="Postupak %n, “%t”"/>
+<l:template name="productionset" text="Produkcija %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; O %n, “%t”"/>
+<l:template name="refsect1" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect2" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect3" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsection" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect1" text="Odjeljak %n, “%t”"/>
+<l:template name="sect2" text="Odjeljak %n, “%t”"/>
+<l:template name="sect3" text="Odjeljak %n, “%t”"/>
+<l:template name="sect4" text="Odjeljak %n, “%t”"/>
+<l:template name="sect5" text="Odjeljak %n, “%t”"/>
+<l:template name="section" text="Odjeljak %n, “%t”"/>
+<l:template name="simplesect" text="odjeljak sa nazivom “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=" i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidi %t"/>
+<l:template name="seealso" text="Vidi takođe %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Primatelji: "/>
+<l:template name="MsgLevel" text="Nivo: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="Mart"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="Septembar"/>
+<l:template name="October" text="Oktobar"/>
+<l:template name="November" text="Novembar"/>
+<l:template name="December" text="Decembar"/>
+<l:template name="Monday" text="Ponedeljak"/>
+<l:template name="Tuesday" text="Utorak"/>
+<l:template name="Wednesday" text="Srijeda"/>
+<l:template name="Thursday" text="Četvrtak"/>
+<l:template name="Friday" text="Petak"/>
+<l:template name="Saturday" text="Subota"/>
+<l:template name="Sunday" text="Nedelja"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Pon"/>
+<l:template name="Tue" text="Uto"/>
+<l:template name="Wed" text="Sri"/>
+<l:template name="Thu" text="Čet"/>
+<l:template name="Fri" text="Pet"/>
+<l:template name="Sat" text="Sub"/>
+<l:template name="Sun" text="Ned"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x141A Bosnian (Bosnia/Herzegovina)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboli</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ca.xml b/docs/xsl-generic/common/ca.xml
new file mode 100644
index 00000000..fa4332e5
--- /dev/null
+++ b/docs/xsl-generic/common/ca.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ca" english-language-name="Catalan">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ca.xml -->
+<!-- * -->
+<!-- * E-mail the edited ca.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resum"/>
+<l:gentext key="abstract" text="Resum"/>
+<l:gentext key="Answer" text="Resposta"/>
+<l:gentext key="answer" text="Resposta"/>
+<l:gentext key="Appendix" text="Apèndix"/>
+<l:gentext key="appendix" text="Apèndix"/>
+<l:gentext key="Article" text="Article"/>
+<l:gentext key="article" text="Article"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Llibre"/>
+<l:gentext key="book" text="Llibre"/>
+<l:gentext key="CAUTION" text="ATENCIÓ"/>
+<l:gentext key="Caution" text="Atenció"/>
+<l:gentext key="caution" text="Atenció"/>
+<l:gentext key="Chapter" text="Capítol"/>
+<l:gentext key="chapter" text="Capítol"/>
+<l:gentext key="Colophon" text="Colofó"/>
+<l:gentext key="colophon" text="Colofó"/>
+<l:gentext key="Copyright" text="Dret de reproducció"/>
+<l:gentext key="copyright" text="Dret de reproducció"/>
+<l:gentext key="Dedication" text="Dedicatòria"/>
+<l:gentext key="dedication" text="Dedicatòria"/>
+<l:gentext key="Edition" text="Edició"/>
+<l:gentext key="edition" text="Edició"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equació"/>
+<l:gentext key="equation" text="Equació"/>
+<l:gentext key="Example" text="Exemple"/>
+<l:gentext key="example" text="Exemple"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Glossari"/>
+<l:gentext key="glossary" text="Glossari"/>
+<l:gentext key="GlossSee" text="Veure"/>
+<l:gentext key="glosssee" text="Veure"/>
+<l:gentext key="GlossSeeAlso" text="Veure també"/>
+<l:gentext key="glossseealso" text="Veure també"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Índex alfabètic"/>
+<l:gentext key="index" text="Índex alfabètic"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Avís legal"/>
+<l:gentext key="legalnotice" text="Avís legal"/>
+<l:gentext key="MsgAud" text="Audiència"/>
+<l:gentext key="msgaud" text="Audiència"/>
+<l:gentext key="MsgLevel" text="Nivell"/>
+<l:gentext key="msglevel" text="Nivell"/>
+<l:gentext key="MsgOrig" text="Origen"/>
+<l:gentext key="msgorig" text="Origen"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="Nota"/>
+<l:gentext key="Part" text="Part"/>
+<l:gentext key="part" text="Part"/>
+<l:gentext key="Preface" text="Prefaci"/>
+<l:gentext key="preface" text="Prefaci"/>
+<l:gentext key="Procedure" text="Procediment"/>
+<l:gentext key="procedure" text="Procediment"/>
+<l:gentext key="ProductionSet" text="Producció"/>
+<l:gentext key="PubDate" text="Data de publicació"/>
+<l:gentext key="pubdate" text="Data de publicació"/>
+<l:gentext key="Published" text="Publicat"/>
+<l:gentext key="published" text="Publicat"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Pregunta i Resposta"/>
+<l:gentext key="qandadiv" text="Pregunta i Resposta"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Pregunta"/>
+<l:gentext key="question" text="Pregunta"/>
+<l:gentext key="RefEntry" text="Entrada de referència"/>
+<l:gentext key="refentry" text="Entrada de referència"/>
+<l:gentext key="Reference" text="Referència"/>
+<l:gentext key="reference" text="Referència"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nom"/>
+<l:gentext key="refname" text="Nom"/>
+<l:gentext key="RefSection" text="Secció de referència"/>
+<l:gentext key="refsection" text="Secció de referència"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsi"/>
+<l:gentext key="refsynopsisdiv" text="Sinopsi"/>
+<l:gentext key="RevHistory" text="Historial de revisions"/>
+<l:gentext key="revhistory" text="Historial de revisions"/>
+<l:gentext key="revision" text="Revisió"/>
+<l:gentext key="Revision" text="Revisió"/>
+<l:gentext key="sect1" text="Secció"/>
+<l:gentext key="sect2" text="Secció"/>
+<l:gentext key="sect3" text="Secció"/>
+<l:gentext key="sect4" text="Secció"/>
+<l:gentext key="sect5" text="Secció"/>
+<l:gentext key="section" text="Secció"/>
+<l:gentext key="Section" text="Secció"/>
+<l:gentext key="see" text="Veure"/>
+<l:gentext key="See" text="Veure"/>
+<l:gentext key="seealso" text="Veure també"/>
+<l:gentext key="Seealso" text="Veure també"/>
+<l:gentext key="SeeAlso" text="Veure També"/>
+<l:gentext key="set" text="Conjunt"/>
+<l:gentext key="Set" text="Conjunt"/>
+<l:gentext key="setindex" text="Índex del conjunt"/>
+<l:gentext key="SetIndex" text="Índex del conjunt"/>
+<l:gentext key="Sidebar" text="Barra lateral"/>
+<l:gentext key="sidebar" text="Barra lateral"/>
+<l:gentext key="step" text="Pas"/>
+<l:gentext key="Step" text="Pas"/>
+<l:gentext key="table" text="Taula"/>
+<l:gentext key="Table" text="Taula"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Suggeriment"/>
+<l:gentext key="TIP" text="SUGGERIMENT"/>
+<l:gentext key="Tip" text="Suggeriment"/>
+<l:gentext key="Warning" text="Avís"/>
+<l:gentext key="warning" text="Avís"/>
+<l:gentext key="WARNING" text="AVÍS"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="by" text="per"/>
+<l:gentext key="Edited" text="Editat"/>
+<l:gentext key="edited" text="Editat"/>
+<l:gentext key="Editedby" text="Editat per"/>
+<l:gentext key="editedby" text="Editat per"/>
+<l:gentext key="in" text="a"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="element inexistent"/>
+<l:gentext key="notes" text="notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pàgs."/>
+<l:gentext key="pgs" text="Pàgs."/>
+<l:gentext key="Revisedby" text="Revisat per: "/>
+<l:gentext key="revisedby" text="Revisat per: "/>
+<l:gentext key="TableNotes" text="Notes de taula"/>
+<l:gentext key="tablenotes" text="Notes de taula"/>
+<l:gentext key="TableofContents" text="Sumari"/>
+<l:gentext key="tableofcontents" text="Sumari"/>
+<l:gentext key="unexpectedelementname" text="nom d'element inesperat"/>
+<l:gentext key="unsupported" text="no reconeguda"/>
+<l:gentext key="xrefto" text="referència a"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Índex d'equacions"/>
+<l:gentext key="ListofEquations" text="Índex d'equacions"/>
+<l:gentext key="ListofExamples" text="Índex d'exemples"/>
+<l:gentext key="listofexamples" text="Índex d'exemples"/>
+<l:gentext key="ListofFigures" text="Índex de figures"/>
+<l:gentext key="listoffigures" text="Índex de figures"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Índex de taules"/>
+<l:gentext key="ListofTables" text="Índex de taules"/>
+<l:gentext key="ListofUnknown" text="Índex de desconegut ?"/>
+<l:gentext key="listofunknown" text="Índex de desconegut ?"/>
+<l:gentext key="nav-home" text="Inici"/>
+<l:gentext key="nav-next" text="Següent"/>
+<l:gentext key="nav-next-sibling" text="Avançar"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Retrocedir"/>
+<l:gentext key="nav-up" text="Pujar"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Esborrany"/>
+<l:gentext key="above" text="dalt"/>
+<l:gentext key="below" text="baix"/>
+<l:gentext key="sectioncalled" text="secció anomenada"/>
+<l:gentext key="index symbols" text="Símbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzàèéíòóúñç"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÀÈÉÍÒÓÚÑÇ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="last-first"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apèndix %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítol %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equació %n. %t"/>
+<l:template name="example" text="Exemple %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procediment %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Producció %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Taula %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apèndix %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capítol %n. %t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Resposta %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Pregunta %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pregunta %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text=" “%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Resposta %n"/>
+<l:template name="appendix" text="Apèndix %n"/>
+<l:template name="bridgehead" text="Secció %n"/>
+<l:template name="chapter" text="Capítol %n"/>
+<l:template name="equation" text="Equació %n"/>
+<l:template name="example" text="Exemple %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Part %n"/>
+<l:template name="procedure" text="Procediment %n"/>
+<l:template name="productionset" text="Producció %n"/>
+<l:template name="qandadiv" text="Pregunta i Resposta %n"/>
+<l:template name="qandaentry" text="Pregunta %n"/>
+<l:template name="question" text="Pregunta %n"/>
+<l:template name="sect1" text="Secció %n"/>
+<l:template name="sect2" text="Secció %n"/>
+<l:template name="sect3" text="Secció %n"/>
+<l:template name="sect4" text="Secció %n"/>
+<l:template name="sect5" text="Secció %n"/>
+<l:template name="section" text="Secció %n"/>
+<l:template name="table" text="Taula %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apèndix %n, %t"/>
+<l:template name="bridgehead" text="Secció %n, “%t”"/>
+<l:template name="chapter" text="Capítol %n, %t"/>
+<l:template name="equation" text="Equació %n, “%t”"/>
+<l:template name="example" text="Exemple %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Part %n, “%t”"/>
+<l:template name="procedure" text="Procediment %n, “%t”"/>
+<l:template name="productionset" text="Producció %n, “%t”"/>
+<l:template name="qandadiv" text="Pregunta i Resposta %n, “%t”"/>
+<l:template name="refsect1" text="secció anomenada “%t”"/>
+<l:template name="refsect2" text="secció anomenada “%t”"/>
+<l:template name="refsect3" text="secció anomenada “%t”"/>
+<l:template name="refsection" text="secció anomenada “%t”"/>
+<l:template name="sect1" text="Secció %n, “%t”"/>
+<l:template name="sect2" text="Secció %n, “%t”"/>
+<l:template name="sect3" text="Secció %n, “%t”"/>
+<l:template name="sect4" text="Secció %n, “%t”"/>
+<l:template name="sect5" text="Secció %n, “%t”"/>
+<l:template name="section" text="Secció %n, “%t”"/>
+<l:template name="simplesect" text="secció anomenada “%t”"/>
+<l:template name="table" text="Taula %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Veure %t"/>
+<l:template name="seealso" text="Veure també %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiència: "/>
+<l:template name="MsgLevel" text="Nivell: "/>
+<l:template name="MsgOrig" text="Origen: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0403 Catalan"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/charmap.xml b/docs/xsl-generic/common/charmap.xml
new file mode 100644
index 00000000..6644f3e5
--- /dev/null
+++ b/docs/xsl-generic/common/charmap.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0"?>
+
+<reference xml:id="charmap">
+ <info>
+ <title>Common » Character-Map Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: charmap.xsl 7266 2007-08-22 11:58:42Z xmldoc $
+ </releaseinfo>
+ </info>
+
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+
+<para>This is technical reference documentation for the
+ character-map templates in the DocBook XSL Stylesheets.</para>
+
+ <note>
+
+<para>These templates are defined in a separate file from the set
+ of “common” templates because some of the common templates
+ reference DocBook XSL stylesheet parameters, requiring the
+ entire set of parameters to be imported/included in any
+ stylesheet that imports/includes the common templates.</para>
+
+
+<para>The character-map templates don’t import or include
+ any DocBook XSL stylesheet parameters, so the
+ character-map templates can be used without importing the
+ whole set of parameters.</para>
+
+ </note>
+
+<para>This is not intended to be user documentation. It is
+ provided for developers writing customization layers for the
+ stylesheets.</para>
+
+ </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.apply-character-map">
+<refnamediv>
+<refname>apply-character-map</refname>
+<refpurpose>Applies an XSLT character map</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="apply-character-map"&gt;
+&lt;xsl:param name="content"/&gt;
+&lt;xsl:param name="map.contents"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template applies an <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character map</link>; that is, it causes certain
+ individual characters to be substituted with strings of one
+ or more characters. It is useful mainly for replacing
+ multiple “special” characters or symbols in the same target
+ content. It uses the value of
+ <parameter>map.contents</parameter> to do substitution on
+ <parameter>content</parameter>, and then returns the
+ modified contents.</para>
+
+ <note>
+
+<para>This template is a very slightly modified version of
+ Jeni Tennison’s <function>replace_strings</function>
+ template in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13">multiple string replacements</link> section of Dave Pawson’s
+ <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT FAQ</link>.</para>
+
+
+<para>The <function>apply-string-subst-map</function>
+ template is essentially the same template as the
+ <function>apply-character-map</function> template; the
+ only difference is that in the map that
+ <function>apply-string-subst-map</function> expects, <tag class="attribute">oldstring</tag> and <tag class="attribute">newstring</tag> attributes are used
+ instead of <tag class="attribute">character</tag> and <tag class="attribute">string</tag> attributes.</para>
+
+ </note>
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry><term>content</term>
+ <listitem>
+
+<para>The content on which to perform the character-map
+ substitution.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>map.contents</term>
+ <listitem>
+
+<para>A node set of elements, with each element having
+ the following attributes:
+
+<itemizedlist>
+ <listitem>
+ <simpara><tag class="attribute">character</tag>, a
+ character to be replaced</simpara>
+ </listitem>
+ <listitem>
+ <simpara><tag class="attribute">string</tag>, a
+ string with which to replace <tag class="attribute">character</tag></simpara>
+ </listitem>
+ </itemizedlist>
+
+ </para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.read-character-map">
+<refnamediv>
+<refname>read-character-map</refname>
+<refpurpose>Reads in all or part of an XSLT character map</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="read-character-map"&gt;
+&lt;xsl:param name="use.subset"/&gt;
+&lt;xsl:param name="subset.profile"/&gt;
+&lt;xsl:param name="uri"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The XSLT 2.0 specification describes <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">character maps</link> and explains how they may be used
+ to allow a specific character appearing in a text or
+ attribute node in a final result tree to be substituted by
+ a specified string of characters during serialization. The
+ <function>read-character-map</function> template provides a
+ means for reading and using character maps with XSLT
+ 1.0-based tools.</para>
+
+
+<para>This template reads the character-map contents from
+ <parameter>uri</parameter> (in full or in part, depending on
+ the value of the <parameter>use.subset</parameter>
+ parameter), then passes those contents to the
+ <function>apply-character-map</function> template, along with
+ <parameter>content</parameter>, the data on which to perform
+ the character substitution.</para>
+
+
+<para>Using the character map “in part” means that it uses only
+ those <tag>output-character</tag> elements that match the
+ XPath expression given in the value of the
+ <parameter>subset.profile</parameter> parameter. The current
+ implementation of that capability here relies on the
+ <function>evaluate</function> extension XSLT function.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry><term>use.subset</term>
+ <listitem>
+
+<para>Specifies whether to use a subset of the character
+ map instead of the whole map; boolean
+ <literal>0</literal> or <literal>1</literal></para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>subset.profile</term>
+ <listitem>
+
+<para>XPath expression that specifies what subset of the
+ character map to use</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>uri</term>
+ <listitem>
+
+<para>URI for a character map</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1></refentry>
+</reference>
+
diff --git a/docs/xsl-generic/common/charmap.xsl b/docs/xsl-generic/common/charmap.xsl
new file mode 100644
index 00000000..3e0f5d4d
--- /dev/null
+++ b/docs/xsl-generic/common/charmap.xsl
@@ -0,0 +1,221 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:dyn="http://exslt.org/dynamic"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ exclude-result-prefixes="doc dyn saxon"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: charmap.xsl 7266 2007-08-22 11:58:42Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+<doc:reference xmlns="" xml:id="charmap">
+ <info>
+ <title>Common » Character-Map Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: charmap.xsl 7266 2007-08-22 11:58:42Z xmldoc $
+ </releaseinfo>
+ </info>
+ <!-- * yes, partintro is a valid child of a reference... -->
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+ <para>This is technical reference documentation for the
+ character-map templates in the DocBook XSL Stylesheets.</para>
+ <note>
+ <para>These templates are defined in a separate file from the set
+ of “common” templates because some of the common templates
+ reference DocBook XSL stylesheet parameters, requiring the
+ entire set of parameters to be imported/included in any
+ stylesheet that imports/includes the common templates.</para>
+ <para>The character-map templates don’t import or include
+ any DocBook XSL stylesheet parameters, so the
+ character-map templates can be used without importing the
+ whole set of parameters.</para>
+ </note>
+ <para>This is not intended to be user documentation. It is
+ provided for developers writing customization layers for the
+ stylesheets.</para>
+ </partintro>
+</doc:reference>
+
+<!-- ===================================== -->
+<doc:template name="apply-character-map" xmlns="">
+ <refpurpose>Applies an XSLT character map</refpurpose>
+ <refdescription id="apply-character-map-desc">
+ <para>This template applies an <link
+ xlink:href="http://www.w3.org/TR/xslt20/#character-maps"
+ >XSLT character map</link>; that is, it causes certain
+ individual characters to be substituted with strings of one
+ or more characters. It is useful mainly for replacing
+ multiple “special” characters or symbols in the same target
+ content. It uses the value of
+ <parameter>map.contents</parameter> to do substitution on
+ <parameter>content</parameter>, and then returns the
+ modified contents.</para>
+ <note>
+ <para>This template is a very slightly modified version of
+ Jeni Tennison’s <function>replace_strings</function>
+ template in the <link
+ xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13"
+ >multiple string replacements</link> section of Dave Pawson’s
+ <link xlink:href="http://www.dpawson.co.uk/xsl/index.html"
+ >XSLT FAQ</link>.</para>
+ <para>The <function>apply-string-subst-map</function>
+ template is essentially the same template as the
+ <function>apply-character-map</function> template; the
+ only difference is that in the map that
+ <function>apply-string-subst-map</function> expects, <tag
+ class="attribute">oldstring</tag> and <tag
+ class="attribute">newstring</tag> attributes are used
+ instead of <tag class="attribute">character</tag> and <tag
+ class="attribute">string</tag> attributes.</para>
+ </note>
+ </refdescription>
+ <refparameter id="apply-character-map-params">
+ <variablelist>
+ <varlistentry><term>content</term>
+ <listitem>
+ <para>The content on which to perform the character-map
+ substitution.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>map.contents</term>
+ <listitem>
+ <para>A node set of elements, with each element having
+ the following attributes:
+ <itemizedlist>
+ <listitem>
+ <simpara><tag class="attribute">character</tag>, a
+ character to be replaced</simpara>
+ </listitem>
+ <listitem>
+ <simpara><tag class="attribute">string</tag>, a
+ string with which to replace <tag
+ class="attribute">character</tag></simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+</doc:template>
+<xsl:template name="apply-character-map">
+ <xsl:param name="content"/>
+ <xsl:param name="map.contents"/>
+ <xsl:variable name="replaced_text">
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content" />
+ <xsl:with-param name="target"
+ select="$map.contents[1]/@character" />
+ <xsl:with-param name="replacement"
+ select="$map.contents[1]/@string" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$map.contents[2]">
+ <xsl:call-template name="apply-character-map">
+ <xsl:with-param name="content" select="$replaced_text" />
+ <xsl:with-param name="map.contents"
+ select="$map.contents[position() > 1]" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$replaced_text" />
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+<doc:template name="read-character-map" xmlns="">
+ <refpurpose>Reads in all or part of an XSLT character map</refpurpose>
+ <refdescription id="read-character-map-desc">
+ <para>The XSLT 2.0 specification describes <link
+ xlink:href="http://www.w3.org/TR/xslt20/#character-maps"
+ >character maps</link> and explains how they may be used
+ to allow a specific character appearing in a text or
+ attribute node in a final result tree to be substituted by
+ a specified string of characters during serialization. The
+ <function>read-character-map</function> template provides a
+ means for reading and using character maps with XSLT
+ 1.0-based tools.</para>
+ <para>This template reads the character-map contents from
+ <parameter>uri</parameter> (in full or in part, depending on
+ the value of the <parameter>use.subset</parameter>
+ parameter), then passes those contents to the
+ <function>apply-character-map</function> template, along with
+ <parameter>content</parameter>, the data on which to perform
+ the character substitution.</para>
+ <para>Using the character map “in part” means that it uses only
+ those <tag>output-character</tag> elements that match the
+ XPath expression given in the value of the
+ <parameter>subset.profile</parameter> parameter. The current
+ implementation of that capability here relies on the
+ <function>evaluate</function> extension XSLT function.</para>
+ </refdescription>
+ <refparameter id="read-character-map-params">
+ <variablelist>
+ <varlistentry><term>use.subset</term>
+ <listitem>
+ <para>Specifies whether to use a subset of the character
+ map instead of the whole map; boolean
+ <literal>0</literal> or <literal>1</literal></para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>subset.profile</term>
+ <listitem>
+ <para>XPath expression that specifies what subset of the
+ character map to use</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>uri</term>
+ <listitem>
+ <para>URI for a character map</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+</doc:template>
+<xsl:template name="read-character-map">
+ <xsl:param name="use.subset"/>
+ <xsl:param name="subset.profile"/>
+ <xsl:param name="uri"/>
+ <xsl:choose>
+ <xsl:when test="$use.subset != 0">
+ <!-- *use a subset of the character map instead of the full map -->
+ <xsl:choose>
+ <!-- * xsltproc and Xalan both support dyn:evaluate() -->
+ <xsl:when test="function-available('dyn:evaluate')">
+ <xsl:copy-of select="document($uri)//*[local-name()='output-character']
+ [dyn:evaluate($subset.profile)]"/>
+ </xsl:when>
+ <!-- * Saxon has its own evaluate() and doesn't support dyn:evaluate() -->
+ <xsl:when test="function-available('saxon:evaluate')">
+ <xsl:copy-of select="document($uri)//*[local-name()='output-character']
+ [saxon:evaluate($subset.profile)]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes"
+>
+Error: To process character-map subsets, you must use an XSLT engine
+that supports the evaluate() XSLT extension function. Your XSLT engine
+does not support it.
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- *value of $use.subset is non-zero, so use the full map -->
+ <xsl:copy-of select="document($uri)//*[local-name()='output-character']"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/common.xml b/docs/xsl-generic/common/common.xml
new file mode 100644
index 00000000..93ed030b
--- /dev/null
+++ b/docs/xsl-generic/common/common.xml
@@ -0,0 +1,622 @@
+<?xml version="1.0"?>
+
+<reference xml:id="base">
+ <info>
+ <title>Common » Base Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: common.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ </releaseinfo>
+ </info>
+
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+
+<para>This is technical reference documentation for the “base”
+ set of common templates in the DocBook XSL Stylesheets.</para>
+
+
+<para>This is not intended to be user documentation. It is
+ provided for developers writing customization layers for the
+ stylesheets.</para>
+
+ </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.component">
+<refnamediv>
+<refname>is.component</refname>
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.component"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The node which is to be tested.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.section">
+<refnamediv>
+<refname>is.section</refname>
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.section"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The node which is to be tested.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.section.level">
+<refnamediv>
+<refname>section.level</refname>
+<refpurpose>Returns the hierarchical level of a section</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="section.level"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template calculates the hierarchical level of a section.
+The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
+at level 2, etc.</para>
+
+
+
+<para>Recursive sections are calculated down to the fifth level.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The section level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.qanda.section.level">
+<refnamediv>
+<refname>qanda.section.level</refname>
+<refpurpose>Returns the hierarchical level of a QandASet</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="qanda.section.level"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.mediaobject">
+<refnamediv>
+<refname>select.mediaobject</refname>
+<refpurpose>Selects and processes an appropriate media object from a list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.mediaobject"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco |videoobject|audioobject|textobject"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+
+
+<para>This template relies on a template named
+"select.mediaobject.index" to determine which object
+in the list is appropriate.</para>
+
+
+
+<para>If no acceptable object is located, nothing happens.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+
+<para>The node list of potential objects to examine.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.mediaobject.index">
+<refnamediv>
+<refname>select.mediaobject.index</refname>
+<refpurpose>Selects the position of the appropriate media object from a list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.mediaobject.index"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco |videoobject|audioobject|textobject"/&gt;
+&lt;xsl:param name="count"&gt;1&lt;/xsl:param&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and determines
+the "right" object. It returns the position of that object
+to be used by the calling template.</para>
+
+
+
+<para>If the parameter <parameter>use.role.for.mediaobject</parameter>
+is nonzero, then it first checks for an object with
+a role attribute of the appropriate value. It takes the first
+of those. Otherwise, it takes the first acceptable object
+through a recursive pass through the list.</para>
+
+
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+
+
+<para>If no acceptable object is located, no index is returned.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+
+<para>The node list of potential objects to examine.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>count</term>
+<listitem>
+
+<para>The position in the list currently being considered by the
+recursive process.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>Returns the position in the original list of the selected object.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.acceptable.mediaobject">
+<refnamediv>
+<refname>is.acceptable.mediaobject</refname>
+<refpurpose>Returns '1' if the specified media object is recognized</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.acceptable.mediaobject"&gt;
+&lt;xsl:param name="object"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+
+<para>The media object to consider.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>0 or 1</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.id.unique">
+<refnamediv>
+<refname>check.id.unique</refname>
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="check.id.unique"&gt;
+&lt;xsl:param name="linkend"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.idref.targets">
+<refnamediv>
+<refname>check.idref.targets</refname>
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="check.idref.targets"&gt;
+&lt;xsl:param name="linkend"/&gt;
+&lt;xsl:param name="element-list"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.copyright.years">
+<refnamediv>
+<refname>copyright.years</refname>
+<refpurpose>Print a set of years with collapsed ranges</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="copyright.years"&gt;
+&lt;xsl:param name="years"/&gt;
+&lt;xsl:param name="print.ranges" select="1"/&gt;
+&lt;xsl:param name="single.year.ranges" select="0"/&gt;
+&lt;xsl:param name="firstyear" select="0"/&gt;
+&lt;xsl:param name="nextyear" select="0"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template prints a list of year elements with consecutive
+years printed as a range. In other words:</para>
+
+
+<screen>&lt;year&gt;1992&lt;/year&gt;
+&lt;year&gt;1993&lt;/year&gt;
+&lt;year&gt;1994&lt;/year&gt;</screen>
+
+
+<para>is printed <quote>1992-1994</quote>, whereas:</para>
+
+
+<screen>&lt;year&gt;1992&lt;/year&gt;
+&lt;year&gt;1994&lt;/year&gt;</screen>
+
+
+<para>is printed <quote>1992, 1994</quote>.</para>
+
+
+
+<para>This template assumes that all the year elements contain only
+decimal year numbers, that the elements are sorted in increasing
+numerical order, that there are no duplicates, and that all the years
+are expressed in full <quote>century+year</quote>
+(<quote>1999</quote> not <quote>99</quote>) notation.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>years</term>
+<listitem>
+
+<para>The initial set of year elements.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>print.ranges</term>
+<listitem>
+
+<para>If non-zero, multi-year ranges are collapsed. If zero, all years
+are printed discretely.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>single.year.ranges</term>
+<listitem>
+
+<para>If non-zero, two consecutive years will be printed as a range,
+otherwise, they will be printed discretely. In other words, a single
+year range is <quote>1991-1992</quote> but discretely it's
+<quote>1991, 1992</quote>.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns the formatted list of years.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.find.path.params">
+<refnamediv>
+<refname>find.path.params</refname>
+<refpurpose>Search in a table for the "best" match for the node</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="find.path.params"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+&lt;xsl:param name="table" select="''"/&gt;
+&lt;xsl:param name="location"&gt;
+ &lt;xsl:call-template name="xpath.location"&gt;
+ &lt;xsl:with-param name="node" select="$node"/&gt;
+ &lt;/xsl:call-template&gt;
+ &lt;/xsl:param&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template searches in a table for the value that most-closely
+(in the typical best-match sense of XSLT) matches the current (element)
+node location.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.upper">
+<refnamediv>
+<refname>string.upper</refname>
+<refpurpose>Converts a string to all uppercase letters</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="string.upper"&gt;
+&lt;xsl:param name="string" select="''"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>Given a string, this template does a language-aware conversion
+of that string to all uppercase letters, based on the values of the
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal>. All other characters are left
+unchanged.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+
+<para>The string to convert to uppercase.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.lower">
+<refnamediv>
+<refname>string.lower</refname>
+<refpurpose>Converts a string to all lowercase letters</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="string.lower"&gt;
+&lt;xsl:param name="string" select="''"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>Given a string, this template does a language-aware conversion
+of that string to all lowercase letters, based on the values of the
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal>. All other characters are left
+unchanged.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+
+<para>The string to convert to lowercase.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.choice.separator">
+<refnamediv>
+<refname>select.choice.separator</refname>
+<refpurpose>Returns localized choice separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.choice.separator"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template enables auto-generation of an appropriate
+ localized "choice" separator (for example, "and" or "or") before
+ the final item in an inline list (though it could also be useful
+ for generating choice separators for non-inline lists).</para>
+
+
+<para>It currently works by evaluating a processing instruction
+ (PI) of the form &lt;?dbchoice choice="foo"?&gt; :
+
+<itemizedlist>
+ <listitem>
+ <simpara>if the value of the <tag>choice</tag>
+ pseudo-attribute is "and" or "or", returns a localized "and"
+ or "or"</simpara>
+ </listitem>
+ <listitem>
+ <simpara>otherwise returns the literal value of the
+ <tag>choice</tag> pseudo-attribute</simpara>
+ </listitem>
+ </itemizedlist>
+
+ The latter is provided only as a temporary workaround because the
+ locale files do not currently have translations for the word
+ <wordasword>or</wordasword>. So if you want to generate a a
+ logical "or" separator in French (for example), you currently need
+ to do this:
+ <literallayout>&lt;?dbchoice choice="ou"?&gt;</literallayout>
+ </para>
+
+ <warning>
+
+<para>The <tag>dbchoice</tag> processing instruction is
+ an unfortunate hack; support for it may disappear in the future
+ (particularly if and when a more appropriate means for marking
+ up "choice" lists becomes available in DocBook).</para>
+
+ </warning>
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.evaluate.info.profile">
+<refnamediv>
+<refname>evaluate.info.profile</refname>
+<refpurpose>Evaluates an info profile</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="evaluate.info.profile"&gt;
+&lt;xsl:param name="profile"/&gt;
+&lt;xsl:param name="info"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This template evaluates an "info profile" matching the XPath
+ expression given by the <parameter>profile</parameter>
+ parameter. It relies on the XSLT <function>evaluate()</function>
+ extension function.</para>
+
+
+
+<para>The value of the <parameter>profile</parameter> parameter
+ can include the literal string <literal>$info</literal>. If found
+ in the value of the <parameter>profile</parameter> parameter, the
+ literal string <literal>$info</literal> string is replaced with
+ the value of the <parameter>info</parameter> parameter, which
+ should be a set of <replaceable>*info</replaceable> nodes; the
+ expression is then evaluated using the XSLT
+ <function>evaluate()</function> extension function.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>profile</term>
+ <listitem>
+
+<para>A string representing an XPath expression </para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of *info nodes</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a node (the result of evaluating the
+ <parameter>profile</parameter> parameter)</para>
+
+ </refsect1></refentry>
+</reference>
+
diff --git a/docs/xsl-generic/common/common.xsl b/docs/xsl-generic/common/common.xsl
new file mode 100644
index 00000000..0854ea68
--- /dev/null
+++ b/docs/xsl-generic/common/common.xsl
@@ -0,0 +1,1981 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:dyn="http://exslt.org/dynamic"
+ xmlns:saxon="http://icl.com/saxon"
+ exclude-result-prefixes="doc dyn saxon"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: common.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<doc:reference xmlns="" xml:id="base">
+ <info>
+ <title>Common » Base Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: common.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ </releaseinfo>
+ </info>
+ <!-- * yes, partintro is a valid child of a reference... -->
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+ <para>This is technical reference documentation for the “base”
+ set of common templates in the DocBook XSL Stylesheets.</para>
+ <para>This is not intended to be user documentation. It is
+ provided for developers writing customization layers for the
+ stylesheets.</para>
+ </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<!-- Establish strip/preserve whitespace rules -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm info informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsection refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+manvolnum
+"/>
+<!-- ====================================================================== -->
+
+<doc:template name="is.component" xmlns="">
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+
+<refdescription id="is.component-desc">
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter id="is.component-params">
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="is.component-returns">
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.component">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node) = 'appendix'
+ or local-name($node) = 'article'
+ or local-name($node) = 'chapter'
+ or local-name($node) = 'preface'
+ or local-name($node) = 'bibliography'
+ or local-name($node) = 'glossary'
+ or local-name($node) = 'index'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.section" xmlns="">
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+
+<refdescription id="is.section-desc">
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter id="is.section-params">
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="is.section-returns">
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.section">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node) = 'section'
+ or local-name($node) = 'sect1'
+ or local-name($node) = 'sect2'
+ or local-name($node) = 'sect3'
+ or local-name($node) = 'sect4'
+ or local-name($node) = 'sect5'
+ or local-name($node) = 'refsect1'
+ or local-name($node) = 'refsect2'
+ or local-name($node) = 'refsect3'
+ or local-name($node) = 'simplesect'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a section</refpurpose>
+
+<refdescription id="section.level-desc">
+<para>This template calculates the hierarchical level of a section.
+The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
+at level 2, etc.</para>
+
+<para>Recursive sections are calculated down to the fifth level.</para>
+</refdescription>
+
+<refparameter id="section.level-params">
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="section.level-returns">
+<para>The section level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="section.level">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node)='sect1'">1</xsl:when>
+ <xsl:when test="local-name($node)='sect2'">2</xsl:when>
+ <xsl:when test="local-name($node)='sect3'">3</xsl:when>
+ <xsl:when test="local-name($node)='sect4'">4</xsl:when>
+ <xsl:when test="local-name($node)='sect5'">5</xsl:when>
+ <xsl:when test="local-name($node)='section'">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../../section">6</xsl:when>
+ <xsl:when test="$node/../../../../../section">5</xsl:when>
+ <xsl:when test="$node/../../../../section">4</xsl:when>
+ <xsl:when test="$node/../../../section">3</xsl:when>
+ <xsl:when test="$node/../../section">2</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="local-name($node)='refsect1' or
+ local-name($node)='refsect2' or
+ local-name($node)='refsect3' or
+ local-name($node)='refsection' or
+ local-name($node)='refsynopsisdiv'">
+ <xsl:call-template name="refentry.section.level">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($node)='simplesect'">
+ <xsl:choose>
+ <xsl:when test="$node/../../sect1">2</xsl:when>
+ <xsl:when test="$node/../../sect2">3</xsl:when>
+ <xsl:when test="$node/../../sect3">4</xsl:when>
+ <xsl:when test="$node/../../sect4">5</xsl:when>
+ <xsl:when test="$node/../../sect5">5</xsl:when>
+ <xsl:when test="$node/../../section">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../section">5</xsl:when>
+ <xsl:when test="$node/../../../../section">4</xsl:when>
+ <xsl:when test="$node/../../../section">3</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:template><!-- section.level -->
+
+<doc:template name="qanda.section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a QandASet</refpurpose>
+
+<refdescription id="qanda.section.level-desc">
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+</refdescription>
+
+<refreturn id="qanda.section.level-returns">
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="qanda.section.level">
+ <xsl:variable name="section"
+ select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect5
+ |ancestor::sect4
+ |ancestor::sect3
+ |ancestor::sect2
+ |ancestor::sect1
+ |ancestor::refsect3
+ |ancestor::refsect2
+ |ancestor::refsect1)[last()]"/>
+
+ <xsl:choose>
+ <xsl:when test="count($section) = '0'">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="slevel">
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$slevel + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- Finds the total section depth of a section in a refentry -->
+<xsl:template name="refentry.section.level">
+ <xsl:param name="node" select="."/>
+
+ <xsl:variable name="RElevel">
+ <xsl:call-template name="refentry.level">
+ <xsl:with-param name="node" select="$node/ancestor::refentry[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="levelinRE">
+ <xsl:choose>
+ <xsl:when test="local-name($node)='refsynopsisdiv'">1</xsl:when>
+ <xsl:when test="local-name($node)='refsect1'">1</xsl:when>
+ <xsl:when test="local-name($node)='refsect2'">2</xsl:when>
+ <xsl:when test="local-name($node)='refsect3'">3</xsl:when>
+ <xsl:when test="local-name($node)='refsection'">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../refsection">5</xsl:when>
+ <xsl:when test="$node/../../../../refsection">4</xsl:when>
+ <xsl:when test="$node/../../../refsection">3</xsl:when>
+ <xsl:when test="$node/../../refsection">2</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:value-of select="$levelinRE + $RElevel"/>
+</xsl:template>
+
+<!-- Finds the section depth of a refentry -->
+<xsl:template name="refentry.level">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="container"
+ select="($node/ancestor::section |
+ $node/ancestor::sect1 |
+ $node/ancestor::sect2 |
+ $node/ancestor::sect3 |
+ $node/ancestor::sect4 |
+ $node/ancestor::sect5)[last()]"/>
+
+ <xsl:choose>
+ <xsl:when test="$container">
+ <xsl:variable name="slevel">
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$container"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$slevel + 1"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="qandadiv.section.level">
+ <xsl:variable name="section.level">
+ <xsl:call-template name="qanda.section.level"/>
+ </xsl:variable>
+ <xsl:variable name="anc.divs" select="ancestor::qandadiv"/>
+
+ <xsl:value-of select="count($anc.divs) + number($section.level)"/>
+</xsl:template>
+
+<xsl:template name="question.answer.label">
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+ <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+ /@defaultlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="label" select="@label"/>
+
+<!--
+ (hnr (hierarchical-number-recursive (normalize "qandadiv") node))
+
+ (parsect (ancestor-member node (section-element-list)))
+
+ (defnum (if (and %qanda-inherit-numeration%
+ %section-autolabel%)
+ (if (node-list-empty? parsect)
+ (section-autolabel-prefix node)
+ (section-autolabel parsect))
+ ""))
+
+ (hnumber (let loop ((numlist hnr) (number defnum)
+ (sep (if (equal? defnum "") "" ".")))
+ (if (null? numlist)
+ number
+ (loop (cdr numlist)
+ (string-append number
+ sep
+ (number->string (car numlist)))
+ "."))))
+ (cnumber (child-number (parent node)))
+ (number (string-append hnumber
+ (if (equal? hnumber "")
+ ""
+ ".")
+ (number->string cnumber))))
+-->
+
+ <xsl:choose>
+ <xsl:when test="$deflabel = 'qanda'">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'question'">question</xsl:when>
+ <xsl:when test="local-name(.) = 'answer'">answer</xsl:when>
+ <xsl:when test="local-name(.) = 'qandadiv'">qandadiv</xsl:when>
+ <xsl:otherwise>qandaset</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$deflabel = 'label'">
+ <xsl:value-of select="$label"/>
+ </xsl:when>
+ <xsl:when test="$deflabel = 'number'
+ and local-name(.) = 'question'">
+ <xsl:apply-templates select="ancestor::qandaset[1]"
+ mode="number"/>
+ <xsl:choose>
+ <xsl:when test="ancestor::qandadiv">
+ <xsl:apply-templates select="ancestor::qandadiv[1]"
+ mode="number"/>
+ <xsl:apply-templates select="ancestor::qandaentry"
+ mode="number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="ancestor::qandaentry"
+ mode="number"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- nothing -->
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="number">
+ <!-- FIXME: -->
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="number">
+ <xsl:number level="multiple" from="qandaset" format="1."/>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="number">
+ <xsl:choose>
+ <xsl:when test="ancestor::qandadiv">
+ <xsl:number level="single" from="qandadiv" format="1."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number level="single" from="qandaset" format="1."/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="object.id">
+ <xsl:param name="object" select="."/>
+ <xsl:choose>
+ <xsl:when test="$object/@id">
+ <xsl:value-of select="$object/@id"/>
+ </xsl:when>
+ <xsl:when test="$object/@xml:id">
+ <xsl:value-of select="$object/@xml:id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($object)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name">
+ <!-- Formats a personal name. Handles corpauthor as a special case. -->
+ <xsl:param name="node" select="."/>
+
+ <xsl:variable name="style">
+ <xsl:choose>
+ <xsl:when test="$node/@role">
+ <xsl:value-of select="$node/@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'styles'"/>
+ <xsl:with-param name="name" select="'person-name'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <!-- the personname element is a specialcase -->
+ <xsl:when test="$node/personname">
+ <xsl:call-template name="person.name">
+ <xsl:with-param name="node" select="$node/personname"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- handle corpauthor as a special case...-->
+ <!-- * MikeSmith 2007-06: I'm wondering if the person.name template -->
+ <!-- * actually ever gets called to handle corpauthor.. maybe -->
+ <!-- * we don't actually need to check for corpauthor here. -->
+ <xsl:when test="local-name($node)='corpauthor'">
+ <xsl:apply-templates select="$node"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- Handle case when personname contains only general markup (DocBook 5.0) -->
+ <xsl:when test="$node/self::personname and not($node/firstname or $node/honorific or $node/lineage or $node/othername or $node/surname)">
+ <xsl:apply-templates select="$node/node()"/>
+ </xsl:when>
+ <xsl:when test="$style = 'family-given'">
+ <xsl:call-template name="person.name.family-given">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$style = 'last-first'">
+ <xsl:call-template name="person.name.last-first">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name.first-last">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name.family-given">
+ <xsl:param name="node" select="."/>
+
+ <!-- The family-given style applies a convention for identifying given -->
+ <!-- and family names in locales where it may be ambiguous -->
+ <xsl:apply-templates select="$node//surname[1]"/>
+
+ <xsl:if test="$node//surname and $node//firstname">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+
+ <xsl:apply-templates select="$node//firstname[1]"/>
+
+ <xsl:text> [FAMILY Given]</xsl:text>
+</xsl:template>
+
+<xsl:template name="person.name.last-first">
+ <xsl:param name="node" select="."/>
+
+ <xsl:apply-templates select="$node//surname[1]"/>
+
+ <xsl:if test="$node//surname and $node//firstname">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+
+ <xsl:apply-templates select="$node//firstname[1]"/>
+</xsl:template>
+
+<xsl:template name="person.name.first-last">
+ <xsl:param name="node" select="."/>
+
+ <xsl:if test="$node//honorific">
+ <xsl:apply-templates select="$node//honorific[1]"/>
+ <xsl:value-of select="$punct.honorific"/>
+ </xsl:if>
+
+ <xsl:if test="$node//firstname">
+ <xsl:if test="$node//honorific">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$node//firstname[1]"/>
+ </xsl:if>
+
+ <xsl:if test="$node//othername and $author.othername.in.middle != 0">
+ <xsl:if test="$node//honorific or $node//firstname">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$node//othername[1]"/>
+ </xsl:if>
+
+ <xsl:if test="$node//surname">
+ <xsl:if test="$node//honorific or $node//firstname
+ or ($node//othername and $author.othername.in.middle != 0)">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$node//surname[1]"/>
+ </xsl:if>
+
+ <xsl:if test="$node//lineage">
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates select="$node//lineage[1]"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="person.name.list">
+ <!-- Return a formatted string representation of the contents of
+ the current element. The current element must contain one or
+ more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs.
+
+ John Doe
+ or
+ John Doe and Jane Doe
+ or
+ John Doe, Jane Doe, and A. Nonymous
+ -->
+ <xsl:param name="person.list"
+ select="author|corpauthor|othercredit|editor"/>
+ <xsl:param name="person.count" select="count($person.list)"/>
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count &gt; $person.count"></xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name">
+ <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="$person.count = 2 and $count = 1">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'authorgroup'"/>
+ <xsl:with-param name="name" select="'sep2'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'authorgroup'"/>
+ <xsl:with-param name="name" select="'seplast'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$count &lt; $person.count">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'authorgroup'"/>
+ <xsl:with-param name="name" select="'sep'"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:call-template name="person.name.list">
+ <xsl:with-param name="person.list" select="$person.list"/>
+ <xsl:with-param name="person.count" select="$person.count"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template><!-- person.name.list -->
+
+<!-- === synopsis ======================================================= -->
+<!-- The following definitions match those given in the reference
+ documentation for DocBook V3.0
+-->
+
+<xsl:variable name="arg.choice.opt.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.opt.close.str">]</xsl:variable>
+<xsl:variable name="arg.choice.req.open.str">{</xsl:variable>
+<xsl:variable name="arg.choice.req.close.str">}</xsl:variable>
+<xsl:variable name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.def.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.def.close.str">]</xsl:variable>
+<xsl:variable name="arg.rep.repeat.str">...</xsl:variable>
+<xsl:variable name="arg.rep.norepeat.str"></xsl:variable>
+<xsl:variable name="arg.rep.def.str"></xsl:variable>
+<xsl:variable name="arg.or.sep"> | </xsl:variable>
+<xsl:variable name="cmdsynopsis.hanging.indent">4pi</xsl:variable>
+
+<!-- ====================================================================== -->
+
+<!--
+<xsl:template name="xref.g.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%g</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:value-of select="substring-before($string, $subst)"/>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="local-name($target)"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.t.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%t</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string"
+ select="substring-before($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="title.xref">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.n.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%n</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-before($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="number.xref">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="subst.xref.text">
+ <xsl:param name="xref.text"></xsl:param>
+ <xsl:param name="target" select="."/>
+
+ <xsl:call-template name="xref.n.subst">
+ <xsl:with-param name="string" select="$xref.text"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+-->
+
+<!-- ====================================================================== -->
+
+<xsl:template name="filename-basename">
+ <!-- We assume all filenames are really URIs and use "/" -->
+ <xsl:param name="filename"></xsl:param>
+ <xsl:param name="recurse" select="false()"/>
+
+ <xsl:choose>
+ <xsl:when test="substring-after($filename, '/') != ''">
+ <xsl:call-template name="filename-basename">
+ <xsl:with-param name="filename"
+ select="substring-after($filename, '/')"/>
+ <xsl:with-param name="recurse" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="filename-extension">
+ <xsl:param name="filename"></xsl:param>
+ <xsl:param name="recurse" select="false()"/>
+
+ <!-- Make sure we only look at the base name... -->
+ <xsl:variable name="basefn">
+ <xsl:choose>
+ <xsl:when test="$recurse">
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="filename-basename">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="substring-after($basefn, '.') != ''">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename"
+ select="substring-after($basefn, '.')"/>
+ <xsl:with-param name="recurse" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$recurse">
+ <xsl:value-of select="$basefn"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject" xmlns="">
+<refpurpose>Selects and processes an appropriate media object from a list</refpurpose>
+
+<refdescription id="select.mediaobject-desc">
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+<para>This template relies on a template named
+"select.mediaobject.index" to determine which object
+in the list is appropriate.</para>
+
+<para>If no acceptable object is located, nothing happens.</para>
+</refdescription>
+
+<refparameter id="select.mediaobject-params">
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="select.mediaobject-returns">
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject">
+ <xsl:param name="olist"
+ select="imageobject|imageobjectco
+ |videoobject|audioobject|textobject"/>
+
+ <xsl:variable name="mediaobject.index">
+ <xsl:call-template name="select.mediaobject.index">
+ <xsl:with-param name="olist" select="$olist"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$mediaobject.index != ''">
+ <xsl:apply-templates select="$olist[position() = $mediaobject.index]"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject.index" xmlns="">
+<refpurpose>Selects the position of the appropriate media object from a list</refpurpose>
+
+<refdescription id="select.mediaobject.index-desc">
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and determines
+the "right" object. It returns the position of that object
+to be used by the calling template.</para>
+
+<para>If the parameter <parameter>use.role.for.mediaobject</parameter>
+is nonzero, then it first checks for an object with
+a role attribute of the appropriate value. It takes the first
+of those. Otherwise, it takes the first acceptable object
+through a recursive pass through the list.</para>
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+<para>If no acceptable object is located, no index is returned.</para>
+</refdescription>
+
+<refparameter id="select.mediaobject.index-params">
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>count</term>
+<listitem>
+<para>The position in the list currently being considered by the
+recursive process.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="select.mediaobject.index-returns">
+<para>Returns the position in the original list of the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject.index">
+ <xsl:param name="olist"
+ select="imageobject|imageobjectco
+ |videoobject|audioobject|textobject"/>
+ <xsl:param name="count">1</xsl:param>
+
+ <xsl:choose>
+ <!-- Test for objects preferred by role -->
+ <xsl:when test="$use.role.for.mediaobject != 0
+ and $preferred.mediaobject.role != ''
+ and $olist[@role = $preferred.mediaobject.role]">
+
+ <!-- Get the first hit's position index -->
+ <xsl:for-each select="$olist">
+ <xsl:if test="@role = $preferred.mediaobject.role and
+ not(preceding-sibling::*[@role = $preferred.mediaobject.role])">
+ <xsl:value-of select="position()"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+
+ <xsl:when test="$use.role.for.mediaobject != 0
+ and $olist[@role = $stylesheet.result.type]">
+ <!-- Get the first hit's position index -->
+ <xsl:for-each select="$olist">
+ <xsl:if test="@role = $stylesheet.result.type and
+ not(preceding-sibling::*[@role = $stylesheet.result.type])">
+ <xsl:value-of select="position()"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <!-- Accept 'html' for $stylesheet.result.type = 'xhtml' -->
+ <xsl:when test="$use.role.for.mediaobject != 0
+ and $stylesheet.result.type = 'xhtml'
+ and $olist[@role = 'html']">
+ <!-- Get the first hit's position index -->
+ <xsl:for-each select="$olist">
+ <xsl:if test="@role = 'html' and
+ not(preceding-sibling::*[@role = 'html'])">
+ <xsl:value-of select="position()"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+
+ <!-- If no selection by role, and there is only one object, use it -->
+ <xsl:when test="count($olist) = 1 and $count = 1">
+ <xsl:value-of select="$count"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- Otherwise select first acceptable object -->
+ <xsl:if test="$count &lt;= count($olist)">
+ <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+ <xsl:variable name="useobject">
+ <xsl:choose>
+ <!-- The phrase is used only when contains TeX Math and output is FO -->
+ <xsl:when test="local-name($object)='textobject' and $object/phrase
+ and $object/@role='tex' and $stylesheet.result.type = 'fo'
+ and $tex.math.in.alt != ''">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- The phrase is never used -->
+ <xsl:when test="local-name($object)='textobject' and $object/phrase">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($object)='textobject'
+ and $object/ancestor::equation ">
+ <!-- The first textobject is not a reasonable fallback
+ for equation image -->
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <!-- The first textobject is a reasonable fallback -->
+ <xsl:when test="local-name($object)='textobject'
+ and $object[not(@role) or @role!='tex']">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- don't use graphic when output is FO, TeX Math is used
+ and there is math in alt element -->
+ <xsl:when test="$object/ancestor::equation and
+ $object/ancestor::equation/alt[@role='tex']
+ and $stylesheet.result.type = 'fo'
+ and $tex.math.in.alt != ''">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <!-- If there's only one object, use it -->
+ <xsl:when test="$count = 1 and count($olist) = 1">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- Otherwise, see if this one is a useable graphic -->
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- peek inside imageobjectco to simplify the test -->
+ <xsl:when test="local-name($object) = 'imageobjectco'">
+ <xsl:call-template name="is.acceptable.mediaobject">
+ <xsl:with-param name="object" select="$object/imageobject"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="is.acceptable.mediaobject">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$useobject='1'">
+ <xsl:value-of select="$count"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject.index">
+ <xsl:with-param name="olist" select="$olist"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<doc:template name="is.acceptable.mediaobject" xmlns="">
+<refpurpose>Returns '1' if the specified media object is recognized</refpurpose>
+
+<refdescription id="is.acceptable.mediaobject-desc">
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+</refdescription>
+
+<refparameter id="is.acceptable.mediaobject-params">
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+<para>The media object to consider.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="is.acceptable.mediaobject-returns">
+<para>0 or 1</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.acceptable.mediaobject">
+ <xsl:param name="object"></xsl:param>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ext">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- there will only be one -->
+ <xsl:variable name="data" select="$object/videodata
+ |$object/imagedata
+ |$object/audiodata"/>
+
+ <xsl:variable name="format" select="$data/@format"/>
+
+ <xsl:variable name="graphic.format">
+ <xsl:if test="$format">
+ <xsl:call-template name="is.graphic.format">
+ <xsl:with-param name="format" select="$format"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="graphic.ext">
+ <xsl:if test="$ext">
+ <xsl:call-template name="is.graphic.extension">
+ <xsl:with-param name="ext" select="$ext"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$use.svg = 0 and $format = 'SVG'">0</xsl:when>
+ <xsl:when xmlns:svg="http://www.w3.org/2000/svg"
+ test="$use.svg != 0 and $object/svg:*">1</xsl:when>
+ <xsl:when test="$graphic.format = '1'">1</xsl:when>
+ <xsl:when test="$graphic.ext = '1'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename">
+ <xsl:param name="object"></xsl:param>
+
+ <xsl:variable name="data" select="$object/videodata
+ |$object/imagedata
+ |$object/audiodata
+ |$object"/>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="$data[@fileref]">
+ <xsl:apply-templates select="$data/@fileref"/>
+ </xsl:when>
+ <xsl:when test="$data[@entityref]">
+ <xsl:value-of select="unparsed-entity-uri($data/@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="real.ext">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ext">
+ <xsl:choose>
+ <xsl:when test="$real.ext != ''">
+ <xsl:value-of select="$real.ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$graphic.default.extension"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="graphic.ext">
+ <xsl:call-template name="is.graphic.extension">
+ <xsl:with-param name="ext" select="$ext"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$real.ext = ''">
+ <xsl:choose>
+ <xsl:when test="$ext != ''">
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="not($graphic.ext)">
+ <xsl:choose>
+ <xsl:when test="$graphic.default.extension != ''">
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$graphic.default.extension"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="check.id.unique" xmlns="">
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+<refdescription id="check.id.unique-desc">
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.id.unique">
+ <xsl:param name="linkend"></xsl:param>
+ <xsl:if test="$linkend != ''">
+ <xsl:variable name="targets" select="key('id',$linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($targets)=0">
+ <xsl:message>
+ <xsl:text>Error: no ID for constraint linkend: </xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ <!--
+ <xsl:message>
+ <xsl:text>If the ID exists in your document, did your </xsl:text>
+ <xsl:text>XSLT Processor load the DTD?</xsl:text>
+ </xsl:message>
+ -->
+ </xsl:if>
+
+ <xsl:if test="count($targets)>1">
+ <xsl:message>
+ <xsl:text>Warning: multiple "IDs" for constraint linkend: </xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<doc:template name="check.idref.targets" xmlns="">
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+<refdescription id="check.idref.targets-desc">
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.idref.targets">
+ <xsl:param name="linkend"></xsl:param>
+ <xsl:param name="element-list"></xsl:param>
+ <xsl:if test="$linkend != ''">
+ <xsl:variable name="targets" select="key('id',$linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($target) &gt; 0">
+ <xsl:if test="not(contains(concat(' ', $element-list, ' '), local-name($target)))">
+ <xsl:message>
+ <xsl:text>Error: linkend (</xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>) points to "</xsl:text>
+ <xsl:value-of select="local-name($target)"/>
+ <xsl:text>" not (one of): </xsl:text>
+ <xsl:value-of select="$element-list"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Procedure Step Numeration -->
+
+<xsl:param name="procedure.step.numeration.formats" select="'1aiAI'"/>
+
+<xsl:template name="procedure.step.numeration">
+ <xsl:param name="context" select="."/>
+ <xsl:variable name="format.length"
+ select="string-length($procedure.step.numeration.formats)"/>
+ <xsl:choose>
+ <xsl:when test="local-name($context) = 'substeps'">
+ <xsl:variable name="ssdepth"
+ select="count($context/ancestor::substeps)"/>
+ <xsl:variable name="sstype" select="($ssdepth mod $format.length)+2"/>
+ <xsl:choose>
+ <xsl:when test="$sstype &gt; $format.length">
+ <xsl:value-of select="substring($procedure.step.numeration.formats,1,1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring($procedure.step.numeration.formats,$sstype,1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="local-name($context) = 'step'">
+ <xsl:variable name="sdepth"
+ select="count($context/ancestor::substeps)"/>
+ <xsl:variable name="stype" select="($sdepth mod $format.length)+1"/>
+ <xsl:value-of select="substring($procedure.step.numeration.formats,$stype,1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected context in procedure.step.numeration: </xsl:text>
+ <xsl:value-of select="local-name($context)"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="step" mode="number">
+ <xsl:param name="rest" select="''"/>
+ <xsl:param name="recursive" select="1"/>
+ <xsl:variable name="format">
+ <xsl:call-template name="procedure.step.numeration"/>
+ </xsl:variable>
+ <xsl:variable name="num">
+ <xsl:number count="step" format="{$format}"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$recursive != 0 and ancestor::step">
+ <xsl:apply-templates select="ancestor::step[1]" mode="number">
+ <xsl:with-param name="rest" select="concat('.', $num, $rest)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($num, $rest)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- OrderedList Numeration -->
+<xsl:template name="output-orderedlist-starting-number">
+ <xsl:param name="list"/>
+ <xsl:param name="pi-start"/>
+ <xsl:choose>
+ <xsl:when test="not($list/@continuation = 'continues')">
+ <xsl:choose>
+ <xsl:when test="@startingnumber">
+ <xsl:value-of select="@startingnumber"/>
+ </xsl:when>
+ <xsl:when test="$pi-start != ''">
+ <xsl:value-of select="$pi-start"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="prevlist"
+ select="$list/preceding::orderedlist[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($prevlist) = 0">2</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="prevlength" select="count($prevlist/listitem)"/>
+ <xsl:variable name="prevstart">
+ <xsl:call-template name="orderedlist-starting-number">
+ <xsl:with-param name="list" select="$prevlist"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$prevstart + $prevlength"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="orderedlist-item-number">
+ <!-- context node must be a listitem in an orderedlist -->
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="$node/@override">
+ <xsl:value-of select="$node/@override"/>
+ </xsl:when>
+ <xsl:when test="$node/preceding-sibling::listitem">
+ <xsl:variable name="pnum">
+ <xsl:call-template name="orderedlist-item-number">
+ <xsl:with-param name="node" select="$node/preceding-sibling::listitem[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$pnum + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="orderedlist-starting-number">
+ <xsl:with-param name="list" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="next.numeration">
+ <xsl:param name="numeration" select="'default'"/>
+ <xsl:choose>
+ <!-- Change this list if you want to change the order of numerations -->
+ <xsl:when test="$numeration = 'arabic'">loweralpha</xsl:when>
+ <xsl:when test="$numeration = 'loweralpha'">lowerroman</xsl:when>
+ <xsl:when test="$numeration = 'lowerroman'">upperalpha</xsl:when>
+ <xsl:when test="$numeration = 'upperalpha'">upperroman</xsl:when>
+ <xsl:when test="$numeration = 'upperroman'">arabic</xsl:when>
+ <xsl:otherwise>arabic</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="list.numeration">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$node/@numeration">
+ <xsl:value-of select="$node/@numeration"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$node/ancestor::orderedlist">
+ <xsl:call-template name="next.numeration">
+ <xsl:with-param name="numeration">
+ <xsl:call-template name="list.numeration">
+ <xsl:with-param name="node" select="$node/ancestor::orderedlist[1]"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="next.numeration"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- ItemizedList "Numeration" -->
+
+<xsl:template name="next.itemsymbol">
+ <xsl:param name="itemsymbol" select="'default'"/>
+ <xsl:choose>
+ <!-- Change this list if you want to change the order of symbols -->
+ <xsl:when test="$itemsymbol = 'disc'">circle</xsl:when>
+ <xsl:when test="$itemsymbol = 'circle'">square</xsl:when>
+ <xsl:otherwise>disc</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="list.itemsymbol">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="@override">
+ <xsl:value-of select="@override"/>
+ </xsl:when>
+ <xsl:when test="$node/@mark">
+ <xsl:value-of select="$node/@mark"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$node/ancestor::itemizedlist">
+ <xsl:call-template name="next.itemsymbol">
+ <xsl:with-param name="itemsymbol">
+ <xsl:call-template name="list.itemsymbol">
+ <xsl:with-param name="node" select="$node/ancestor::itemizedlist[1]"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="next.itemsymbol"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="copyright.years" xmlns="">
+<refpurpose>Print a set of years with collapsed ranges</refpurpose>
+
+<refdescription id="copyright.years-desc">
+<para>This template prints a list of year elements with consecutive
+years printed as a range. In other words:</para>
+
+<screen><![CDATA[<year>1992</year>
+<year>1993</year>
+<year>1994</year>]]></screen>
+
+<para>is printed <quote>1992-1994</quote>, whereas:</para>
+
+<screen><![CDATA[<year>1992</year>
+<year>1994</year>]]></screen>
+
+<para>is printed <quote>1992, 1994</quote>.</para>
+
+<para>This template assumes that all the year elements contain only
+decimal year numbers, that the elements are sorted in increasing
+numerical order, that there are no duplicates, and that all the years
+are expressed in full <quote>century+year</quote>
+(<quote>1999</quote> not <quote>99</quote>) notation.</para>
+</refdescription>
+
+<refparameter id="copyright.years-params">
+<variablelist>
+<varlistentry><term>years</term>
+<listitem>
+<para>The initial set of year elements.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>print.ranges</term>
+<listitem>
+<para>If non-zero, multi-year ranges are collapsed. If zero, all years
+are printed discretely.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>single.year.ranges</term>
+<listitem>
+<para>If non-zero, two consecutive years will be printed as a range,
+otherwise, they will be printed discretely. In other words, a single
+year range is <quote>1991-1992</quote> but discretely it's
+<quote>1991, 1992</quote>.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="copyright.years-returns">
+<para>This template returns the formatted list of years.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="copyright.years">
+ <xsl:param name="years"/>
+ <xsl:param name="print.ranges" select="1"/>
+ <xsl:param name="single.year.ranges" select="0"/>
+ <xsl:param name="firstyear" select="0"/>
+ <xsl:param name="nextyear" select="0"/>
+
+ <!--
+ <xsl:message terminate="no">
+ <xsl:text>CY: </xsl:text>
+ <xsl:value-of select="count($years)"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$firstyear"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$nextyear"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$print.ranges"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$single.year.ranges"/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="$years[1]"/>
+ <xsl:text>)</xsl:text>
+ </xsl:message>
+ -->
+
+ <xsl:choose>
+ <xsl:when test="$print.ranges = 0 and count($years) &gt; 0">
+ <xsl:choose>
+ <xsl:when test="count($years) = 1">
+ <xsl:apply-templates select="$years[1]" mode="titlepage.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$years[1]" mode="titlepage.mode"/>
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years"
+ select="$years[position() &gt; 1]"/>
+ <xsl:with-param name="print.ranges" select="$print.ranges"/>
+ <xsl:with-param name="single.year.ranges"
+ select="$single.year.ranges"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="count($years) = 0">
+ <xsl:variable name="lastyear" select="$nextyear - 1"/>
+ <xsl:choose>
+ <xsl:when test="$firstyear = 0">
+ <!-- there weren't any years at all -->
+ </xsl:when>
+ <xsl:when test="$firstyear = $lastyear">
+ <xsl:value-of select="$firstyear"/>
+ </xsl:when>
+ <xsl:when test="$single.year.ranges = 0
+ and $lastyear = $firstyear + 1">
+ <xsl:value-of select="$firstyear"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$lastyear"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$firstyear"/>
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="$lastyear"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$firstyear = 0">
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years"
+ select="$years[position() &gt; 1]"/>
+ <xsl:with-param name="firstyear" select="$years[1]"/>
+ <xsl:with-param name="nextyear" select="$years[1] + 1"/>
+ <xsl:with-param name="print.ranges" select="$print.ranges"/>
+ <xsl:with-param name="single.year.ranges"
+ select="$single.year.ranges"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$nextyear = $years[1]">
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years"
+ select="$years[position() &gt; 1]"/>
+ <xsl:with-param name="firstyear" select="$firstyear"/>
+ <xsl:with-param name="nextyear" select="$nextyear + 1"/>
+ <xsl:with-param name="print.ranges" select="$print.ranges"/>
+ <xsl:with-param name="single.year.ranges"
+ select="$single.year.ranges"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- we have years left, but they aren't in the current range -->
+ <xsl:choose>
+ <xsl:when test="$nextyear = $firstyear + 1">
+ <xsl:value-of select="$firstyear"/>
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:when test="$single.year.ranges = 0
+ and $nextyear = $firstyear + 2">
+ <xsl:value-of select="$firstyear"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$nextyear - 1"/>
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$firstyear"/>
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="$nextyear - 1"/>
+ <xsl:text>, </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years"
+ select="$years[position() &gt; 1]"/>
+ <xsl:with-param name="firstyear" select="$years[1]"/>
+ <xsl:with-param name="nextyear" select="$years[1] + 1"/>
+ <xsl:with-param name="print.ranges" select="$print.ranges"/>
+ <xsl:with-param name="single.year.ranges"
+ select="$single.year.ranges"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="find.path.params" xmlns="">
+<refpurpose>Search in a table for the "best" match for the node</refpurpose>
+
+<refdescription id="find.path.params-desc">
+<para>This template searches in a table for the value that most-closely
+(in the typical best-match sense of XSLT) matches the current (element)
+node location.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="find.path.params">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="table" select="''"/>
+ <xsl:param name="location">
+ <xsl:call-template name="xpath.location">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:param>
+
+ <xsl:variable name="value">
+ <xsl:call-template name="lookup.key">
+ <xsl:with-param name="key" select="$location"/>
+ <xsl:with-param name="table" select="$table"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$value != ''">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:when test="contains($location, '/')">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="table" select="$table"/>
+ <xsl:with-param name="location" select="substring-after($location, '/')"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="relative-uri">
+ <xsl:param name="filename" select="."/>
+ <xsl:param name="destdir" select="''"/>
+
+ <xsl:variable name="srcurl">
+ <xsl:call-template name="strippath">
+ <xsl:with-param name="filename">
+ <xsl:call-template name="xml.base.dirs">
+ <xsl:with-param name="base.elem"
+ select="$filename/ancestor-or-self::*
+ [@xml:base != ''][1]"/>
+ </xsl:call-template>
+ <xsl:value-of select="$filename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="srcurl.trimmed">
+ <xsl:call-template name="trim.common.uri.paths">
+ <xsl:with-param name="uriA" select="$srcurl"/>
+ <xsl:with-param name="uriB" select="$destdir"/>
+ <xsl:with-param name="return" select="'A'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="destdir.trimmed">
+ <xsl:call-template name="trim.common.uri.paths">
+ <xsl:with-param name="uriA" select="$srcurl"/>
+ <xsl:with-param name="uriB" select="$destdir"/>
+ <xsl:with-param name="return" select="'B'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="depth">
+ <xsl:call-template name="count.uri.path.depth">
+ <xsl:with-param name="filename" select="$destdir.trimmed"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string" select="'../'"/>
+ <xsl:with-param name="count" select="$depth"/>
+ </xsl:call-template>
+ <xsl:value-of select="$srcurl.trimmed"/>
+
+</xsl:template>
+
+<!-- ===================================== -->
+
+<xsl:template name="xml.base.dirs">
+ <xsl:param name="base.elem" select="NONODE"/>
+
+ <!-- Recursively resolve xml:base attributes, up to a
+ full path with : in uri -->
+ <xsl:if test="$base.elem/ancestor::*[@xml:base != ''] and
+ not(contains($base.elem/@xml:base, ':'))">
+ <xsl:call-template name="xml.base.dirs">
+ <xsl:with-param name="base.elem"
+ select="$base.elem/ancestor::*[@xml:base != ''][1]"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template name="getdir">
+ <xsl:with-param name="filename" select="$base.elem/@xml:base"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+<!-- ===================================== -->
+
+<xsl:template name="strippath">
+ <xsl:param name="filename" select="''"/>
+ <xsl:choose>
+ <!-- Leading .. are not eliminated -->
+ <xsl:when test="starts-with($filename, '../')">
+ <xsl:value-of select="'../'"/>
+ <xsl:call-template name="strippath">
+ <xsl:with-param name="filename" select="substring-after($filename, '../')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($filename, '/../')">
+ <xsl:call-template name="strippath">
+ <xsl:with-param name="filename">
+ <xsl:call-template name="getdir">
+ <xsl:with-param name="filename" select="substring-before($filename, '/../')"/>
+ </xsl:call-template>
+ <xsl:value-of select="substring-after($filename, '/../')"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<xsl:template name="getdir">
+ <xsl:param name="filename" select="''"/>
+ <xsl:if test="contains($filename, '/')">
+ <xsl:value-of select="substring-before($filename, '/')"/>
+ <xsl:text>/</xsl:text>
+ <xsl:call-template name="getdir">
+ <xsl:with-param name="filename" select="substring-after($filename, '/')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="string.upper" xmlns="">
+<refpurpose>Converts a string to all uppercase letters</refpurpose>
+
+<refdescription id="string.upper-desc">
+<para>Given a string, this template does a language-aware conversion
+of that string to all uppercase letters, based on the values of the
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal>. All other characters are left
+unchanged.</para>
+</refdescription>
+
+<refparameter id="string.upper-params">
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+<para>The string to convert to uppercase.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:template>
+<xsl:template name="string.upper">
+ <xsl:param name="string" select="''"/>
+ <xsl:variable name="lowercase.alpha">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'lowercase.alpha'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="uppercase.alpha">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'uppercase.alpha'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="translate($string,$lowercase.alpha,$uppercase.alpha)"/>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="string.lower" xmlns="">
+<refpurpose>Converts a string to all lowercase letters</refpurpose>
+
+<refdescription id="string.lower-desc">
+<para>Given a string, this template does a language-aware conversion
+of that string to all lowercase letters, based on the values of the
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal>. All other characters are left
+unchanged.</para>
+</refdescription>
+
+<refparameter id="string.lower-params">
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+<para>The string to convert to lowercase.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:template>
+<xsl:template name="string.lower">
+ <xsl:param name="string" select="''"/>
+ <xsl:variable name="uppercase.alpha">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'uppercase.alpha'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="lowercase.alpha">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'lowercase.alpha'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="translate($string,$uppercase.alpha,$lowercase.alpha)"/>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="select.choice.separator" xmlns="">
+ <refpurpose>Returns localized choice separator</refpurpose>
+ <refdescription id="select.choice.separator-desc">
+ <para>This template enables auto-generation of an appropriate
+ localized "choice" separator (for example, "and" or "or") before
+ the final item in an inline list (though it could also be useful
+ for generating choice separators for non-inline lists).</para>
+ <para>It currently works by evaluating a processing instruction
+ (PI) of the form &lt;?dbchoice&#xa0;choice="foo"?> :
+ <itemizedlist>
+ <listitem>
+ <simpara>if the value of the <tag>choice</tag>
+ pseudo-attribute is "and" or "or", returns a localized "and"
+ or "or"</simpara>
+ </listitem>
+ <listitem>
+ <simpara>otherwise returns the literal value of the
+ <tag>choice</tag> pseudo-attribute</simpara>
+ </listitem>
+ </itemizedlist>
+ The latter is provided only as a temporary workaround because the
+ locale files do not currently have translations for the word
+ <wordasword>or</wordasword>. So if you want to generate a a
+ logical "or" separator in French (for example), you currently need
+ to do this:
+ <literallayout>&lt;?dbchoice choice="ou"?></literallayout>
+ </para>
+ <warning>
+ <para>The <tag>dbchoice</tag> processing instruction is
+ an unfortunate hack; support for it may disappear in the future
+ (particularly if and when a more appropriate means for marking
+ up "choice" lists becomes available in DocBook).</para>
+ </warning>
+ </refdescription>
+</doc:template>
+<xsl:template name="select.choice.separator">
+ <xsl:variable name="choice">
+ <xsl:call-template name="pi.dbchoice_choice"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- if value of $choice is "and" or "or", translate to equivalent in -->
+ <!-- current locale -->
+ <xsl:when test="$choice = 'and' or $choice = 'or'">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="$choice"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- otherwise, just output value of $choice, whatever it is -->
+ <xsl:otherwise>
+ <xsl:value-of select="$choice"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="evaluate.info.profile" xmlns="">
+ <refpurpose>Evaluates an info profile</refpurpose>
+ <refdescription id="evaluate.info.profile-desc">
+ <para>This template evaluates an "info profile" matching the XPath
+ expression given by the <parameter>profile</parameter>
+ parameter. It relies on the XSLT <function>evaluate()</function>
+ extension function.</para>
+
+ <para>The value of the <parameter>profile</parameter> parameter
+ can include the literal string <literal>$info</literal>. If found
+ in the value of the <parameter>profile</parameter> parameter, the
+ literal string <literal>$info</literal> string is replaced with
+ the value of the <parameter>info</parameter> parameter, which
+ should be a set of <replaceable>*info</replaceable> nodes; the
+ expression is then evaluated using the XSLT
+ <function>evaluate()</function> extension function.</para>
+ </refdescription>
+ <refparameter id="evaluate.info.profile-params">
+ <variablelist>
+ <varlistentry>
+ <term>profile</term>
+ <listitem>
+ <para>A string representing an XPath expression </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of *info nodes</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+
+ <refreturn id="evaluate.info.profile-returns">
+ <para>Returns a node (the result of evaluating the
+ <parameter>profile</parameter> parameter)</para>
+ </refreturn>
+</doc:template>
+ <xsl:template name="evaluate.info.profile">
+ <xsl:param name="profile"/>
+ <xsl:param name="info"/>
+ <xsl:choose>
+ <!-- * xsltproc and Xalan both support dyn:evaluate() -->
+ <xsl:when test="function-available('dyn:evaluate')">
+ <xsl:apply-templates
+ select="dyn:evaluate($profile)" mode="get.refentry.metadata"/>
+ </xsl:when>
+ <!-- * Saxon has its own evaluate() & doesn't support dyn:evaluate() -->
+ <xsl:when test="function-available('saxon:evaluate')">
+ <xsl:apply-templates
+ select="saxon:evaluate($profile)" mode="get.refentry.metadata"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+Error: The "info profiling" mechanism currently requires an XSLT
+engine that supports the evaluate() XSLT extension function. Your XSLT
+engine does not support it.
+</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/cs.xml b/docs/xsl-generic/common/cs.xml
new file mode 100644
index 00000000..b00f83fd
--- /dev/null
+++ b/docs/xsl-generic/common/cs.xml
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="cs" english-language-name="Czech">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/cs.xml -->
+<!-- * -->
+<!-- * E-mail the edited cs.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrakt"/>
+<l:gentext key="abstract" text="Abstrakt"/>
+<l:gentext key="Answer" text="Odpověď:"/>
+<l:gentext key="answer" text="Odpověď:"/>
+<l:gentext key="Appendix" text="Příloha"/>
+<l:gentext key="appendix" text="Příloha"/>
+<l:gentext key="Article" text="Článek"/>
+<l:gentext key="article" text="Článek"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografie"/>
+<l:gentext key="bibliography" text="Bibliografie"/>
+<l:gentext key="Book" text="Kniha"/>
+<l:gentext key="book" text="Kniha"/>
+<l:gentext key="CAUTION" text="Výstraha"/>
+<l:gentext key="Caution" text="Výstraha"/>
+<l:gentext key="caution" text="Výstraha"/>
+<l:gentext key="Chapter" text="Kapitola"/>
+<l:gentext key="chapter" text="Kapitola"/>
+<l:gentext key="Colophon" text="Tiráž"/>
+<l:gentext key="colophon" text="Tiráž"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Věnování"/>
+<l:gentext key="dedication" text="Věnování"/>
+<l:gentext key="Edition" text="Vydání"/>
+<l:gentext key="edition" text="Vydání"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Rovnice"/>
+<l:gentext key="equation" text="Rovnice"/>
+<l:gentext key="Example" text="Příklad"/>
+<l:gentext key="example" text="Příklad"/>
+<l:gentext key="Figure" text="Obrázek"/>
+<l:gentext key="figure" text="Obrázek"/>
+<l:gentext key="Glossary" text="Slovník"/>
+<l:gentext key="glossary" text="Slovník"/>
+<l:gentext key="GlossSee" text="Viz"/>
+<l:gentext key="glosssee" text="Viz"/>
+<l:gentext key="GlossSeeAlso" text="Viz též"/>
+<l:gentext key="glossseealso" text="Viz též"/>
+<l:gentext key="IMPORTANT" text="Důležité"/>
+<l:gentext key="important" text="Důležité"/>
+<l:gentext key="Important" text="Důležité"/>
+<l:gentext key="Index" text="Rejstřík"/>
+<l:gentext key="index" text="Rejstřík"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Právní doložka"/>
+<l:gentext key="legalnotice" text="Právní doložka"/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="Publikum"/>
+<l:gentext key="MsgLevel" text="Úroveň"/>
+<l:gentext key="msglevel" text="Úroveň"/>
+<l:gentext key="MsgOrig" text="Původ"/>
+<l:gentext key="msgorig" text="Původ"/>
+<l:gentext key="NOTE" text="Poznámka"/>
+<l:gentext key="Note" text="Poznámka"/>
+<l:gentext key="note" text="Poznámka"/>
+<l:gentext key="Part" text="Část"/>
+<l:gentext key="part" text="Část"/>
+<l:gentext key="Preface" text="Předmluva"/>
+<l:gentext key="preface" text="Předmluva"/>
+<l:gentext key="Procedure" text="Postup"/>
+<l:gentext key="procedure" text="Postup"/>
+<l:gentext key="ProductionSet" text="Produkce"/>
+<l:gentext key="PubDate" text="Datum vydání"/>
+<l:gentext key="pubdate" text="Datum vydání"/>
+<l:gentext key="Published" text="Vydáno"/>
+<l:gentext key="published" text="Vydáno"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Otázky a odpovědi"/>
+<l:gentext key="qandadiv" text="Otázky a odpovědi"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Otázka:"/>
+<l:gentext key="question" text="Otázka:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Odkaz"/>
+<l:gentext key="reference" text="Odkaz"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Jméno"/>
+<l:gentext key="refname" text="Jméno"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Přehled"/>
+<l:gentext key="refsynopsisdiv" text="Přehled"/>
+<l:gentext key="RevHistory" text="Přehled revizí"/>
+<l:gentext key="revhistory" text="Přehled revizí"/>
+<l:gentext key="revision" text="Revize"/>
+<l:gentext key="Revision" text="Revize"/>
+<l:gentext key="sect1" text="Oddíl"/>
+<l:gentext key="sect2" text="Oddíl"/>
+<l:gentext key="sect3" text="Oddíl"/>
+<l:gentext key="sect4" text="Oddíl"/>
+<l:gentext key="sect5" text="Oddíl"/>
+<l:gentext key="section" text="Oddíl"/>
+<l:gentext key="Section" text="Oddíl"/>
+<l:gentext key="see" text="Viz"/>
+<l:gentext key="See" text="Viz"/>
+<l:gentext key="seealso" text="Viz též"/>
+<l:gentext key="Seealso" text="Viz též"/>
+<l:gentext key="SeeAlso" text="Viz též"/>
+<l:gentext key="set" text="Sada"/>
+<l:gentext key="Set" text="Sada"/>
+<l:gentext key="setindex" text="Rejstřík sady"/>
+<l:gentext key="SetIndex" text="Rejstřík sady"/>
+<l:gentext key="Sidebar" text="Marginálie"/>
+<l:gentext key="sidebar" text="Marginálie"/>
+<l:gentext key="step" text="krok"/>
+<l:gentext key="Step" text="Krok"/>
+<l:gentext key="table" text="Tabulka"/>
+<l:gentext key="Table" text="Tabulka"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="Tip"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Varování"/>
+<l:gentext key="warning" text="Varování"/>
+<l:gentext key="WARNING" text="Varování"/>
+<l:gentext key="and" text="a"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Vydáno"/>
+<l:gentext key="edited" text="Vydáno"/>
+<l:gentext key="Editedby" text="Sestavil"/>
+<l:gentext key="editedby" text="Sestavil"/>
+<l:gentext key="in" text="v"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="neexistující prvek"/>
+<l:gentext key="notes" text="Poznámky"/>
+<l:gentext key="Notes" text="Poznámky"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Revidoval: "/>
+<l:gentext key="revisedby" text="Revidoval: "/>
+<l:gentext key="TableNotes" text="Poznámky"/>
+<l:gentext key="tablenotes" text="Poznámky"/>
+<l:gentext key="TableofContents" text="Obsah"/>
+<l:gentext key="tableofcontents" text="Obsah"/>
+<l:gentext key="unexpectedelementname" text="Neočekávané jméno prvku"/>
+<l:gentext key="unsupported" text="nepodporovaný"/>
+<l:gentext key="xrefto" text="xref k"/>
+<l:gentext key="Authors" text="Autoři"/>
+<l:gentext key="copyeditor" text="Korektor"/>
+<l:gentext key="graphicdesigner" text="Grafický designér"/>
+<l:gentext key="productioneditor" text="Produkce"/>
+<l:gentext key="technicaleditor" text="Technický editor"/>
+<l:gentext key="translator" text="Překladatel"/>
+<l:gentext key="listofequations" text="Seznam rovnic"/>
+<l:gentext key="ListofEquations" text="Seznam rovnic"/>
+<l:gentext key="ListofExamples" text="Seznam příkladů"/>
+<l:gentext key="listofexamples" text="Seznam příkladů"/>
+<l:gentext key="ListofFigures" text="Seznam obrázků"/>
+<l:gentext key="listoffigures" text="Seznam obrázků"/>
+<l:gentext key="ListofProcedures" text="Seznam postupů"/>
+<l:gentext key="listofprocedures" text="Seznam postupů"/>
+<l:gentext key="listoftables" text="Seznam tabulek"/>
+<l:gentext key="ListofTables" text="Seznam tabulek"/>
+<l:gentext key="ListofUnknown" text="Seznam neznámého"/>
+<l:gentext key="listofunknown" text="Seznam neznámého"/>
+<l:gentext key="nav-home" text="Domů"/>
+<l:gentext key="nav-next" text="Další"/>
+<l:gentext key="nav-next-sibling" text="Rychle dopředu"/>
+<l:gentext key="nav-prev" text="Předcházející"/>
+<l:gentext key="nav-prev-sibling" text="Rychle zpět"/>
+<l:gentext key="nav-up" text="Nahoru"/>
+<l:gentext key="nav-toc" text="Obsah"/>
+<l:gentext key="Draft" text="Návrh"/>
+<l:gentext key="above" text="nad"/>
+<l:gentext key="below" text="pod"/>
+<l:gentext key="sectioncalled" text="oddíl nazvaný"/>
+<l:gentext key="index symbols" text="Symboly"/>
+<l:gentext key="lowercase.alpha" text="aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž"/>
+<l:gentext key="uppercase.alpha" text="AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ"/>
+<l:gentext key="normalize.sort.input" text="aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž"/>
+<l:gentext key="normalize.sort.output" text="AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‚"/>
+<l:dingbat key="nestedendquote" text="‘"/>
+<l:dingbat key="singlestartquote" text="‚"/>
+<l:dingbat key="singleendquote" text="‘"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Příloha %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Rovnice %n. %t"/>
+<l:template name="example" text="Příklad %n. %t"/>
+<l:template name="figure" text="Obrázek %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Část %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postup %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkce %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabulka %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Příloha %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="part" text="Část %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text="v %o"/>
+<l:template name="olink.page.citation" text=" (strana %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(strana %p)"/>
+<l:template name="docname" text=" v %o"/>
+<l:template name="docnamelong" text=" v dokumentu nazvaném %o"/>
+<l:template name="pageabbrev" text="(str. %p)"/>
+<l:template name="Page" text="Strana %p"/>
+<l:template name="bridgehead" text="„%t“"/>
+<l:template name="refsection" text="„%t“"/>
+<l:template name="refsect1" text="„%t“"/>
+<l:template name="refsect2" text="„%t“"/>
+<l:template name="refsect3" text="„%t“"/>
+<l:template name="sect1" text="„%t“"/>
+<l:template name="sect2" text="„%t“"/>
+<l:template name="sect3" text="„%t“"/>
+<l:template name="sect4" text="„%t“"/>
+<l:template name="sect5" text="„%t“"/>
+<l:template name="section" text="„%t“"/>
+<l:template name="simplesect" text="„%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="%n"/>
+<l:template name="appendix" text="%n"/>
+<l:template name="bridgehead" text="%n"/>
+<l:template name="chapter" text="%n"/>
+<l:template name="equation" text="%n"/>
+<l:template name="example" text="%n"/>
+<l:template name="figure" text="%n"/>
+<l:template name="part" text="%n"/>
+<l:template name="procedure" text="%n"/>
+<l:template name="productionset" text="%n"/>
+<l:template name="qandadiv" text="%n"/>
+<l:template name="qandaentry" text="%n"/>
+<l:template name="question" text="%n"/>
+<l:template name="sect1" text="%n"/>
+<l:template name="sect2" text="%n"/>
+<l:template name="sect3" text="%n"/>
+<l:template name="sect4" text="%n"/>
+<l:template name="sect5" text="%n"/>
+<l:template name="section" text="%n"/>
+<l:template name="table" text="%n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="%n – „%t“"/>
+<l:template name="bridgehead" text="%n – „%t“"/>
+<l:template name="chapter" text="%n – „%t“"/>
+<l:template name="equation" text="%n – „%t“"/>
+<l:template name="example" text="%n – „%t“"/>
+<l:template name="figure" text="%n – „%t“"/>
+<l:template name="part" text="%n – „%t“"/>
+<l:template name="procedure" text="%n – „%t“"/>
+<l:template name="productionset" text="%n – „%t“"/>
+<l:template name="qandadiv" text="%n – „%t“"/>
+<l:template name="refsect1" text="„%t“"/>
+<l:template name="refsect2" text="„%t“"/>
+<l:template name="refsect3" text="„%t“"/>
+<l:template name="refsection" text="„%t“"/>
+<l:template name="sect1" text="%n – „%t“"/>
+<l:template name="sect2" text="%n – „%t“"/>
+<l:template name="sect3" text="%n – „%t“"/>
+<l:template name="sect4" text="%n – „%t“"/>
+<l:template name="sect5" text="%n – „%t“"/>
+<l:template name="section" text="%n – „%t“"/>
+<l:template name="simplesect" text="%n – „%t“"/>
+<l:template name="table" text="%n – „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" a "/>
+<l:template name="seplast" text=" a "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Viz %t"/>
+<l:template name="seealso" text="Viz též %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Úroveň: "/>
+<l:template name="MsgOrig" text="Původ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d. B Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ledna"/>
+<l:template name="February" text="února"/>
+<l:template name="March" text="března"/>
+<l:template name="April" text="dubna"/>
+<l:template name="May" text="května"/>
+<l:template name="June" text="června"/>
+<l:template name="July" text="července"/>
+<l:template name="August" text="srpna"/>
+<l:template name="September" text="září"/>
+<l:template name="October" text="října"/>
+<l:template name="November" text="listopadu"/>
+<l:template name="December" text="prosince"/>
+<l:template name="Monday" text="pondělí"/>
+<l:template name="Tuesday" text="úterý"/>
+<l:template name="Wednesday" text="středa"/>
+<l:template name="Thursday" text="čtvrtek"/>
+<l:template name="Friday" text="pátek"/>
+<l:template name="Saturday" text="sobota"/>
+<l:template name="Sunday" text="neděle"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="led"/>
+<l:template name="Feb" text="úno"/>
+<l:template name="Mar" text="bře"/>
+<l:template name="Apr" text="dub"/>
+<l:template name="May" text="kvě"/>
+<l:template name="Jun" text="čer"/>
+<l:template name="Jul" text="čnc"/>
+<l:template name="Aug" text="srp"/>
+<l:template name="Sep" text="zář"/>
+<l:template name="Oct" text="řij"/>
+<l:template name="Nov" text="lis"/>
+<l:template name="Dec" text="pro"/>
+<l:template name="Mon" text="po"/>
+<l:template name="Tue" text="út"/>
+<l:template name="Wed" text="st"/>
+<l:template name="Thu" text="čt"/>
+<l:template name="Fri" text="pá"/>
+<l:template name="Sat" text="so"/>
+<l:template name="Sun" text="ne"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0405 Czech"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cit. "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Dostupné "/>
+<l:template name="acctoo" text="Dostupné také "/>
+<l:template name="onwww" text="na World Wide Web"/>
+<l:template name="oninet" text="na Internetu"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symboly</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Á</l:l>
+<l:l i="1">á</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Č</l:l>
+<l:l i="4">č</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="5">Ď</l:l>
+<l:l i="5">ď</l:l>
+<l:l i="7">E</l:l>
+<l:l i="7">e</l:l>
+<l:l i="7">É</l:l>
+<l:l i="7">é</l:l>
+<l:l i="7">Ě</l:l>
+<l:l i="7">ě</l:l>
+<l:l i="7">Ë</l:l>
+<l:l i="7">ë</l:l>
+<l:l i="8">F</l:l>
+<l:l i="8">f</l:l>
+<l:l i="9">G</l:l>
+<l:l i="9">g</l:l>
+<l:l i="10">H</l:l>
+<l:l i="10">h</l:l>
+<l:l i="11">Ch</l:l>
+<l:l i="11">ch</l:l>
+<l:l i="11">cH</l:l>
+<l:l i="11">CH</l:l>
+<l:l i="12">I</l:l>
+<l:l i="12">i</l:l>
+<l:l i="12">Í</l:l>
+<l:l i="12">í</l:l>
+<l:l i="13">J</l:l>
+<l:l i="13">j</l:l>
+<l:l i="14">K</l:l>
+<l:l i="14">k</l:l>
+<l:l i="15">L</l:l>
+<l:l i="15">l</l:l>
+<l:l i="16">M</l:l>
+<l:l i="16">m</l:l>
+<l:l i="17">N</l:l>
+<l:l i="17">n</l:l>
+<l:l i="17">Ň</l:l>
+<l:l i="17">ň</l:l>
+<l:l i="19">O</l:l>
+<l:l i="19">o</l:l>
+<l:l i="19">Ó</l:l>
+<l:l i="19">ó</l:l>
+<l:l i="19">Ö</l:l>
+<l:l i="19">ö</l:l>
+<l:l i="20">P</l:l>
+<l:l i="20">p</l:l>
+<l:l i="21">Q</l:l>
+<l:l i="21">q</l:l>
+<l:l i="22">R</l:l>
+<l:l i="22">r</l:l>
+<l:l i="23">Ř</l:l>
+<l:l i="23">ř</l:l>
+<l:l i="24">S</l:l>
+<l:l i="24">s</l:l>
+<l:l i="25">Š</l:l>
+<l:l i="25">š</l:l>
+<l:l i="26">T</l:l>
+<l:l i="26">t</l:l>
+<l:l i="26">Ť</l:l>
+<l:l i="26">ť</l:l>
+<l:l i="28">U</l:l>
+<l:l i="28">u</l:l>
+<l:l i="28">Ú</l:l>
+<l:l i="28">ú</l:l>
+<l:l i="28">Ů</l:l>
+<l:l i="28">ů</l:l>
+<l:l i="28">Ü</l:l>
+<l:l i="28">ü</l:l>
+<l:l i="29">V</l:l>
+<l:l i="29">v</l:l>
+<l:l i="30">W</l:l>
+<l:l i="30">w</l:l>
+<l:l i="31">X</l:l>
+<l:l i="31">x</l:l>
+<l:l i="32">Y</l:l>
+<l:l i="32">y</l:l>
+<l:l i="32">Ý</l:l>
+<l:l i="32">ý</l:l>
+<l:l i="33">Z</l:l>
+<l:l i="33">z</l:l>
+<l:l i="34">Ž</l:l>
+<l:l i="34">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/cy.xml b/docs/xsl-generic/common/cy.xml
new file mode 100644
index 00000000..0790f5a2
--- /dev/null
+++ b/docs/xsl-generic/common/cy.xml
@@ -0,0 +1,1239 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="cy" english-language-name="Welsh">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/cy.xml -->
+<!-- * -->
+<!-- * E-mail the edited cy.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Crynodeb"/>
+<l:gentext key="abstract" text="Crynodeb"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Atodiad"/>
+<l:gentext key="appendix" text="Atodiad"/>
+<l:gentext key="Article" text="Erthygl"/>
+<l:gentext key="article" text="Erthygl"/>
+<l:gentext key="Author" text="Awdur"/>
+<l:gentext key="Bibliography" text="Llyfryddiaeth"/>
+<l:gentext key="bibliography" text="Llyfryddiaeth"/>
+<l:gentext key="Book" text="Llyfr"/>
+<l:gentext key="book" text="Llyfr"/>
+<l:gentext key="CAUTION" text="GOFAL"/>
+<l:gentext key="Caution" text="Gofal"/>
+<l:gentext key="caution" text="Gofal"/>
+<l:gentext key="Chapter" text="Pennod"/>
+<l:gentext key="chapter" text="Pennod"/>
+<l:gentext key="Colophon" text="Coloffon"/>
+<l:gentext key="colophon" text="Coloffon"/>
+<l:gentext key="Copyright" text="Hawlfraint"/>
+<l:gentext key="copyright" text="Hawlfraint"/>
+<l:gentext key="Dedication" text="Cyflwyniad"/>
+<l:gentext key="dedication" text="Cyflwyniad"/>
+<l:gentext key="Edition" text="Argraffiad"/>
+<l:gentext key="edition" text="Argraffiad"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Hafaliad"/>
+<l:gentext key="equation" text="Hafaliad"/>
+<l:gentext key="Example" text="Enghraifft"/>
+<l:gentext key="example" text="Enghraifft"/>
+<l:gentext key="Figure" text="Ffigur"/>
+<l:gentext key="figure" text="Ffigur"/>
+<l:gentext key="Glossary" text="Geirfa"/>
+<l:gentext key="glossary" text="Geirfa"/>
+<l:gentext key="GlossSee" text="Gweler"/>
+<l:gentext key="glosssee" text="Gweler"/>
+<l:gentext key="GlossSeeAlso" text="Gweler Hefyd"/>
+<l:gentext key="glossseealso" text="Gweler Hefyd"/>
+<l:gentext key="IMPORTANT" text="PWYSIG"/>
+<l:gentext key="important" text="Pwysig"/>
+<l:gentext key="Important" text="Pwysig"/>
+<l:gentext key="Index" text="Mynegai"/>
+<l:gentext key="index" text="Mynegai"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rhybudd Cyfreithiol"/>
+<l:gentext key="legalnotice" text="Rhybudd Cyfreithiol"/>
+<l:gentext key="MsgAud" text="Cynulleidfa"/>
+<l:gentext key="msgaud" text="Cynulleidfa"/>
+<l:gentext key="MsgLevel" text="Lefel"/>
+<l:gentext key="msglevel" text="Lefel"/>
+<l:gentext key="MsgOrig" text="Tarddiad"/>
+<l:gentext key="msgorig" text="Tarddiad"/>
+<l:gentext key="NOTE" text="NODYN"/>
+<l:gentext key="Note" text="Nodyn"/>
+<l:gentext key="note" text="Nodyn"/>
+<l:gentext key="Part" text="Rhan"/>
+<l:gentext key="part" text="Rhan"/>
+<l:gentext key="Preface" text="Rhagair"/>
+<l:gentext key="preface" text="Rhagair"/>
+<l:gentext key="Procedure" text="Trefn"/>
+<l:gentext key="procedure" text="Trefn"/>
+<l:gentext key="ProductionSet" text="Cynhyrchiad"/>
+<l:gentext key="PubDate" text="Dyddiad Cyhoeddi"/>
+<l:gentext key="pubdate" text="Dyddiad Cyhoeddi"/>
+<l:gentext key="Published" text="Cyhoeddwyd"/>
+<l:gentext key="published" text="Cyhoeddwyd"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="C &amp; A"/>
+<l:gentext key="qandadiv" text="C &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="C:"/>
+<l:gentext key="question" text="C:"/>
+<l:gentext key="RefEntry" text="Cyfeirnod"/>
+<l:gentext key="refentry" text="Cyfeirnod"/>
+<l:gentext key="Reference" text="Cyfeiriad"/>
+<l:gentext key="reference" text="Cyfeiriad"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Enw"/>
+<l:gentext key="refname" text="Enw"/>
+<l:gentext key="RefSection" text="Adran Gyfeiriad"/>
+<l:gentext key="refsection" text="Adran Gyfeiriad"/>
+<l:gentext key="RefSynopsisDiv" text="Crynodeb"/>
+<l:gentext key="refsynopsisdiv" text="Crynodeb"/>
+<l:gentext key="RevHistory" text="Hanes Adolygu"/>
+<l:gentext key="revhistory" text="Hanes Adolygu"/>
+<l:gentext key="revision" text="Adolygiad"/>
+<l:gentext key="Revision" text="Adolygiad"/>
+<l:gentext key="sect1" text="Adran"/>
+<l:gentext key="sect2" text="Adran"/>
+<l:gentext key="sect3" text="Adran"/>
+<l:gentext key="sect4" text="Adran"/>
+<l:gentext key="sect5" text="Adran"/>
+<l:gentext key="section" text="Adran"/>
+<l:gentext key="Section" text="Adran"/>
+<l:gentext key="see" text="gweler"/>
+<l:gentext key="See" text="Gweler"/>
+<l:gentext key="seealso" text="gweler hefyd"/>
+<l:gentext key="Seealso" text="Gweler hefyd"/>
+<l:gentext key="SeeAlso" text="Gweler Hefyd"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Mynegai Set"/>
+<l:gentext key="SetIndex" text="Mynegai Set"/>
+<l:gentext key="Sidebar" text="Bar Ochr"/>
+<l:gentext key="sidebar" text="bar ochr"/>
+<l:gentext key="step" text="cam"/>
+<l:gentext key="Step" text="Cam"/>
+<l:gentext key="table" text="Tabl"/>
+<l:gentext key="Table" text="Tabl"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Cynghoryn"/>
+<l:gentext key="TIP" text="CYNGHORYN"/>
+<l:gentext key="Tip" text="Cynghoryn"/>
+<l:gentext key="Warning" text="Rhybudd"/>
+<l:gentext key="warning" text="Rhybudd"/>
+<l:gentext key="WARNING" text="RHYBUDD"/>
+<l:gentext key="and" text="a(c)"/>
+<l:gentext key="by" text="gan"/>
+<l:gentext key="Edited" text="Golygwyd"/>
+<l:gentext key="edited" text="Golygwyd"/>
+<l:gentext key="Editedby" text="Golygwyd:"/>
+<l:gentext key="editedby" text="Golygwyd:"/>
+<l:gentext key="in" text="yn"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elfen sydd ddim yn bodoli"/>
+<l:gentext key="notes" text="Nodiadau"/>
+<l:gentext key="Notes" text="Nodiadau"/>
+<l:gentext key="Pgs" text="Tud."/>
+<l:gentext key="pgs" text="Tud."/>
+<l:gentext key="Revisedby" text="Adolygwyd: "/>
+<l:gentext key="revisedby" text="Adolygwyd: "/>
+<l:gentext key="TableNotes" text="Nodiadau"/>
+<l:gentext key="tablenotes" text="Nodiadau"/>
+<l:gentext key="TableofContents" text="Cynnwys"/>
+<l:gentext key="tableofcontents" text="Cynnwys"/>
+<l:gentext key="unexpectedelementname" text="Enw elfen annisgwyl"/>
+<l:gentext key="unsupported" text="ni chynhelir"/>
+<l:gentext key="xrefto" text="xref i"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofEquations" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofExamples" text="Rhestr Hafaliadau"/>
+<l:gentext key="listofexamples" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofFigures" text="Rhestr Hafaliadau"/>
+<l:gentext key="listoffigures" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofProcedures" text="Dull Gweithredu"/>
+<l:gentext key="listofprocedures" text="Dull Gweithredu"/>
+<l:gentext key="listoftables" text="Rhestr Tablau"/>
+<l:gentext key="ListofTables" text="Rhestr Tablau"/>
+<l:gentext key="ListofUnknown" text="Rhestr Anhysbysion"/>
+<l:gentext key="listofunknown" text="Rhestr Anhysbysion"/>
+<l:gentext key="nav-home" text="Cartref"/>
+<l:gentext key="nav-next" text="Nesaf"/>
+<l:gentext key="nav-next-sibling" text="Ymlaen"/>
+<l:gentext key="nav-prev" text="Cynt"/>
+<l:gentext key="nav-prev-sibling" text="Yn Ôl"/>
+<l:gentext key="nav-up" text="I Fyny"/>
+<l:gentext key="nav-toc" text="Cynnwys"/>
+<l:gentext key="Draft" text="Drafft"/>
+<l:gentext key="above" text="uchod"/>
+<l:gentext key="below" text="isod"/>
+<l:gentext key="sectioncalled" text="yr adran o'r enw"/>
+<l:gentext key="index symbols" text="Symbolau"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="cyntaf-olaf"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Atodiad %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Pennod %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Hafaliad %n. %t"/>
+<l:template name="example" text="Enghraifft %n. %t"/>
+<l:template name="figure" text="Ffigur %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Rhan %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Trefn %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Cynhyrchiad %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabl %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Atodiad %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Pennod %n. %t"/>
+<l:template name="part" text="Rhan %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" yn %o"/>
+<l:template name="olink.page.citation" text=" (tudalen %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(tudalen %p)"/>
+<l:template name="docname" text=" yn %o"/>
+<l:template name="docnamelong" text=" yn y ddogfen o'r enw %o"/>
+<l:template name="pageabbrev" text="(tud. %p)"/>
+<l:template name="Page" text="Tudalen %p"/>
+<l:template name="bridgehead" text="yr adran o'r enw “%t”"/>
+<l:template name="refsection" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect1" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect2" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect3" text="yr adran o'r enw “%t”"/>
+<l:template name="sect1" text="yr adran o'r enw “%t”"/>
+<l:template name="sect2" text="yr adran o'r enw “%t”"/>
+<l:template name="sect3" text="yr adran o'r enw “%t”"/>
+<l:template name="sect4" text="yr adran o'r enw “%t”"/>
+<l:template name="sect5" text="yr adran o'r enw “%t”"/>
+<l:template name="section" text="yr adran o'r enw “%t”"/>
+<l:template name="simplesect" text="yr adran o'r enw “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Atodiad %n"/>
+<l:template name="bridgehead" text="Adran %n"/>
+<l:template name="chapter" text="Pennod %n"/>
+<l:template name="equation" text="Hafaliad %n"/>
+<l:template name="example" text="Enghraifft %n"/>
+<l:template name="figure" text="Ffigur %n"/>
+<l:template name="part" text="Rhan %n"/>
+<l:template name="procedure" text="Trefn %n"/>
+<l:template name="productionset" text="Cynhyrchiad %n"/>
+<l:template name="qandadiv" text="C &amp; A %n"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="sect1" text="Adran %n"/>
+<l:template name="sect2" text="Adran %n"/>
+<l:template name="sect3" text="Adran %n"/>
+<l:template name="sect4" text="Adran %n"/>
+<l:template name="sect5" text="Adran %n"/>
+<l:template name="section" text="Adran %n"/>
+<l:template name="table" text="Tabl %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Atodiad %n, %t"/>
+<l:template name="bridgehead" text="Adran %n, “%t”"/>
+<l:template name="chapter" text="Pennod %n, %t"/>
+<l:template name="equation" text="Hafaliad %n, “%t”"/>
+<l:template name="example" text="Enghraifft %n, “%t”"/>
+<l:template name="figure" text="Ffigur %n, “%t”"/>
+<l:template name="part" text="Rhan %n, “%t”"/>
+<l:template name="procedure" text="Trefn %n, “%t”"/>
+<l:template name="productionset" text="Cynhyrchiad %n, “%t”"/>
+<l:template name="qandadiv" text="C &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect2" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect3" text="yr adran o'r enw “%t”"/>
+<l:template name="refsection" text="yr adran o'r enw “%t”"/>
+<l:template name="sect1" text="Adran %n, “%t”"/>
+<l:template name="sect2" text="Adran %n, “%t”"/>
+<l:template name="sect3" text="Adran %n, “%t”"/>
+<l:template name="sect4" text="Adran %n, “%t”"/>
+<l:template name="sect5" text="Adran %n, “%t”"/>
+<l:template name="section" text="Adran %n, “%t”"/>
+<l:template name="simplesect" text="yr adran o'r enw “%t”"/>
+<l:template name="table" text="Tabl %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" a(c) "/>
+<l:template name="seplast" text=", a(c) "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Gweler %t"/>
+<l:template name="seealso" text="Gweler Hefyd %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Cynulleidfa: "/>
+<l:template name="MsgLevel" text="Lefel: "/>
+<l:template name="MsgOrig" text="Tarddiad: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/B"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Diffiniad: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ionawr"/>
+<l:template name="February" text="Chwefror"/>
+<l:template name="March" text="Mawrth"/>
+<l:template name="April" text="Ebrill"/>
+<l:template name="May" text="Mai"/>
+<l:template name="June" text="Mehefin"/>
+<l:template name="July" text="Gorffenaf"/>
+<l:template name="August" text="Awst"/>
+<l:template name="September" text="Medi"/>
+<l:template name="October" text="Hydref"/>
+<l:template name="November" text="Tachwedd"/>
+<l:template name="December" text="Rhagfyr"/>
+<l:template name="Monday" text="Dydd Llun"/>
+<l:template name="Tuesday" text="Dydd Mawrth"/>
+<l:template name="Wednesday" text="Dydd Mercher"/>
+<l:template name="Thursday" text="Dydd Iau"/>
+<l:template name="Friday" text="Dydd Gwener"/>
+<l:template name="Saturday" text="Dydd Sadwrn"/>
+<l:template name="Sunday" text="Dydd Sul"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ion"/>
+<l:template name="Feb" text="Chwe"/>
+<l:template name="Mar" text="Maw"/>
+<l:template name="Apr" text="Ebr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Meh"/>
+<l:template name="Jul" text="Gorff"/>
+<l:template name="Aug" text="Awst"/>
+<l:template name="Sep" text="Medi"/>
+<l:template name="Oct" text="Hyd"/>
+<l:template name="Nov" text="Tach"/>
+<l:template name="Dec" text="Rhag"/>
+<l:template name="Mon" text="Llun"/>
+<l:template name="Tue" text="Mawrth"/>
+<l:template name="Wed" text="Mercher"/>
+<l:template name="Thu" text="Iau"/>
+<l:template name="Fri" text="Gwener"/>
+<l:template name="Sat" text="Sadwrn"/>
+<l:template name="Sun" text="Sul"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 Welsh (UNITED KINGDOM)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="35">Ch</l:l>
+<l:l i="35">ch</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="45">Dd</l:l>
+<l:l i="45">dd</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="65">Ff</l:l>
+<l:l i="65">ff</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="75">Ng</l:l>
+<l:l i="75">ng</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="125">Ll</l:l>
+<l:l i="125">ll</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="165">Ph</l:l>
+<l:l i="165">ph</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="185">Rh</l:l>
+<l:l i="185">rh</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="205">Th</l:l>
+<l:l i="205">th</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/da.xml b/docs/xsl-generic/common/da.xml
new file mode 100644
index 00000000..c415b8a2
--- /dev/null
+++ b/docs/xsl-generic/common/da.xml
@@ -0,0 +1,658 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="da" english-language-name="Danish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/da.xml -->
+<!-- * -->
+<!-- * E-mail the edited da.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumé"/>
+<l:gentext key="abstract" text="resumé"/>
+<l:gentext key="Answer" text="Svar"/>
+<l:gentext key="answer" text="svar"/>
+<l:gentext key="Appendix" text="Appendiks"/>
+<l:gentext key="appendix" text="appendiks"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="artikel"/>
+<l:gentext key="Author" text="Forfatter"/>
+<l:gentext key="Bibliography" text="Litteraturliste"/>
+<l:gentext key="bibliography" text="litteraturliste"/>
+<l:gentext key="Book" text="Bog"/>
+<l:gentext key="book" text="bog"/>
+<l:gentext key="CAUTION" text="PAS PÅ"/>
+<l:gentext key="Caution" text="Pas på"/>
+<l:gentext key="caution" text="pas på"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="kapitel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Ophavsret"/>
+<l:gentext key="copyright" text="ophavsret"/>
+<l:gentext key="Dedication" text="Tilegnet"/>
+<l:gentext key="dedication" text="tilegnet"/>
+<l:gentext key="Edition" text="Udgave"/>
+<l:gentext key="edition" text="udgave"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ligning"/>
+<l:gentext key="equation" text="ligning"/>
+<l:gentext key="Example" text="Eksempel"/>
+<l:gentext key="example" text="eksempel"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="figur"/>
+<l:gentext key="Glossary" text="Ordliste"/>
+<l:gentext key="glossary" text="ordliste"/>
+<l:gentext key="GlossSee" text="Se"/>
+<l:gentext key="glosssee" text="se"/>
+<l:gentext key="GlossSeeAlso" text="Se også"/>
+<l:gentext key="glossseealso" text="se også"/>
+<l:gentext key="IMPORTANT" text="VIGTIGT"/>
+<l:gentext key="important" text="vigtigt"/>
+<l:gentext key="Important" text="Vigtigt"/>
+<l:gentext key="Index" text="Stikordsregister"/>
+<l:gentext key="index" text="stikordsregister"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Retslig note"/>
+<l:gentext key="legalnotice" text="retslig note"/>
+<l:gentext key="MsgAud" text="Målgruppe"/>
+<l:gentext key="msgaud" text="målgruppe"/>
+<l:gentext key="MsgLevel" text="Niveau"/>
+<l:gentext key="msglevel" text="niveau"/>
+<l:gentext key="MsgOrig" text="Grundlag"/>
+<l:gentext key="msgorig" text="grundlag"/>
+<l:gentext key="NOTE" text="BEMÆRK"/>
+<l:gentext key="Note" text="Bemærk"/>
+<l:gentext key="note" text="bemærk"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="del"/>
+<l:gentext key="Preface" text="Forord"/>
+<l:gentext key="preface" text="forord"/>
+<l:gentext key="Procedure" text="Procedure"/>
+<l:gentext key="procedure" text="procedure"/>
+<l:gentext key="ProductionSet" text="Produktion"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Udgivet"/>
+<l:gentext key="published" text="udgivet"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Spørgsmål og Svar"/>
+<l:gentext key="qandadiv" text="Spørgsmål og Svar"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Spørgsmål"/>
+<l:gentext key="question" text="spørgsmål"/>
+<l:gentext key="RefEntry" text="Punkt"/>
+<l:gentext key="refentry" text="punkt"/>
+<l:gentext key="Reference" text="Henvisning"/>
+<l:gentext key="reference" text="henvisning"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Navn"/>
+<l:gentext key="refname" text="navn"/>
+<l:gentext key="RefSection" text="Afsnit"/>
+<l:gentext key="refsection" text="afsnit"/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="synopsis"/>
+<l:gentext key="RevHistory" text="Revisionshistorie"/>
+<l:gentext key="revhistory" text="revisionshistorie"/>
+<l:gentext key="revision" text="revision"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Afsnit"/>
+<l:gentext key="sect2" text="Afsnit"/>
+<l:gentext key="sect3" text="Afsnit"/>
+<l:gentext key="sect4" text="Afsnit"/>
+<l:gentext key="sect5" text="Afsnit"/>
+<l:gentext key="section" text="afsnit"/>
+<l:gentext key="Section" text="Afsnit"/>
+<l:gentext key="see" text="se"/>
+<l:gentext key="See" text="Se"/>
+<l:gentext key="seealso" text="se også"/>
+<l:gentext key="Seealso" text="Se også"/>
+<l:gentext key="SeeAlso" text="Se også"/>
+<l:gentext key="set" text="sæt"/>
+<l:gentext key="Set" text="Sæt"/>
+<l:gentext key="setindex" text="sæt indeks"/>
+<l:gentext key="SetIndex" text="Sæt indeks"/>
+<l:gentext key="Sidebar" text="Sidebjælke"/>
+<l:gentext key="sidebar" text="sidebjælke"/>
+<l:gentext key="step" text="trin"/>
+<l:gentext key="Step" text="Trin"/>
+<l:gentext key="table" text="tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="vink"/>
+<l:gentext key="TIP" text="VINK"/>
+<l:gentext key="Tip" text="Vink"/>
+<l:gentext key="Warning" text="Advarsel"/>
+<l:gentext key="warning" text="advarsel"/>
+<l:gentext key="WARNING" text="ADVARSEL"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="by" text="af"/>
+<l:gentext key="Edited" text="Redigeret"/>
+<l:gentext key="edited" text="redigeret"/>
+<l:gentext key="Editedby" text="Redigeret af"/>
+<l:gentext key="editedby" text="redigeret af"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=", "/>
+<l:gentext key="nonexistantelement" text="ikke-eksisterende element"/>
+<l:gentext key="notes" text="slutbemærkning:"/>
+<l:gentext key="Notes" text="Slutbemærkning:"/>
+<l:gentext key="Pgs" text="Siderne"/>
+<l:gentext key="pgs" text="siderne"/>
+<l:gentext key="Revisedby" text="Revideret af: "/>
+<l:gentext key="revisedby" text="revideret af: "/>
+<l:gentext key="TableNotes" text="Noter:"/>
+<l:gentext key="tablenotes" text="noter:"/>
+<l:gentext key="TableofContents" text="Indholdsfortegnelse"/>
+<l:gentext key="tableofcontents" text="indholdsfortegnelse"/>
+<l:gentext key="unexpectedelementname" text="uventet elementnavn"/>
+<l:gentext key="unsupported" text="ikke understøttet"/>
+<l:gentext key="xrefto" text="krydshenvisning til"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="ligningsliste"/>
+<l:gentext key="ListofEquations" text="Ligningsliste"/>
+<l:gentext key="ListofExamples" text="Eksempelliste"/>
+<l:gentext key="listofexamples" text="eksempelliste"/>
+<l:gentext key="ListofFigures" text="Figurliste"/>
+<l:gentext key="listoffigures" text="figurliste"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="tabelliste"/>
+<l:gentext key="ListofTables" text="Tabelliste"/>
+<l:gentext key="ListofUnknown" text="Liste over ukendte"/>
+<l:gentext key="listofunknown" text="liste over ukendte"/>
+<l:gentext key="nav-home" text="hjem"/>
+<l:gentext key="nav-next" text="næste"/>
+<l:gentext key="nav-next-sibling" text="hurtigt fremad"/>
+<l:gentext key="nav-prev" text="forrige"/>
+<l:gentext key="nav-prev-sibling" text="hurtigt tilbage"/>
+<l:gentext key="nav-up" text="op"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Kladde"/>
+<l:gentext key="above" text="over"/>
+<l:gentext key="below" text="under"/>
+<l:gentext key="sectioncalled" text="afsnittet der hedder"/>
+<l:gentext key="index symbols" text="symboler"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzæøå"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendiks %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ligning %n. %t"/>
+<l:template name="example" text="Eksempel %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktion %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørgsmål %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendiks %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Spørgsmål %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørgsmål %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="afsnittet der hedder “%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="Appendiks %n"/>
+<l:template name="bridgehead" text="Afsnit %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Ligning %n"/>
+<l:template name="example" text="Eksempel %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Procedure %n"/>
+<l:template name="productionset" text="Produktion %n"/>
+<l:template name="qandadiv" text="Spørgsmål og Svar %n"/>
+<l:template name="qandaentry" text="Spørgsmål %n"/>
+<l:template name="question" text="Spørgsmål %n"/>
+<l:template name="sect1" text="Afsnit %n"/>
+<l:template name="sect2" text="Afsnit %n"/>
+<l:template name="sect3" text="Afsnit %n"/>
+<l:template name="sect4" text="Afsnit %n"/>
+<l:template name="sect5" text="Afsnit %n"/>
+<l:template name="section" text="Afsnit %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendiks %n, %t"/>
+<l:template name="bridgehead" text="Afsnit %n, “%t”"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Ligning %n, “%t”"/>
+<l:template name="example" text="Eksempel %n, “%t”"/>
+<l:template name="figure" text="Figur %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Procedure %n, “%t”"/>
+<l:template name="productionset" text="Produktion %n, “%t”"/>
+<l:template name="qandadiv" text="Spørgsmål og Svar %n, “%t”"/>
+<l:template name="refsect1" text="afsnittet der hedder “%t”"/>
+<l:template name="refsect2" text="afsnittet der hedder “%t”"/>
+<l:template name="refsect3" text="afsnittet der hedder “%t”"/>
+<l:template name="refsection" text="afsnittet der hedder “%t”"/>
+<l:template name="sect1" text="Afsnit %n, “%t”"/>
+<l:template name="sect2" text="Afsnit %n, “%t”"/>
+<l:template name="sect3" text="Afsnit %n, “%t”"/>
+<l:template name="sect4" text="Afsnit %n, “%t”"/>
+<l:template name="sect5" text="Afsnit %n, “%t”"/>
+<l:template name="section" text="Afsnit %n, “%t”"/>
+<l:template name="simplesect" text="afsnittet der hedder “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=" og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Se %t"/>
+<l:template name="seealso" text="Se også %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Målgruppe: "/>
+<l:template name="MsgLevel" text="Niveau: "/>
+<l:template name="MsgOrig" text="Grundlag: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="Marts"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Mandag"/>
+<l:template name="Tuesday" text="Tirsdag"/>
+<l:template name="Wednesday" text="Onsdag"/>
+<l:template name="Thursday" text="Torsdag"/>
+<l:template name="Friday" text="Fredag"/>
+<l:template name="Saturday" text="Lørdag"/>
+<l:template name="Sunday" text="Søndag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Man"/>
+<l:template name="Tue" text="Tir"/>
+<l:template name="Wed" text="ins"/>
+<l:template name="Thu" text="Tor"/>
+<l:template name="Fri" text="Fre"/>
+<l:template name="Sat" text="Lør"/>
+<l:template name="Sun" text="Søn"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0406 Danish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+<l:l i="27">Æ</l:l>
+<l:l i="27">æ</l:l>
+<l:l i="28">Ø</l:l>
+<l:l i="28">ø</l:l>
+<l:l i="29">Å</l:l>
+<l:l i="29">å</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/de.xml b/docs/xsl-generic/common/de.xml
new file mode 100644
index 00000000..bc2aedf6
--- /dev/null
+++ b/docs/xsl-generic/common/de.xml
@@ -0,0 +1,660 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="de" english-language-name="German">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/de.xml -->
+<!-- * -->
+<!-- * E-mail the edited de.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Zusammenfassung"/>
+<l:gentext key="abstract" text="Zusammenfassung"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Anhang"/>
+<l:gentext key="appendix" text="Anhang"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Literaturverzeichnis"/>
+<l:gentext key="bibliography" text="Literaturverzeichnis"/>
+<l:gentext key="Book" text="Buch"/>
+<l:gentext key="book" text="Buch"/>
+<l:gentext key="CAUTION" text="ACHTUNG"/>
+<l:gentext key="Caution" text="Achtung"/>
+<l:gentext key="caution" text="Achtung"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="Kapitel"/>
+<l:gentext key="Colophon" text="Kolophon"/>
+<l:gentext key="colophon" text="Kolophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Widmung"/>
+<l:gentext key="dedication" text="Widmung"/>
+<l:gentext key="Edition" text="Ausgabe"/>
+<l:gentext key="edition" text="Ausgabe"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Gleichung"/>
+<l:gentext key="equation" text="Gleichung"/>
+<l:gentext key="Example" text="Beispiel"/>
+<l:gentext key="example" text="Beispiel"/>
+<l:gentext key="Figure" text="Abbildung"/>
+<l:gentext key="figure" text="Abbildung"/>
+<l:gentext key="Glossary" text="Glossar"/>
+<l:gentext key="glossary" text="Glossar"/>
+<l:gentext key="GlossSee" text="Siehe"/>
+<l:gentext key="glosssee" text="Siehe"/>
+<l:gentext key="GlossSeeAlso" text="Siehe auch"/>
+<l:gentext key="glossseealso" text="Siehe auch"/>
+<l:gentext key="IMPORTANT" text="WICHTIG"/>
+<l:gentext key="important" text="Wichtig"/>
+<l:gentext key="Important" text="Wichtig"/>
+<l:gentext key="Index" text="Stichwortverzeichnis"/>
+<l:gentext key="index" text="Stichwortverzeichnis"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rechtlicher Hinweis"/>
+<l:gentext key="legalnotice" text="Rechtlicher Hinweis"/>
+<l:gentext key="MsgAud" text="Zielgruppe"/>
+<l:gentext key="msgaud" text="Zielgruppe"/>
+<l:gentext key="MsgLevel" text="Dringlichkeit"/>
+<l:gentext key="msglevel" text="Dringlichkeit"/>
+<l:gentext key="MsgOrig" text="Ursprung"/>
+<l:gentext key="msgorig" text="Ursprung"/>
+<l:gentext key="NOTE" text="ANMERKUNG"/>
+<l:gentext key="Note" text="Anmerkung"/>
+<l:gentext key="note" text="Anmerkung"/>
+<l:gentext key="Part" text="Teil"/>
+<l:gentext key="part" text="Teil"/>
+<l:gentext key="Preface" text="Vorwort"/>
+<l:gentext key="preface" text="Vorwort"/>
+<l:gentext key="Procedure" text="Prozedur"/>
+<l:gentext key="procedure" text="Prozedur"/>
+<l:gentext key="ProductionSet" text="Produktion"/>
+<l:gentext key="PubDate" text="Veröffentlicht"/>
+<l:gentext key="pubdate" text="Veröffentlicht"/>
+<l:gentext key="Published" text="Veröffentlicht"/>
+<l:gentext key="published" text="Veröffentlicht"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="F &amp; A"/>
+<l:gentext key="qandadiv" text="F &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="F:"/>
+<l:gentext key="question" text="F:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Verweis"/>
+<l:gentext key="reference" text="Verweis"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Name"/>
+<l:gentext key="refname" text="Name"/>
+<l:gentext key="RefSection" text="Abschnitt"/>
+<l:gentext key="refsection" text="Abschnitt"/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Versionsgeschichte"/>
+<l:gentext key="revhistory" text="Versionsgeschichte"/>
+<l:gentext key="revision" text="Version"/>
+<l:gentext key="Revision" text="Version"/>
+<l:gentext key="sect1" text="Abschnitt"/>
+<l:gentext key="sect2" text="Abschnitt"/>
+<l:gentext key="sect3" text="Abschnitt"/>
+<l:gentext key="sect4" text="Abschnitt"/>
+<l:gentext key="sect5" text="Abschnitt"/>
+<l:gentext key="section" text="Abschnitt"/>
+<l:gentext key="Section" text="Abschnitt"/>
+<l:gentext key="see" text="Siehe"/>
+<l:gentext key="See" text="Siehe"/>
+<l:gentext key="seealso" text="Siehe auch"/>
+<l:gentext key="Seealso" text="Siehe auch"/>
+<l:gentext key="SeeAlso" text="Siehe auch"/>
+<l:gentext key="set" text="Satz"/>
+<l:gentext key="Set" text="Satz"/>
+<l:gentext key="setindex" text="Stichwortverzeichnis"/>
+<l:gentext key="SetIndex" text="Stichwortverzeichnis"/>
+<l:gentext key="Sidebar" text="Randnotiz"/>
+<l:gentext key="sidebar" text="randnotiz"/>
+<l:gentext key="step" text="Schritt"/>
+<l:gentext key="Step" text="Schritt"/>
+<l:gentext key="table" text="Tabelle"/>
+<l:gentext key="Table" text="Tabelle"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tipp"/>
+<l:gentext key="TIP" text="TIPP"/>
+<l:gentext key="Tip" text="Tipp"/>
+<l:gentext key="Warning" text="Warnung"/>
+<l:gentext key="warning" text="Warnung"/>
+<l:gentext key="WARNING" text="WARNUNG"/>
+<l:gentext key="and" text="und"/>
+<l:gentext key="by" text="von"/>
+<l:gentext key="Edited" text="Herausgegeben"/>
+<l:gentext key="edited" text="Herausgegeben"/>
+<l:gentext key="Editedby" text="Herausgegeben von"/>
+<l:gentext key="editedby" text="Herausgegeben von"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="nicht existierendes Element"/>
+<l:gentext key="notes" text="Fußnoten"/>
+<l:gentext key="Notes" text="Fußnoten"/>
+<l:gentext key="Pgs" text="Seiten"/>
+<l:gentext key="pgs" text="Seiten"/>
+<l:gentext key="Revisedby" text="Geändert durch: "/>
+<l:gentext key="revisedby" text="Geändert durch: "/>
+<l:gentext key="TableNotes" text="Bemerkungen"/>
+<l:gentext key="tablenotes" text="Bemerkungen"/>
+<l:gentext key="TableofContents" text="Inhaltsverzeichnis"/>
+<l:gentext key="tableofcontents" text="Inhaltsverzeichnis"/>
+<l:gentext key="unexpectedelementname" text="Unerwarteter Elementname"/>
+<l:gentext key="unsupported" text="wird nicht unterstützt"/>
+<l:gentext key="xrefto" text="xref auf"/>
+<l:gentext key="Authors" text="Autoren"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Gleichungen"/>
+<l:gentext key="ListofEquations" text="Gleichungen"/>
+<l:gentext key="ListofExamples" text="Beispiele"/>
+<l:gentext key="listofexamples" text="Beispiele"/>
+<l:gentext key="ListofFigures" text="Abbildungsverzeichnis"/>
+<l:gentext key="listoffigures" text="Abbildungsverzeichnis"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabellenverzeichnis"/>
+<l:gentext key="ListofTables" text="Tabellenverzeichnis"/>
+<l:gentext key="ListofUnknown" text="???-Verzeichnis"/>
+<l:gentext key="listofunknown" text="???-Verzeichnis"/>
+<l:gentext key="nav-home" text="Zum Anfang"/>
+<l:gentext key="nav-next" text="Weiter"/>
+<l:gentext key="nav-next-sibling" text="Schnell weiter"/>
+<l:gentext key="nav-prev" text="Zurück"/>
+<l:gentext key="nav-prev-sibling" text="Schnell zurück"/>
+<l:gentext key="nav-up" text="Nach oben"/>
+<l:gentext key="nav-toc" text="InhV"/>
+<l:gentext key="Draft" text="Entwurf"/>
+<l:gentext key="above" text="oben"/>
+<l:gentext key="below" text="unten"/>
+<l:gentext key="sectioncalled" text="der Abschnitt namens"/>
+<l:gentext key="index symbols" text="Symbole"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzäöüß"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‚"/>
+<l:dingbat key="nestedendquote" text="‘"/>
+<l:dingbat key="singlestartquote" text="‚"/>
+<l:dingbat key="singleendquote" text="‘"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="3"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Anhang %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Gleichung %n. %t"/>
+<l:template name="example" text="Beispiel %n. %t"/>
+<l:template name="figure" text="Abbildung %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Teil %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prozedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktion %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabelle %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Anhang %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Teil %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="F: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(Seite %p)"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(S. %p)"/>
+<l:template name="Page" text="Seite %p"/>
+<l:template name="bridgehead" text="„%t“"/>
+<l:template name="refsection" text="„%t“"/>
+<l:template name="refsect1" text="„%t“"/>
+<l:template name="refsect2" text="„%t“"/>
+<l:template name="refsect3" text="„%t“"/>
+<l:template name="sect1" text="„%t“"/>
+<l:template name="sect2" text="„%t“"/>
+<l:template name="sect3" text="„%t“"/>
+<l:template name="sect4" text="„%t“"/>
+<l:template name="sect5" text="„%t“"/>
+<l:template name="section" text="„%t“"/>
+<l:template name="simplesect" text="„%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Anhang %n"/>
+<l:template name="bridgehead" text="Abschnitt %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Gleichung %n"/>
+<l:template name="example" text="Beispiel %n"/>
+<l:template name="figure" text="Abbildung %n"/>
+<l:template name="part" text="Teil %n"/>
+<l:template name="procedure" text="Prozedur %n"/>
+<l:template name="productionset" text="Produktion %n"/>
+<l:template name="qandadiv" text="F &amp; A %n"/>
+<l:template name="qandaentry" text="F: %n"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="sect1" text="Abschnitt %n"/>
+<l:template name="sect2" text="Abschnitt %n"/>
+<l:template name="sect3" text="Abschnitt %n"/>
+<l:template name="sect4" text="Abschnitt %n"/>
+<l:template name="sect5" text="Abschnitt %n"/>
+<l:template name="section" text="Abschnitt %n"/>
+<l:template name="table" text="Tabelle %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Anhang %n, %t"/>
+<l:template name="bridgehead" text="Abschnitt %n, „%t“"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Gleichung %n, „%t“"/>
+<l:template name="example" text="Beispiel %n, „%t“"/>
+<l:template name="figure" text="Abbildung %n, „%t“"/>
+<l:template name="part" text="Teil %n, „%t“"/>
+<l:template name="procedure" text="Prozedur %n, „%t“"/>
+<l:template name="productionset" text="Produktion %n, „%t“"/>
+<l:template name="qandadiv" text="F &amp; A %n, „%t“"/>
+<l:template name="refsect1" text="der Abschnitt namens „%t“"/>
+<l:template name="refsect2" text="der Abschnitt namens „%t“"/>
+<l:template name="refsect3" text="der Abschnitt namens „%t“"/>
+<l:template name="refsection" text="der Abschnitt namens „%t“"/>
+<l:template name="sect1" text="Abschnitt %n, „%t“"/>
+<l:template name="sect2" text="Abschnitt %n, „%t“"/>
+<l:template name="sect3" text="Abschnitt %n, „%t“"/>
+<l:template name="sect4" text="Abschnitt %n, „%t“"/>
+<l:template name="sect5" text="Abschnitt %n, „%t“"/>
+<l:template name="section" text="Abschnitt %n, „%t“"/>
+<l:template name="simplesect" text="der Abschnitt namens „%t“"/>
+<l:template name="table" text="Tabelle %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" und "/>
+<l:template name="seplast" text=" und "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Siehe %t"/>
+<l:template name="seealso" text="Siehe auch %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Zielgruppe: "/>
+<l:template name="MsgLevel" text="Dringlichkeit: "/>
+<l:template name="MsgOrig" text="Ursprung: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="März"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Mai"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="Dezember"/>
+<l:template name="Monday" text="Montag"/>
+<l:template name="Tuesday" text="Dienstag"/>
+<l:template name="Wednesday" text="Mittwoch"/>
+<l:template name="Thursday" text="Donnerstag"/>
+<l:template name="Friday" text="Freitag"/>
+<l:template name="Saturday" text="Samstag"/>
+<l:template name="Sunday" text="Sonntag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dez"/>
+<l:template name="Mon" text="Mo"/>
+<l:template name="Tue" text="Di"/>
+<l:template name="Wed" text="Mi"/>
+<l:template name="Thu" text="Do"/>
+<l:template name="Fri" text="Fr"/>
+<l:template name="Sat" text="Sa"/>
+<l:template name="Sun" text="So"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0407 German (GERMANY)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbole</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Ä</l:l>
+<l:l i="1">ä</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="15">Ö</l:l>
+<l:l i="15">ö</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ü</l:l>
+<l:l i="21">ü</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/el.xml b/docs/xsl-generic/common/el.xml
new file mode 100644
index 00000000..a0556621
--- /dev/null
+++ b/docs/xsl-generic/common/el.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="el" english-language-name="Greek">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/el.xml -->
+<!-- * -->
+<!-- * E-mail the edited el.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Περίληψη"/>
+<l:gentext key="abstract" text="Περίληψη"/>
+<l:gentext key="Answer" text="Α:"/>
+<l:gentext key="answer" text="Α:"/>
+<l:gentext key="Appendix" text="Παράρτημα"/>
+<l:gentext key="appendix" text="παράρτημα"/>
+<l:gentext key="Article" text="Άρθρο"/>
+<l:gentext key="article" text="Άρθρο"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Βιβλιογραφία"/>
+<l:gentext key="bibliography" text="Βιβλιογραφία"/>
+<l:gentext key="Book" text="Βιβλίο"/>
+<l:gentext key="book" text="Βιβλίο"/>
+<l:gentext key="CAUTION" text="ΠΡΟΣΟΧΗ"/>
+<l:gentext key="Caution" text="Προσοχή"/>
+<l:gentext key="caution" text="Προσοχή"/>
+<l:gentext key="Chapter" text="Κεφάλαιο"/>
+<l:gentext key="chapter" text="κεφάλαιο"/>
+<l:gentext key="Colophon" text="Κορωνίδα"/>
+<l:gentext key="colophon" text="Κορωνίδα"/>
+<l:gentext key="Copyright" text="Πνευματικά Δικαιώματα"/>
+<l:gentext key="copyright" text="Πνευματικά Δικαιώματα"/>
+<l:gentext key="Dedication" text="Αφιέρωση"/>
+<l:gentext key="dedication" text="Αφιέρωση"/>
+<l:gentext key="Edition" text="Έκδοση"/>
+<l:gentext key="edition" text="Έκδοση"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Εξίσωση"/>
+<l:gentext key="equation" text="Εξίσωση"/>
+<l:gentext key="Example" text="Παράδειγμα"/>
+<l:gentext key="example" text="Παράδειγμα"/>
+<l:gentext key="Figure" text="Σχήμα"/>
+<l:gentext key="figure" text="Σχήμα"/>
+<l:gentext key="Glossary" text="Γλωσσάριο"/>
+<l:gentext key="glossary" text="Γλωσσάριο"/>
+<l:gentext key="GlossSee" text="Δείτε"/>
+<l:gentext key="glosssee" text="Δείτε"/>
+<l:gentext key="GlossSeeAlso" text="Δείτε Επίσης"/>
+<l:gentext key="glossseealso" text="Δείτε Επίσης"/>
+<l:gentext key="IMPORTANT" text="ΣΗΜΑΝΤΙΚΟ"/>
+<l:gentext key="important" text="Σημαντικό"/>
+<l:gentext key="Important" text="Σημαντικό"/>
+<l:gentext key="Index" text="Ευρετήριο"/>
+<l:gentext key="index" text="Ευρετήριο"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Νομική Σημείωση"/>
+<l:gentext key="legalnotice" text="Νομική Σημείωση"/>
+<l:gentext key="MsgAud" text="Ακροατήριο"/>
+<l:gentext key="msgaud" text="Ακροατήριο"/>
+<l:gentext key="MsgLevel" text="Επίπεδο"/>
+<l:gentext key="msglevel" text="Επίπεδο"/>
+<l:gentext key="MsgOrig" text="Πηγή"/>
+<l:gentext key="msgorig" text="Πηγή"/>
+<l:gentext key="NOTE" text="ΣΗΜΕΙΩΣΗ"/>
+<l:gentext key="Note" text="Σημείωση"/>
+<l:gentext key="note" text="Σημείωση"/>
+<l:gentext key="Part" text="Μέρος"/>
+<l:gentext key="part" text="Μέρος"/>
+<l:gentext key="Preface" text="Εισαγωγή"/>
+<l:gentext key="preface" text="Εισαγωγή"/>
+<l:gentext key="Procedure" text="Διαδικασία"/>
+<l:gentext key="procedure" text="Διαδικασία"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Δημοσιευμένο"/>
+<l:gentext key="published" text="Δημοσιευμένο"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Ε και Α"/>
+<l:gentext key="qandadiv" text="Ε και Α"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Ε:"/>
+<l:gentext key="question" text="Ε:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Αναφορά"/>
+<l:gentext key="reference" text="Αναφορά"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Όνομα"/>
+<l:gentext key="refname" text="Όνομα"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Σύνοψη"/>
+<l:gentext key="refsynopsisdiv" text="Σύνοψη"/>
+<l:gentext key="RevHistory" text="Ιστορικό Αναθεωρήσεων"/>
+<l:gentext key="revhistory" text="Ιστορικό Αναθεωρήσεων"/>
+<l:gentext key="revision" text="Αναθεώρηση"/>
+<l:gentext key="Revision" text="Αναθεώρηση"/>
+<l:gentext key="sect1" text="τμήμα"/>
+<l:gentext key="sect2" text="τμήμα"/>
+<l:gentext key="sect3" text="τμήμα"/>
+<l:gentext key="sect4" text="τμήμα"/>
+<l:gentext key="sect5" text="τμήμα"/>
+<l:gentext key="section" text="τμήμα"/>
+<l:gentext key="Section" text="Τμήμα"/>
+<l:gentext key="see" text="Δείτε"/>
+<l:gentext key="See" text="Δείτε"/>
+<l:gentext key="seealso" text="Δείτε Επίσης"/>
+<l:gentext key="Seealso" text="Δείτε επίσης"/>
+<l:gentext key="SeeAlso" text="Δείτε Επίσης"/>
+<l:gentext key="set" text="Σύνολο"/>
+<l:gentext key="Set" text="Σύνολο"/>
+<l:gentext key="setindex" text="Ευρετήριο Συνόλων"/>
+<l:gentext key="SetIndex" text="Ευρετήριο Συνόλων"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="επεξηγηματικό πλευρικό αρθρίδιο"/>
+<l:gentext key="step" text="φάση"/>
+<l:gentext key="Step" text="Φάση"/>
+<l:gentext key="table" text="Πίνακας"/>
+<l:gentext key="Table" text="Πίνακας"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Υπόδειξη"/>
+<l:gentext key="TIP" text="ΥΠΟΔΕΙΞΗ"/>
+<l:gentext key="Tip" text="Υπόδειξη"/>
+<l:gentext key="Warning" text="Προειδοποίηση"/>
+<l:gentext key="warning" text="Προειδοποίηση"/>
+<l:gentext key="WARNING" text="ΠΡΟΕΙΔΟΠΟΙΗΣΗ"/>
+<l:gentext key="and" text="και"/>
+<l:gentext key="by" text="από"/>
+<l:gentext key="Edited" text="Επιμέλεια"/>
+<l:gentext key="edited" text="Επιμέλεια"/>
+<l:gentext key="Editedby" text="Επιμέλεια από"/>
+<l:gentext key="editedby" text="Επιμέλεια από"/>
+<l:gentext key="in" text="σε"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="μη-υπαρκτό στοιχείο"/>
+<l:gentext key="notes" text="Σημειώσεις"/>
+<l:gentext key="Notes" text="Σημειώσεις"/>
+<l:gentext key="Pgs" text="Σλδς."/>
+<l:gentext key="pgs" text="Σλδς."/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Πίνακας Σημειώσεων"/>
+<l:gentext key="tablenotes" text="Πίνακας Σημειώσεων"/>
+<l:gentext key="TableofContents" text="Πίνακας Περιεχομένων"/>
+<l:gentext key="tableofcontents" text="Πίνακας Περιεχομένων"/>
+<l:gentext key="unexpectedelementname" text="Μη αναμενόμενο όνομα στοιχείου"/>
+<l:gentext key="unsupported" text="μη υποστηριζόμενο"/>
+<l:gentext key="xrefto" text="αντιπαραπομπή σε"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Κατάλογος Εξισώσεων"/>
+<l:gentext key="ListofEquations" text="Κατάλογος Εξισώσεων"/>
+<l:gentext key="ListofExamples" text="Κατάλογος Παραδειγμάτων"/>
+<l:gentext key="listofexamples" text="Κατάλογος Παραδειγμάτων"/>
+<l:gentext key="ListofFigures" text="Κατάλογος Σχημάτων"/>
+<l:gentext key="listoffigures" text="Κατάλογος Σχημάτων"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Κατάλογος Πινάκων"/>
+<l:gentext key="ListofTables" text="Κατάλογος Πινάκων"/>
+<l:gentext key="ListofUnknown" text="Κατάλογος Αγνώστων"/>
+<l:gentext key="listofunknown" text="Κατάλογος Αγνώστων"/>
+<l:gentext key="nav-home" text="Αρχή"/>
+<l:gentext key="nav-next" text="Επόμενο"/>
+<l:gentext key="nav-next-sibling" text="Προς το τέλος"/>
+<l:gentext key="nav-prev" text="Προηγ"/>
+<l:gentext key="nav-prev-sibling" text="Προς την αρχή"/>
+<l:gentext key="nav-up" text="Πάνω"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="&amp;#x201C;"/>
+<l:dingbat key="endquote" text="&amp;#x201D;"/>
+<l:dingbat key="nestedstartquote" text="&amp;#x2018;"/>
+<l:dingbat key="nestedendquote" text="&amp;#x2019;"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="&amp;#x2022;"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Παράρτημα %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Κεφάλαιο %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Εξίσωση %n. %t"/>
+<l:template name="example" text="Παράδειγμα %n. %t"/>
+<l:template name="figure" text="Σχήμα %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Μέρος %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Διαδικασία %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Πίνακας %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Παράρτημα %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Κεφάλαιο %n. %t"/>
+<l:template name="part" text="Μέρος %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Α: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Ε: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Ε: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsection" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsect1" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsect2" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsect3" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect1" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect2" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect3" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect4" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect5" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="section" text="&amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="simplesect" text="&amp;#x201C;%t&amp;#x201D;"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Α: %n"/>
+<l:template name="appendix" text="Παράρτημα %n"/>
+<l:template name="bridgehead" text="Τμήμα %n"/>
+<l:template name="chapter" text="Κεφάλαιο %n"/>
+<l:template name="equation" text="Εξίσωση %n"/>
+<l:template name="example" text="Παράδειγμα %n"/>
+<l:template name="figure" text="Σχήμα %n"/>
+<l:template name="part" text="Μέρος %n"/>
+<l:template name="procedure" text="Διαδικασία %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Ε και Α %n"/>
+<l:template name="qandaentry" text="Ε: %n"/>
+<l:template name="question" text="Ε: %n"/>
+<l:template name="sect1" text="Τμήμα %n"/>
+<l:template name="sect2" text="Τμήμα %n"/>
+<l:template name="sect3" text="Τμήμα %n"/>
+<l:template name="sect4" text="Τμήμα %n"/>
+<l:template name="sect5" text="Τμήμα %n"/>
+<l:template name="section" text="Τμήμα %n"/>
+<l:template name="table" text="Πίνακας %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Παράρτημα %n, %t"/>
+<l:template name="bridgehead" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="chapter" text="Κεφάλαιο %n, %t"/>
+<l:template name="equation" text="Εξίσωση %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="example" text="Παράδειγμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="figure" text="Σχήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="part" text="Μέρος %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="procedure" text="Διαδικασία %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="productionset" text="Production %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="qandadiv" text="Ε και Α %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsect1" text="the section called &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsect2" text="the section called &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsect3" text="the section called &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="refsection" text="the section called &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect1" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect2" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect3" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect4" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="sect5" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="section" text="Τμήμα %n, &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="simplesect" text="the section called &amp;#x201C;%t&amp;#x201D;"/>
+<l:template name="table" text="Πίνακας %n, &amp;#x201C;%t&amp;#x201D;"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" και "/>
+<l:template name="seplast" text=", και "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Δείτε %t"/>
+<l:template name="seealso" text="Δείτε Επίσης %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Ακροατήριο: "/>
+<l:template name="MsgLevel" text="Επίπεδο: "/>
+<l:template name="MsgOrig" text="Πηγή: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0408 Greek"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/en.xml b/docs/xsl-generic/common/en.xml
new file mode 100644
index 00000000..1aa99856
--- /dev/null
+++ b/docs/xsl-generic/common/en.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en" english-language-name="English">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/en.xml -->
+<!-- * -->
+<!-- * E-mail the edited en.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstract"/>
+<l:gentext key="abstract" text="Abstract"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Appendix"/>
+<l:gentext key="appendix" text="Appendix"/>
+<l:gentext key="Article" text="Article"/>
+<l:gentext key="article" text="Article"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="Bibliography"/>
+<l:gentext key="bibliography" text="Bibliography"/>
+<l:gentext key="Book" text="Book"/>
+<l:gentext key="book" text="Book"/>
+<l:gentext key="CAUTION" text="CAUTION"/>
+<l:gentext key="Caution" text="Caution"/>
+<l:gentext key="caution" text="Caution"/>
+<l:gentext key="Chapter" text="Chapter"/>
+<l:gentext key="chapter" text="Chapter"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedication"/>
+<l:gentext key="dedication" text="Dedication"/>
+<l:gentext key="Edition" text="Edition"/>
+<l:gentext key="edition" text="Edition"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Equation"/>
+<l:gentext key="equation" text="Equation"/>
+<l:gentext key="Example" text="Example"/>
+<l:gentext key="example" text="Example"/>
+<l:gentext key="Figure" text="Figure"/>
+<l:gentext key="figure" text="Figure"/>
+<l:gentext key="Glossary" text="Glossary"/>
+<l:gentext key="glossary" text="Glossary"/>
+<l:gentext key="GlossSee" text="See"/>
+<l:gentext key="glosssee" text="See"/>
+<l:gentext key="GlossSeeAlso" text="See Also"/>
+<l:gentext key="glossseealso" text="See Also"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legal Notice"/>
+<l:gentext key="legalnotice" text="Legal Notice"/>
+<l:gentext key="MsgAud" text="Audience"/>
+<l:gentext key="msgaud" text="Audience"/>
+<l:gentext key="MsgLevel" text="Level"/>
+<l:gentext key="msglevel" text="Level"/>
+<l:gentext key="MsgOrig" text="Origin"/>
+<l:gentext key="msgorig" text="Origin"/>
+<l:gentext key="NOTE" text="NOTE"/>
+<l:gentext key="Note" text="Note"/>
+<l:gentext key="note" text="Note"/>
+<l:gentext key="Part" text="Part"/>
+<l:gentext key="part" text="Part"/>
+<l:gentext key="Preface" text="Preface"/>
+<l:gentext key="preface" text="Preface"/>
+<l:gentext key="Procedure" text="Procedure"/>
+<l:gentext key="procedure" text="Procedure"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="Published"/>
+<l:gentext key="published" text="Published"/>
+<l:gentext key="Publisher" text="Publisher"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Reference"/>
+<l:gentext key="reference" text="Reference"/>
+<l:gentext key="References" text="References"/>
+<l:gentext key="RefName" text="Name"/>
+<l:gentext key="refname" text="Name"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revision History"/>
+<l:gentext key="revhistory" text="Revision History"/>
+<l:gentext key="revision" text="Revision"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="Section"/>
+<l:gentext key="Section" text="Section"/>
+<l:gentext key="see" text="see"/>
+<l:gentext key="See" text="See"/>
+<l:gentext key="seealso" text="see also"/>
+<l:gentext key="Seealso" text="See also"/>
+<l:gentext key="SeeAlso" text="See Also"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="step"/>
+<l:gentext key="Step" text="Step"/>
+<l:gentext key="table" text="Table"/>
+<l:gentext key="Table" text="Table"/>
+<l:gentext key="task" text="Task"/>
+<l:gentext key="Task" text="Task"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Warning"/>
+<l:gentext key="warning" text="Warning"/>
+<l:gentext key="WARNING" text="WARNING"/>
+<l:gentext key="and" text="and"/>
+<l:gentext key="by" text="by"/>
+<l:gentext key="Edited" text="Edited"/>
+<l:gentext key="edited" text="Edited"/>
+<l:gentext key="Editedby" text="Edited by"/>
+<l:gentext key="editedby" text="Edited by"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="non-existant element"/>
+<l:gentext key="notes" text="Notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Notes"/>
+<l:gentext key="tablenotes" text="Notes"/>
+<l:gentext key="TableofContents" text="Table of Contents"/>
+<l:gentext key="tableofcontents" text="Table of Contents"/>
+<l:gentext key="unexpectedelementname" text="Unexpected element name"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors"/>
+<l:gentext key="copyeditor" text="Copy Editor"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer"/>
+<l:gentext key="productioneditor" text="Production Editor"/>
+<l:gentext key="technicaleditor" text="Technical Editor"/>
+<l:gentext key="translator" text="Translator"/>
+<l:gentext key="listofequations" text="List of Equations"/>
+<l:gentext key="ListofEquations" text="List of Equations"/>
+<l:gentext key="ListofExamples" text="List of Examples"/>
+<l:gentext key="listofexamples" text="List of Examples"/>
+<l:gentext key="ListofFigures" text="List of Figures"/>
+<l:gentext key="listoffigures" text="List of Figures"/>
+<l:gentext key="ListofProcedures" text="List of Procedures"/>
+<l:gentext key="listofprocedures" text="List of Procedures"/>
+<l:gentext key="listoftables" text="List of Tables"/>
+<l:gentext key="ListofTables" text="List of Tables"/>
+<l:gentext key="ListofUnknown" text="List of Unknown"/>
+<l:gentext key="listofunknown" text="List of Unknown"/>
+<l:gentext key="nav-home" text="Home"/>
+<l:gentext key="nav-next" text="Next"/>
+<l:gentext key="nav-next-sibling" text="Fast Forward"/>
+<l:gentext key="nav-prev" text="Prev"/>
+<l:gentext key="nav-prev-sibling" text="Fast Backward"/>
+<l:gentext key="nav-up" text="Up"/>
+<l:gentext key="nav-toc" text="ToC"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Chapter %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equation %n. %t"/>
+<l:template name="example" text="Example %n. %t"/>
+<l:template name="figure" text="Figure %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Table %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Chapter %n. %t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="sect1" text="the section called “%t”"/>
+<l:template name="sect2" text="the section called “%t”"/>
+<l:template name="sect3" text="the section called “%t”"/>
+<l:template name="sect4" text="the section called “%t”"/>
+<l:template name="sect5" text="the section called “%t”"/>
+<l:template name="section" text="the section called “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Appendix %n"/>
+<l:template name="bridgehead" text="Section %n"/>
+<l:template name="chapter" text="Chapter %n"/>
+<l:template name="equation" text="Equation %n"/>
+<l:template name="example" text="Example %n"/>
+<l:template name="figure" text="Figure %n"/>
+<l:template name="part" text="Part %n"/>
+<l:template name="procedure" text="Procedure %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Section %n"/>
+<l:template name="sect2" text="Section %n"/>
+<l:template name="sect3" text="Section %n"/>
+<l:template name="sect4" text="Section %n"/>
+<l:template name="sect5" text="Section %n"/>
+<l:template name="section" text="Section %n"/>
+<l:template name="table" text="Table %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendix %n, %t"/>
+<l:template name="bridgehead" text="Section %n, “%t”"/>
+<l:template name="chapter" text="Chapter %n, %t"/>
+<l:template name="equation" text="Equation %n, “%t”"/>
+<l:template name="example" text="Example %n, “%t”"/>
+<l:template name="figure" text="Figure %n, “%t”"/>
+<l:template name="part" text="Part %n, “%t”"/>
+<l:template name="procedure" text="Procedure %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Section %n, “%t”"/>
+<l:template name="sect2" text="Section %n, “%t”"/>
+<l:template name="sect3" text="Section %n, “%t”"/>
+<l:template name="sect4" text="Section %n, “%t”"/>
+<l:template name="sect5" text="Section %n, “%t”"/>
+<l:template name="section" text="Section %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Table %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" and "/>
+<l:template name="seplast" text=", and "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="See %t"/>
+<l:template name="seealso" text="See Also %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audience: "/>
+<l:template name="MsgLevel" text="Level: "/>
+<l:template name="MsgOrig" text="Origin: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January"/>
+<l:template name="February" text="February"/>
+<l:template name="March" text="March"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="June"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="October"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Monday"/>
+<l:template name="Tuesday" text="Tuesday"/>
+<l:template name="Wednesday" text="Wednesday"/>
+<l:template name="Thursday" text="Thursday"/>
+<l:template name="Friday" text="Friday"/>
+<l:template name="Saturday" text="Saturday"/>
+<l:template name="Sunday" text="Sunday"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tue"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Thu"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Sat"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/entities.ent b/docs/xsl-generic/common/entities.ent
new file mode 100644
index 00000000..e6b7b8eb
--- /dev/null
+++ b/docs/xsl-generic/common/entities.ent
@@ -0,0 +1,47 @@
+<!-- ********************************************************************
+ $Id: entities.ent 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file contains common entity declarations used for
+ sorting by various templates.
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!ENTITY lowercase "'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;'">
+<!ENTITY uppercase "'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'">
+
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))'>
+<!ENTITY secondary 'normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""]))'>
+<!ENTITY tertiary 'normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""]))'>
+
+
+<!ENTITY section '(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]'>
+
+<!ENTITY section.id 'generate-id(&section;)'>
+<!ENTITY sep '" "'>
+
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))'>
+
+<!ENTITY setup-language-variable '
+<xsl:variable name="language" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+ </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+ </xsl:call-template>
+</xsl:variable>
+'>
diff --git a/docs/xsl-generic/common/eo.xml b/docs/xsl-generic/common/eo.xml
new file mode 100644
index 00000000..14a66e15
--- /dev/null
+++ b/docs/xsl-generic/common/eo.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="eo" english-language-name="Esperanto">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/eo.xml -->
+<!-- * -->
+<!-- * E-mail the edited eo.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="Resumo"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Apendico"/>
+<l:gentext key="appendix" text="Apendico"/>
+<l:gentext key="Article" text="Artikolo"/>
+<l:gentext key="article" text="Artikolo"/>
+<l:gentext key="Author" text="Aŭtoro"/>
+<l:gentext key="Bibliography" text="Bibliografio"/>
+<l:gentext key="bibliography" text="Bibliografio"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="ATENTU"/>
+<l:gentext key="Caution" text="Atentu"/>
+<l:gentext key="caution" text="Atentu"/>
+<l:gentext key="Chapter" text="Ĉapitro"/>
+<l:gentext key="chapter" text="Ĉapitro"/>
+<l:gentext key="Colophon" text="Kolofono"/>
+<l:gentext key="colophon" text="Kolofono"/>
+<l:gentext key="Copyright" text="Kopirajto"/>
+<l:gentext key="copyright" text="Kopirajto"/>
+<l:gentext key="Dedication" text="Dediĉo"/>
+<l:gentext key="dedication" text="Dediĉo"/>
+<l:gentext key="Edition" text="Eldono"/>
+<l:gentext key="edition" text="Eldono"/>
+<l:gentext key="Editor" text="Redaktoro"/>
+<l:gentext key="Equation" text="Ekvacio"/>
+<l:gentext key="equation" text="Ekvacio"/>
+<l:gentext key="Example" text="Ekzemplo"/>
+<l:gentext key="example" text="Ekzemplo"/>
+<l:gentext key="Figure" text="Figuro"/>
+<l:gentext key="figure" text="Figuro"/>
+<l:gentext key="Glossary" text="Glosaro"/>
+<l:gentext key="glossary" text="Glosaro"/>
+<l:gentext key="GlossSee" text="Vidu"/>
+<l:gentext key="glosssee" text="Vidu"/>
+<l:gentext key="GlossSeeAlso" text="Vidu ankaŭ"/>
+<l:gentext key="glossseealso" text="Vidu ankaŭ"/>
+<l:gentext key="IMPORTANT" text="GRAVA"/>
+<l:gentext key="important" text="Grava"/>
+<l:gentext key="Important" text="Grava"/>
+<l:gentext key="Index" text="Indekso"/>
+<l:gentext key="index" text="Indekso"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Leĝa Avizo"/>
+<l:gentext key="legalnotice" text="Leĝa Avizo"/>
+<l:gentext key="MsgAud" text="Cela legantaro"/>
+<l:gentext key="msgaud" text="Cela legantaro"/>
+<l:gentext key="MsgLevel" text="Nivelo"/>
+<l:gentext key="msglevel" text="Nivelo"/>
+<l:gentext key="MsgOrig" text="Origino"/>
+<l:gentext key="msgorig" text="Origino"/>
+<l:gentext key="NOTE" text="RIMARKO"/>
+<l:gentext key="Note" text="Rimarko"/>
+<l:gentext key="note" text="Rimarko"/>
+<l:gentext key="Part" text="Parto"/>
+<l:gentext key="part" text="Parto"/>
+<l:gentext key="Preface" text="Antaŭparolo"/>
+<l:gentext key="preface" text="Antaŭparolo"/>
+<l:gentext key="Procedure" text="Procezo"/>
+<l:gentext key="procedure" text="Procezo"/>
+<l:gentext key="ProductionSet" text="Produktaĵo"/>
+<l:gentext key="PubDate" text="Eldona Dato"/>
+<l:gentext key="pubdate" text="Eldona Dato"/>
+<l:gentext key="Published" text="Eldonita "/>
+<l:gentext key="published" text="Eldonita"/>
+<l:gentext key="Publisher" text="Eldonita"/>
+<l:gentext key="Qandadiv" text="Demandoj &amp; Respondoj"/>
+<l:gentext key="qandadiv" text="Demandoj &amp; Respondoj"/>
+<l:gentext key="QandASet" text="Oftaj Demandoj"/>
+<l:gentext key="Question" text="D:"/>
+<l:gentext key="question" text="D:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referenco"/>
+<l:gentext key="reference" text="Referenco"/>
+<l:gentext key="References" text="Referencoj"/>
+<l:gentext key="RefName" text="Nomo"/>
+<l:gentext key="refname" text="Nomo"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Resumo"/>
+<l:gentext key="refsynopsisdiv" text="Resumo"/>
+<l:gentext key="RevHistory" text="Historio de Versioj"/>
+<l:gentext key="revhistory" text="Historio de Versioj"/>
+<l:gentext key="revision" text="Versio"/>
+<l:gentext key="Revision" text="Versio"/>
+<l:gentext key="sect1" text="Sekcio"/>
+<l:gentext key="sect2" text="Sekcio"/>
+<l:gentext key="sect3" text="Sekcio"/>
+<l:gentext key="sect4" text="Sekcio"/>
+<l:gentext key="sect5" text="Sekcio"/>
+<l:gentext key="section" text="Sekcio"/>
+<l:gentext key="Section" text="Sekcio"/>
+<l:gentext key="see" text="vidu"/>
+<l:gentext key="See" text="Vidu"/>
+<l:gentext key="seealso" text="vidu ankaŭ"/>
+<l:gentext key="Seealso" text="Vidu ankaŭ"/>
+<l:gentext key="SeeAlso" text="Vidu Ankaŭ"/>
+<l:gentext key="set" text="Libraro"/>
+<l:gentext key="Set" text="Libraro"/>
+<l:gentext key="setindex" text="Indekso de Libraro"/>
+<l:gentext key="SetIndex" text="Indesko de Libraro"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="flankaĵo"/>
+<l:gentext key="step" text="ŝtupo"/>
+<l:gentext key="Step" text="Ŝtupo"/>
+<l:gentext key="table" text="Tabelo"/>
+<l:gentext key="Table" text="Tabelo"/>
+<l:gentext key="task" text="Tasko"/>
+<l:gentext key="Task" text="Tasko"/>
+<l:gentext key="tip" text="Sugesto"/>
+<l:gentext key="TIP" text="SUGESTO"/>
+<l:gentext key="Tip" text="Sugesto"/>
+<l:gentext key="Warning" text="Averto"/>
+<l:gentext key="warning" text="Averto"/>
+<l:gentext key="WARNING" text="AVERTO"/>
+<l:gentext key="and" text="kaj"/>
+<l:gentext key="by" text="fare de"/>
+<l:gentext key="Edited" text="Redaktita"/>
+<l:gentext key="edited" text="Redaktita"/>
+<l:gentext key="Editedby" text="Redaktita de"/>
+<l:gentext key="editedby" text="Redaktita de"/>
+<l:gentext key="in" text="en"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="neekzistanta elemento"/>
+<l:gentext key="notes" text="Notoj"/>
+<l:gentext key="Notes" text="Notoj"/>
+<l:gentext key="Pgs" text="p."/>
+<l:gentext key="pgs" text="p."/>
+<l:gentext key="Revisedby" text="Reviziita de: "/>
+<l:gentext key="revisedby" text="Reviziita de: "/>
+<l:gentext key="TableNotes" text="Notoj"/>
+<l:gentext key="tablenotes" text="Notoj"/>
+<l:gentext key="TableofContents" text="Enhavo"/>
+<l:gentext key="tableofcontents" text="Enhavo"/>
+<l:gentext key="unexpectedelementname" text="Neantaŭvidita nomo de elemento"/>
+<l:gentext key="unsupported" text="netraktebla"/>
+<l:gentext key="xrefto" text="aludo al"/>
+<l:gentext key="Authors" text="Aŭtoroj"/>
+<l:gentext key="copyeditor" text="Provredaktinto"/>
+<l:gentext key="graphicdesigner" text="Grafikisto"/>
+<l:gentext key="productioneditor" text="Produkta Redaktoro"/>
+<l:gentext key="technicaleditor" text="Teknika Redaktoro"/>
+<l:gentext key="translator" text="Tradukisto"/>
+<l:gentext key="listofequations" text="Listo de Ekvacioj"/>
+<l:gentext key="ListofEquations" text="Listo de Ekvacioj"/>
+<l:gentext key="ListofExamples" text="Listo de Ekzemploj"/>
+<l:gentext key="listofexamples" text="Listo de Ekzemploj"/>
+<l:gentext key="ListofFigures" text="Listo de Figuroj"/>
+<l:gentext key="listoffigures" text="Listo de Figuroj"/>
+<l:gentext key="ListofProcedures" text="Listo de Procedoj"/>
+<l:gentext key="listofprocedures" text="Listo de Procedoj"/>
+<l:gentext key="listoftables" text="Listo de Tabeloj"/>
+<l:gentext key="ListofTables" text="Listo de Tabeloj"/>
+<l:gentext key="ListofUnknown" text="Listo de Nesciatoj"/>
+<l:gentext key="listofunknown" text="Listo de Nesciatoj"/>
+<l:gentext key="nav-home" text="Hejmen"/>
+<l:gentext key="nav-next" text="Sekven"/>
+<l:gentext key="nav-next-sibling" text="Pli sekven"/>
+<l:gentext key="nav-prev" text="Antaŭen"/>
+<l:gentext key="nav-prev-sibling" text="Pli antaŭen"/>
+<l:gentext key="nav-up" text="Supren"/>
+<l:gentext key="nav-toc" text="Enhavlisten"/>
+<l:gentext key="Draft" text="Malneto"/>
+<l:gentext key="above" text="supra"/>
+<l:gentext key="below" text="suba"/>
+<l:gentext key="sectioncalled" text="la sekcio nomata"/>
+<l:gentext key="index symbols" text="Simboloj"/>
+<l:gentext key="lowercase.alpha" text="abcĉdefgĝhĥijĵklmnopqrsŝtuŭvyz"/>
+<l:gentext key="uppercase.alpha" text="ABCĈDEFGĜHĤIJĴKLMNOPQRSŜTUŬVYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apendico %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Ĉapitro %n. %t&quot;"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekvacio %n. %t"/>
+<l:template name="example" text="Ekzemplo %n. %t"/>
+<l:template name="figure" text="Figuro %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parto %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procezo %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktaĵo %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabelo %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apendico %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Ĉapitro %n. %t"/>
+<l:template name="part" text="Parto %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Demando %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Demando %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (paĝo %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(paĝo %p)"/>
+<l:template name="docname" text=" en %o"/>
+<l:template name="docnamelong" text=" en la dokumento titolata %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Paĝo %p"/>
+<l:template name="bridgehead" text="la sekcio nomata “%t”"/>
+<l:template name="refsection" text="la sekcio nomata “%t”"/>
+<l:template name="refsect1" text="la sekcio nomata “%t”"/>
+<l:template name="refsect2" text="la sekcio nomata “%t”"/>
+<l:template name="refsect3" text="la sekcio nomata “%t”"/>
+<l:template name="sect1" text="la sekcio nomata “%t”"/>
+<l:template name="sect2" text="la sekcio nomata “%t”"/>
+<l:template name="sect3" text="la sekcio nomata “%t”"/>
+<l:template name="sect4" text="la sekcio nomata “%t”"/>
+<l:template name="sect5" text="la sekcio nomata “%t”"/>
+<l:template name="section" text="la sekcio nomata “%t”"/>
+<l:template name="simplesect" text="la sekcio nomata “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apendico %n"/>
+<l:template name="bridgehead" text="Sekcio %n"/>
+<l:template name="chapter" text="Ĉapitro %n"/>
+<l:template name="equation" text="Ekvacio %n"/>
+<l:template name="example" text="Ekzemplo %n"/>
+<l:template name="figure" text="Figuro %n"/>
+<l:template name="part" text="Parto %n"/>
+<l:template name="procedure" text="Procezo %n"/>
+<l:template name="productionset" text="Produktaĵo %n"/>
+<l:template name="qandadiv" text="Demandoj &amp; Respondoj %n"/>
+<l:template name="qandaentry" text="D: %n"/>
+<l:template name="question" text="D: %n"/>
+<l:template name="sect1" text="Sekcio %n"/>
+<l:template name="sect2" text="Sekcio %n"/>
+<l:template name="sect3" text="Sekcio %n"/>
+<l:template name="sect4" text="Sekcio %n"/>
+<l:template name="sect5" text="Sekcio %n"/>
+<l:template name="section" text="Sekcio %n"/>
+<l:template name="table" text="Tabelo %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apendico %n, %t"/>
+<l:template name="bridgehead" text="Sekcio %n, “%t”"/>
+<l:template name="chapter" text="Ĉapitro %n, %t"/>
+<l:template name="equation" text="Ekvacio %n, “%t”"/>
+<l:template name="example" text="Ekzemplo %n, “%t”"/>
+<l:template name="figure" text="Figuro %n, “%t”"/>
+<l:template name="part" text="Parto %n, “%t”"/>
+<l:template name="procedure" text="Procezo %n, “%t”"/>
+<l:template name="productionset" text="Produktaĵo %n, “%t”"/>
+<l:template name="qandadiv" text="Demandoj &amp; Respondoj %n, “%t”"/>
+<l:template name="refsect1" text="la sekcio nomata “%t”"/>
+<l:template name="refsect2" text="la sekcio nomata “%t”"/>
+<l:template name="refsect3" text="la sekcio nomata “%t”"/>
+<l:template name="refsection" text="la sekcio nomata “%t”"/>
+<l:template name="sect1" text="Sekcio %n, “%t”"/>
+<l:template name="sect2" text="Sekcio %n, “%t”"/>
+<l:template name="sect3" text="Sekcio %n, “%t”"/>
+<l:template name="sect4" text="Sekcio %n, “%t”"/>
+<l:template name="sect5" text="Sekcio %n, “%t”"/>
+<l:template name="section" text="Sekcio %n, “%t”"/>
+<l:template name="simplesect" text="la sekcio nomata “%t”"/>
+<l:template name="table" text="Tabelo %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" kaj "/>
+<l:template name="seplast" text=", kaj "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidu %t"/>
+<l:template name="seealso" text="Vidu ankaŭ %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Cela legantaro: "/>
+<l:template name="MsgLevel" text="Nivelo: "/>
+<l:template name="MsgOrig" text="Origino: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Difino: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januaro"/>
+<l:template name="February" text="februaro"/>
+<l:template name="March" text="marto"/>
+<l:template name="April" text="aprilo"/>
+<l:template name="May" text="majo"/>
+<l:template name="June" text="junio"/>
+<l:template name="July" text="julio"/>
+<l:template name="August" text="aŭgusto"/>
+<l:template name="September" text="septembro"/>
+<l:template name="October" text="oktobro"/>
+<l:template name="November" text="novembro"/>
+<l:template name="December" text="decembro"/>
+<l:template name="Monday" text="lundo"/>
+<l:template name="Tuesday" text="mardo"/>
+<l:template name="Wednesday" text="merkredo"/>
+<l:template name="Thursday" text="ĵaudo"/>
+<l:template name="Friday" text="vendredo"/>
+<l:template name="Saturday" text="sabato"/>
+<l:template name="Sunday" text="dimanĉo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="maj"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jul"/>
+<l:template name="Aug" text="aŭg"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="lun"/>
+<l:template name="Tue" text="mar"/>
+<l:template name="Wed" text="mer"/>
+<l:template name="Thu" text="ĵau"/>
+<l:template name="Fri" text="ven"/>
+<l:template name="Sat" text="sab"/>
+<l:template name="Sun" text="dim"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 Esperanto"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (red.)"/>
+<l:template name="primary.many" text=", k.a."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [referencita "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Havebla "/>
+<l:template name="acctoo" text="Ankaŭ havebla "/>
+<l:template name="onwww" text="de la Tut-Tera Teksaĵo"/>
+<l:template name="oninet" text="de la Interreto"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/es.xml b/docs/xsl-generic/common/es.xml
new file mode 100644
index 00000000..11592e1e
--- /dev/null
+++ b/docs/xsl-generic/common/es.xml
@@ -0,0 +1,670 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="es" english-language-name="Spanish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/es.xml -->
+<!-- * -->
+<!-- * E-mail the edited es.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumen"/>
+<l:gentext key="abstract" text="resumen"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Apéndice"/>
+<l:gentext key="appendix" text="apéndice"/>
+<l:gentext key="Article" text="Artículo"/>
+<l:gentext key="article" text="artículo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografía"/>
+<l:gentext key="bibliography" text="bibliografía"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="libro"/>
+<l:gentext key="CAUTION" text="ATENCIÓN"/>
+<l:gentext key="Caution" text="Atención"/>
+<l:gentext key="caution" text="atención"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="capítulo"/>
+<l:gentext key="Colophon" text="Colofón"/>
+<l:gentext key="colophon" text="colofón"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicatoria"/>
+<l:gentext key="dedication" text="dedicatoria"/>
+<l:gentext key="Edition" text="Edición"/>
+<l:gentext key="edition" text="edición"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ecuación"/>
+<l:gentext key="equation" text="ecuación"/>
+<l:gentext key="Example" text="Ejemplo"/>
+<l:gentext key="example" text="ejemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="figura"/>
+<l:gentext key="Glossary" text="Glosario"/>
+<l:gentext key="glossary" text="glosario"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver también"/>
+<l:gentext key="glossseealso" text="ver también"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice"/>
+<l:gentext key="index" text="índice"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Aviso Legal"/>
+<l:gentext key="legalnotice" text="aviso legal"/>
+<l:gentext key="MsgAud" text="Audiencia"/>
+<l:gentext key="msgaud" text="audiencia"/>
+<l:gentext key="MsgLevel" text="Nivel"/>
+<l:gentext key="msglevel" text="nivel"/>
+<l:gentext key="MsgOrig" text="Origen"/>
+<l:gentext key="msgorig" text="origen"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="parte"/>
+<l:gentext key="Preface" text="Prefacio"/>
+<l:gentext key="preface" text="prefacio"/>
+<l:gentext key="Procedure" text="Procedimiento"/>
+<l:gentext key="procedure" text="procedimiento"/>
+<l:gentext key="ProductionSet" text="Producción"/>
+<l:gentext key="PubDate" text="Fecha de publicación"/>
+<l:gentext key="pubdate" text="fecha de publicación"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="publicado"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P y R"/>
+<l:gentext key="qandadiv" text="P y R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="p:"/>
+<l:gentext key="RefEntry" text="Entrada de referencia"/>
+<l:gentext key="refentry" text="entrada de referencia"/>
+<l:gentext key="Reference" text="Referencia"/>
+<l:gentext key="reference" text="referencia"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nombre de referencia"/>
+<l:gentext key="refname" text="nombre de referencia"/>
+<l:gentext key="RefSection" text="Sección de referencia"/>
+<l:gentext key="refsection" text="sección de referencia"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="sinopsis"/>
+<l:gentext key="RevHistory" text="Historial de revisiones"/>
+<l:gentext key="revhistory" text="Historial de revisiones"/>
+<l:gentext key="revision" text="revisión"/>
+<l:gentext key="Revision" text="Revisión"/>
+<l:gentext key="sect1" text="Sección"/>
+<l:gentext key="sect2" text="Sección"/>
+<l:gentext key="sect3" text="Sección"/>
+<l:gentext key="sect4" text="Sección"/>
+<l:gentext key="sect5" text="Sección"/>
+<l:gentext key="section" text="sección"/>
+<l:gentext key="Section" text="Sección"/>
+<l:gentext key="see" text="ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="ver también"/>
+<l:gentext key="Seealso" text="Ver también"/>
+<l:gentext key="SeeAlso" text="Ver También"/>
+<l:gentext key="set" text="conjunto"/>
+<l:gentext key="Set" text="Conjunto"/>
+<l:gentext key="setindex" text="índice del conjunto"/>
+<l:gentext key="SetIndex" text="Índice del Conjunto"/>
+<l:gentext key="Sidebar" text="Barra lateral"/>
+<l:gentext key="sidebar" text="barra lateral"/>
+<l:gentext key="step" text="paso"/>
+<l:gentext key="Step" text="Paso"/>
+<l:gentext key="table" text="tabla"/>
+<l:gentext key="Table" text="Tabla"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="sugerencia"/>
+<l:gentext key="TIP" text="SUGERENCIA"/>
+<l:gentext key="Tip" text="Sugerencia"/>
+<l:gentext key="Warning" text="Aviso"/>
+<l:gentext key="warning" text="aviso"/>
+<l:gentext key="WARNING" text="AVISO"/>
+<l:gentext key="and" text="y"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="editado por"/>
+<l:gentext key="in" text="en"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elemento inexistente"/>
+<l:gentext key="notes" text="notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Págs."/>
+<l:gentext key="pgs" text="págs."/>
+<l:gentext key="Revisedby" text="Revisado por: "/>
+<l:gentext key="revisedby" text="revisado por: "/>
+<l:gentext key="TableNotes" text="Notas de tabla"/>
+<l:gentext key="tablenotes" text="notas de tabla"/>
+<l:gentext key="TableofContents" text="Tabla de contenidos"/>
+<l:gentext key="tableofcontents" text="tabla de contenidos"/>
+<l:gentext key="unexpectedelementname" text="nombre de elemento inesperado"/>
+<l:gentext key="unsupported" text="no soportado"/>
+<l:gentext key="xrefto" text="referencia a"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="lista de ecuaciones"/>
+<l:gentext key="ListofEquations" text="Lista de ecuaciones"/>
+<l:gentext key="ListofExamples" text="Lista de ejemplos"/>
+<l:gentext key="listofexamples" text="lista de ejemplos"/>
+<l:gentext key="ListofFigures" text="Lista de figuras"/>
+<l:gentext key="listoffigures" text="lista de figuras"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="lista de tablas"/>
+<l:gentext key="ListofTables" text="Lista de tablas"/>
+<l:gentext key="ListofUnknown" text="Lista de desconocido"/>
+<l:gentext key="listofunknown" text="lista de desconocido"/>
+<l:gentext key="nav-home" text="Inicio"/>
+<l:gentext key="nav-next" text="Siguiente"/>
+<l:gentext key="nav-next-sibling" text="Avanzar"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Retroceder"/>
+<l:gentext key="nav-up" text="Subir"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Borrador"/>
+<l:gentext key="above" text="arriba"/>
+<l:gentext key="below" text="abajo"/>
+<l:gentext key="sectioncalled" text="sección llamada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzáéíóúñ"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apéndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ecuación %n. %t"/>
+<l:template name="example" text="Ejemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimiento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Producción %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabla %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apéndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apéndice %n"/>
+<l:template name="bridgehead" text="Sección %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Ecuación %n"/>
+<l:template name="example" text="Ejemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimiento %n"/>
+<l:template name="productionset" text="Producción %n"/>
+<l:template name="qandadiv" text="P y R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Sección %n"/>
+<l:template name="sect2" text="Sección %n"/>
+<l:template name="sect3" text="Sección %n"/>
+<l:template name="sect4" text="Sección %n"/>
+<l:template name="sect5" text="Sección %n"/>
+<l:template name="section" text="Sección %n"/>
+<l:template name="table" text="Tabla %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apéndice %n, %t"/>
+<l:template name="bridgehead" text="Sección %n, “%t”"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Ecuación %n, “%t”"/>
+<l:template name="example" text="Ejemplo %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimiento %n, “%t”"/>
+<l:template name="productionset" text="Producción %n, “%t”"/>
+<l:template name="qandadiv" text="P y R %n, “%t”"/>
+<l:template name="refsect1" text="sección llamada “%t”"/>
+<l:template name="refsect2" text="sección llamada “%t”"/>
+<l:template name="refsect3" text="sección llamada “%t”"/>
+<l:template name="refsection" text="sección llamada “%t”"/>
+<l:template name="sect1" text="Sección %n, “%t”"/>
+<l:template name="sect2" text="Sección %n, “%t”"/>
+<l:template name="sect3" text="Sección %n, “%t”"/>
+<l:template name="sect4" text="Sección %n, “%t”"/>
+<l:template name="sect5" text="Sección %n, “%t”"/>
+<l:template name="section" text="Sección %n, “%t”"/>
+<l:template name="simplesect" text="sección llamada “%t”"/>
+<l:template name="table" text="Tabla %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" y "/>
+<l:template name="seplast" text=", y "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t"/>
+<l:template name="seealso" text="Ver también %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiencia: "/>
+<l:template name="MsgLevel" text="Nivel: "/>
+<l:template name="MsgOrig" text="Origen: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040a Spanish (Traditional Sort)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Símbolos</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">á</l:l>
+<l:l i="1">Á</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">CH</l:l>
+<l:l i="4">ch</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="6">E</l:l>
+<l:l i="6">e</l:l>
+<l:l i="6">É</l:l>
+<l:l i="6">é</l:l>
+<l:l i="7">F</l:l>
+<l:l i="7">f</l:l>
+<l:l i="8">G</l:l>
+<l:l i="8">g</l:l>
+<l:l i="9">H</l:l>
+<l:l i="9">h</l:l>
+<l:l i="10">I</l:l>
+<l:l i="10">i</l:l>
+<l:l i="10">Í</l:l>
+<l:l i="10">í</l:l>
+<l:l i="11">J</l:l>
+<l:l i="11">j</l:l>
+<l:l i="12">K</l:l>
+<l:l i="12">k</l:l>
+<l:l i="13">L</l:l>
+<l:l i="13">l</l:l>
+<l:l i="14">LL</l:l>
+<l:l i="14">ll</l:l>
+<l:l i="15">M</l:l>
+<l:l i="15">m</l:l>
+<l:l i="16">N</l:l>
+<l:l i="16">n</l:l>
+<l:l i="17">Ñ</l:l>
+<l:l i="17">ñ</l:l>
+<l:l i="18">O</l:l>
+<l:l i="18">o</l:l>
+<l:l i="18">Ó</l:l>
+<l:l i="18">ó</l:l>
+<l:l i="19">P</l:l>
+<l:l i="19">p</l:l>
+<l:l i="20">Q</l:l>
+<l:l i="20">q</l:l>
+<l:l i="21">R</l:l>
+<l:l i="21">r</l:l>
+<l:l i="22">S</l:l>
+<l:l i="22">s</l:l>
+<l:l i="23">T</l:l>
+<l:l i="23">t</l:l>
+<l:l i="24">U</l:l>
+<l:l i="24">u</l:l>
+<l:l i="24">Ú</l:l>
+<l:l i="24">ú</l:l>
+<l:l i="25">V</l:l>
+<l:l i="25">v</l:l>
+<l:l i="26">W</l:l>
+<l:l i="26">w</l:l>
+<l:l i="27">X</l:l>
+<l:l i="27">x</l:l>
+<l:l i="28">Y</l:l>
+<l:l i="28">y</l:l>
+<l:l i="29">Z</l:l>
+<l:l i="29">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/et.xml b/docs/xsl-generic/common/et.xml
new file mode 100644
index 00000000..e63621f7
--- /dev/null
+++ b/docs/xsl-generic/common/et.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="et" english-language-name="Estonian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/et.xml -->
+<!-- * -->
+<!-- * E-mail the edited et.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Ülevaade"/>
+<l:gentext key="abstract" text="Ülevaade"/>
+<l:gentext key="Answer" text="V:"/>
+<l:gentext key="answer" text="V:"/>
+<l:gentext key="Appendix" text="Lisa"/>
+<l:gentext key="appendix" text="lisa"/>
+<l:gentext key="Article" text="Artikkel"/>
+<l:gentext key="article" text="Artikkel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliograafia"/>
+<l:gentext key="bibliography" text="Bibliograafia"/>
+<l:gentext key="Book" text="Raamat"/>
+<l:gentext key="book" text="Raamat"/>
+<l:gentext key="CAUTION" text="ETTEVAATUST"/>
+<l:gentext key="Caution" text="Ettevaatust"/>
+<l:gentext key="caution" text="Ettevaatust"/>
+<l:gentext key="Chapter" text="Peatükk"/>
+<l:gentext key="chapter" text="peatükk"/>
+<l:gentext key="Colophon" text="Lõpumärgis"/>
+<l:gentext key="colophon" text="Lõpumärgis"/>
+<l:gentext key="Copyright" text="Autoriõigus"/>
+<l:gentext key="copyright" text="Autoriõigus"/>
+<l:gentext key="Dedication" text="Pühendus"/>
+<l:gentext key="dedication" text="Pühendus"/>
+<l:gentext key="Edition" text="Väljaanne"/>
+<l:gentext key="edition" text="Väljaanne"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Valem"/>
+<l:gentext key="equation" text="Valem"/>
+<l:gentext key="Example" text="Näide"/>
+<l:gentext key="example" text="Näide"/>
+<l:gentext key="Figure" text="Joonis"/>
+<l:gentext key="figure" text="Joonis"/>
+<l:gentext key="Glossary" text="Sõnastik"/>
+<l:gentext key="glossary" text="Sõnastik"/>
+<l:gentext key="GlossSee" text="Vt."/>
+<l:gentext key="glosssee" text="Vt."/>
+<l:gentext key="GlossSeeAlso" text="Vt. ka"/>
+<l:gentext key="glossseealso" text="Vt. ka"/>
+<l:gentext key="IMPORTANT" text="OLULINE"/>
+<l:gentext key="important" text="Oluline"/>
+<l:gentext key="Important" text="Oluline"/>
+<l:gentext key="Index" text="Aineregister"/>
+<l:gentext key="index" text="Aineregister"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Autoriõiguse märge"/>
+<l:gentext key="legalnotice" text="Autoriõiguse märge"/>
+<l:gentext key="MsgAud" text="Auditoorium"/>
+<l:gentext key="msgaud" text="Auditoorium"/>
+<l:gentext key="MsgLevel" text="Tase"/>
+<l:gentext key="msglevel" text="Tase"/>
+<l:gentext key="MsgOrig" text="Algallikas"/>
+<l:gentext key="msgorig" text="Algallikas"/>
+<l:gentext key="NOTE" text="MÄRKUS"/>
+<l:gentext key="Note" text="Märkus"/>
+<l:gentext key="note" text="Märkus"/>
+<l:gentext key="Part" text="Osa"/>
+<l:gentext key="part" text="Osa"/>
+<l:gentext key="Preface" text="Eessõna"/>
+<l:gentext key="preface" text="Eessõna"/>
+<l:gentext key="Procedure" text="Protseduur"/>
+<l:gentext key="procedure" text="Protseduur"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Avaldatud"/>
+<l:gentext key="published" text="Avaldatud"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="K ja V"/>
+<l:gentext key="qandadiv" text="K ja V"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="K:"/>
+<l:gentext key="question" text="K:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Viide"/>
+<l:gentext key="reference" text="Viide"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nimi"/>
+<l:gentext key="refname" text="Nimi"/>
+<l:gentext key="RefSection" text="Lõik"/>
+<l:gentext key="refsection" text="Lõik"/>
+<l:gentext key="RefSynopsisDiv" text="Sünopsis"/>
+<l:gentext key="refsynopsisdiv" text="Sünopsis"/>
+<l:gentext key="RevHistory" text="Vigade paranduste ajalugu"/>
+<l:gentext key="revhistory" text="Vigade paranduste ajalugu"/>
+<l:gentext key="revision" text="Vigade parandus"/>
+<l:gentext key="Revision" text="Vigade parandus"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="lõik"/>
+<l:gentext key="Section" text="Sektsioon"/>
+<l:gentext key="see" text="Vt."/>
+<l:gentext key="See" text="Vt."/>
+<l:gentext key="seealso" text="Vt. ka"/>
+<l:gentext key="Seealso" text="Vt. ka"/>
+<l:gentext key="SeeAlso" text="Vt. ka"/>
+<l:gentext key="set" text="Sea"/>
+<l:gentext key="Set" text="Sea"/>
+<l:gentext key="setindex" text="Sea indeks"/>
+<l:gentext key="SetIndex" text="Sea indeks"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="külgriba"/>
+<l:gentext key="step" text="samm"/>
+<l:gentext key="Step" text="Samm"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Vihje"/>
+<l:gentext key="TIP" text="VIHJE"/>
+<l:gentext key="Tip" text="Vihje"/>
+<l:gentext key="Warning" text="Hoiatus"/>
+<l:gentext key="warning" text="Hoiatus"/>
+<l:gentext key="WARNING" text="HOIATUS"/>
+<l:gentext key="and" text="ja"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Redaktsioon"/>
+<l:gentext key="edited" text="Redaktsioon"/>
+<l:gentext key="Editedby" text="Redaktsiooni autor(id)"/>
+<l:gentext key="editedby" text="Redaktsiooni autor(id)"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="mitte eksisteeriv element"/>
+<l:gentext key="notes" text="Märkused"/>
+<l:gentext key="Notes" text="Märkused"/>
+<l:gentext key="Pgs" text="Lk."/>
+<l:gentext key="pgs" text="Lk."/>
+<l:gentext key="Revisedby" text="Üle vaadanud: "/>
+<l:gentext key="revisedby" text="Üle vaadanud: "/>
+<l:gentext key="TableNotes" text="Märkused"/>
+<l:gentext key="tablenotes" text="Märkused"/>
+<l:gentext key="TableofContents" text="Sisukord"/>
+<l:gentext key="tableofcontents" text="Sisukord"/>
+<l:gentext key="unexpectedelementname" text="Ootamatu elemendi nimi"/>
+<l:gentext key="unsupported" text="toetuseta"/>
+<l:gentext key="xrefto" text="viide"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Valemite nimekiri"/>
+<l:gentext key="ListofEquations" text="Valemite nimekiri"/>
+<l:gentext key="ListofExamples" text="Näidete nimekiri"/>
+<l:gentext key="listofexamples" text="Näidete nimekiri"/>
+<l:gentext key="ListofFigures" text="Jooniste nimekiri"/>
+<l:gentext key="listoffigures" text="Jooniste nimekiri"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabelite nimekiri"/>
+<l:gentext key="ListofTables" text="Tabelite nimekiri"/>
+<l:gentext key="ListofUnknown" text="Tundmatute nimekiri"/>
+<l:gentext key="listofunknown" text="Tundmatute nimekiri"/>
+<l:gentext key="nav-home" text="Koju"/>
+<l:gentext key="nav-next" text="Järgmine"/>
+<l:gentext key="nav-next-sibling" text="Kiiresti edasi"/>
+<l:gentext key="nav-prev" text="Eelmine"/>
+<l:gentext key="nav-prev-sibling" text="Kiiresti tagasi"/>
+<l:gentext key="nav-up" text="Üles"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Lisa %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Peatükk %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Valem %n. %t"/>
+<l:template name="example" text="Näide %n. %t"/>
+<l:template name="figure" text="Joonis %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Protseduur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Lisa %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Peatükk %n. %t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="Lisa %n"/>
+<l:template name="bridgehead" text="Sektsioon %n"/>
+<l:template name="chapter" text="Peatükk %n"/>
+<l:template name="equation" text="Valem %n"/>
+<l:template name="example" text="Näide %n"/>
+<l:template name="figure" text="Joonis %n"/>
+<l:template name="part" text="Osa %n"/>
+<l:template name="procedure" text="Protseduur %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="K ja V %n"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="sect1" text="Sektsioon %n"/>
+<l:template name="sect2" text="Sektsioon %n"/>
+<l:template name="sect3" text="Sektsioon %n"/>
+<l:template name="sect4" text="Sektsioon %n"/>
+<l:template name="sect5" text="Sektsioon %n"/>
+<l:template name="section" text="Sektsioon %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Lisa %n, %t"/>
+<l:template name="bridgehead" text="Sektsioon %n, “%t”"/>
+<l:template name="chapter" text="Peatükk %n, %t"/>
+<l:template name="equation" text="Valem %n, “%t”"/>
+<l:template name="example" text="Näide %n, “%t”"/>
+<l:template name="figure" text="Joonis %n, “%t”"/>
+<l:template name="part" text="Osa %n, “%t”"/>
+<l:template name="procedure" text="Protseduur %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="K ja V %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Sektsioon %n, “%t”"/>
+<l:template name="sect2" text="Sektsioon %n, “%t”"/>
+<l:template name="sect3" text="Sektsioon %n, “%t”"/>
+<l:template name="sect4" text="Sektsioon %n, “%t”"/>
+<l:template name="sect5" text="Sektsioon %n, “%t”"/>
+<l:template name="section" text="Sektsioon %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ja "/>
+<l:template name="seplast" text=", ja "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vt. %t"/>
+<l:template name="seealso" text="Vt. ka %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Auditoorium: "/>
+<l:template name="MsgLevel" text="Tase: "/>
+<l:template name="MsgOrig" text="Algallikas: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0425 Estonian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/eu.xml b/docs/xsl-generic/common/eu.xml
new file mode 100644
index 00000000..f58f0d4d
--- /dev/null
+++ b/docs/xsl-generic/common/eu.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="eu" english-language-name="Basque">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/eu.xml -->
+<!-- * -->
+<!-- * E-mail the edited eu.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Laburpena"/>
+<l:gentext key="abstract" text="Laburpena"/>
+<l:gentext key="Answer" text="E:"/>
+<l:gentext key="answer" text="E:"/>
+<l:gentext key="Appendix" text="Eranskina"/>
+<l:gentext key="appendix" text="eranskina"/>
+<l:gentext key="Article" text="Artikulua"/>
+<l:gentext key="article" text="Artikulua"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Liburua"/>
+<l:gentext key="book" text="Liburua"/>
+<l:gentext key="CAUTION" text="KONTUZ"/>
+<l:gentext key="Caution" text="Kontuz"/>
+<l:gentext key="caution" text="Kontuz"/>
+<l:gentext key="Chapter" text="Atala"/>
+<l:gentext key="chapter" text="atala"/>
+<l:gentext key="Colophon" text="Azken ohar"/>
+<l:gentext key="colophon" text="Azken ohar"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Eskaintza"/>
+<l:gentext key="dedication" text="Eskaintza"/>
+<l:gentext key="Edition" text="Edizioa"/>
+<l:gentext key="edition" text="Edizioa"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ekuazioa"/>
+<l:gentext key="equation" text="Ekuazioa"/>
+<l:gentext key="Example" text="Adibidea"/>
+<l:gentext key="example" text="Adibidea"/>
+<l:gentext key="Figure" text="Irudia"/>
+<l:gentext key="figure" text="Irudia"/>
+<l:gentext key="Glossary" text="Glosarioa"/>
+<l:gentext key="glossary" text="Glosarioa"/>
+<l:gentext key="GlossSee" text="Ikus"/>
+<l:gentext key="glosssee" text="Ikus"/>
+<l:gentext key="GlossSeeAlso" text="Ikus baita ere"/>
+<l:gentext key="glossseealso" text="Ikus baita ere"/>
+<l:gentext key="IMPORTANT" text="GARRANTZITSUA"/>
+<l:gentext key="important" text="Garrantzitsua"/>
+<l:gentext key="Important" text="Garrantzitsua"/>
+<l:gentext key="Index" text="Indizea"/>
+<l:gentext key="index" text="Indizea"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legezko abisua"/>
+<l:gentext key="legalnotice" text="Legezko abisua"/>
+<l:gentext key="MsgAud" text="Audientzia"/>
+<l:gentext key="msgaud" text="Audientzia"/>
+<l:gentext key="MsgLevel" text="Maila"/>
+<l:gentext key="msglevel" text="Maila"/>
+<l:gentext key="MsgOrig" text="Jatorria"/>
+<l:gentext key="msgorig" text="Jatorria"/>
+<l:gentext key="NOTE" text="OHARRA"/>
+<l:gentext key="Note" text="Oharra"/>
+<l:gentext key="note" text="Oharra"/>
+<l:gentext key="Part" text="Zatia"/>
+<l:gentext key="part" text="Zatia"/>
+<l:gentext key="Preface" text="Hitzaurrea"/>
+<l:gentext key="preface" text="Hitzaurrea"/>
+<l:gentext key="Procedure" text="Prozedura"/>
+<l:gentext key="procedure" text="Prozedura"/>
+<l:gentext key="ProductionSet" text="Ekoizpena"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Argitaratua"/>
+<l:gentext key="published" text="Argitaratua"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Galdera eta E"/>
+<l:gentext key="qandadiv" text="Galdera eta E"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Galdera"/>
+<l:gentext key="question" text="galdera"/>
+<l:gentext key="RefEntry" text="Sarrera"/>
+<l:gentext key="refentry" text="Sarrera"/>
+<l:gentext key="Reference" text="Erreferentzia"/>
+<l:gentext key="reference" text="Erreferentzia"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Izena"/>
+<l:gentext key="refname" text="Izena"/>
+<l:gentext key="RefSection" text="Sekzioa"/>
+<l:gentext key="refsection" text="sekzioa"/>
+<l:gentext key="RefSynopsisDiv" text="Laburpena"/>
+<l:gentext key="refsynopsisdiv" text="Laburpena"/>
+<l:gentext key="RevHistory" text="Berrikuspenaren historia"/>
+<l:gentext key="revhistory" text="Berrikuspenaren historia"/>
+<l:gentext key="revision" text="Berrikuspena"/>
+<l:gentext key="Revision" text="Berrikuspena"/>
+<l:gentext key="sect1" text="Atala"/>
+<l:gentext key="sect2" text="Atala"/>
+<l:gentext key="sect3" text="Atala"/>
+<l:gentext key="sect4" text="Atala"/>
+<l:gentext key="sect5" text="Atala"/>
+<l:gentext key="section" text="Atala"/>
+<l:gentext key="Section" text="Atala"/>
+<l:gentext key="see" text="Ikus"/>
+<l:gentext key="See" text="Ikus"/>
+<l:gentext key="seealso" text="Ikus baita ere"/>
+<l:gentext key="Seealso" text="Ikus baita ere"/>
+<l:gentext key="SeeAlso" text="Ikus baita ere"/>
+<l:gentext key="set" text="Konfiguratu"/>
+<l:gentext key="Set" text="Konfiguratu"/>
+<l:gentext key="setindex" text="Konfiguratu indizea"/>
+<l:gentext key="SetIndex" text="Konfiguratu indizea"/>
+<l:gentext key="Sidebar" text="Alboko barra"/>
+<l:gentext key="sidebar" text="alboko barra"/>
+<l:gentext key="step" text="urratsa"/>
+<l:gentext key="Step" text="Urratsa"/>
+<l:gentext key="table" text="Taula"/>
+<l:gentext key="Table" text="Taula"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Iradokizuna"/>
+<l:gentext key="TIP" text="IRADOKIZUNA"/>
+<l:gentext key="Tip" text="Iradokizuna"/>
+<l:gentext key="Warning" text="Abisua"/>
+<l:gentext key="warning" text="Abisua"/>
+<l:gentext key="WARNING" text="ABISUA"/>
+<l:gentext key="and" text="eta"/>
+<l:gentext key="by" text="Honek"/>
+<l:gentext key="Edited" text="editatua"/>
+<l:gentext key="edited" text="editatua"/>
+<l:gentext key="Editedby" text="Honek editatua"/>
+<l:gentext key="editedby" text="Honek editatua"/>
+<l:gentext key="in" text="non"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="lehendik ez dagoen elementua"/>
+<l:gentext key="notes" text="Oharrak"/>
+<l:gentext key="Notes" text="Oharrak"/>
+<l:gentext key="Pgs" text="Orr."/>
+<l:gentext key="pgs" text="Orr."/>
+<l:gentext key="Revisedby" text="Berrikuspena: "/>
+<l:gentext key="revisedby" text="Berrikuspena: "/>
+<l:gentext key="TableNotes" text="Oharrak"/>
+<l:gentext key="tablenotes" text="Oharrak"/>
+<l:gentext key="TableofContents" text="Edukien aurkibidea"/>
+<l:gentext key="tableofcontents" text="Edukien aurkibidea"/>
+<l:gentext key="unexpectedelementname" text="Ustekabeko elemetu-izena"/>
+<l:gentext key="unsupported" text="onartzen ez den"/>
+<l:gentext key="xrefto" text="xref honi"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Ekuazioen zerrenda"/>
+<l:gentext key="ListofEquations" text="Ekuazioen zerrenda"/>
+<l:gentext key="ListofExamples" text="Adibideen zerrenda"/>
+<l:gentext key="listofexamples" text="Adibideen zerrenda"/>
+<l:gentext key="ListofFigures" text="Irudien zerrenda"/>
+<l:gentext key="listoffigures" text="Irudien zerrenda"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Taulen zerrenda"/>
+<l:gentext key="ListofTables" text="Taulen zerrenda"/>
+<l:gentext key="ListofUnknown" text="Ezezagunen zerrenda"/>
+<l:gentext key="listofunknown" text="Ezazagunen zerrenda"/>
+<l:gentext key="nav-home" text="Etxea"/>
+<l:gentext key="nav-next" text="Hurrengoa"/>
+<l:gentext key="nav-next-sibling" text="Aurreratze azkarra"/>
+<l:gentext key="nav-prev" text="Aurrekoa"/>
+<l:gentext key="nav-prev-sibling" text="Atzeratze azkarra"/>
+<l:gentext key="nav-up" text="Gora"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Zirriborroa"/>
+<l:gentext key="above" text="goian"/>
+<l:gentext key="below" text="behean"/>
+<l:gentext key="sectioncalled" text="honela deritzon atala"/>
+<l:gentext key="index symbols" text="Ikurrak"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Eranskina %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Atala %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekuazioa %n. %t"/>
+<l:template name="example" text="Adibidea %n. %t"/>
+<l:template name="figure" text="Irudia %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Zatia %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prozedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Ekoizpena %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Taula %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Eranskina %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Atala %n. %t"/>
+<l:template name="part" text="Zatia %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="E: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Galdera %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Galdera %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="honela deritzon atala “%t”"/>
+<l:template name="refsection" text="honela deritzon atala “%t”"/>
+<l:template name="refsect1" text="honela deritzon atala “%t”"/>
+<l:template name="refsect2" text="honela deritzon atala “%t”"/>
+<l:template name="refsect3" text="honela deritzon atala “%t”"/>
+<l:template name="sect1" text="honela deritzon atala “%t”"/>
+<l:template name="sect2" text="honela deritzon atala “%t”"/>
+<l:template name="sect3" text="honela deritzon atala “%t”"/>
+<l:template name="sect4" text="honela deritzon atala “%t”"/>
+<l:template name="sect5" text="honela deritzon atala “%t”"/>
+<l:template name="section" text="honela deritzon atala “%t”"/>
+<l:template name="simplesect" text="honela deritzon atala “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="E: %n"/>
+<l:template name="appendix" text="Eranskina %n"/>
+<l:template name="bridgehead" text="Atala %n"/>
+<l:template name="chapter" text="Atala %n"/>
+<l:template name="equation" text="Ekuazioa %n"/>
+<l:template name="example" text="Adibidea %n"/>
+<l:template name="figure" text="Irudia %n"/>
+<l:template name="part" text="Zatia %n"/>
+<l:template name="procedure" text="Prozedura %n"/>
+<l:template name="productionset" text="Ekoizpena %n"/>
+<l:template name="qandadiv" text="Galdera eta E %n"/>
+<l:template name="qandaentry" text="Galdera %n"/>
+<l:template name="question" text="Galdera %n"/>
+<l:template name="sect1" text="Atala %n"/>
+<l:template name="sect2" text="Atala %n"/>
+<l:template name="sect3" text="Atala %n"/>
+<l:template name="sect4" text="Atala %n"/>
+<l:template name="sect5" text="Atala %n"/>
+<l:template name="section" text="Atala %n"/>
+<l:template name="table" text="Taula %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Eranskina %n, %t"/>
+<l:template name="bridgehead" text="Atala %n, “%t”"/>
+<l:template name="chapter" text="Atala %n, %t"/>
+<l:template name="equation" text="Ekuazioa %n, “%t”"/>
+<l:template name="example" text="Adibidea %n, “%t”"/>
+<l:template name="figure" text="Irudia %n, “%t”"/>
+<l:template name="part" text="Zatia %n, “%t”"/>
+<l:template name="procedure" text="Prozedura %n, “%t”"/>
+<l:template name="productionset" text="Ekoizpena %n, “%t”"/>
+<l:template name="qandadiv" text="Galdera eta E %n, “%t”"/>
+<l:template name="refsect1" text="honela deritzon atala “%t”"/>
+<l:template name="refsect2" text="honela deritzon atala “%t”"/>
+<l:template name="refsect3" text="honela deritzon atala “%t”"/>
+<l:template name="refsection" text="honela deritzon atala “%t”"/>
+<l:template name="sect1" text="Atala %n, “%t”"/>
+<l:template name="sect2" text="Atala %n, “%t”"/>
+<l:template name="sect3" text="Atala %n, “%t”"/>
+<l:template name="sect4" text="Atala %n, “%t”"/>
+<l:template name="sect5" text="Atala %n, “%t”"/>
+<l:template name="section" text="Atala %n, “%t”"/>
+<l:template name="simplesect" text="honela deritzon atala “%t”"/>
+<l:template name="table" text="Taula %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" eta "/>
+<l:template name="seplast" text=", eta "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ikus %t"/>
+<l:template name="seealso" text="Ikus baita ere %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audientzia: "/>
+<l:template name="MsgLevel" text="Maila: "/>
+<l:template name="MsgOrig" text="Jatorria: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x042d Basque"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/fa.xml b/docs/xsl-generic/common/fa.xml
new file mode 100644
index 00000000..ac2aed2c
--- /dev/null
+++ b/docs/xsl-generic/common/fa.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fa" english-language-name="Farsi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/fa.xml -->
+<!-- * -->
+<!-- * E-mail the edited fa.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="چكيده"/>
+<l:gentext key="abstract" text="چكيده"/>
+<l:gentext key="Answer" text="ج:"/>
+<l:gentext key="answer" text="ج:"/>
+<l:gentext key="Appendix" text="پيوست"/>
+<l:gentext key="appendix" text="پيوست"/>
+<l:gentext key="Article" text="مقاله"/>
+<l:gentext key="article" text="مقاله"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="كتاب‌شناسی"/>
+<l:gentext key="bibliography" text="كتاب‌شناسی"/>
+<l:gentext key="Book" text="كتاب"/>
+<l:gentext key="book" text="كتاب"/>
+<l:gentext key="CAUTION" text="احتياط"/>
+<l:gentext key="Caution" text="احتياط"/>
+<l:gentext key="caution" text="احتياط"/>
+<l:gentext key="Chapter" text="فصل"/>
+<l:gentext key="chapter" text="فصل"/>
+<l:gentext key="Colophon" text="درباره‌ی نشريه"/>
+<l:gentext key="colophon" text="درباره‌ی نشريه"/>
+<l:gentext key="Copyright" text="حق طبع ونشر"/>
+<l:gentext key="copyright" text="حق طبع ونشر"/>
+<l:gentext key="Dedication" text="اهداء"/>
+<l:gentext key="dedication" text="اهداء"/>
+<l:gentext key="Edition" text="ويرايش"/>
+<l:gentext key="edition" text="ويرايش"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="معادله"/>
+<l:gentext key="equation" text="معادله"/>
+<l:gentext key="Example" text="مثال"/>
+<l:gentext key="example" text="مثال"/>
+<l:gentext key="Figure" text="شكل"/>
+<l:gentext key="figure" text="شكل"/>
+<l:gentext key="Glossary" text="واژه‌نامه"/>
+<l:gentext key="glossary" text="واژه‌نامه"/>
+<l:gentext key="GlossSee" text="ببیند"/>
+<l:gentext key="glosssee" text="ببیند"/>
+<l:gentext key="GlossSeeAlso" text="همچنین ببیند"/>
+<l:gentext key="glossseealso" text="همچنین ببیند"/>
+<l:gentext key="IMPORTANT" text="مهم"/>
+<l:gentext key="important" text="مهم"/>
+<l:gentext key="Important" text="مهم"/>
+<l:gentext key="Index" text="راهنما"/>
+<l:gentext key="index" text="راهنما"/>
+<l:gentext key="ISBN" text="شابک"/>
+<l:gentext key="isbn" text="شابک"/>
+<l:gentext key="LegalNotice" text="اخطار قانونی"/>
+<l:gentext key="legalnotice" text="اخطار قانونی"/>
+<l:gentext key="MsgAud" text="شنودگان"/>
+<l:gentext key="msgaud" text="شنودگان"/>
+<l:gentext key="MsgLevel" text="سطح پیام"/>
+<l:gentext key="msglevel" text="سطح پیام"/>
+<l:gentext key="MsgOrig" text="اصل"/>
+<l:gentext key="msgorig" text="اصل"/>
+<l:gentext key="NOTE" text="ياداشت"/>
+<l:gentext key="Note" text="ياداشت"/>
+<l:gentext key="note" text="ياداشت"/>
+<l:gentext key="Part" text="بخش"/>
+<l:gentext key="part" text="بخش"/>
+<l:gentext key="Preface" text="ديباچه"/>
+<l:gentext key="preface" text="ديباچه"/>
+<l:gentext key="Procedure" text="رويه"/>
+<l:gentext key="procedure" text="رويه"/>
+<l:gentext key="ProductionSet" text="توليد"/>
+<l:gentext key="PubDate" text="تاریخ انتشار"/>
+<l:gentext key="pubdate" text="تاریخ انتشار"/>
+<l:gentext key="Published" text="منتشر‌شده"/>
+<l:gentext key="published" text="منتشر‌شده"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="پرسش و‌ پاسخ"/>
+<l:gentext key="qandadiv" text="پرسش و پاسخ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text=":پرسش"/>
+<l:gentext key="question" text=":پرسش"/>
+<l:gentext key="RefEntry" text="فقره"/>
+<l:gentext key="refentry" text="فقره"/>
+<l:gentext key="Reference" text="ارجاع"/>
+<l:gentext key="reference" text="ارجاع"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="نام"/>
+<l:gentext key="refname" text="نام"/>
+<l:gentext key="RefSection" text="قسمت"/>
+<l:gentext key="refsection" text="قسمت"/>
+<l:gentext key="RefSynopsisDiv" text="مختصر"/>
+<l:gentext key="refsynopsisdiv" text="مختصر"/>
+<l:gentext key="RevHistory" text="تاريخ بازبينی"/>
+<l:gentext key="revhistory" text="تاريخ بازبينی"/>
+<l:gentext key="revision" text="بازبينی"/>
+<l:gentext key="Revision" text="باز بينی"/>
+<l:gentext key="sect1" text="قسمت"/>
+<l:gentext key="sect2" text="قسمت"/>
+<l:gentext key="sect3" text="قسمت"/>
+<l:gentext key="sect4" text="قسمت"/>
+<l:gentext key="sect5" text="قسمت"/>
+<l:gentext key="section" text="قسمت"/>
+<l:gentext key="Section" text="قسمت"/>
+<l:gentext key="see" text="ببیند"/>
+<l:gentext key="See" text="ببیند"/>
+<l:gentext key="seealso" text="همچنین ببیند"/>
+<l:gentext key="Seealso" text="همچنین ببیند"/>
+<l:gentext key="SeeAlso" text="همچنین ببیند"/>
+<l:gentext key="set" text="مجموعه"/>
+<l:gentext key="Set" text="مجموعه"/>
+<l:gentext key="setindex" text="راهنمای مجموعه"/>
+<l:gentext key="SetIndex" text="راهنمای مجموعه"/>
+<l:gentext key="Sidebar" text="نوار کناری"/>
+<l:gentext key="sidebar" text="نوار کناری"/>
+<l:gentext key="step" text="گام"/>
+<l:gentext key="Step" text="گام"/>
+<l:gentext key="table" text="جدول"/>
+<l:gentext key="Table" text="جدول"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="نکته"/>
+<l:gentext key="TIP" text="نکته"/>
+<l:gentext key="Tip" text="نکته"/>
+<l:gentext key="Warning" text="هشدار"/>
+<l:gentext key="warning" text="هشدار"/>
+<l:gentext key="WARNING" text="هشدار"/>
+<l:gentext key="and" text="و"/>
+<l:gentext key="by" text="توسط"/>
+<l:gentext key="Edited" text="ویرایش شده"/>
+<l:gentext key="edited" text="ویرایش شده"/>
+<l:gentext key="Editedby" text="ویرایستار"/>
+<l:gentext key="editedby" text="ویرایستار"/>
+<l:gentext key="in" text="در"/>
+<l:gentext key="lastlistcomma" text="،"/>
+<l:gentext key="listcomma" text="،"/>
+<l:gentext key="nonexistantelement" text="عنصر ناموجود"/>
+<l:gentext key="notes" text="ياداشت‌ها"/>
+<l:gentext key="Notes" text="ياداشت‌ها"/>
+<l:gentext key="Pgs" text="صفحه"/>
+<l:gentext key="pgs" text="صفحه"/>
+<l:gentext key="Revisedby" text=" :بازبينی شده بوسیله‌ی"/>
+<l:gentext key="revisedby" text=" :بازبينس شده بوسیله‌ی"/>
+<l:gentext key="TableNotes" text="ياداشت‌ها"/>
+<l:gentext key="tablenotes" text="ياداشت‌ها"/>
+<l:gentext key="TableofContents" text="فهرست"/>
+<l:gentext key="tableofcontents" text="فهرست"/>
+<l:gentext key="unexpectedelementname" text="نام عنصرغيرمنتظره"/>
+<l:gentext key="unsupported" text="پشتيبانی نشده"/>
+<l:gentext key="xrefto" text="ارجاع به"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="فهرست معادلات"/>
+<l:gentext key="ListofEquations" text="فهرست معادلات"/>
+<l:gentext key="ListofExamples" text="فهرست امثال"/>
+<l:gentext key="listofexamples" text="فهرست امثال"/>
+<l:gentext key="ListofFigures" text="فهرست اشکال"/>
+<l:gentext key="listoffigures" text="فهرست اشکال"/>
+<l:gentext key="ListofProcedures" text="فهرست روند‌ها"/>
+<l:gentext key="listofprocedures" text="فهرست روند‌ها"/>
+<l:gentext key="listoftables" text="فهرست جدول‌ها"/>
+<l:gentext key="ListofTables" text="فهرست جدول‌ها"/>
+<l:gentext key="ListofUnknown" text="فهرست نادانسته‌ها"/>
+<l:gentext key="listofunknown" text="فهرست نادانسته‌ها"/>
+<l:gentext key="nav-home" text="خانه"/>
+<l:gentext key="nav-next" text="بعدی"/>
+<l:gentext key="nav-next-sibling" text="هم‌نيای بعدی"/>
+<l:gentext key="nav-prev" text="قبلی"/>
+<l:gentext key="nav-prev-sibling" text="هم‌نيای قبلی"/>
+<l:gentext key="nav-up" text="بالا"/>
+<l:gentext key="nav-toc" text="فهرست"/>
+<l:gentext key="Draft" text="پيش‌نويس"/>
+<l:gentext key="above" text="در‌بالا"/>
+<l:gentext key="below" text="در‌پایین"/>
+<l:gentext key="sectioncalled" text="بخشی بنام"/>
+<l:gentext key="index symbols" text="سمبل‌های راهنما"/>
+<l:gentext key="lowercase.alpha" text="ا ب پ ت ث ج چ ح خ د ذ ر ز ژس ش ص ض ع غ ف ق ک گ ل م ن و ه ی"/>
+<l:gentext key="uppercase.alpha" text="ا ب پ ت ث ج چ ح خ د ذ ر ز ژس ش ص ض ع غ ف ق ک گ ل م ن و ه ی"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="&#10; پيوست %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="&#10; فصل %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="&#10; معادله %n. %t"/>
+<l:template name="example" text="&#10; مثال %n. %t"/>
+<l:template name="figure" text="&#10; شكل %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="&#10; بخش %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="&#10; رويه %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="&#10; توليد %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="&#10; جدول %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="&#10; پيوست %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="&#10; فصل %n. %t"/>
+<l:template name="part" text="&#10; بخش %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="&#10; ج: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="&#10; :پرسش %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="&#10; :پرسش %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (%p صفحه‌ی)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(%p صفحه‌ی)"/>
+<l:template name="docname" text=" %oدر "/>
+<l:template name="docnamelong" text="%o در مستندی بنام "/>
+<l:template name="pageabbrev" text="(%p ص)"/>
+<l:template name="Page" text="%p صفحه‌ی"/>
+<l:template name="bridgehead" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsection" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsect1" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsect2" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsect3" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="sect1" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="sect2" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="sect3" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="sect4" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="sect5" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="section" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="simplesect" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="&#10; ج: %n"/>
+<l:template name="appendix" text="&#10; پيوست %n"/>
+<l:template name="bridgehead" text="&#10; قسمت %n"/>
+<l:template name="chapter" text="&#10; فصل %n"/>
+<l:template name="equation" text="&#10; معادله %n"/>
+<l:template name="example" text="&#10; مثال %n"/>
+<l:template name="figure" text="&#10; شكل %n"/>
+<l:template name="part" text="&#10; بخش %n"/>
+<l:template name="procedure" text="&#10; رويه %n"/>
+<l:template name="productionset" text="&#10; توليد %n"/>
+<l:template name="qandadiv" text="&#10; پرسش و‌ پاسخ %n"/>
+<l:template name="qandaentry" text="&#10; :پرسش %n"/>
+<l:template name="question" text="&#10; :پرسش %n"/>
+<l:template name="sect1" text="&#10; قسمت %n"/>
+<l:template name="sect2" text="&#10; قسمت %n"/>
+<l:template name="sect3" text="&#10; قسمت %n"/>
+<l:template name="sect4" text="&#10; قسمت %n"/>
+<l:template name="sect5" text="&#10; قسمت %n"/>
+<l:template name="section" text="&#10; قسمت %n"/>
+<l:template name="table" text="&#10; جدول %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="&#10; پيوست %n, %t"/>
+<l:template name="bridgehead" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="chapter" text="&#10; فصل %n, %t"/>
+<l:template name="equation" text="&#10; معادله %n, “%t”&#10; "/>
+<l:template name="example" text="&#10; مثال %n, “%t”&#10; "/>
+<l:template name="figure" text="&#10; شكل %n, “%t”&#10; "/>
+<l:template name="part" text="&#10; بخش %n, “%t”&#10; "/>
+<l:template name="procedure" text="&#10; رويه %n, “%t”&#10; "/>
+<l:template name="productionset" text="&#10; توليد %n, “%t”&#10; "/>
+<l:template name="qandadiv" text="&#10; پرسش و‌ پاسخ %n, “%t”&#10; "/>
+<l:template name="refsect1" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsect2" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsect3" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="refsection" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="sect1" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="sect2" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="sect3" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="sect4" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="sect5" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="section" text="&#10; قسمت %n, “%t”&#10; "/>
+<l:template name="simplesect" text="&#10; بخشی بنام&#10; “%t”&#10; "/>
+<l:template name="table" text="&#10; جدول %n, “%t”&#10; "/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="&#10; ،&#10; "/>
+<l:template name="sep2" text="&#10; و&#10; "/>
+<l:template name="seplast" text="&#10; ،&#10; و&#10; "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text=" %t ببیند"/>
+<l:template name="seealso" text="%t همچنین ببیند"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="&#10; شنودگان: "/>
+<l:template name="MsgLevel" text="&#10; سطح پیام: "/>
+<l:template name="MsgOrig" text="&#10; اصل: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ژانويه"/>
+<l:template name="February" text="فوريه"/>
+<l:template name="March" text="مارس"/>
+<l:template name="April" text="اوريل"/>
+<l:template name="May" text="مه"/>
+<l:template name="June" text="ژوئن"/>
+<l:template name="July" text="ژوئیه"/>
+<l:template name="August" text="اوت"/>
+<l:template name="September" text="سپتامبر"/>
+<l:template name="October" text="اكتبر"/>
+<l:template name="November" text="نوامبر"/>
+<l:template name="December" text="دسامبر"/>
+<l:template name="Monday" text="دوشنبه"/>
+<l:template name="Tuesday" text="سه شنبه"/>
+<l:template name="Wednesday" text="چهار‌شنبه"/>
+<l:template name="Thursday" text="پنج‌شنبه"/>
+<l:template name="Friday" text="جمعه"/>
+<l:template name="Saturday" text="شنبه"/>
+<l:template name="Sunday" text="يك‌شنبه"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ژانويه"/>
+<l:template name="Feb" text="فوريه"/>
+<l:template name="Mar" text="مارس"/>
+<l:template name="Apr" text="اوريل"/>
+<l:template name="May" text="مه"/>
+<l:template name="Jun" text="ژوئن"/>
+<l:template name="Jul" text="ژوئيه"/>
+<l:template name="Aug" text="اوت"/>
+<l:template name="Sep" text="سپتامبر"/>
+<l:template name="Oct" text="اكتبر"/>
+<l:template name="Nov" text="نوامبر"/>
+<l:template name="Dec" text="دسامبر"/>
+<l:template name="Mon" text="دو‌شنبه"/>
+<l:template name="Tue" text="سه‌شنبه"/>
+<l:template name="Wed" text="چهار‌شنبه"/>
+<l:template name="Thu" text="پنج‌شنبه"/>
+<l:template name="Fri" text="جمعه"/>
+<l:template name="Sat" text="شنبه"/>
+<l:template name="Sun" text="يك‌شنبه"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0429 Farsi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/fi.xml b/docs/xsl-generic/common/fi.xml
new file mode 100644
index 00000000..d28802ae
--- /dev/null
+++ b/docs/xsl-generic/common/fi.xml
@@ -0,0 +1,664 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fi" english-language-name="Finnish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/fi.xml -->
+<!-- * -->
+<!-- * E-mail the edited fi.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Tiivistelmä"/>
+<l:gentext key="abstract" text="tiivistelmä"/>
+<l:gentext key="Answer" text="V:"/>
+<l:gentext key="answer" text="V:"/>
+<l:gentext key="Appendix" text="Liite"/>
+<l:gentext key="appendix" text="liite"/>
+<l:gentext key="Article" text="Artikkeli"/>
+<l:gentext key="article" text="Artikkeli"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Lähteet"/>
+<l:gentext key="bibliography" text="Lähteet"/>
+<l:gentext key="Book" text="Kirja"/>
+<l:gentext key="book" text="Kirja"/>
+<l:gentext key="CAUTION" text="VARO"/>
+<l:gentext key="Caution" text="Varo"/>
+<l:gentext key="caution" text="varo"/>
+<l:gentext key="Chapter" text="Luku"/>
+<l:gentext key="chapter" text="luku"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Omistus"/>
+<l:gentext key="dedication" text="omistus"/>
+<l:gentext key="Edition" text="Edition"/>
+<l:gentext key="edition" text="Edition"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Kaava"/>
+<l:gentext key="equation" text="Kaava"/>
+<l:gentext key="Example" text="Esimerkki"/>
+<l:gentext key="example" text="esimerkki"/>
+<l:gentext key="Figure" text="Kuva"/>
+<l:gentext key="figure" text="kuva"/>
+<l:gentext key="Glossary" text="Sanasto"/>
+<l:gentext key="glossary" text="sanasto"/>
+<l:gentext key="GlossSee" text="Katso"/>
+<l:gentext key="glosssee" text="katso"/>
+<l:gentext key="GlossSeeAlso" text="Katso myös"/>
+<l:gentext key="glossseealso" text="Katso myös"/>
+<l:gentext key="IMPORTANT" text="TÄRKEÄÄ"/>
+<l:gentext key="important" text="tärkeää"/>
+<l:gentext key="Important" text="Tärkeää"/>
+<l:gentext key="Index" text="Indeksi"/>
+<l:gentext key="index" text="Indeksi"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Oikeudellinen ilmoitus"/>
+<l:gentext key="legalnotice" text="oikeudellinen ilmoitus"/>
+<l:gentext key="MsgAud" text="Yleisö"/>
+<l:gentext key="msgaud" text="Yleisö"/>
+<l:gentext key="MsgLevel" text="Taso"/>
+<l:gentext key="msglevel" text="Taso"/>
+<l:gentext key="MsgOrig" text="Alkuperä"/>
+<l:gentext key="msgorig" text="Alkuperä"/>
+<l:gentext key="NOTE" text="HUOMAA"/>
+<l:gentext key="Note" text="Huomaa"/>
+<l:gentext key="note" text="Huomaa"/>
+<l:gentext key="Part" text="Osa"/>
+<l:gentext key="part" text="Osa"/>
+<l:gentext key="Preface" text="Esipuhe"/>
+<l:gentext key="preface" text="Esipuhe"/>
+<l:gentext key="Procedure" text="Aliohjelma"/>
+<l:gentext key="procedure" text="Aliohjelma"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Julkaistu"/>
+<l:gentext key="published" text="Julkaistu"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="K ja V"/>
+<l:gentext key="qandadiv" text="K ja V"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="K:"/>
+<l:gentext key="question" text="K:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Lähdeluettelo"/>
+<l:gentext key="reference" text="Lähdeluettelo"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nimi"/>
+<l:gentext key="refname" text="Nimi"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Versiohistoria"/>
+<l:gentext key="revhistory" text="Versiohistoria"/>
+<l:gentext key="revision" text="Versio"/>
+<l:gentext key="Revision" text="Versio"/>
+<l:gentext key="sect1" text="Luku"/>
+<l:gentext key="sect2" text="Luku"/>
+<l:gentext key="sect3" text="Luku"/>
+<l:gentext key="sect4" text="Luku"/>
+<l:gentext key="sect5" text="Luku"/>
+<l:gentext key="section" text="kohta"/>
+<l:gentext key="Section" text="Kohta"/>
+<l:gentext key="see" text="Katso"/>
+<l:gentext key="See" text="Katso"/>
+<l:gentext key="seealso" text="katso myös"/>
+<l:gentext key="Seealso" text="Katso myös"/>
+<l:gentext key="SeeAlso" text="Katso myös"/>
+<l:gentext key="set" text="Kokoelma"/>
+<l:gentext key="Set" text="Kokoelma"/>
+<l:gentext key="setindex" text="Kokoelman indeksi"/>
+<l:gentext key="SetIndex" text="Kokoelman indeksi"/>
+<l:gentext key="Sidebar" text="Sivupalkki"/>
+<l:gentext key="sidebar" text="sivupalkki"/>
+<l:gentext key="step" text="step"/>
+<l:gentext key="Step" text="Step"/>
+<l:gentext key="table" text="Taulu"/>
+<l:gentext key="Table" text="Taulu"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Vihje"/>
+<l:gentext key="TIP" text="VIHJE"/>
+<l:gentext key="Tip" text="Vihje"/>
+<l:gentext key="Warning" text="Varoitus"/>
+<l:gentext key="warning" text="Varoitus"/>
+<l:gentext key="WARNING" text="VAROITUS"/>
+<l:gentext key="and" text="ja"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Toim."/>
+<l:gentext key="edited" text="Toim."/>
+<l:gentext key="Editedby" text="Toimittanut"/>
+<l:gentext key="editedby" text="Toimittanut"/>
+<l:gentext key="in" text="teoksessa"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elementtiä ei ole olemassa"/>
+<l:gentext key="notes" text=""/>
+<l:gentext key="Notes" text=""/>
+<l:gentext key="Pgs" text="Sivut"/>
+<l:gentext key="pgs" text="Sivut"/>
+<l:gentext key="Revisedby" text="Muokannut: "/>
+<l:gentext key="revisedby" text="muokannut: "/>
+<l:gentext key="TableNotes" text=""/>
+<l:gentext key="tablenotes" text=""/>
+<l:gentext key="TableofContents" text="Sisällys"/>
+<l:gentext key="tableofcontents" text="Sisällys"/>
+<l:gentext key="unexpectedelementname" text="Odottamaton elementin nimi"/>
+<l:gentext key="unsupported" text="ei tueta"/>
+<l:gentext key="xrefto" text="xref johonkin"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Luettelo esimerkeistä"/>
+<l:gentext key="ListofEquations" text="Luettelo esimerkeistä"/>
+<l:gentext key="ListofExamples" text="Luettelo esimerkeistä"/>
+<l:gentext key="listofexamples" text="Luettelo esimerkeistä"/>
+<l:gentext key="ListofFigures" text="Luettelo kuvista"/>
+<l:gentext key="listoffigures" text="Luettelo kuvista"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Luettelo tauluista"/>
+<l:gentext key="ListofTables" text="Luettelo tauluista"/>
+<l:gentext key="ListofUnknown" text="Luettelo tuntemattomista"/>
+<l:gentext key="listofunknown" text="Luettelo tuntemattomista"/>
+<l:gentext key="nav-home" text="Alkuun"/>
+<l:gentext key="nav-next" text="Seuraava"/>
+<l:gentext key="nav-next-sibling" text="Nopeasti eteenpäin"/>
+<l:gentext key="nav-prev" text="Edellinen"/>
+<l:gentext key="nav-prev-sibling" text="Nopeasti taaksepäin"/>
+<l:gentext key="nav-up" text="Ylös"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Luonnos"/>
+<l:gentext key="above" text="yllä"/>
+<l:gentext key="below" text="alla"/>
+<l:gentext key="sectioncalled" text="luku nimeltä"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzåäöšž"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖŠŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="”"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="’"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Liite %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Luku %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Kaava %n. %t"/>
+<l:template name="example" text="Esimerkki %n. %t"/>
+<l:template name="figure" text="Kuva %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Aliohjelma %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Taulu %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Liite %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Luku %n. %t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(sivu %p)"/>
+<l:template name="docname" text=" kirjoitelmassa %o"/>
+<l:template name="docnamelong" text=" kirjoitelmassa otsikoltaan %o"/>
+<l:template name="pageabbrev" text="(s. %p)"/>
+<l:template name="Page" text="Sivu %p"/>
+<l:template name="bridgehead" text="”%t”"/>
+<l:template name="refsection" text="”%t”"/>
+<l:template name="refsect1" text="”%t”"/>
+<l:template name="refsect2" text="”%t”"/>
+<l:template name="refsect3" text="”%t”"/>
+<l:template name="sect1" text="”%t”"/>
+<l:template name="sect2" text="”%t”"/>
+<l:template name="sect3" text="”%t”"/>
+<l:template name="sect4" text="”%t”"/>
+<l:template name="sect5" text="”%t”"/>
+<l:template name="section" text="”%t”"/>
+<l:template name="simplesect" text="”%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="Liite %n"/>
+<l:template name="bridgehead" text="Kohta %n"/>
+<l:template name="chapter" text="Luku %n"/>
+<l:template name="equation" text="Kaava %n"/>
+<l:template name="example" text="Esimerkki %n"/>
+<l:template name="figure" text="Kuva %n"/>
+<l:template name="part" text="Osa %n"/>
+<l:template name="procedure" text="Aliohjelma %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="K ja V %n"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="sect1" text="Kohta %n"/>
+<l:template name="sect2" text="Kohta %n"/>
+<l:template name="sect3" text="Kohta %n"/>
+<l:template name="sect4" text="Kohta %n"/>
+<l:template name="sect5" text="Kohta %n"/>
+<l:template name="section" text="Kohta %n"/>
+<l:template name="table" text="Taulu %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Liite %n, %t"/>
+<l:template name="bridgehead" text="Kohta %n, ”%t”"/>
+<l:template name="chapter" text="Luku %n, %t"/>
+<l:template name="equation" text="Kaava %n, ”%t”"/>
+<l:template name="example" text="Esimerkki %n, ”%t”"/>
+<l:template name="figure" text="Kuva %n, ”%t”"/>
+<l:template name="part" text="Osa %n, ”%t”"/>
+<l:template name="procedure" text="Aliohjelma %n, ”%t”"/>
+<l:template name="productionset" text="Production %n, ”%t”"/>
+<l:template name="qandadiv" text="K ja V %n, ”%t”"/>
+<l:template name="refsect1" text="luku nimeltä ”%t”"/>
+<l:template name="refsect2" text="luku nimeltä ”%t”"/>
+<l:template name="refsect3" text="luku nimeltä ”%t”"/>
+<l:template name="refsection" text="luku nimeltä ”%t”"/>
+<l:template name="sect1" text="Kohta %n, ”%t”"/>
+<l:template name="sect2" text="Kohta %n, ”%t”"/>
+<l:template name="sect3" text="Kohta %n, ”%t”"/>
+<l:template name="sect4" text="Kohta %n, ”%t”"/>
+<l:template name="sect5" text="Kohta %n, ”%t”"/>
+<l:template name="section" text="Kohta %n, ”%t”"/>
+<l:template name="simplesect" text="luku nimeltä ”%t”"/>
+<l:template name="table" text="Taulu %n, ”%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ja "/>
+<l:template name="seplast" text=", ja "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Katso %t"/>
+<l:template name="seealso" text="Katso myös %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Yleisö: "/>
+<l:template name="MsgLevel" text="Taso: "/>
+<l:template name="MsgOrig" text="Alkuperä: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text=""/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text=""/>
+<l:template name="February" text=""/>
+<l:template name="March" text=""/>
+<l:template name="April" text=""/>
+<l:template name="May" text=""/>
+<l:template name="June" text=""/>
+<l:template name="July" text=""/>
+<l:template name="August" text=""/>
+<l:template name="September" text=""/>
+<l:template name="October" text=""/>
+<l:template name="November" text=""/>
+<l:template name="December" text=""/>
+<l:template name="Monday" text=""/>
+<l:template name="Tuesday" text=""/>
+<l:template name="Wednesday" text=""/>
+<l:template name="Thursday" text=""/>
+<l:template name="Friday" text=""/>
+<l:template name="Saturday" text=""/>
+<l:template name="Sunday" text=""/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text=""/>
+<l:template name="Feb" text=""/>
+<l:template name="Mar" text=""/>
+<l:template name="Apr" text=""/>
+<l:template name="May" text=""/>
+<l:template name="Jun" text=""/>
+<l:template name="Jul" text=""/>
+<l:template name="Aug" text=""/>
+<l:template name="Sep" text=""/>
+<l:template name="Oct" text=""/>
+<l:template name="Nov" text=""/>
+<l:template name="Dec" text=""/>
+<l:template name="Mon" text=""/>
+<l:template name="Tue" text=""/>
+<l:template name="Wed" text=""/>
+<l:template name="Thu" text=""/>
+<l:template name="Fri" text=""/>
+<l:template name="Sat" text=""/>
+<l:template name="Sun" text=""/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040b Finnish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbole</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">Š</l:l>
+<l:l i="20">š</l:l>
+<l:l i="21">T</l:l>
+<l:l i="21">t</l:l>
+<l:l i="22">U</l:l>
+<l:l i="22">u</l:l>
+<l:l i="23">V</l:l>
+<l:l i="23">v</l:l>
+<l:l i="24">W</l:l>
+<l:l i="24">w</l:l>
+<l:l i="25">X</l:l>
+<l:l i="25">x</l:l>
+<l:l i="26">Y</l:l>
+<l:l i="26">y</l:l>
+<l:l i="27">Z</l:l>
+<l:l i="27">z</l:l>
+<l:l i="28">Ž</l:l>
+<l:l i="28">ž</l:l>
+<l:l i="29">Å</l:l>
+<l:l i="29">å</l:l>
+<l:l i="30">Ä</l:l>
+<l:l i="30">ä</l:l>
+<l:l i="31">Ö</l:l>
+<l:l i="31">ö</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/fr.xml b/docs/xsl-generic/common/fr.xml
new file mode 100644
index 00000000..58826b96
--- /dev/null
+++ b/docs/xsl-generic/common/fr.xml
@@ -0,0 +1,684 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fr" english-language-name="French">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/fr.xml -->
+<!-- * -->
+<!-- * E-mail the edited fr.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Résumé"/>
+<l:gentext key="abstract" text="Résumé"/>
+<l:gentext key="Answer" text="R :"/>
+<l:gentext key="answer" text="R :"/>
+<l:gentext key="Appendix" text="Annexe"/>
+<l:gentext key="appendix" text="annexe"/>
+<l:gentext key="Article" text="Article"/>
+<l:gentext key="article" text="Article"/>
+<l:gentext key="Author" text="Auteur"/>
+<l:gentext key="Bibliography" text="Bibliographie"/>
+<l:gentext key="bibliography" text="Bibliographie"/>
+<l:gentext key="Book" text="Livre"/>
+<l:gentext key="book" text="Livre"/>
+<l:gentext key="CAUTION" text="ATTENTION"/>
+<l:gentext key="Caution" text="Attention"/>
+<l:gentext key="caution" text="Attention"/>
+<l:gentext key="Chapter" text="Chapitre"/>
+<l:gentext key="chapter" text="chapitre"/>
+<l:gentext key="Colophon" text="Achevé d'imprimer"/>
+<l:gentext key="colophon" text="Achevé d'imprimer"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dédicace"/>
+<l:gentext key="dedication" text="Dédicace"/>
+<l:gentext key="Edition" text="Édition"/>
+<l:gentext key="edition" text="Édition"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Équation"/>
+<l:gentext key="equation" text="Équation"/>
+<l:gentext key="Example" text="Exemple"/>
+<l:gentext key="example" text="Exemple"/>
+<l:gentext key="Figure" text="Figure"/>
+<l:gentext key="figure" text="Figure"/>
+<l:gentext key="Glossary" text="Glossaire"/>
+<l:gentext key="glossary" text="Glossaire"/>
+<l:gentext key="GlossSee" text="Voir"/>
+<l:gentext key="glosssee" text="Voir"/>
+<l:gentext key="GlossSeeAlso" text="Voir aussi"/>
+<l:gentext key="glossseealso" text="Voir aussi"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Note légale"/>
+<l:gentext key="legalnotice" text="Note légale"/>
+<l:gentext key="MsgAud" text="Public visé"/>
+<l:gentext key="msgaud" text="Public visé"/>
+<l:gentext key="MsgLevel" text="Niveau"/>
+<l:gentext key="msglevel" text="Niveau"/>
+<l:gentext key="MsgOrig" text="Origine"/>
+<l:gentext key="msgorig" text="Origine"/>
+<l:gentext key="NOTE" text="NOTE"/>
+<l:gentext key="Note" text="Note"/>
+<l:gentext key="note" text="Note"/>
+<l:gentext key="Part" text="Partie"/>
+<l:gentext key="part" text="Partie"/>
+<l:gentext key="Preface" text="Préface"/>
+<l:gentext key="preface" text="Préface"/>
+<l:gentext key="Procedure" text="Procédure"/>
+<l:gentext key="procedure" text="Procédure"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Date de publication"/>
+<l:gentext key="pubdate" text="Date de publication"/>
+<l:gentext key="Published" text="Publié le"/>
+<l:gentext key="published" text="Publié le"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; R"/>
+<l:gentext key="qandadiv" text="Q &amp; R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q :"/>
+<l:gentext key="question" text="Q :"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Référence"/>
+<l:gentext key="reference" text="Référence"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nom"/>
+<l:gentext key="refname" text="Nom"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Historique des versions"/>
+<l:gentext key="revhistory" text="Historique des versions"/>
+<l:gentext key="revision" text="Version"/>
+<l:gentext key="Revision" text="Version"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="section"/>
+<l:gentext key="Section" text="Section"/>
+<l:gentext key="see" text="voir"/>
+<l:gentext key="See" text="Voir"/>
+<l:gentext key="seealso" text="voir aussi"/>
+<l:gentext key="Seealso" text="Voir aussi"/>
+<l:gentext key="SeeAlso" text="Voir Aussi"/>
+<l:gentext key="set" text="Ensemble"/>
+<l:gentext key="Set" text="Ensemble"/>
+<l:gentext key="setindex" text="Index"/>
+<l:gentext key="SetIndex" text="Index"/>
+<l:gentext key="Sidebar" text="Filet vertical"/>
+<l:gentext key="sidebar" text="Filet vertical"/>
+<l:gentext key="step" text="étape"/>
+<l:gentext key="Step" text="Étape"/>
+<l:gentext key="table" text="Tableau"/>
+<l:gentext key="Table" text="Tableau"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ASTUCE"/>
+<l:gentext key="TIP" text="ASTUCE"/>
+<l:gentext key="Tip" text="Astuce"/>
+<l:gentext key="Warning" text="Avertissement"/>
+<l:gentext key="warning" text="AVERTISSEMENT"/>
+<l:gentext key="WARNING" text="AVERTISSEMENT"/>
+<l:gentext key="and" text="et"/>
+<l:gentext key="by" text="par"/>
+<l:gentext key="Edited" text="Publié"/>
+<l:gentext key="edited" text="Publié"/>
+<l:gentext key="Editedby" text="Publié par"/>
+<l:gentext key="editedby" text="Publié par"/>
+<l:gentext key="in" text="dans"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="Cet élément n'existe pas"/>
+<l:gentext key="notes" text="Notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pages"/>
+<l:gentext key="pgs" text="Pages"/>
+<l:gentext key="Revisedby" text="Revu et corrigé par : "/>
+<l:gentext key="revisedby" text="Revu et corrigé par : "/>
+<l:gentext key="TableNotes" text="Remarques"/>
+<l:gentext key="tablenotes" text="Remarques"/>
+<l:gentext key="TableofContents" text="Table des matières"/>
+<l:gentext key="tableofcontents" text="Table des matières"/>
+<l:gentext key="unexpectedelementname" text="Nom d'élément inattendu"/>
+<l:gentext key="unsupported" text="Non reconnu par le système"/>
+<l:gentext key="xrefto" text="Référence vers"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Liste des équations"/>
+<l:gentext key="ListofEquations" text="Liste des équations"/>
+<l:gentext key="ListofExamples" text="Liste des exemples"/>
+<l:gentext key="listofexamples" text="Liste des exemples"/>
+<l:gentext key="ListofFigures" text="Liste des illustrations"/>
+<l:gentext key="listoffigures" text="Liste des illustrations"/>
+<l:gentext key="ListofProcedures" text="Liste des procédures"/>
+<l:gentext key="listofprocedures" text="Liste des procédures"/>
+<l:gentext key="listoftables" text="Liste des tableaux"/>
+<l:gentext key="ListofTables" text="Liste des tableaux"/>
+<l:gentext key="ListofUnknown" text="Liste inconnue"/>
+<l:gentext key="listofunknown" text="Liste inconnue"/>
+<l:gentext key="nav-home" text="Sommaire"/>
+<l:gentext key="nav-next" text="Suivant"/>
+<l:gentext key="nav-next-sibling" text="Avance rapide"/>
+<l:gentext key="nav-prev" text="Précédent"/>
+<l:gentext key="nav-prev-sibling" text="Arrière rapide"/>
+<l:gentext key="nav-up" text="Niveau supérieur"/>
+<l:gentext key="nav-toc" text="TdM"/>
+<l:gentext key="Draft" text="Brouillon"/>
+<l:gentext key="above" text="au-dessus"/>
+<l:gentext key="below" text="au-dessous"/>
+<l:gentext key="sectioncalled" text="la section intitulée"/>
+<l:gentext key="index symbols" text="Symboles"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzâêîôûëïüàèùéçæœ"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÂÊÎÔÛËÏÜÀÈÙÉÇÆŒ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="« "/>
+<l:dingbat key="endquote" text=" »"/>
+<l:dingbat key="nestedstartquote" text="“"/>
+<l:dingbat key="nestedendquote" text="”"/>
+<l:dingbat key="singlestartquote" text="‹"/>
+<l:dingbat key="singleendquote" text="›"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Annexe %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Chapitre %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Équation %n. %t"/>
+<l:template name="example" text="Exemple %n. %t"/>
+<l:template name="figure" text="Figure %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procédure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tableau %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Annexe %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Chapitre %n. %t"/>
+<l:template name="part" text="Partie %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R : %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q : %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q : %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="la section intitulée « %t »"/>
+<l:template name="refsection" text="la section intitulée « %t »"/>
+<l:template name="refsect1" text="la section intitulée « %t »"/>
+<l:template name="refsect2" text="la section intitulée « %t »"/>
+<l:template name="refsect3" text="la section intitulée « %t »"/>
+<l:template name="sect1" text="la section intitulée « %t »"/>
+<l:template name="sect2" text="la section intitulée « %t »"/>
+<l:template name="sect3" text="la section intitulée « %t »"/>
+<l:template name="sect4" text="la section intitulée « %t »"/>
+<l:template name="sect5" text="la section intitulée « %t »"/>
+<l:template name="section" text="la section intitulée « %t »"/>
+<l:template name="simplesect" text="la section intitulée « %t »"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R : %n"/>
+<l:template name="appendix" text="Annexe %n"/>
+<l:template name="bridgehead" text="Section %n"/>
+<l:template name="chapter" text="Chapitre %n"/>
+<l:template name="equation" text="Équation %n"/>
+<l:template name="example" text="Exemple %n"/>
+<l:template name="figure" text="Figure %n"/>
+<l:template name="part" text="Partie %n"/>
+<l:template name="procedure" text="Procédure %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Q &amp; R %n"/>
+<l:template name="qandaentry" text="Q : %n"/>
+<l:template name="question" text="Q : %n"/>
+<l:template name="sect1" text="Section %n"/>
+<l:template name="sect2" text="Section %n"/>
+<l:template name="sect3" text="Section %n"/>
+<l:template name="sect4" text="Section %n"/>
+<l:template name="sect5" text="Section %n"/>
+<l:template name="section" text="Section %n"/>
+<l:template name="table" text="Tableau %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Annexe %n, %t"/>
+<l:template name="bridgehead" text="Section %n, « %t »"/>
+<l:template name="chapter" text="Chapitre %n, %t"/>
+<l:template name="equation" text="Équation %n, « %t »"/>
+<l:template name="example" text="Exemple %n, « %t »"/>
+<l:template name="figure" text="Figure %n, « %t »"/>
+<l:template name="part" text="Partie %n, « %t »"/>
+<l:template name="procedure" text="Procédure %n, « %t »"/>
+<l:template name="productionset" text="Production %n, « %t »"/>
+<l:template name="qandadiv" text="Q &amp; R %n, « %t »"/>
+<l:template name="refsect1" text="la section intitulée « %t »"/>
+<l:template name="refsect2" text="la section intitulée « %t »"/>
+<l:template name="refsect3" text="la section intitulée « %t »"/>
+<l:template name="refsection" text="la section intitulée « %t »"/>
+<l:template name="sect1" text="Section %n, « %t »"/>
+<l:template name="sect2" text="Section %n, « %t »"/>
+<l:template name="sect3" text="Section %n, « %t »"/>
+<l:template name="sect4" text="Section %n, « %t »"/>
+<l:template name="sect5" text="Section %n, « %t »"/>
+<l:template name="section" text="Section %n, « %t »"/>
+<l:template name="simplesect" text="la section intitulée « %t »"/>
+<l:template name="table" text="Tableau %n, « %t »"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" et "/>
+<l:template name="seplast" text=", et "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Voir %t"/>
+<l:template name="seealso" text="Voir aussi %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Public visé: "/>
+<l:template name="MsgLevel" text="Niveau: "/>
+<l:template name="MsgOrig" text="Origine: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="janvier"/>
+<l:template name="February" text="février"/>
+<l:template name="March" text="mars"/>
+<l:template name="April" text="avril"/>
+<l:template name="May" text="mai"/>
+<l:template name="June" text="juin"/>
+<l:template name="July" text="juillet"/>
+<l:template name="August" text="août"/>
+<l:template name="September" text="septembre"/>
+<l:template name="October" text="octobre"/>
+<l:template name="November" text="novembre"/>
+<l:template name="December" text="décembre"/>
+<l:template name="Monday" text="lundi"/>
+<l:template name="Tuesday" text="mardi"/>
+<l:template name="Wednesday" text="mercredi"/>
+<l:template name="Thursday" text="jeudi"/>
+<l:template name="Friday" text="vendredi"/>
+<l:template name="Saturday" text="samedi"/>
+<l:template name="Sunday" text="dimanche"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="fév"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="avr"/>
+<l:template name="May" text="mai"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jui"/>
+<l:template name="Aug" text="aoû"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="oct"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="déc"/>
+<l:template name="Mon" text="lun"/>
+<l:template name="Tue" text="mar"/>
+<l:template name="Wed" text="mer"/>
+<l:template name="Thu" text="jeu"/>
+<l:template name="Fri" text="ven"/>
+<l:template name="Sat" text="sam"/>
+<l:template name="Sun" text="dim"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040c French (FRANCE)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symboles</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">à</l:l>
+<l:l i="1">À</l:l>
+<l:l i="1">â</l:l>
+<l:l i="1">Â</l:l>
+<l:l i="1">Æ</l:l>
+<l:l i="1">æ</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="3">ç</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="5">ê</l:l>
+<l:l i="5">Ê</l:l>
+<l:l i="5">é</l:l>
+<l:l i="5">É</l:l>
+<l:l i="5">è</l:l>
+<l:l i="5">È</l:l>
+<l:l i="5">ë</l:l>
+<l:l i="5">Ë</l:l>
+<l:l i="5">€</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="9">Î</l:l>
+<l:l i="9">î</l:l>
+<l:l i="9">Ï</l:l>
+<l:l i="9">ï</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="15">Ö</l:l>
+<l:l i="15">ö</l:l>
+<l:l i="15">Œ</l:l>
+<l:l i="15">œ</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ù</l:l>
+<l:l i="21">ù</l:l>
+<l:l i="21">Û</l:l>
+<l:l i="21">û</l:l>
+<l:l i="21">Ü</l:l>
+<l:l i="21">ü</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ga.xml b/docs/xsl-generic/common/ga.xml
new file mode 100644
index 00000000..78274b29
--- /dev/null
+++ b/docs/xsl-generic/common/ga.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ga" english-language-name="Irish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ga.xml -->
+<!-- * -->
+<!-- * E-mail the edited ga.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Achoimre"/>
+<l:gentext key="abstract" text="Achoimre"/>
+<l:gentext key="Answer" text="F:"/>
+<l:gentext key="answer" text="F:"/>
+<l:gentext key="Appendix" text="Aguisín"/>
+<l:gentext key="appendix" text="Aguisín"/>
+<l:gentext key="Article" text="Alt"/>
+<l:gentext key="article" text="Alt"/>
+<l:gentext key="Author" text="Údar"/>
+<l:gentext key="Bibliography" text="Leabharliosta"/>
+<l:gentext key="bibliography" text="Leabharliosta"/>
+<l:gentext key="Book" text="Leabhar"/>
+<l:gentext key="book" text="Leabhar"/>
+<l:gentext key="CAUTION" text="FAINIC"/>
+<l:gentext key="Caution" text="Fainic"/>
+<l:gentext key="caution" text="Fainic"/>
+<l:gentext key="Chapter" text="Caibidil"/>
+<l:gentext key="chapter" text="Caibidil"/>
+<l:gentext key="Colophon" text="Colafan"/>
+<l:gentext key="colophon" text="Colafan"/>
+<l:gentext key="Copyright" text="Cóipcheart"/>
+<l:gentext key="copyright" text="Cóipcheart"/>
+<l:gentext key="Dedication" text="Tíolacadh"/>
+<l:gentext key="dedication" text="Tíolacadh"/>
+<l:gentext key="Edition" text="Eagrán"/>
+<l:gentext key="edition" text="Eagrán"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Cothromóid"/>
+<l:gentext key="equation" text="Cothromóid"/>
+<l:gentext key="Example" text="Sampla"/>
+<l:gentext key="example" text="Sampla"/>
+<l:gentext key="Figure" text="Léaráid"/>
+<l:gentext key="figure" text="Léaráid"/>
+<l:gentext key="Glossary" text="Gluais"/>
+<l:gentext key="glossary" text="Gluais"/>
+<l:gentext key="GlossSee" text="Féach"/>
+<l:gentext key="glosssee" text="Féach"/>
+<l:gentext key="GlossSeeAlso" text="Féach Freisin"/>
+<l:gentext key="glossseealso" text="Féach Freisin"/>
+<l:gentext key="IMPORTANT" text="TÁBHACHTACH"/>
+<l:gentext key="important" text="Tábhachtach"/>
+<l:gentext key="Important" text="Tábhachtach"/>
+<l:gentext key="Index" text="Innéacs"/>
+<l:gentext key="index" text="Innéacs"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Fógra Dlí"/>
+<l:gentext key="legalnotice" text="Fógra Dlí"/>
+<l:gentext key="MsgAud" text="Sprioclucht"/>
+<l:gentext key="msgaud" text="Sprioclucht"/>
+<l:gentext key="MsgLevel" text="Leibhéal"/>
+<l:gentext key="msglevel" text="Leibhéal"/>
+<l:gentext key="MsgOrig" text="Foinse"/>
+<l:gentext key="msgorig" text="Foinse"/>
+<l:gentext key="NOTE" text="NÓTA"/>
+<l:gentext key="Note" text="Nóta"/>
+<l:gentext key="note" text="Nóta"/>
+<l:gentext key="Part" text="Cuid"/>
+<l:gentext key="part" text="Cuid"/>
+<l:gentext key="Preface" text="Réamhrá"/>
+<l:gentext key="preface" text="Réamhrá"/>
+<l:gentext key="Procedure" text="Gnás"/>
+<l:gentext key="procedure" text="Gnás"/>
+<l:gentext key="ProductionSet" text="Rialacha Táirgthe"/>
+<l:gentext key="PubDate" text="Dáta Foilsithe"/>
+<l:gentext key="pubdate" text="Dáta foilsithe"/>
+<l:gentext key="Published" text="Foilsithe"/>
+<l:gentext key="published" text="Foilsithe"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="C &amp; F"/>
+<l:gentext key="qandadiv" text="C &amp; F"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="C:"/>
+<l:gentext key="question" text="C:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Tagairt"/>
+<l:gentext key="reference" text="Tagairt"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ainm"/>
+<l:gentext key="refname" text="Ainm"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Achoimre"/>
+<l:gentext key="refsynopsisdiv" text="Achoimre"/>
+<l:gentext key="RevHistory" text="Stair Leasaithe"/>
+<l:gentext key="revhistory" text="Stair Leasaithe"/>
+<l:gentext key="revision" text="Leasú"/>
+<l:gentext key="Revision" text="Leasú"/>
+<l:gentext key="sect1" text="Rannán"/>
+<l:gentext key="sect2" text="Rannán"/>
+<l:gentext key="sect3" text="Rannán"/>
+<l:gentext key="sect4" text="Rannán"/>
+<l:gentext key="sect5" text="Rannán"/>
+<l:gentext key="section" text="Rannán"/>
+<l:gentext key="Section" text="Rannán"/>
+<l:gentext key="see" text="féach"/>
+<l:gentext key="See" text="Féach"/>
+<l:gentext key="seealso" text="féach freisin"/>
+<l:gentext key="Seealso" text="Féach freisin"/>
+<l:gentext key="SeeAlso" text="Féach Freisin"/>
+<l:gentext key="set" text="Tacar"/>
+<l:gentext key="Set" text="Tacar"/>
+<l:gentext key="setindex" text="Innéacs"/>
+<l:gentext key="SetIndex" text="Innéacs"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="taobhbharra"/>
+<l:gentext key="step" text="céim"/>
+<l:gentext key="Step" text="Céim"/>
+<l:gentext key="table" text="Tábla"/>
+<l:gentext key="Table" text="Tábla"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Leid"/>
+<l:gentext key="TIP" text="LEID"/>
+<l:gentext key="Tip" text="Leid"/>
+<l:gentext key="Warning" text="Rabhadh"/>
+<l:gentext key="warning" text="Rabhadh"/>
+<l:gentext key="WARNING" text="RABHADH"/>
+<l:gentext key="and" text="agus"/>
+<l:gentext key="by" text="le"/>
+<l:gentext key="Edited" text="Curtha in eagar"/>
+<l:gentext key="edited" text="Curtha in eagar"/>
+<l:gentext key="Editedby" text="Curtha in eagar ag"/>
+<l:gentext key="editedby" text="Curtha in eagar ag"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="eilimint nach ann"/>
+<l:gentext key="notes" text="Nótaí"/>
+<l:gentext key="Notes" text="Nótaí"/>
+<l:gentext key="Pgs" text="Lgh."/>
+<l:gentext key="pgs" text="Lgh."/>
+<l:gentext key="Revisedby" text="Leasaithe ag: "/>
+<l:gentext key="revisedby" text="Leasaithe ag: "/>
+<l:gentext key="TableNotes" text="Nótaí"/>
+<l:gentext key="tablenotes" text="Nótaí"/>
+<l:gentext key="TableofContents" text="Clár Ábhair"/>
+<l:gentext key="tableofcontents" text="Clár Ábhair"/>
+<l:gentext key="unexpectedelementname" text="Ainm eiliminte gan choinne"/>
+<l:gentext key="unsupported" text="gan tacaíocht"/>
+<l:gentext key="xrefto" text="xref go"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Liosta Cothromóidí"/>
+<l:gentext key="ListofEquations" text="Liosta Cothromóidí"/>
+<l:gentext key="ListofExamples" text="Liosta Samplaí"/>
+<l:gentext key="listofexamples" text="Liosta Samplaí"/>
+<l:gentext key="ListofFigures" text="Liosta Léaráidí"/>
+<l:gentext key="listoffigures" text="Liosta Léaráidí"/>
+<l:gentext key="ListofProcedures" text="Liosta Gnás"/>
+<l:gentext key="listofprocedures" text="Liosta Gnás"/>
+<l:gentext key="listoftables" text="Liosta Táblaí"/>
+<l:gentext key="ListofTables" text="Liosta Táblaí"/>
+<l:gentext key="ListofUnknown" text="Liosta Rudaí Anaithnide"/>
+<l:gentext key="listofunknown" text="Liosta Rudaí Anaithnide"/>
+<l:gentext key="nav-home" text="Baile"/>
+<l:gentext key="nav-next" text="Ar Aghaidh"/>
+<l:gentext key="nav-next-sibling" text="Ar Aghaidh Go Tapa"/>
+<l:gentext key="nav-prev" text="Ar Ais"/>
+<l:gentext key="nav-prev-sibling" text="Ar Ais Go Tapa"/>
+<l:gentext key="nav-up" text="Suas"/>
+<l:gentext key="nav-toc" text="CÁ"/>
+<l:gentext key="Draft" text="Dréacht"/>
+<l:gentext key="above" text="thuas"/>
+<l:gentext key="below" text="thíos"/>
+<l:gentext key="sectioncalled" text="an rannán dar teideal"/>
+<l:gentext key="index symbols" text="Siombailí"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzáéíóú"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Aguisín %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Caibidil %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Cothromóid %n. %t"/>
+<l:template name="example" text="Sampla %n. %t"/>
+<l:template name="figure" text="Léaráid %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Cuid %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Gnás %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Rialacha Táirgthe %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tábla %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Aguisín %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Caibidil %n. %t"/>
+<l:template name="part" text="Cuid %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="F: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" i %o"/>
+<l:template name="olink.page.citation" text=" (leathanach %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(leathanach %p)"/>
+<l:template name="docname" text=" i %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(lch. %p)"/>
+<l:template name="Page" text="Leathanach %p"/>
+<l:template name="bridgehead" text="an rannán dar teideal “%t”"/>
+<l:template name="refsection" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect1" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect2" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect3" text="an rannán dar teideal “%t”"/>
+<l:template name="sect1" text="an rannán dar teideal “%t”"/>
+<l:template name="sect2" text="an rannán dar teideal “%t”"/>
+<l:template name="sect3" text="an rannán dar teideal “%t”"/>
+<l:template name="sect4" text="an rannán dar teideal “%t”"/>
+<l:template name="sect5" text="an rannán dar teideal “%t”"/>
+<l:template name="section" text="an rannán dar teideal “%t”"/>
+<l:template name="simplesect" text="an rannán dar teideal “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="F: %n"/>
+<l:template name="appendix" text="Aguisín %n"/>
+<l:template name="bridgehead" text="Rannán %n"/>
+<l:template name="chapter" text="Caibidil %n"/>
+<l:template name="equation" text="Cothromóid %n"/>
+<l:template name="example" text="Sampla %n"/>
+<l:template name="figure" text="Léaráid %n"/>
+<l:template name="part" text="Cuid %n"/>
+<l:template name="procedure" text="Gnás %n"/>
+<l:template name="productionset" text="Rialacha Táirgthe %n"/>
+<l:template name="qandadiv" text="C &amp; F %n"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="sect1" text="Rannán %n"/>
+<l:template name="sect2" text="Rannán %n"/>
+<l:template name="sect3" text="Rannán %n"/>
+<l:template name="sect4" text="Rannán %n"/>
+<l:template name="sect5" text="Rannán %n"/>
+<l:template name="section" text="Rannán %n"/>
+<l:template name="table" text="Tábla %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Aguisín %n, %t"/>
+<l:template name="bridgehead" text="Rannán %n, “%t”"/>
+<l:template name="chapter" text="Caibidil %n, %t"/>
+<l:template name="equation" text="Cothromóid %n, “%t”"/>
+<l:template name="example" text="Sampla %n, “%t”"/>
+<l:template name="figure" text="Léaráid %n, “%t”"/>
+<l:template name="part" text="Cuid %n, “%t”"/>
+<l:template name="procedure" text="Gnás %n, “%t”"/>
+<l:template name="productionset" text="Rialacha Táirgthe %n, “%t”"/>
+<l:template name="qandadiv" text="C &amp; F %n, “%t”"/>
+<l:template name="refsect1" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect2" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect3" text="an rannán dar teideal “%t”"/>
+<l:template name="refsection" text="an rannán dar teideal “%t”"/>
+<l:template name="sect1" text="Rannán %n, “%t”"/>
+<l:template name="sect2" text="Rannán %n, “%t”"/>
+<l:template name="sect3" text="Rannán %n, “%t”"/>
+<l:template name="sect4" text="Rannán %n, “%t”"/>
+<l:template name="sect5" text="Rannán %n, “%t”"/>
+<l:template name="section" text="Rannán %n, “%t”"/>
+<l:template name="simplesect" text="an rannán dar teideal “%t”"/>
+<l:template name="table" text="Tábla %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" agus "/>
+<l:template name="seplast" text=", agus "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Féach %t"/>
+<l:template name="seealso" text="Féach Freisin %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Sprioclucht: "/>
+<l:template name="MsgLevel" text="Leibhéal: "/>
+<l:template name="MsgOrig" text="Foinse: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Sainmhíniú: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Eanáir"/>
+<l:template name="February" text="Feabhra"/>
+<l:template name="March" text="Márta"/>
+<l:template name="April" text="Aibreán"/>
+<l:template name="May" text="Bealtaine"/>
+<l:template name="June" text="Meitheamh"/>
+<l:template name="July" text="Iúil"/>
+<l:template name="August" text="Lúnasa"/>
+<l:template name="September" text="Meán Fómhair"/>
+<l:template name="October" text="Deireadh Fómhair"/>
+<l:template name="November" text="Samhain"/>
+<l:template name="December" text="Nollaig"/>
+<l:template name="Monday" text="Dé Luain"/>
+<l:template name="Tuesday" text="Dé Máirt"/>
+<l:template name="Wednesday" text="Dé Céadaoin"/>
+<l:template name="Thursday" text="Déardaoin"/>
+<l:template name="Friday" text="Dé hAoine"/>
+<l:template name="Saturday" text="Dé Sathairn"/>
+<l:template name="Sunday" text="Dé Domhnaigh"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ean"/>
+<l:template name="Feb" text="Feabh"/>
+<l:template name="Mar" text="Márta"/>
+<l:template name="Apr" text="Aib"/>
+<l:template name="May" text="Beal"/>
+<l:template name="Jun" text="Meith"/>
+<l:template name="Jul" text="Iúil"/>
+<l:template name="Aug" text="Lún"/>
+<l:template name="Sep" text="MFómh"/>
+<l:template name="Oct" text="DFómh"/>
+<l:template name="Nov" text="Samh"/>
+<l:template name="Dec" text="Noll"/>
+<l:template name="Mon" text="Luan"/>
+<l:template name="Tue" text="Máirt"/>
+<l:template name="Wed" text="Céad"/>
+<l:template name="Thu" text="Déar"/>
+<l:template name="Fri" text="Aoine"/>
+<l:template name="Sat" text="Sath"/>
+<l:template name="Sun" text="Domh"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x083C Gaelic (IRELAND)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Siombailí</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/gentext.xsl b/docs/xsl-generic/common/gentext.xsl
new file mode 100644
index 00000000..e1da36d9
--- /dev/null
+++ b/docs/xsl-generic/common/gentext.xsl
@@ -0,0 +1,831 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: gentext.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="object.title.template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter" mode="object.title.template">
+ <xsl:choose>
+ <xsl:when test="string($chapter.autolabel) != 0">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-numbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-unnumbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="object.title.template">
+ <xsl:choose>
+ <xsl:when test="string($appendix.autolabel) != 0">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-numbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-unnumbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="part" mode="object.title.template">
+ <xsl:choose>
+ <xsl:when test="string($part.autolabel) != 0">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-numbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-unnumbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5|simplesect
+ |bridgehead"
+ mode="object.title.template">
+ <xsl:variable name="is.numbered">
+ <xsl:call-template name="label.this.section"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$is.numbered != 0">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-numbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title-unnumbered'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="procedure" mode="object.title.template">
+ <xsl:choose>
+ <xsl:when test="$formal.procedures != 0 and title">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ <xsl:text>.formal</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'title'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.subtitle.template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'subtitle'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="is.autonumber">
+ <xsl:value-of select="'0'"/>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5"
+ mode="is.autonumber">
+ <xsl:call-template name="label.this.section"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="is.autonumber">
+ <xsl:value-of select="'1'"/>
+</xsl:template>
+
+<xsl:template match="appendix" mode="is.autonumber">
+ <xsl:value-of select="$appendix.autolabel"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="is.autonumber">
+ <xsl:value-of select="$chapter.autolabel"/>
+</xsl:template>
+
+<xsl:template match="part" mode="is.autonumber">
+ <xsl:value-of select="$part.autolabel"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="is.autonumber">
+ <xsl:value-of select="$preface.autolabel"/>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="is.autonumber">
+ <xsl:choose>
+ <xsl:when test="$qanda.defaultlabel = 'number'
+ and not(label)">
+ <xsl:value-of select="'1'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'0'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="is.autonumber">
+ <xsl:value-of select="$qandadiv.autolabel"/>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="is.autonumber">
+ <xsl:value-of select="$section.autolabel"/>
+</xsl:template>
+
+<xsl:template match="*" mode="object.xref.template">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="referrer"/>
+
+ <!-- Is autonumbering on? -->
+ <xsl:variable name="autonumber">
+ <xsl:apply-templates select="." mode="is.autonumber"/>
+ </xsl:variable>
+
+ <xsl:variable name="number-and-title-template">
+ <xsl:call-template name="gentext.template.exists">
+ <xsl:with-param name="context" select="'xref-number-and-title'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="number-template">
+ <xsl:call-template name="gentext.template.exists">
+ <xsl:with-param name="context" select="'xref-number'"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="context">
+ <xsl:choose>
+ <xsl:when test="string($autonumber) != 0
+ and $number-and-title-template != 0
+ and $xref.with.number.and.title != 0">
+ <xsl:value-of select="'xref-number-and-title'"/>
+ </xsl:when>
+ <xsl:when test="string($autonumber) != 0
+ and $number-template != 0">
+ <xsl:value-of select="'xref-number'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'xref'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="$context"/>
+ <xsl:with-param name="name">
+ <xsl:call-template name="xpath.location"/>
+ </xsl:with-param>
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="template">
+ <xsl:apply-templates select="." mode="object.title.template"/>
+ </xsl:variable>
+
+<!--
+ <xsl:message>
+ <xsl:text>object.title.markup: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="$template"/>
+ </xsl:message>
+-->
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="template" select="$template"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="*" mode="object.title.markup.textonly">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($title)"/>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.titleabbrev.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+
+ <!-- Just for consistency in template naming -->
+
+ <xsl:apply-templates select="." mode="titleabbrev.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.subtitle.markup">
+ <xsl:variable name="template">
+ <xsl:apply-templates select="." mode="object.subtitle.template"/>
+ </xsl:variable>
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$template"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.xref.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="referrer"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:variable name="template">
+ <xsl:choose>
+ <xsl:when test="starts-with(normalize-space($xrefstyle), 'select:')">
+ <xsl:call-template name="make.gentext.template">
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with(normalize-space($xrefstyle), 'template:')">
+ <xsl:value-of select="substring-after(normalize-space($xrefstyle), 'template:')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="object.xref.template">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+<!--
+ <xsl:message>
+ <xsl:text>object.xref.markup: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$purpose"/>
+ <xsl:text>)</xsl:text>
+ <xsl:text>: [</xsl:text>
+ <xsl:value-of select="$template"/>
+ <xsl:text>]</xsl:text>
+ </xsl:message>
+-->
+
+ <xsl:if test="$template = '' and $verbose != 0">
+ <xsl:message>
+ <xsl:text>object.xref.markup: empty xref template</xsl:text>
+ <xsl:text> for linkend="</xsl:text>
+ <xsl:value-of select="@id|@xml:id"/>
+ <xsl:text>" and @xrefstyle="</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>"</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="template" select="$template"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="listitem" mode="object.xref.markup">
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="parent::orderedlist">
+ <xsl:variable name="template">
+ <xsl:apply-templates select="." mode="object.xref.template"/>
+ </xsl:variable>
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$template"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$verbose != 0">
+ <xsl:message>
+ <xsl:text>Xref is only supported to listitems in an</xsl:text>
+ <xsl:text> orderedlist: </xsl:text>
+ <xsl:value-of select="@id|@xml:id"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="object.xref.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="referrer"/>
+
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+ <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+ /@defaultlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="template">
+ <xsl:choose>
+ <!-- This avoids double Q: Q: in xref when defaultlabel=qanda -->
+ <xsl:when test="$deflabel = 'qanda' and not(label)">%n</xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="object.xref.template">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="template" select="$template"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="substitute-markup">
+ <xsl:param name="template" select="''"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:param name="title" select="''"/>
+ <xsl:param name="subtitle" select="''"/>
+ <xsl:param name="docname" select="''"/>
+ <xsl:param name="label" select="''"/>
+ <xsl:param name="pagenumber" select="''"/>
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="referrer"/>
+ <xsl:param name="verbose"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($template, '%')">
+ <xsl:value-of select="substring-before($template, '%')"/>
+ <xsl:variable name="candidate"
+ select="substring(substring-after($template, '%'), 1, 1)"/>
+ <xsl:choose>
+ <xsl:when test="$candidate = 't'">
+ <xsl:apply-templates select="." mode="insert.title.markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="title">
+ <xsl:choose>
+ <xsl:when test="$title != ''">
+ <xsl:copy-of select="$title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$candidate = 's'">
+ <xsl:apply-templates select="." mode="insert.subtitle.markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="subtitle">
+ <xsl:choose>
+ <xsl:when test="$subtitle != ''">
+ <xsl:copy-of select="$subtitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$candidate = 'n'">
+ <xsl:apply-templates select="." mode="insert.label.markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="label">
+ <xsl:choose>
+ <xsl:when test="$label != ''">
+ <xsl:copy-of select="$label"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$candidate = 'p'">
+ <xsl:apply-templates select="." mode="insert.pagenumber.markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="pagenumber">
+ <xsl:choose>
+ <xsl:when test="$pagenumber != ''">
+ <xsl:copy-of select="$pagenumber"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="pagenumber.markup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$candidate = 'o'">
+ <!-- olink target document title -->
+ <xsl:apply-templates select="." mode="insert.olink.docname.markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="docname">
+ <xsl:choose>
+ <xsl:when test="$docname != ''">
+ <xsl:copy-of select="$docname"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="olink.docname.markup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$candidate = 'd'">
+ <xsl:apply-templates select="." mode="insert.direction.markup">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="direction">
+ <xsl:choose>
+ <xsl:when test="$referrer">
+ <xsl:variable name="referent-is-below">
+ <xsl:for-each select="preceding::xref">
+ <xsl:if test="generate-id(.) = generate-id($referrer)">1</xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$referent-is-below = ''">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'above'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'below'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>Attempt to use %d in gentext with no referrer!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$candidate = '%' ">
+ <xsl:text>%</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>%</xsl:text><xsl:value-of select="$candidate"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- recurse with the rest of the template string -->
+ <xsl:variable name="rest"
+ select="substring($template,
+ string-length(substring-before($template, '%'))+3)"/>
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$rest"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="title" select="$title"/>
+ <xsl:with-param name="subtitle" select="$subtitle"/>
+ <xsl:with-param name="docname" select="$docname"/>
+ <xsl:with-param name="label" select="$label"/>
+ <xsl:with-param name="pagenumber" select="$pagenumber"/>
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$template"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="make.gentext.template">
+ <xsl:param name="xrefstyle" select="''"/>
+ <xsl:param name="purpose"/>
+ <xsl:param name="referrer"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+ <xsl:param name="target.elem" select="local-name(.)"/>
+
+ <!-- parse xrefstyle to get parts -->
+ <xsl:variable name="parts"
+ select="substring-after(normalize-space($xrefstyle), 'select:')"/>
+
+ <xsl:variable name="labeltype">
+ <xsl:choose>
+ <xsl:when test="contains($parts, 'labelnumber')">
+ <xsl:text>labelnumber</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'labelname')">
+ <xsl:text>labelname</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'label')">
+ <xsl:text>label</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="titletype">
+ <xsl:choose>
+ <xsl:when test="contains($parts, 'quotedtitle')">
+ <xsl:text>quotedtitle</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'title')">
+ <xsl:text>title</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="pagetype">
+ <xsl:choose>
+ <xsl:when test="$insert.olink.page.number = 'no' and
+ local-name($referrer) = 'olink'">
+ <!-- suppress page numbers -->
+ </xsl:when>
+ <xsl:when test="$insert.xref.page.number = 'no' and
+ local-name($referrer) != 'olink'">
+ <!-- suppress page numbers -->
+ </xsl:when>
+ <xsl:when test="contains($parts, 'nopage')">
+ <xsl:text>nopage</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'pagenumber')">
+ <xsl:text>pagenumber</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'pageabbrev')">
+ <xsl:text>pageabbrev</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'Page')">
+ <xsl:text>Page</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'page')">
+ <xsl:text>page</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="docnametype">
+ <xsl:choose>
+ <xsl:when test="($olink.doctitle = 0 or
+ $olink.doctitle = 'no') and
+ local-name($referrer) = 'olink'">
+ <!-- suppress docname -->
+ </xsl:when>
+ <xsl:when test="contains($parts, 'nodocname')">
+ <xsl:text>nodocname</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'docnamelong')">
+ <xsl:text>docnamelong</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($parts, 'docname')">
+ <xsl:text>docname</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="$labeltype != ''">
+ <xsl:choose>
+ <xsl:when test="$labeltype = 'labelname'">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">
+ <xsl:choose>
+ <xsl:when test="local-name($referrer) = 'olink'">
+ <xsl:value-of select="$target.elem"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$labeltype = 'labelnumber'">
+ <xsl:text>%n</xsl:text>
+ </xsl:when>
+ <xsl:when test="$labeltype = 'label'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref-number'"/>
+ <xsl:with-param name="name">
+ <xsl:choose>
+ <xsl:when test="local-name($referrer) = 'olink'">
+ <xsl:value-of select="$target.elem"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xpath.location"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$titletype != ''">
+ <xsl:value-of select="$xref.label-title.separator"/>
+ </xsl:when>
+ <xsl:when test="$pagetype != ''">
+ <xsl:value-of select="$xref.label-page.separator"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="$titletype != ''">
+ <xsl:choose>
+ <xsl:when test="$titletype = 'title'">
+ <xsl:text>%t</xsl:text>
+ </xsl:when>
+ <xsl:when test="$titletype = 'quotedtitle'">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat" select="'startquote'"/>
+ </xsl:call-template>
+ <xsl:text>%t</xsl:text>
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat" select="'endquote'"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="$pagetype != '' and $pagetype != 'nopage'">
+ <xsl:value-of select="$xref.title-page.separator"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+
+ <!-- special case: use regular xref template if just turning off page -->
+ <xsl:if test="($pagetype = 'nopage' or $docnametype = 'nodocname')
+ and local-name($referrer) != 'olink'
+ and $labeltype = ''
+ and $titletype = ''">
+ <xsl:apply-templates select="." mode="object.xref.template">
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:if test="$pagetype != ''">
+ <xsl:choose>
+ <xsl:when test="$pagetype = 'page'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="'page'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pagetype = 'Page'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="'Page'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pagetype = 'pageabbrev'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="'pageabbrev'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pagetype = 'pagenumber'">
+ <xsl:text>%p</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:if>
+
+ <!-- Add reference to other document title -->
+ <xsl:if test="$docnametype != '' and local-name($referrer) = 'olink'">
+ <!-- Any separator should be in the gentext template -->
+ <xsl:choose>
+ <xsl:when test="$docnametype = 'docnamelong'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="'docnamelong'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$docnametype = 'docname'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="'docname'"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:if>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/gu.xml b/docs/xsl-generic/common/gu.xml
new file mode 100644
index 00000000..050483e4
--- /dev/null
+++ b/docs/xsl-generic/common/gu.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="gu" english-language-name="Gujarati">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/gu.xml -->
+<!-- * -->
+<!-- * E-mail the edited gu.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="સાર"/>
+<l:gentext key="abstract" text="સાર"/>
+<l:gentext key="Answer" text="જ:"/>
+<l:gentext key="answer" text="જ:"/>
+<l:gentext key="Appendix" text="પરિશિષ્ટ"/>
+<l:gentext key="appendix" text="પરિશિષ્ટ"/>
+<l:gentext key="Article" text="લેખ"/>
+<l:gentext key="article" text="લેખ"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="સંદર્ભગ્રંથ"/>
+<l:gentext key="bibliography" text="સંદર્ભગ્રંથ"/>
+<l:gentext key="Book" text="પુસ્તક"/>
+<l:gentext key="book" text="પુસ્તક"/>
+<l:gentext key="CAUTION" text="સાવધાન"/>
+<l:gentext key="Caution" text="સાવધાન"/>
+<l:gentext key="caution" text="સાવધાન"/>
+<l:gentext key="Chapter" text="પ્રકરણ"/>
+<l:gentext key="chapter" text="પ્રકરણ"/>
+<l:gentext key="Colophon" text="ગ્રંથપરિચય"/>
+<l:gentext key="colophon" text="ગ્રંથપરિચય"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="સમર્પણ"/>
+<l:gentext key="dedication" text="સમર્પણ"/>
+<l:gentext key="Edition" text="પ્રકાશન"/>
+<l:gentext key="edition" text="પ્રકાશન"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="સમીકરણ"/>
+<l:gentext key="equation" text="સમીકરણ"/>
+<l:gentext key="Example" text="ઉદાહરણ"/>
+<l:gentext key="example" text="ઉદાહરણ"/>
+<l:gentext key="Figure" text="આકૃતિ"/>
+<l:gentext key="figure" text="આકૃતિ"/>
+<l:gentext key="Glossary" text="શબ્દાવલી"/>
+<l:gentext key="glossary" text="શબ્દાવલી"/>
+<l:gentext key="GlossSee" text="જુઓ"/>
+<l:gentext key="glosssee" text="જુઓ"/>
+<l:gentext key="GlossSeeAlso" text="આપણજુઓ"/>
+<l:gentext key="glossseealso" text="આપણજુઓ"/>
+<l:gentext key="IMPORTANT" text="મહત્વનું"/>
+<l:gentext key="important" text="મહત્વનું"/>
+<l:gentext key="Important" text="મહત્વનું"/>
+<l:gentext key="Index" text="અનુક્રમણિકા"/>
+<l:gentext key="index" text="અનુક્રમણિકા"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="માન્યસૂચન"/>
+<l:gentext key="legalnotice" text="માન્યસૂચન"/>
+<l:gentext key="MsgAud" text="શ્રોતા"/>
+<l:gentext key="msgaud" text="શ્રોતા"/>
+<l:gentext key="MsgLevel" text="સ્તર"/>
+<l:gentext key="msglevel" text="સ્તર"/>
+<l:gentext key="MsgOrig" text="મૂળ"/>
+<l:gentext key="msgorig" text="મૂળ"/>
+<l:gentext key="NOTE" text="નોંધ"/>
+<l:gentext key="Note" text="નોંધ"/>
+<l:gentext key="note" text="નોંધ"/>
+<l:gentext key="Part" text="ભાગ"/>
+<l:gentext key="part" text="ભાગ"/>
+<l:gentext key="Preface" text="પ્રસ્તાવના"/>
+<l:gentext key="preface" text="પ્રસ્તાવના"/>
+<l:gentext key="Procedure" text="પ્રક્રિયા"/>
+<l:gentext key="procedure" text="પ્રક્રિયા"/>
+<l:gentext key="ProductionSet" text="ઉત્પાદન"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="પ્રકાશિત"/>
+<l:gentext key="published" text="પ્રકાશિત"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="સ:"/>
+<l:gentext key="question" text="સ:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="સંદર્ભ"/>
+<l:gentext key="reference" text="સંદર્ભ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="નામ"/>
+<l:gentext key="refname" text="નામ"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="સારાંશ"/>
+<l:gentext key="refsynopsisdiv" text="સારાંશ"/>
+<l:gentext key="RevHistory" text="પુનરાવર્તનઈતિહાસ"/>
+<l:gentext key="revhistory" text="પુનરાવર્તનઈતિહાસ"/>
+<l:gentext key="revision" text="પુનરાવર્તન"/>
+<l:gentext key="Revision" text="પુનરાવર્તન"/>
+<l:gentext key="sect1" text="વિભાગ"/>
+<l:gentext key="sect2" text="વિભાગ"/>
+<l:gentext key="sect3" text="વિભાગ"/>
+<l:gentext key="sect4" text="વિભાગ"/>
+<l:gentext key="sect5" text="વિભાગ"/>
+<l:gentext key="section" text="વિભાગ"/>
+<l:gentext key="Section" text="વિભાગ"/>
+<l:gentext key="see" text="જુઓ"/>
+<l:gentext key="See" text="જુઓ"/>
+<l:gentext key="seealso" text="પણજુઓ"/>
+<l:gentext key="Seealso" text="આપણજુઓ"/>
+<l:gentext key="SeeAlso" text="આપણજુઓ"/>
+<l:gentext key="set" text="સુયોજિતકરો"/>
+<l:gentext key="Set" text="સુયોજિતકરો"/>
+<l:gentext key="setindex" text="અનુક્રમણિકાસુયોજિતકરો"/>
+<l:gentext key="SetIndex" text="અનુક્રમણિકાસુયોજિતકરો"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="બાજુવાળીપટ્ટી"/>
+<l:gentext key="step" text="પગલું"/>
+<l:gentext key="Step" text="પગલું"/>
+<l:gentext key="table" text="કોષ્ટક"/>
+<l:gentext key="Table" text="કોષ્ટક"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="મદદ"/>
+<l:gentext key="TIP" text="મદદ"/>
+<l:gentext key="Tip" text="મદદ"/>
+<l:gentext key="Warning" text="ચેતવણી"/>
+<l:gentext key="warning" text="ચેતવણી"/>
+<l:gentext key="WARNING" text="ચેતવણી"/>
+<l:gentext key="and" text="અને"/>
+<l:gentext key="by" text="by"/>
+<l:gentext key="Edited" text="ફેરફારથયેલછે"/>
+<l:gentext key="edited" text="ફેરફારથયેલછે"/>
+<l:gentext key="Editedby" text="દ્વારાફેરફારથયેલછે"/>
+<l:gentext key="editedby" text="દ્વારાફેરફારથયેલછે"/>
+<l:gentext key="in" text="અંદર"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="બિન-વર્તમાનસભ્ય"/>
+<l:gentext key="notes" text="નોંધો"/>
+<l:gentext key="Notes" text="નોંધો"/>
+<l:gentext key="Pgs" text="પાનાંઓ"/>
+<l:gentext key="pgs" text="પાનાંઓ"/>
+<l:gentext key="Revisedby" text="દ્વારાપુનરાવર્તનથયેલ:"/>
+<l:gentext key="revisedby" text="દ્વારાપુનરાવર્તનથયેલ:"/>
+<l:gentext key="TableNotes" text="નોંધો"/>
+<l:gentext key="tablenotes" text="નોંધો"/>
+<l:gentext key="TableofContents" text="વિષયસુચીકોષ્ટક"/>
+<l:gentext key="tableofcontents" text="વિષયસુચીકોષ્ટક"/>
+<l:gentext key="unexpectedelementname" text="અનિચ્છનિયસભ્યનામ"/>
+<l:gentext key="unsupported" text="બિનઆધારભૂત"/>
+<l:gentext key="xrefto" text="xrefto"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="સમીકરણોનીયાદી"/>
+<l:gentext key="ListofEquations" text="સમીકરણોનીયાદી"/>
+<l:gentext key="ListofExamples" text="ઉદાહરણોનીયાદી"/>
+<l:gentext key="listofexamples" text="ઉદાહરણોનીયાદી"/>
+<l:gentext key="ListofFigures" text="આકૃતિઓનીયાદી"/>
+<l:gentext key="listoffigures" text="આકૃતિઓનીયાદી"/>
+<l:gentext key="ListofProcedures" text="પ્રક્રિયાઓનીયાદી"/>
+<l:gentext key="listofprocedures" text="પ્રક્રિયાઓનીયાદી"/>
+<l:gentext key="listoftables" text="કોષ્ટકોનીયાદી"/>
+<l:gentext key="ListofTables" text="કોષ્ટકોનીયાદી"/>
+<l:gentext key="ListofUnknown" text="અજાણોનીયાદી"/>
+<l:gentext key="listofunknown" text="અજાણોનીયાદી"/>
+<l:gentext key="nav-home" text="ઘર"/>
+<l:gentext key="nav-next" text="આગળવધો"/>
+<l:gentext key="nav-next-sibling" text="ઝડપીઆગળધપાવો"/>
+<l:gentext key="nav-prev" text="પહેલાનું"/>
+<l:gentext key="nav-prev-sibling" text="ઝડપીપાછળધપાવો"/>
+<l:gentext key="nav-up" text="ઉપર"/>
+<l:gentext key="nav-toc" text="ToC"/>
+<l:gentext key="Draft" text="ડ્રાફ્ટ"/>
+<l:gentext key="above" text="ઉપર"/>
+<l:gentext key="below" text="નીચે"/>
+<l:gentext key="sectioncalled" text="બોલાવાયેલવિભાગ"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="કખગઘચછજઝટઠડઢનણયરલવસશષહ"/>
+<l:gentext key="uppercase.alpha" text="કખગઘચછજઝટઠડઢનણયરલવસશષહ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="પરિશિષ્ટ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="પ્રકરણ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="સમીકરણ %n. %t"/>
+<l:template name="example" text="ઉદાહરણ %n. %t"/>
+<l:template name="figure" text="આકૃતિ %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ભાગ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="પ્રક્રિયા %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ઉત્પાદન %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="કોષ્ટક %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="પરિશિષ્ટ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="પ્રકરણ %n. %t"/>
+<l:template name="part" text="ભાગ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="જ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="સ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="સ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsection" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect1" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect2" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect3" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect1" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect2" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect3" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect4" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect5" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="section" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="simplesect" text="બોલાવાયેલવિભાગ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="જ: %n"/>
+<l:template name="appendix" text="પરિશિષ્ટ %n"/>
+<l:template name="bridgehead" text="વિભાગ %n"/>
+<l:template name="chapter" text="પ્રકરણ %n"/>
+<l:template name="equation" text="સમીકરણ %n"/>
+<l:template name="example" text="ઉદાહરણ %n"/>
+<l:template name="figure" text="આકૃતિ %n"/>
+<l:template name="part" text="ભાગ %n"/>
+<l:template name="procedure" text="પ્રક્રિયા %n"/>
+<l:template name="productionset" text="ઉત્પાદન %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="સ: %n"/>
+<l:template name="question" text="સ: %n"/>
+<l:template name="sect1" text="વિભાગ %n"/>
+<l:template name="sect2" text="વિભાગ %n"/>
+<l:template name="sect3" text="વિભાગ %n"/>
+<l:template name="sect4" text="વિભાગ %n"/>
+<l:template name="sect5" text="વિભાગ %n"/>
+<l:template name="section" text="વિભાગ %n"/>
+<l:template name="table" text="કોષ્ટક %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="પરિશિષ્ટ %n, %t"/>
+<l:template name="bridgehead" text="વિભાગ %n, “%t”"/>
+<l:template name="chapter" text="પ્રકરણ %n, %t"/>
+<l:template name="equation" text="સમીકરણ %n, “%t”"/>
+<l:template name="example" text="ઉદાહરણ %n, “%t”"/>
+<l:template name="figure" text="આકૃતિ %n, “%t”"/>
+<l:template name="part" text="ભાગ %n, “%t”"/>
+<l:template name="procedure" text="પ્રક્રિયા %n, “%t”"/>
+<l:template name="productionset" text="ઉત્પાદન %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect2" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect3" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsection" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect1" text="વિભાગ %n, “%t”"/>
+<l:template name="sect2" text="વિભાગ %n, “%t”"/>
+<l:template name="sect3" text="વિભાગ %n, “%t”"/>
+<l:template name="sect4" text="વિભાગ %n, “%t”"/>
+<l:template name="sect5" text="વિભાગ %n, “%t”"/>
+<l:template name="section" text="વિભાગ %n, “%t”"/>
+<l:template name="simplesect" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="table" text="કોષ્ટક %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" અને "/>
+<l:template name="seplast" text=", અને "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="જુઓ %t"/>
+<l:template name="seealso" text="આપણજુઓ %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="શ્રોતા: "/>
+<l:template name="MsgLevel" text="સ્તર: "/>
+<l:template name="MsgOrig" text="મૂળ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January"/>
+<l:template name="February" text="February"/>
+<l:template name="March" text="March"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="June"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="October"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Monday"/>
+<l:template name="Tuesday" text="Tuesday"/>
+<l:template name="Wednesday" text="Wednesday"/>
+<l:template name="Thursday" text="Thursday"/>
+<l:template name="Friday" text="Friday"/>
+<l:template name="Saturday" text="Saturday"/>
+<l:template name="Sunday" text="Sunday"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tue"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Thu"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Sat"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0447 Gujarati"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/he.xml b/docs/xsl-generic/common/he.xml
new file mode 100644
index 00000000..8e234b8d
--- /dev/null
+++ b/docs/xsl-generic/common/he.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="he" english-language-name="Hebrew">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/he.xml -->
+<!-- * -->
+<!-- * E-mail the edited he.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="סיכום"/>
+<l:gentext key="abstract" text="סיכום"/>
+<l:gentext key="Answer" text="ת:"/>
+<l:gentext key="answer" text="ת:"/>
+<l:gentext key="Appendix" text="נספח"/>
+<l:gentext key="appendix" text="נספח"/>
+<l:gentext key="Article" text="מאמר"/>
+<l:gentext key="article" text="מאמר"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="ביבליוגרפיה"/>
+<l:gentext key="bibliography" text="ביבליוגרפיה"/>
+<l:gentext key="Book" text="ספר"/>
+<l:gentext key="book" text="ספר"/>
+<l:gentext key="CAUTION" text="אזהרה"/>
+<l:gentext key="Caution" text="אזהרה"/>
+<l:gentext key="caution" text="אזהרה"/>
+<l:gentext key="Chapter" text="פרק"/>
+<l:gentext key="chapter" text="פרק"/>
+<l:gentext key="Colophon" text="קולופון"/>
+<l:gentext key="colophon" text="קולופון"/>
+<l:gentext key="Copyright" text="זכויות יוצרים"/>
+<l:gentext key="copyright" text="זכויות יוצרים"/>
+<l:gentext key="Dedication" text="הקדשה"/>
+<l:gentext key="dedication" text="הקדשה"/>
+<l:gentext key="Edition" text="מהדורה"/>
+<l:gentext key="edition" text="מהדורה"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="משוואה"/>
+<l:gentext key="equation" text="משוואה"/>
+<l:gentext key="Example" text="דוגמה"/>
+<l:gentext key="example" text="דוגמה"/>
+<l:gentext key="Figure" text="איור"/>
+<l:gentext key="figure" text="איור"/>
+<l:gentext key="Glossary" text="מילון מונחים"/>
+<l:gentext key="glossary" text="מילון מונחים"/>
+<l:gentext key="GlossSee" text="ראה"/>
+<l:gentext key="glosssee" text="ראה"/>
+<l:gentext key="GlossSeeAlso" text="ראה גם"/>
+<l:gentext key="glossseealso" text="ראה גם"/>
+<l:gentext key="IMPORTANT" text="חשוב"/>
+<l:gentext key="important" text="חשוב"/>
+<l:gentext key="Important" text="חשוב"/>
+<l:gentext key="Index" text="אינדקס"/>
+<l:gentext key="index" text="אינדקס"/>
+<l:gentext key="ISBN" text="מספר ספר סטנדרטי בינלאומי"/>
+<l:gentext key="isbn" text="מספר ספר סטנדרטי בינלאומי"/>
+<l:gentext key="LegalNotice" text="הודעה משפטית"/>
+<l:gentext key="legalnotice" text="הודעה משפטית"/>
+<l:gentext key="MsgAud" text="קהל יעד"/>
+<l:gentext key="msgaud" text="קהל יעד"/>
+<l:gentext key="MsgLevel" text="רמה"/>
+<l:gentext key="msglevel" text="רמה"/>
+<l:gentext key="MsgOrig" text="מקור"/>
+<l:gentext key="msgorig" text="מקור"/>
+<l:gentext key="NOTE" text="שים לב"/>
+<l:gentext key="Note" text="שים לב"/>
+<l:gentext key="note" text="שים לב"/>
+<l:gentext key="Part" text="חלק"/>
+<l:gentext key="part" text="חלק"/>
+<l:gentext key="Preface" text="מבוא"/>
+<l:gentext key="preface" text="מבוא"/>
+<l:gentext key="Procedure" text="הליך"/>
+<l:gentext key="procedure" text="הליך"/>
+<l:gentext key="ProductionSet" text="ייצור"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="הוצא לאור"/>
+<l:gentext key="published" text="הוצא לאור"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ת ו ש"/>
+<l:gentext key="qandadiv" text="ת ו ש"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ש:"/>
+<l:gentext key="question" text="ש:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="מראה מקום"/>
+<l:gentext key="reference" text="מראה מקום"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="שם"/>
+<l:gentext key="refname" text="שם"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="תמצית"/>
+<l:gentext key="refsynopsisdiv" text="תמצית"/>
+<l:gentext key="RevHistory" text="היסטוריית גירסאות"/>
+<l:gentext key="revhistory" text="היסטוריית גירסאות"/>
+<l:gentext key="revision" text="גירסה"/>
+<l:gentext key="Revision" text="גירסה"/>
+<l:gentext key="sect1" text="סעיף"/>
+<l:gentext key="sect2" text="סעיף"/>
+<l:gentext key="sect3" text="סעיף"/>
+<l:gentext key="sect4" text="סעיף"/>
+<l:gentext key="sect5" text="סעיף"/>
+<l:gentext key="section" text="סעיף"/>
+<l:gentext key="Section" text="סעיף"/>
+<l:gentext key="see" text="ראה"/>
+<l:gentext key="See" text="ראה"/>
+<l:gentext key="seealso" text="ראה גם"/>
+<l:gentext key="Seealso" text="ראה גם"/>
+<l:gentext key="SeeAlso" text="ראה גם"/>
+<l:gentext key="set" text="סידרה"/>
+<l:gentext key="Set" text="סידרה"/>
+<l:gentext key="setindex" text="אינקדקס סדרות"/>
+<l:gentext key="SetIndex" text="אינדקס סדרות"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="פס צדדי"/>
+<l:gentext key="step" text="צעד"/>
+<l:gentext key="Step" text="צעד"/>
+<l:gentext key="table" text="טבלה"/>
+<l:gentext key="Table" text="טבלה"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="עצה"/>
+<l:gentext key="TIP" text="עצה"/>
+<l:gentext key="Tip" text="עצה"/>
+<l:gentext key="Warning" text="אזהרה"/>
+<l:gentext key="warning" text="אזהרה"/>
+<l:gentext key="WARNING" text="אזהרה"/>
+<l:gentext key="and" text="ו"/>
+<l:gentext key="by" text="מאת"/>
+<l:gentext key="Edited" text="נערך"/>
+<l:gentext key="edited" text="נערך"/>
+<l:gentext key="Editedby" text="נערך על ידי"/>
+<l:gentext key="editedby" text="נערך על ידי"/>
+<l:gentext key="in" text="ב"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="מרכיב שאינו קיים"/>
+<l:gentext key="notes" text="הערות"/>
+<l:gentext key="Notes" text="הערות"/>
+<l:gentext key="Pgs" text="עמודים"/>
+<l:gentext key="pgs" text="עמודים"/>
+<l:gentext key="Revisedby" text="הוגה על ידי: "/>
+<l:gentext key="revisedby" text="הוגה על ידי: "/>
+<l:gentext key="TableNotes" text="הערות"/>
+<l:gentext key="tablenotes" text="הערות"/>
+<l:gentext key="TableofContents" text="תוכן העניינים"/>
+<l:gentext key="tableofcontents" text="תוכן העניינים"/>
+<l:gentext key="unexpectedelementname" text="שם מרכיב בלתי צפוי"/>
+<l:gentext key="unsupported" text="לא נתמך"/>
+<l:gentext key="xrefto" text="התייחסות צולבת אל"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="רשימת משוואות"/>
+<l:gentext key="ListofEquations" text="רשימת משוואות"/>
+<l:gentext key="ListofExamples" text="רשימת דוגמאות"/>
+<l:gentext key="listofexamples" text="רשימת דוגמאות"/>
+<l:gentext key="ListofFigures" text="רשימת איורים"/>
+<l:gentext key="listoffigures" text="רשימת איורים"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="רשימת טבלאות"/>
+<l:gentext key="ListofTables" text="רשימת טבלאות"/>
+<l:gentext key="ListofUnknown" text="רשימה של מרכיבים לא ידועים"/>
+<l:gentext key="listofunknown" text="רשימה של מרכיבים לא ידועים"/>
+<l:gentext key="nav-home" text="ראשי"/>
+<l:gentext key="nav-next" text="הבא"/>
+<l:gentext key="nav-next-sibling" text="דלג לסוף"/>
+<l:gentext key="nav-prev" text="הקודם"/>
+<l:gentext key="nav-prev-sibling" text="חזור להתחלה"/>
+<l:gentext key="nav-up" text="למעלה"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="טיוטה"/>
+<l:gentext key="above" text="למעלה"/>
+<l:gentext key="below" text="למטה"/>
+<l:gentext key="sectioncalled" text="הסעיף שנקרא"/>
+<l:gentext key="index symbols" text="סמלים"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="נספח %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="פרק %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="משוואה %n. %t"/>
+<l:template name="example" text="דוגמה %n. %t"/>
+<l:template name="figure" text="איור %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="חלק %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="הליך %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ייצור %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="טבלה %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="נספח %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="פרק %n. %t"/>
+<l:template name="part" text="חלק %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="ת: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ש: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ש: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsection" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect1" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect2" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect3" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect1" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect2" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect3" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect4" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect5" text="הסעיף שנקרא “%t”"/>
+<l:template name="section" text="הסעיף שנקרא “%t”"/>
+<l:template name="simplesect" text="הסעיף שנקרא “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ת: %n"/>
+<l:template name="appendix" text="נספח %n"/>
+<l:template name="bridgehead" text="סעיף %n"/>
+<l:template name="chapter" text="פרק %n"/>
+<l:template name="equation" text="משוואה %n"/>
+<l:template name="example" text="דוגמה %n"/>
+<l:template name="figure" text="איור %n"/>
+<l:template name="part" text="חלק %n"/>
+<l:template name="procedure" text="הליך %n"/>
+<l:template name="productionset" text="ייצור %n"/>
+<l:template name="qandadiv" text="ת ו ש %n"/>
+<l:template name="qandaentry" text="ש: %n"/>
+<l:template name="question" text="ש: %n"/>
+<l:template name="sect1" text="סעיף %n"/>
+<l:template name="sect2" text="סעיף %n"/>
+<l:template name="sect3" text="סעיף %n"/>
+<l:template name="sect4" text="סעיף %n"/>
+<l:template name="sect5" text="סעיף %n"/>
+<l:template name="section" text="סעיף %n"/>
+<l:template name="table" text="טבלה %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="נספח %n, %t"/>
+<l:template name="bridgehead" text="סעיף %n, “%t”"/>
+<l:template name="chapter" text="פרק %n, %t"/>
+<l:template name="equation" text="משוואה %n, “%t”"/>
+<l:template name="example" text="דוגמה %n, “%t”"/>
+<l:template name="figure" text="איור %n, “%t”"/>
+<l:template name="part" text="חלק %n, “%t”"/>
+<l:template name="procedure" text="הליך %n, “%t”"/>
+<l:template name="productionset" text="ייצור %n, “%t”"/>
+<l:template name="qandadiv" text="ת ו ש %n, “%t”"/>
+<l:template name="refsect1" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect2" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect3" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsection" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect1" text="סעיף %n, “%t”"/>
+<l:template name="sect2" text="סעיף %n, “%t”"/>
+<l:template name="sect3" text="סעיף %n, “%t”"/>
+<l:template name="sect4" text="סעיף %n, “%t”"/>
+<l:template name="sect5" text="סעיף %n, “%t”"/>
+<l:template name="section" text="סעיף %n, “%t”"/>
+<l:template name="simplesect" text="הסעיף שנקרא “%t”"/>
+<l:template name="table" text="טבלה %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ו "/>
+<l:template name="seplast" text=", ו "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ראה %t"/>
+<l:template name="seealso" text="ראה גם %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="קהל יעד: "/>
+<l:template name="MsgLevel" text="רמה: "/>
+<l:template name="MsgOrig" text="מקור: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040d Hebrew (ISRAEL)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/hi.xml b/docs/xsl-generic/common/hi.xml
new file mode 100644
index 00000000..690a2cd2
--- /dev/null
+++ b/docs/xsl-generic/common/hi.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="hi" english-language-name="Hindi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/hi.xml -->
+<!-- * -->
+<!-- * E-mail the edited hi.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="सार"/>
+<l:gentext key="abstract" text="सार"/>
+<l:gentext key="Answer" text="उ:"/>
+<l:gentext key="answer" text="उ:"/>
+<l:gentext key="Appendix" text="परिशिष्ट"/>
+<l:gentext key="appendix" text="परिशिष्ट"/>
+<l:gentext key="Article" text="आलेख"/>
+<l:gentext key="article" text="आलेख"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="संदर्भ-सूची"/>
+<l:gentext key="bibliography" text="संदर्भ-सूची"/>
+<l:gentext key="Book" text="पुस्तक"/>
+<l:gentext key="book" text="पुस्तक"/>
+<l:gentext key="CAUTION" text="सावधानी"/>
+<l:gentext key="Caution" text="सावधानी"/>
+<l:gentext key="caution" text="सावधानी"/>
+<l:gentext key="Chapter" text="अध्याय"/>
+<l:gentext key="chapter" text="अध्याय"/>
+<l:gentext key="Colophon" text="पुस्तकपरिचय"/>
+<l:gentext key="colophon" text="पुस्तकपरिचय"/>
+<l:gentext key="Copyright" text="कॉपीराइट"/>
+<l:gentext key="copyright" text="कॉपीराइट"/>
+<l:gentext key="Dedication" text="समर्पण"/>
+<l:gentext key="dedication" text="समर्पण"/>
+<l:gentext key="Edition" text="संस्करण"/>
+<l:gentext key="edition" text="संस्करण"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="समीकरण"/>
+<l:gentext key="equation" text="समीकरण"/>
+<l:gentext key="Example" text="उदाहरण"/>
+<l:gentext key="example" text="उदाहरण"/>
+<l:gentext key="Figure" text="चित्र"/>
+<l:gentext key="figure" text="चित्र"/>
+<l:gentext key="Glossary" text="शब्दकोष"/>
+<l:gentext key="glossary" text="शब्दकोष"/>
+<l:gentext key="GlossSee" text="देखें"/>
+<l:gentext key="glosssee" text="देखें"/>
+<l:gentext key="GlossSeeAlso" text="इसेभीदेखें"/>
+<l:gentext key="glossseealso" text="इसेभीदेखें"/>
+<l:gentext key="IMPORTANT" text="महत्वपूर्ण"/>
+<l:gentext key="important" text="महत्वपूर्ण"/>
+<l:gentext key="Important" text="महत्वपूर्ण"/>
+<l:gentext key="Index" text="विषय-सूची"/>
+<l:gentext key="index" text="विषय-सूची"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="वैधानिकसूचना"/>
+<l:gentext key="legalnotice" text="वैधानिकसूचना"/>
+<l:gentext key="MsgAud" text="श्रोता"/>
+<l:gentext key="msgaud" text="श्रोता"/>
+<l:gentext key="MsgLevel" text="स्तर"/>
+<l:gentext key="msglevel" text="स्तर"/>
+<l:gentext key="MsgOrig" text="मूल"/>
+<l:gentext key="msgorig" text="मूल"/>
+<l:gentext key="NOTE" text="नोट"/>
+<l:gentext key="Note" text="नोट"/>
+<l:gentext key="note" text="नोट"/>
+<l:gentext key="Part" text="हिस्सा"/>
+<l:gentext key="part" text="हिस्सा"/>
+<l:gentext key="Preface" text="प्रस्तावना"/>
+<l:gentext key="preface" text="प्रस्तावना"/>
+<l:gentext key="Procedure" text="प्रक्रिया"/>
+<l:gentext key="procedure" text="प्रक्रिया"/>
+<l:gentext key="ProductionSet" text="उत्पादन"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="प्रकाशित"/>
+<l:gentext key="published" text="प्रकाशित"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="प्र:"/>
+<l:gentext key="question" text="प्र:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="संदर्भ"/>
+<l:gentext key="reference" text="संदर्भ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="नाम"/>
+<l:gentext key="refname" text="नाम"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="सारांश"/>
+<l:gentext key="refsynopsisdiv" text="सारांश"/>
+<l:gentext key="RevHistory" text="पुनरीक्षणइतिहास"/>
+<l:gentext key="revhistory" text="पुनरीक्षणइतिहास"/>
+<l:gentext key="revision" text="पुनरीक्षण"/>
+<l:gentext key="Revision" text="पुनरीक्षण"/>
+<l:gentext key="sect1" text="खंड"/>
+<l:gentext key="sect2" text="खंड"/>
+<l:gentext key="sect3" text="खंड"/>
+<l:gentext key="sect4" text="खंड"/>
+<l:gentext key="sect5" text="खंड"/>
+<l:gentext key="section" text="खंड"/>
+<l:gentext key="Section" text="खंड"/>
+<l:gentext key="see" text="देखें"/>
+<l:gentext key="See" text="देखें"/>
+<l:gentext key="seealso" text="इसेभीदेखें"/>
+<l:gentext key="Seealso" text="इसेभीदेखें"/>
+<l:gentext key="SeeAlso" text="इसेभीदेखें"/>
+<l:gentext key="set" text="व्यवस्थितकरें"/>
+<l:gentext key="Set" text="व्यवस्थितकरें"/>
+<l:gentext key="setindex" text="विषयसूचीव्यवस्थितकरें"/>
+<l:gentext key="SetIndex" text="विषयसूचीव्यवस्थितकरें"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="साइडबार"/>
+<l:gentext key="step" text="चरण"/>
+<l:gentext key="Step" text="चरण"/>
+<l:gentext key="table" text="तालिका"/>
+<l:gentext key="Table" text="तालिका"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="संकेत"/>
+<l:gentext key="TIP" text="संकेत"/>
+<l:gentext key="Tip" text="संकेत"/>
+<l:gentext key="Warning" text="चेतावनी"/>
+<l:gentext key="warning" text="चेतावनी"/>
+<l:gentext key="WARNING" text="चेतावनी"/>
+<l:gentext key="and" text="और"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="संपादित"/>
+<l:gentext key="edited" text="संपादित"/>
+<l:gentext key="Editedby" text="इनकेद्वारासंपादित"/>
+<l:gentext key="editedby" text="इनकेद्वारासंपादित"/>
+<l:gentext key="in" text="अंदर"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="अनुपस्थिततत्व"/>
+<l:gentext key="notes" text="नोट्स"/>
+<l:gentext key="Notes" text="नोट्स"/>
+<l:gentext key="Pgs" text="पृष्ठ"/>
+<l:gentext key="pgs" text="पृष्ठ"/>
+<l:gentext key="Revisedby" text="पुनरीक्षणकर्ता:"/>
+<l:gentext key="revisedby" text="पुनरीक्षणकर्ता:"/>
+<l:gentext key="TableNotes" text="नोट्स"/>
+<l:gentext key="tablenotes" text="नोट्स"/>
+<l:gentext key="TableofContents" text="विषय-सूची"/>
+<l:gentext key="tableofcontents" text="विषय-सूची"/>
+<l:gentext key="unexpectedelementname" text="अप्रत्याशिततत्वनाम"/>
+<l:gentext key="unsupported" text="असमर्थित"/>
+<l:gentext key="xrefto" text="xrefto"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="समीकरणसूची"/>
+<l:gentext key="ListofEquations" text="समीकरणसूची"/>
+<l:gentext key="ListofExamples" text="उदाहरणसूची"/>
+<l:gentext key="listofexamples" text="उदाहरणसूची"/>
+<l:gentext key="ListofFigures" text="चित्रसूची"/>
+<l:gentext key="listoffigures" text="चित्रसूची"/>
+<l:gentext key="ListofProcedures" text="प्रक्रियासूची"/>
+<l:gentext key="listofprocedures" text="प्रक्रियासूची"/>
+<l:gentext key="listoftables" text="तालिकासूची"/>
+<l:gentext key="ListofTables" text="तालिकासूची"/>
+<l:gentext key="ListofUnknown" text="अज्ञातकीसूची"/>
+<l:gentext key="listofunknown" text="अज्ञातकीसूची"/>
+<l:gentext key="nav-home" text="घर"/>
+<l:gentext key="nav-next" text="आगे"/>
+<l:gentext key="nav-next-sibling" text="द्रुतअग्रसारण"/>
+<l:gentext key="nav-prev" text="पीछे"/>
+<l:gentext key="nav-prev-sibling" text="द्रुतपश्चरण"/>
+<l:gentext key="nav-up" text="ऊपर"/>
+<l:gentext key="nav-toc" text="अंतर्वस्तुतालिका"/>
+<l:gentext key="Draft" text="ड्राफ्ट"/>
+<l:gentext key="above" text="ऊपर"/>
+<l:gentext key="below" text="नीचे"/>
+<l:gentext key="sectioncalled" text="यहखंडकहलाताहै"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="परिशिष्ट %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="अध्याय %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="समीकरण %n. %t"/>
+<l:template name="example" text="उदाहरण %n. %t"/>
+<l:template name="figure" text="चित्र %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="हिस्सा %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="प्रक्रिया %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="उत्पादन %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="तालिका %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="परिशिष्ट %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="अध्याय %n. %t"/>
+<l:template name="part" text="हिस्सा %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="उ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="प्र: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="प्र: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsection" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsect1" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsect2" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsect3" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="sect1" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="sect2" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="sect3" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="sect4" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="sect5" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="section" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="simplesect" text="यहखंडकहलाताहै “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="उ: %n"/>
+<l:template name="appendix" text="परिशिष्ट %n"/>
+<l:template name="bridgehead" text="खंड %n"/>
+<l:template name="chapter" text="अध्याय %n"/>
+<l:template name="equation" text="समीकरण %n"/>
+<l:template name="example" text="उदाहरण %n"/>
+<l:template name="figure" text="चित्र %n"/>
+<l:template name="part" text="हिस्सा %n"/>
+<l:template name="procedure" text="प्रक्रिया %n"/>
+<l:template name="productionset" text="उत्पादन %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="प्र: %n"/>
+<l:template name="question" text="प्र: %n"/>
+<l:template name="sect1" text="खंड %n"/>
+<l:template name="sect2" text="खंड %n"/>
+<l:template name="sect3" text="खंड %n"/>
+<l:template name="sect4" text="खंड %n"/>
+<l:template name="sect5" text="खंड %n"/>
+<l:template name="section" text="खंड %n"/>
+<l:template name="table" text="तालिका %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="परिशिष्ट %n, %t"/>
+<l:template name="bridgehead" text="खंड %n, “%t”"/>
+<l:template name="chapter" text="अध्याय %n, %t"/>
+<l:template name="equation" text="समीकरण %n, “%t”"/>
+<l:template name="example" text="उदाहरण %n, “%t”"/>
+<l:template name="figure" text="चित्र %n, “%t”"/>
+<l:template name="part" text="हिस्सा %n, “%t”"/>
+<l:template name="procedure" text="प्रक्रिया %n, “%t”"/>
+<l:template name="productionset" text="उत्पादन %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsect2" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsect3" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="refsection" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="sect1" text="खंड %n, “%t”"/>
+<l:template name="sect2" text="खंड %n, “%t”"/>
+<l:template name="sect3" text="खंड %n, “%t”"/>
+<l:template name="sect4" text="खंड %n, “%t”"/>
+<l:template name="sect5" text="खंड %n, “%t”"/>
+<l:template name="section" text="खंड %n, “%t”"/>
+<l:template name="simplesect" text="यहखंडकहलाताहै “%t”"/>
+<l:template name="table" text="तालिका %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" और "/>
+<l:template name="seplast" text=", और "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="देखें %t"/>
+<l:template name="seealso" text="इसेभीदेखें %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="श्रोता: "/>
+<l:template name="MsgLevel" text="स्तर: "/>
+<l:template name="MsgOrig" text="मूल: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January"/>
+<l:template name="February" text="February"/>
+<l:template name="March" text="March"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="June"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="October"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Monday"/>
+<l:template name="Tuesday" text="Tuesday"/>
+<l:template name="Wednesday" text="Wednesday"/>
+<l:template name="Thursday" text="Thursday"/>
+<l:template name="Friday" text="Friday"/>
+<l:template name="Saturday" text="Saturday"/>
+<l:template name="Sunday" text="Sunday"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tue"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Thu"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Sat"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0439 Hindi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/hr.xml b/docs/xsl-generic/common/hr.xml
new file mode 100644
index 00000000..d8378e4d
--- /dev/null
+++ b/docs/xsl-generic/common/hr.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="hr" english-language-name="Croatian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/hr.xml -->
+<!-- * -->
+<!-- * E-mail the edited hr.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sažetak"/>
+<l:gentext key="abstract" text="Sažetak"/>
+<l:gentext key="Answer" text="Odgovor:"/>
+<l:gentext key="answer" text="Odgovor:"/>
+<l:gentext key="Appendix" text="Dodatak"/>
+<l:gentext key="appendix" text="dodatak"/>
+<l:gentext key="Article" text="Članak"/>
+<l:gentext key="article" text="Članak"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="Literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="Knjiga"/>
+<l:gentext key="CAUTION" text="OPREZ"/>
+<l:gentext key="Caution" text="Oprez"/>
+<l:gentext key="caution" text="Oprez"/>
+<l:gentext key="Chapter" text="Poglavlje"/>
+<l:gentext key="chapter" text="poglavlje"/>
+<l:gentext key="Colophon" text="Impresum"/>
+<l:gentext key="colophon" text="Impresum"/>
+<l:gentext key="Copyright" text="Autorska prava"/>
+<l:gentext key="copyright" text="Autorska prava"/>
+<l:gentext key="Dedication" text="Posveta"/>
+<l:gentext key="dedication" text="Posveta"/>
+<l:gentext key="Edition" text="Izdanje"/>
+<l:gentext key="edition" text="Izdanje"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Jednadžba"/>
+<l:gentext key="equation" text="Jednadžba"/>
+<l:gentext key="Example" text="Primjer"/>
+<l:gentext key="example" text="Primjer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="Slika"/>
+<l:gentext key="Glossary" text="Rječnik"/>
+<l:gentext key="glossary" text="Rječnik"/>
+<l:gentext key="GlossSee" text="Vidi"/>
+<l:gentext key="glosssee" text="Vidi"/>
+<l:gentext key="GlossSeeAlso" text="Vidi i"/>
+<l:gentext key="glossseealso" text="Vidi i"/>
+<l:gentext key="IMPORTANT" text="VAŽNO"/>
+<l:gentext key="important" text="Važno"/>
+<l:gentext key="Important" text="Važno"/>
+<l:gentext key="Index" text="Kazalo"/>
+<l:gentext key="index" text="Kazalo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravne odredbe"/>
+<l:gentext key="legalnotice" text="Pravne odredbe"/>
+<l:gentext key="MsgAud" text="Primatelji"/>
+<l:gentext key="msgaud" text="Primatelji"/>
+<l:gentext key="MsgLevel" text="Razina"/>
+<l:gentext key="msglevel" text="Razina"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="Izvor"/>
+<l:gentext key="NOTE" text="BILJEŠKA"/>
+<l:gentext key="Note" text="Bilješka"/>
+<l:gentext key="note" text="Bilješka"/>
+<l:gentext key="Part" text="Dio"/>
+<l:gentext key="part" text="Dio"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="Predgovor"/>
+<l:gentext key="Procedure" text="Postupak"/>
+<l:gentext key="procedure" text="Postupak"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Objavljeno"/>
+<l:gentext key="published" text="Objavljeno"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Pitanje i Odgovor"/>
+<l:gentext key="qandadiv" text="Pitanje i Odgovor"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Pitanje:"/>
+<l:gentext key="question" text="Pitanje:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referenca"/>
+<l:gentext key="reference" text="Referenca"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="Ime"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Pregled"/>
+<l:gentext key="refsynopsisdiv" text="Pregled"/>
+<l:gentext key="RevHistory" text="Povijest preinaka"/>
+<l:gentext key="revhistory" text="Povijest preinaka"/>
+<l:gentext key="revision" text="Preinaka"/>
+<l:gentext key="Revision" text="Preinaka"/>
+<l:gentext key="sect1" text="Odjeljak"/>
+<l:gentext key="sect2" text="Odjeljak"/>
+<l:gentext key="sect3" text="Odjeljak"/>
+<l:gentext key="sect4" text="Odjeljak"/>
+<l:gentext key="sect5" text="Odjeljak"/>
+<l:gentext key="section" text="Odjeljak"/>
+<l:gentext key="Section" text="Odjeljak"/>
+<l:gentext key="see" text="vidi"/>
+<l:gentext key="See" text="See" lang="en"/>
+<l:gentext key="seealso" text="vidi i"/>
+<l:gentext key="Seealso" text="See also" lang="en"/>
+<l:gentext key="SeeAlso" text="See Also" lang="en"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Kazalo seta"/>
+<l:gentext key="SetIndex" text="Kazalo seta"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="Tablica"/>
+<l:gentext key="Table" text="Tablica"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Savjet"/>
+<l:gentext key="TIP" text="SAVJET"/>
+<l:gentext key="Tip" text="Savjet"/>
+<l:gentext key="Warning" text="Upozorenje"/>
+<l:gentext key="warning" text="Upozorenje"/>
+<l:gentext key="WARNING" text="UPOZORENJE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="by" text="po"/>
+<l:gentext key="Edited" text="Uredio/la"/>
+<l:gentext key="edited" text="Uredio/la"/>
+<l:gentext key="Editedby" text="Uredio/la"/>
+<l:gentext key="editedby" text="Uredio/la"/>
+<l:gentext key="in" text="u"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="nepostojeći element"/>
+<l:gentext key="notes" text="Bilješke"/>
+<l:gentext key="Notes" text="Bilješke"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Promijenjeno po: "/>
+<l:gentext key="revisedby" text="Promijenjeno po: "/>
+<l:gentext key="TableNotes" text="Napomene"/>
+<l:gentext key="tablenotes" text="Napomene"/>
+<l:gentext key="TableofContents" text="Sadržaj"/>
+<l:gentext key="tableofcontents" text="Sadržaj"/>
+<l:gentext key="unexpectedelementname" text="Neočekivano ime elementa"/>
+<l:gentext key="unsupported" text="nepodržano"/>
+<l:gentext key="xrefto" text="xref za"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Popis jednadžbi"/>
+<l:gentext key="ListofEquations" text="Popis jednadžbi"/>
+<l:gentext key="ListofExamples" text="Popis primjera"/>
+<l:gentext key="listofexamples" text="Popis primjera"/>
+<l:gentext key="ListofFigures" text="Popis slika"/>
+<l:gentext key="listoffigures" text="Popis slika"/>
+<l:gentext key="ListofProcedures" text="Popis postupaka"/>
+<l:gentext key="listofprocedures" text="Popis postupaka"/>
+<l:gentext key="listoftables" text="Popis tablica"/>
+<l:gentext key="ListofTables" text="Popis tablica "/>
+<l:gentext key="ListofUnknown" text="Popis nepoznanica"/>
+<l:gentext key="listofunknown" text="Popis nepoznanica"/>
+<l:gentext key="nav-home" text="Početak"/>
+<l:gentext key="nav-next" text="Naprijed"/>
+<l:gentext key="nav-next-sibling" text="Skoči unaprijed"/>
+<l:gentext key="nav-prev" text="Natrag"/>
+<l:gentext key="nav-prev-sibling" text="Skoči unatrag"/>
+<l:gentext key="nav-up" text="Gore"/>
+<l:gentext key="nav-toc" text="Sadržaj"/>
+<l:gentext key="Draft" text="Nacrt"/>
+<l:gentext key="above" text="iznad"/>
+<l:gentext key="below" text="ispod"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Oznake"/>
+<l:gentext key="lowercase.alpha" text="abcčćdđefghijklmnopqrsštuvwxyzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČĆDĐEFGHIJKLMNOPQRSŠTUVWXYZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‚"/>
+<l:dingbat key="nestedendquote" text="‘"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="‐"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Jednadžba %n. %t"/>
+<l:template name="example" text="Primjer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postupak %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tablica %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Odgovor: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Pitanje: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pitanje: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="the section called „%t“"/>
+<l:template name="refsection" text="the section called „%t“"/>
+<l:template name="refsect1" text="the section called „%t“"/>
+<l:template name="refsect2" text="the section called „%t“"/>
+<l:template name="refsect3" text="the section called „%t“"/>
+<l:template name="sect1" text="the section called „%t“"/>
+<l:template name="sect2" text="the section called „%t“"/>
+<l:template name="sect3" text="the section called „%t“"/>
+<l:template name="sect4" text="the section called „%t“"/>
+<l:template name="sect5" text="the section called „%t“"/>
+<l:template name="section" text="the section called „%t“"/>
+<l:template name="simplesect" text="the section called „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Odgovor: %n"/>
+<l:template name="appendix" text="Dodatak %n"/>
+<l:template name="bridgehead" text="Odjeljak %n"/>
+<l:template name="chapter" text="Poglavlje %n"/>
+<l:template name="equation" text="Jednadžba %n"/>
+<l:template name="example" text="Primjer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Dio %n"/>
+<l:template name="procedure" text="Postupak %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="Pitanje i Odgovor %n"/>
+<l:template name="qandaentry" text="Pitanje: %n"/>
+<l:template name="question" text="Pitanje: %n"/>
+<l:template name="sect1" text="Odjeljak %n"/>
+<l:template name="sect2" text="Odjeljak %n"/>
+<l:template name="sect3" text="Odjeljak %n"/>
+<l:template name="sect4" text="Odjeljak %n"/>
+<l:template name="sect5" text="Odjeljak %n"/>
+<l:template name="section" text="Odjeljak %n"/>
+<l:template name="table" text="Tablica %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatak %n, %t"/>
+<l:template name="bridgehead" text="Odjeljak %n, „%t“"/>
+<l:template name="chapter" text="Poglavlje %n, %t"/>
+<l:template name="equation" text="Jednadžba %n, „%t“"/>
+<l:template name="example" text="Primjer %n, „%t“"/>
+<l:template name="figure" text="Slika %n, „%t“"/>
+<l:template name="part" text="Dio %n, „%t“"/>
+<l:template name="procedure" text="Postupak %n, „%t“"/>
+<l:template name="productionset" text="Produkcija %n, „%t“"/>
+<l:template name="qandadiv" text="Pitanje i Odgovor %n, „%t“"/>
+<l:template name="refsect1" text="the section called „%t“"/>
+<l:template name="refsect2" text="the section called „%t“"/>
+<l:template name="refsect3" text="the section called „%t“"/>
+<l:template name="refsection" text="the section called „%t“"/>
+<l:template name="sect1" text="Odjeljak %n, „%t“"/>
+<l:template name="sect2" text="Odjeljak %n, „%t“"/>
+<l:template name="sect3" text="Odjeljak %n, „%t“"/>
+<l:template name="sect4" text="Odjeljak %n, „%t“"/>
+<l:template name="sect5" text="Odjeljak %n, „%t“"/>
+<l:template name="section" text="Odjeljak %n, „%t“"/>
+<l:template name="simplesect" text="the section called „%t“"/>
+<l:template name="table" text="Tablica %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidi %t"/>
+<l:template name="seealso" text="Vidi i %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Primatelji: "/>
+<l:template name="MsgLevel" text="Razina: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Siječanj"/>
+<l:template name="February" text="Veljača"/>
+<l:template name="March" text="Ožujak"/>
+<l:template name="April" text="Travanj"/>
+<l:template name="May" text="Svibanj"/>
+<l:template name="June" text="Lipanj"/>
+<l:template name="July" text="Srpanj"/>
+<l:template name="August" text="Kolovoz"/>
+<l:template name="September" text="Rujan"/>
+<l:template name="October" text="Listopad"/>
+<l:template name="November" text="Studeni"/>
+<l:template name="December" text="Prosinac"/>
+<l:template name="Monday" text="Ponedjeljak"/>
+<l:template name="Tuesday" text="Utorak"/>
+<l:template name="Wednesday" text="Srijeda"/>
+<l:template name="Thursday" text="Četvrtak"/>
+<l:template name="Friday" text="Petak"/>
+<l:template name="Saturday" text="Subota"/>
+<l:template name="Sunday" text="Nedjelja"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Sij"/>
+<l:template name="Feb" text="Velj"/>
+<l:template name="Mar" text="Ožu"/>
+<l:template name="Apr" text="Tra"/>
+<l:template name="May" text="Svi"/>
+<l:template name="Jun" text="Lip"/>
+<l:template name="Jul" text="Srp"/>
+<l:template name="Aug" text="Kol"/>
+<l:template name="Sep" text="Ruj"/>
+<l:template name="Oct" text="Lis"/>
+<l:template name="Nov" text="Stu"/>
+<l:template name="Dec" text="Pro"/>
+<l:template name="Mon" text="Pon"/>
+<l:template name="Tue" text="Uto"/>
+<l:template name="Wed" text="Sri"/>
+<l:template name="Thu" text="Čet"/>
+<l:template name="Fri" text="Pet"/>
+<l:template name="Sat" text="Sub"/>
+<l:template name="Sun" text="Ned"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041a Croatian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/hu.xml b/docs/xsl-generic/common/hu.xml
new file mode 100644
index 00000000..be795c7f
--- /dev/null
+++ b/docs/xsl-generic/common/hu.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="hu" english-language-name="Hungarian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/hu.xml -->
+<!-- * -->
+<!-- * E-mail the edited hu.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Kivonat"/>
+<l:gentext key="abstract" text="kivonat"/>
+<l:gentext key="Answer" text="V:"/>
+<l:gentext key="answer" text="v:"/>
+<l:gentext key="Appendix" text="Függelék"/>
+<l:gentext key="appendix" text="függelék"/>
+<l:gentext key="Article" text="Cikk"/>
+<l:gentext key="article" text="cikk"/>
+<l:gentext key="Author" text="Szerz"/>
+<l:gentext key="Bibliography" text="Irodalomjegyzék"/>
+<l:gentext key="bibliography" text="irodalomjegyzék"/>
+<l:gentext key="Book" text="Könyv"/>
+<l:gentext key="book" text="könyv"/>
+<l:gentext key="CAUTION" text="FIGYELEM"/>
+<l:gentext key="Caution" text="Figyelem"/>
+<l:gentext key="caution" text="figyelem"/>
+<l:gentext key="Chapter" text="Fejezet"/>
+<l:gentext key="chapter" text="fejezet"/>
+<l:gentext key="Colophon" text="Végszó"/>
+<l:gentext key="colophon" text="végszó"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Ajánlás"/>
+<l:gentext key="dedication" text="ajánlás"/>
+<l:gentext key="Edition" text="Kiadás"/>
+<l:gentext key="edition" text="kiadás"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Egyenlet"/>
+<l:gentext key="equation" text="egyenlet"/>
+<l:gentext key="Example" text="Példa"/>
+<l:gentext key="example" text="példa"/>
+<l:gentext key="Figure" text="Ábra"/>
+<l:gentext key="figure" text="ábra"/>
+<l:gentext key="Glossary" text="Szójegyzék"/>
+<l:gentext key="glossary" text="szójegyzék"/>
+<l:gentext key="GlossSee" text="Lásd"/>
+<l:gentext key="glosssee" text="lásd"/>
+<l:gentext key="GlossSeeAlso" text="Lásd még"/>
+<l:gentext key="glossseealso" text="lásd még"/>
+<l:gentext key="IMPORTANT" text="FONTOS"/>
+<l:gentext key="important" text="fontos"/>
+<l:gentext key="Important" text="Fontos"/>
+<l:gentext key="Index" text="Tárgymutató"/>
+<l:gentext key="index" text="tárgymutató"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Jogi közlemény"/>
+<l:gentext key="legalnotice" text="jogi közlemény"/>
+<l:gentext key="MsgAud" text="Célközönség"/>
+<l:gentext key="msgaud" text="célközönség"/>
+<l:gentext key="MsgLevel" text="Szint"/>
+<l:gentext key="msglevel" text="szint"/>
+<l:gentext key="MsgOrig" text="Eredet"/>
+<l:gentext key="msgorig" text="eredet"/>
+<l:gentext key="NOTE" text="MEGJEGYZÉS"/>
+<l:gentext key="Note" text="Megjegyzés"/>
+<l:gentext key="note" text="megjegyzés"/>
+<l:gentext key="Part" text="Rész"/>
+<l:gentext key="part" text="rész"/>
+<l:gentext key="Preface" text="Előszó"/>
+<l:gentext key="preface" text="előszó"/>
+<l:gentext key="Procedure" text="Eljárás"/>
+<l:gentext key="procedure" text="eljárás"/>
+<l:gentext key="ProductionSet" text="Elemcsoport"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Megjelent"/>
+<l:gentext key="published" text="megjelent"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="K és V"/>
+<l:gentext key="qandadiv" text="K és V"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="K:"/>
+<l:gentext key="question" text="k:"/>
+<l:gentext key="RefEntry" text="Bejegyzés"/>
+<l:gentext key="refentry" text="bejegyzés"/>
+<l:gentext key="Reference" text="Referencia"/>
+<l:gentext key="reference" text="referencia"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Név"/>
+<l:gentext key="refname" text="név"/>
+<l:gentext key="RefSection" text="Szakasz"/>
+<l:gentext key="refsection" text="szakasz"/>
+<l:gentext key="RefSynopsisDiv" text="Áttekintés"/>
+<l:gentext key="refsynopsisdiv" text="áttekintés"/>
+<l:gentext key="RevHistory" text="Verziótörténet"/>
+<l:gentext key="revhistory" text="verziótörténet"/>
+<l:gentext key="revision" text="verzió"/>
+<l:gentext key="Revision" text="Verzió"/>
+<l:gentext key="sect1" text="Szakasz"/>
+<l:gentext key="sect2" text="Szakasz"/>
+<l:gentext key="sect3" text="Szakasz"/>
+<l:gentext key="sect4" text="Szakasz"/>
+<l:gentext key="sect5" text="Szakasz"/>
+<l:gentext key="section" text="szakasz"/>
+<l:gentext key="Section" text="Szakasz"/>
+<l:gentext key="see" text="lásd"/>
+<l:gentext key="See" text="Lásd"/>
+<l:gentext key="seealso" text="lásd még"/>
+<l:gentext key="Seealso" text="Lásd még"/>
+<l:gentext key="SeeAlso" text="Lásd még"/>
+<l:gentext key="set" text="csoport"/>
+<l:gentext key="Set" text="Csoport"/>
+<l:gentext key="setindex" text="csoportmutató"/>
+<l:gentext key="SetIndex" text="Csoportmutató"/>
+<l:gentext key="Sidebar" text="Széljegyzet"/>
+<l:gentext key="sidebar" text="széljegyzet"/>
+<l:gentext key="step" text="lépés"/>
+<l:gentext key="Step" text="Lépés"/>
+<l:gentext key="table" text="táblázat"/>
+<l:gentext key="Table" text="Táblázat"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="tipp"/>
+<l:gentext key="TIP" text="TIPP"/>
+<l:gentext key="Tip" text="Tipp"/>
+<l:gentext key="Warning" text="Figyelem"/>
+<l:gentext key="warning" text="figyelem"/>
+<l:gentext key="WARNING" text="FIGYELEM"/>
+<l:gentext key="and" text="és"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Szerk."/>
+<l:gentext key="edited" text="szerk."/>
+<l:gentext key="Editedby" text="Szerkesztette"/>
+<l:gentext key="editedby" text="szerkesztette"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="nem létező elem"/>
+<l:gentext key="notes" text="megjegyzések"/>
+<l:gentext key="Notes" text="Megjegyzések"/>
+<l:gentext key="Pgs" text="Lsz."/>
+<l:gentext key="pgs" text="lsz."/>
+<l:gentext key="Revisedby" text="Megvizsgálva"/>
+<l:gentext key="revisedby" text="megvizsgálva"/>
+<l:gentext key="TableNotes" text="Megjegyzések"/>
+<l:gentext key="tablenotes" text="megjegyzések"/>
+<l:gentext key="TableofContents" text="Tartalom"/>
+<l:gentext key="tableofcontents" text="tartalom"/>
+<l:gentext key="unexpectedelementname" text="nem várt elemnév"/>
+<l:gentext key="unsupported" text="nem támogatott"/>
+<l:gentext key="xrefto" text="keresztref"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="az egyenletek listája"/>
+<l:gentext key="ListofEquations" text="Az egyenletek listája"/>
+<l:gentext key="ListofExamples" text="A példák listája"/>
+<l:gentext key="listofexamples" text="a példák listája"/>
+<l:gentext key="ListofFigures" text="Az ábrák listája"/>
+<l:gentext key="listoffigures" text="az ábrák listája"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="a táblázatok listája"/>
+<l:gentext key="ListofTables" text="A táblázatok listája"/>
+<l:gentext key="ListofUnknown" text="Az egyéb elemek listája"/>
+<l:gentext key="listofunknown" text="az egyéb elemek listája"/>
+<l:gentext key="nav-home" text="Tartalom"/>
+<l:gentext key="nav-next" text="Következő"/>
+<l:gentext key="nav-next-sibling" text="Gyors előre"/>
+<l:gentext key="nav-prev" text="Előző"/>
+<l:gentext key="nav-prev-sibling" text="Gyors vissza"/>
+<l:gentext key="nav-up" text="Fel"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Vázlat"/>
+<l:gentext key="above" text="fent"/>
+<l:gentext key="below" text="lent"/>
+<l:gentext key="sectioncalled" text="ilyen nevű szakasz:"/>
+<l:gentext key="index symbols" text="szimbólummutató"/>
+<l:gentext key="lowercase.alpha" text="aábcdeéfghiíjklmnoóöőpqrstuúü«vwxyz"/>
+<l:gentext key="uppercase.alpha" text="AÁBCDEÉFGHIÍJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="»"/>
+<l:dingbat key="nestedendquote" text="«"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="last-first"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="%n. függelék - %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%n. fejezet - %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%n. egyenlet - %t"/>
+<l:template name="example" text="%n. példa - %t"/>
+<l:template name="figure" text="%n. ábra - %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%n. rész - %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Eljárás %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Elemcsoport %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="%n. táblázat - %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="%n. függelék - %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%n. fejezet - %t"/>
+<l:template name="part" text="%n. rész - %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="sect1" text="„%t”"/>
+<l:template name="sect2" text="„%t”"/>
+<l:template name="sect3" text="„%t”"/>
+<l:template name="sect4" text="„%t”"/>
+<l:template name="sect5" text="„%t”"/>
+<l:template name="section" text="„%t”"/>
+<l:template name="simplesect" text="„%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%n. függelék"/>
+<l:template name="bridgehead" text="Szakasz %n"/>
+<l:template name="chapter" text="%n. fejezet"/>
+<l:template name="equation" text="Egyenlet %n"/>
+<l:template name="example" text="%n. példa"/>
+<l:template name="figure" text="%n. ábra"/>
+<l:template name="part" text="%n. rész"/>
+<l:template name="procedure" text="Eljárás %n"/>
+<l:template name="productionset" text="Elemcsoport %n"/>
+<l:template name="qandadiv" text="K és V %n"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="sect1" text="%n. szakasz"/>
+<l:template name="sect2" text="%n. szakasz"/>
+<l:template name="sect3" text="%n. szakasz"/>
+<l:template name="sect4" text="%n. szakasz"/>
+<l:template name="sect5" text="%n. szakasz"/>
+<l:template name="section" text="%n. szakasz"/>
+<l:template name="table" text="Táblázat %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="%n. függelék - %t"/>
+<l:template name="bridgehead" text="Szakasz %n, „%t”"/>
+<l:template name="chapter" text="%n. fejezet - %t"/>
+<l:template name="equation" text="Egyenlet %n, „%t”"/>
+<l:template name="example" text="%n. példa - %t"/>
+<l:template name="figure" text="%n. ábra - %t"/>
+<l:template name="part" text="%n. rész - %t"/>
+<l:template name="procedure" text="Eljárás %n, „%t”"/>
+<l:template name="productionset" text="Elemcsoport %n, „%t”"/>
+<l:template name="qandadiv" text="K és V %n, „%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="sect1" text="%n. szakasz - %t"/>
+<l:template name="sect2" text="%n. szakasz - %t"/>
+<l:template name="sect3" text="%n. szakasz - %t"/>
+<l:template name="sect4" text="%n. szakasz - %t"/>
+<l:template name="sect5" text="%n. szakasz - %t"/>
+<l:template name="section" text="%n. szakasz - %t"/>
+<l:template name="simplesect" text="„%t”"/>
+<l:template name="table" text="%n. táblázat - %t"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" és "/>
+<l:template name="seplast" text=", és "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Lásd %t"/>
+<l:template name="seealso" text="Lásd még %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Célközönség: "/>
+<l:template name="MsgLevel" text="Szint: "/>
+<l:template name="MsgOrig" text="Eredet: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040e Hungarian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/id.xml b/docs/xsl-generic/common/id.xml
new file mode 100644
index 00000000..7ad10d0a
--- /dev/null
+++ b/docs/xsl-generic/common/id.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="id" english-language-name="Indonesian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/id.xml -->
+<!-- * -->
+<!-- * E-mail the edited id.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrak"/>
+<l:gentext key="abstract" text="Abstrak"/>
+<l:gentext key="Answer" text="Jawab:"/>
+<l:gentext key="answer" text="Jawab:"/>
+<l:gentext key="Appendix" text="Lampiran"/>
+<l:gentext key="appendix" text="lampiran"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Pembuat"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="Bibliografi"/>
+<l:gentext key="Book" text="Buku"/>
+<l:gentext key="book" text="Buku"/>
+<l:gentext key="CAUTION" text="PERHATIAN"/>
+<l:gentext key="Caution" text="Perhatian"/>
+<l:gentext key="caution" text="Perhatian"/>
+<l:gentext key="Chapter" text="Bab"/>
+<l:gentext key="chapter" text="bab"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="Kolofon"/>
+<l:gentext key="Copyright" text="Hak Cipta"/>
+<l:gentext key="copyright" text="Hak Cipta"/>
+<l:gentext key="Dedication" text="Dedikasi"/>
+<l:gentext key="dedication" text="Dedikasi"/>
+<l:gentext key="Edition" text="Edisi"/>
+<l:gentext key="edition" text="Edisi"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Persamaan"/>
+<l:gentext key="equation" text="Persamaan"/>
+<l:gentext key="Example" text="Teladan"/>
+<l:gentext key="example" text="Teladan"/>
+<l:gentext key="Figure" text="Gambar"/>
+<l:gentext key="figure" text="Gambar"/>
+<l:gentext key="Glossary" text="Daftar Istilah"/>
+<l:gentext key="glossary" text="Daftar Istilah"/>
+<l:gentext key="GlossSee" text="Lihat"/>
+<l:gentext key="glosssee" text="Lihat"/>
+<l:gentext key="GlossSeeAlso" text="Lihat Juga"/>
+<l:gentext key="glossseealso" text="Lihat Juga"/>
+<l:gentext key="IMPORTANT" text="PENTING"/>
+<l:gentext key="important" text="Penting"/>
+<l:gentext key="Important" text="Penting"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Aspek Hukum"/>
+<l:gentext key="legalnotice" text="Aspek Hukum"/>
+<l:gentext key="MsgAud" text="Pemirsa"/>
+<l:gentext key="msgaud" text="Pemirsa"/>
+<l:gentext key="MsgLevel" text="Tingkatan"/>
+<l:gentext key="msglevel" text="Tingkatan"/>
+<l:gentext key="MsgOrig" text="Asal"/>
+<l:gentext key="msgorig" text="Asal"/>
+<l:gentext key="NOTE" text="CATATAN"/>
+<l:gentext key="Note" text="Catatan"/>
+<l:gentext key="note" text="Catatan"/>
+<l:gentext key="Part" text="Bagian"/>
+<l:gentext key="part" text="Bagian"/>
+<l:gentext key="Preface" text="Kata Pengantar"/>
+<l:gentext key="preface" text="Kata Pengantar"/>
+<l:gentext key="Procedure" text="Prosedur"/>
+<l:gentext key="procedure" text="Prosedur"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Diterbitkan"/>
+<l:gentext key="published" text="Diterbitkan"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Tanya dan Jawab"/>
+<l:gentext key="qandadiv" text="Tanya dan Jawab"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Tanya:"/>
+<l:gentext key="question" text="Tanya:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referensi"/>
+<l:gentext key="reference" text="Referensi"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nama"/>
+<l:gentext key="refname" text="Nama"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="Sinopsis"/>
+<l:gentext key="RevHistory" text="Catatan Revisi"/>
+<l:gentext key="revhistory" text="Catatan Revisi"/>
+<l:gentext key="revision" text="Revisi"/>
+<l:gentext key="Revision" text="Revisi"/>
+<l:gentext key="sect1" text="Bagian"/>
+<l:gentext key="sect2" text="Bagian"/>
+<l:gentext key="sect3" text="Bagian"/>
+<l:gentext key="sect4" text="Bagian"/>
+<l:gentext key="sect5" text="Bagian"/>
+<l:gentext key="section" text="bagian"/>
+<l:gentext key="Section" text="Bagian"/>
+<l:gentext key="see" text="Lihat"/>
+<l:gentext key="See" text="Lihat"/>
+<l:gentext key="seealso" text="Lihat Juga"/>
+<l:gentext key="Seealso" text="Lihat juga"/>
+<l:gentext key="SeeAlso" text="Lihat Juga"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks Set"/>
+<l:gentext key="SetIndex" text="Indeks Set"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="tahap"/>
+<l:gentext key="Step" text="Tahap"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Awas"/>
+<l:gentext key="warning" text="Awas"/>
+<l:gentext key="WARNING" text="AWAS"/>
+<l:gentext key="and" text="dan"/>
+<l:gentext key="by" text="oleh"/>
+<l:gentext key="Edited" text="disunting"/>
+<l:gentext key="edited" text="disunting"/>
+<l:gentext key="Editedby" text="disunting oleh"/>
+<l:gentext key="editedby" text="disunting oleh"/>
+<l:gentext key="in" text="di"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elemen tak tampak"/>
+<l:gentext key="notes" text="Catatan"/>
+<l:gentext key="Notes" text="Catatan"/>
+<l:gentext key="Pgs" text="Hal."/>
+<l:gentext key="pgs" text="Hal."/>
+<l:gentext key="Revisedby" text="Direvisi oleh: "/>
+<l:gentext key="revisedby" text="Direvisi oleh: "/>
+<l:gentext key="TableNotes" text="Catatan"/>
+<l:gentext key="tablenotes" text="Catatan"/>
+<l:gentext key="TableofContents" text="Daftar Isi"/>
+<l:gentext key="tableofcontents" text="Daftar Isi"/>
+<l:gentext key="unexpectedelementname" text="Nama Elemen seharusnya tidak ada"/>
+<l:gentext key="unsupported" text="tidak didukung"/>
+<l:gentext key="xrefto" text="xref ke"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Daftar Persamaan"/>
+<l:gentext key="ListofEquations" text="Daftar Persamaan"/>
+<l:gentext key="ListofExamples" text="Daftar Teladan"/>
+<l:gentext key="listofexamples" text="Daftar Teladan"/>
+<l:gentext key="ListofFigures" text="Daftar Gambar"/>
+<l:gentext key="listoffigures" text="Daftar Gambar"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Daftar Tabel"/>
+<l:gentext key="ListofTables" text="Daftar Tabel"/>
+<l:gentext key="ListofUnknown" text="Daftar Gaib"/>
+<l:gentext key="listofunknown" text="Daftar Gaib"/>
+<l:gentext key="nav-home" text="Depan"/>
+<l:gentext key="nav-next" text="Lanjut"/>
+<l:gentext key="nav-next-sibling" text="Lewati"/>
+<l:gentext key="nav-prev" text="Kembali"/>
+<l:gentext key="nav-prev-sibling" text="Sebelumnya"/>
+<l:gentext key="nav-up" text="Induk"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Lampiran %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Bab %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Persamaan %n. %t"/>
+<l:template name="example" text="Teladan %n. %t"/>
+<l:template name="figure" text="Gambar %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Bagian %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Lampiran %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Bab %n. %t"/>
+<l:template name="part" text="Bagian %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Jawab: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Tanya: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Tanya: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Jawab: %n"/>
+<l:template name="appendix" text="Lampiran %n"/>
+<l:template name="bridgehead" text="Bagian %n"/>
+<l:template name="chapter" text="Bab %n"/>
+<l:template name="equation" text="Persamaan %n"/>
+<l:template name="example" text="Teladan %n"/>
+<l:template name="figure" text="Gambar %n"/>
+<l:template name="part" text="Bagian %n"/>
+<l:template name="procedure" text="Prosedur %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Tanya dan Jawab %n"/>
+<l:template name="qandaentry" text="Tanya: %n"/>
+<l:template name="question" text="Tanya: %n"/>
+<l:template name="sect1" text="Bagian %n"/>
+<l:template name="sect2" text="Bagian %n"/>
+<l:template name="sect3" text="Bagian %n"/>
+<l:template name="sect4" text="Bagian %n"/>
+<l:template name="sect5" text="Bagian %n"/>
+<l:template name="section" text="Bagian %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Lampiran %n, %t"/>
+<l:template name="bridgehead" text="Bagian %n, “%t”"/>
+<l:template name="chapter" text="Bab %n, %t"/>
+<l:template name="equation" text="Persamaan %n, “%t”"/>
+<l:template name="example" text="Teladan %n, “%t”"/>
+<l:template name="figure" text="Gambar %n, “%t”"/>
+<l:template name="part" text="Bagian %n, “%t”"/>
+<l:template name="procedure" text="Prosedur %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Tanya dan Jawab %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Bagian %n, “%t”"/>
+<l:template name="sect2" text="Bagian %n, “%t”"/>
+<l:template name="sect3" text="Bagian %n, “%t”"/>
+<l:template name="sect4" text="Bagian %n, “%t”"/>
+<l:template name="sect5" text="Bagian %n, “%t”"/>
+<l:template name="section" text="Bagian %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" dan "/>
+<l:template name="seplast" text=", dan "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Lihat %t"/>
+<l:template name="seealso" text="Lihat Juga %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Pemirsa: "/>
+<l:template name="MsgLevel" text="Tingkatan: "/>
+<l:template name="MsgOrig" text="Asal: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0421 Indonesian (INDONESIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/insertfile.xsl b/docs/xsl-generic/common/insertfile.xsl
new file mode 100644
index 00000000..66bcf410
--- /dev/null
+++ b/docs/xsl-generic/common/insertfile.xsl
@@ -0,0 +1,111 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: insertfile.xsl 5262 2005-10-12 14:58:42Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="textdata.default.encoding"></xsl:param>
+
+<!-- * This stylesheet makes a copy of a source tree, replacing all -->
+<!-- * instances of the following with corresponding Xinclude instances -->
+<!-- * in the result tree. -->
+<!-- * -->
+<!-- * <textobject><textdata fileref="foo.txt"> -->
+<!-- * <imagedata format="linespecific" fileref="foo.txt"> -->
+<!-- * <inlinegraphic format="linespecific" fileref="foo.txt"> -->
+<!-- * -->
+<!-- * Those become: -->
+<!-- * -->
+<!-- * <xi:include href="foo.txt" parse="text"/> -->
+<!-- * -->
+<!-- * It also works as expected with entityref in place of fileref, -->
+<!-- * and copies over the value of the <textdata>“encoding” atrribute (if -->
+<!-- * found). It is basically intended as an alternative to using the -->
+<!-- * DocBook XSLT Java insertfile() extension. -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="get.external.filename">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@fileref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject[child::textdata[@entityref|@fileref]]">
+ <xsl:apply-templates select="textdata"/>
+</xsl:template>
+
+<xsl:template match="textdata[@entityref|@fileref]">
+ <xsl:variable name="filename">
+ <xsl:call-template name="get.external.filename"/>
+ </xsl:variable>
+ <xsl:variable name="encoding">
+ <xsl:choose>
+ <xsl:when test="@encoding">
+ <xsl:value-of select="@encoding"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$textdata.default.encoding"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xi:include href="{$filename}" parse="text" encoding="{$encoding}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template
+ match="inlinemediaobject
+ [child::imageobject
+ [child::imagedata
+ [@format = 'linespecific' and
+ (@entityref|@fileref)]]]">
+ <xsl:apply-templates select="imageobject/imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata
+ [@format = 'linespecific' and
+ (@entityref|@fileref)]">
+ <xsl:variable name="filename">
+ <xsl:call-template name="get.external.filename"/>
+ </xsl:variable>
+ <xi:include href="{$filename}" parse="text" encoding="{$textdata.default.encoding}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="inlinegraphic
+ [@format = 'linespecific' and
+ (@entityref|@fileref)]">
+ <xsl:variable name="filename">
+ <xsl:call-template name="get.external.filename"/>
+ </xsl:variable>
+ <xi:include href="{$filename}" parse="text" encoding="{$textdata.default.encoding}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * copy everything else into result tree as-is -->
+<xsl:template match="node() | @*">
+ <xsl:copy>
+ <xsl:apply-templates select="@* | node()"/>
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/it.xml b/docs/xsl-generic/common/it.xml
new file mode 100644
index 00000000..fc473dfe
--- /dev/null
+++ b/docs/xsl-generic/common/it.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="it" english-language-name="Italian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/it.xml -->
+<!-- * -->
+<!-- * E-mail the edited it.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Estratto"/>
+<l:gentext key="abstract" text="Estratto"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Appendice"/>
+<l:gentext key="appendix" text="appendice"/>
+<l:gentext key="Article" text="Articolo"/>
+<l:gentext key="article" text="Articolo"/>
+<l:gentext key="Author" text="Autori"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="ATTENZIONE"/>
+<l:gentext key="Caution" text="Attenzione"/>
+<l:gentext key="caution" text="Attenzione"/>
+<l:gentext key="Chapter" text="Capitolo"/>
+<l:gentext key="chapter" text="capitolo"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedica"/>
+<l:gentext key="dedication" text="Dedica"/>
+<l:gentext key="Edition" text="Edizione"/>
+<l:gentext key="edition" text="Edizione"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equazione"/>
+<l:gentext key="equation" text="Equazione"/>
+<l:gentext key="Example" text="Esempio"/>
+<l:gentext key="example" text="Esempio"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Glossario"/>
+<l:gentext key="glossary" text="Glossario"/>
+<l:gentext key="GlossSee" text="Vedi"/>
+<l:gentext key="glosssee" text="Vedi"/>
+<l:gentext key="GlossSeeAlso" text="Vedi Anche"/>
+<l:gentext key="glossseealso" text="Vedi Anche"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Indice"/>
+<l:gentext key="index" text="Indice"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Note Legali"/>
+<l:gentext key="legalnotice" text="Note Legali"/>
+<l:gentext key="MsgAud" text="Pubblico"/>
+<l:gentext key="msgaud" text="Pubblico"/>
+<l:gentext key="MsgLevel" text="Livello"/>
+<l:gentext key="msglevel" text="Livello"/>
+<l:gentext key="MsgOrig" text="Origine"/>
+<l:gentext key="msgorig" text="Origine"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="Nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefazione"/>
+<l:gentext key="preface" text="Prefazione"/>
+<l:gentext key="Procedure" text="Procedura"/>
+<l:gentext key="procedure" text="Procedura"/>
+<l:gentext key="ProductionSet" text="Produzione"/>
+<l:gentext key="PubDate" text="Data di pubblicazione"/>
+<l:gentext key="pubdate" text="Data di pubblicazione"/>
+<l:gentext key="Published" text="Pubblicato"/>
+<l:gentext key="published" text="Pubblicato"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="D e R"/>
+<l:gentext key="qandadiv" text="D e R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="D:"/>
+<l:gentext key="question" text="D:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Riferimento"/>
+<l:gentext key="reference" text="Riferimento"/>
+<l:gentext key="References" text="Riferimenti"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="Nome"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinossi"/>
+<l:gentext key="refsynopsisdiv" text="Sinossi"/>
+<l:gentext key="RevHistory" text="Diario delle Revisioni"/>
+<l:gentext key="revhistory" text="Diario delle Revisioni"/>
+<l:gentext key="revision" text="Revisione"/>
+<l:gentext key="Revision" text="Revisione"/>
+<l:gentext key="sect1" text="Sezione"/>
+<l:gentext key="sect2" text="Sezione"/>
+<l:gentext key="sect3" text="Sezione"/>
+<l:gentext key="sect4" text="Sezione"/>
+<l:gentext key="sect5" text="Sezione"/>
+<l:gentext key="section" text="Sezione"/>
+<l:gentext key="Section" text="Sezione"/>
+<l:gentext key="see" text="Vd."/>
+<l:gentext key="See" text="Vd."/>
+<l:gentext key="seealso" text="Vd. Anche"/>
+<l:gentext key="Seealso" text="Vd. anche"/>
+<l:gentext key="SeeAlso" text="Vd. Anche"/>
+<l:gentext key="set" text="Raccolta"/>
+<l:gentext key="Set" text="Raccolta"/>
+<l:gentext key="setindex" text="Indice Raccolta"/>
+<l:gentext key="SetIndex" text="Indice Raccolta"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="nota a margine"/>
+<l:gentext key="step" text="passo"/>
+<l:gentext key="Step" text="Passo"/>
+<l:gentext key="table" text="Tabella"/>
+<l:gentext key="Table" text="Tabella"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Suggerimento"/>
+<l:gentext key="TIP" text="SUGGERIMENTO"/>
+<l:gentext key="Tip" text="Suggerimento"/>
+<l:gentext key="Warning" text="Avvertimento"/>
+<l:gentext key="warning" text="avvertimento"/>
+<l:gentext key="WARNING" text="AVVERTIMENTO"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="by" text="di"/>
+<l:gentext key="Edited" text="A cura"/>
+<l:gentext key="edited" text="A cura"/>
+<l:gentext key="Editedby" text="A cura di"/>
+<l:gentext key="editedby" text="A cura di"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elemento non esistente"/>
+<l:gentext key="notes" text="Note"/>
+<l:gentext key="Notes" text="Note"/>
+<l:gentext key="Pgs" text="pp."/>
+<l:gentext key="pgs" text="pp."/>
+<l:gentext key="Revisedby" text="Revisionato da: "/>
+<l:gentext key="revisedby" text="Revisionato da: "/>
+<l:gentext key="TableNotes" text="Note"/>
+<l:gentext key="tablenotes" text="Note"/>
+<l:gentext key="TableofContents" text="Sommario"/>
+<l:gentext key="tableofcontents" text="Sommario"/>
+<l:gentext key="unexpectedelementname" text="Nome elemento inaspettato"/>
+<l:gentext key="unsupported" text="non supportato"/>
+<l:gentext key="xrefto" text="riferimento a"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Designer Grafico"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Traduttore"/>
+<l:gentext key="listofequations" text="Lista delle Equazioni"/>
+<l:gentext key="ListofEquations" text="Lista delle Equazioni"/>
+<l:gentext key="ListofExamples" text="Lista degli Esempi"/>
+<l:gentext key="listofexamples" text="Lista degli Esempi"/>
+<l:gentext key="ListofFigures" text="Lista delle Figure"/>
+<l:gentext key="listoffigures" text="Lista delle Figure"/>
+<l:gentext key="ListofProcedures" text="Lista delle procedure"/>
+<l:gentext key="listofprocedures" text="Lista delle procedure"/>
+<l:gentext key="listoftables" text="Lista delle Tabelle"/>
+<l:gentext key="ListofTables" text="Lista delle Tabelle"/>
+<l:gentext key="ListofUnknown" text="Lista degli Sconosciuti"/>
+<l:gentext key="listofunknown" text="Lista degli Sconosciuti"/>
+<l:gentext key="nav-home" text="Partenza"/>
+<l:gentext key="nav-next" text="Avanti"/>
+<l:gentext key="nav-next-sibling" text="Salta Avanti"/>
+<l:gentext key="nav-prev" text="Indietro"/>
+<l:gentext key="nav-prev-sibling" text="Salta Indietro"/>
+<l:gentext key="nav-up" text="Risali"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Bozza"/>
+<l:gentext key="above" text="sopra"/>
+<l:gentext key="below" text="sotto"/>
+<l:gentext key="sectioncalled" text="la sezione chiamata"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="“"/>
+<l:dingbat key="nestedendquote" text="”"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capitolo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equazione %n. %t"/>
+<l:template name="example" text="Esempio %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produzione %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabella %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capitolo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="D: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="D: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="la sezione chiamata «%t»"/>
+<l:template name="refsection" text="la sezione chiamata «%t»"/>
+<l:template name="refsect1" text="la sezione chiamata «%t»"/>
+<l:template name="refsect2" text="la sezione chiamata «%t»"/>
+<l:template name="refsect3" text="la sezione chiamata «%t»"/>
+<l:template name="sect1" text="la sezione chiamata «%t»"/>
+<l:template name="sect2" text="la sezione chiamata «%t»"/>
+<l:template name="sect3" text="la sezione chiamata «%t»"/>
+<l:template name="sect4" text="la sezione chiamata «%t»"/>
+<l:template name="sect5" text="la sezione chiamata «%t»"/>
+<l:template name="section" text="la sezione chiamata «%t»"/>
+<l:template name="simplesect" text="la sezione chiamata «%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Appendice %n"/>
+<l:template name="bridgehead" text="Sezione %n"/>
+<l:template name="chapter" text="Capitolo %n"/>
+<l:template name="equation" text="Equazione %n"/>
+<l:template name="example" text="Esempio %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedura %n"/>
+<l:template name="productionset" text="Produzione %n"/>
+<l:template name="qandadiv" text="D e R %n"/>
+<l:template name="qandaentry" text="D: %n"/>
+<l:template name="question" text="D: %n"/>
+<l:template name="sect1" text="Sezione %n"/>
+<l:template name="sect2" text="Sezione %n"/>
+<l:template name="sect3" text="Sezione %n"/>
+<l:template name="sect4" text="Sezione %n"/>
+<l:template name="sect5" text="Sezione %n"/>
+<l:template name="section" text="Sezione %n"/>
+<l:template name="table" text="Tabella %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendice %n, %t"/>
+<l:template name="bridgehead" text="Sezione %n, «%t»"/>
+<l:template name="chapter" text="Capitolo %n, %t"/>
+<l:template name="equation" text="Equazione %n, «%t»"/>
+<l:template name="example" text="Esempio %n, «%t»"/>
+<l:template name="figure" text="Figura %n, «%t»"/>
+<l:template name="part" text="Parte %n, «%t»"/>
+<l:template name="procedure" text="Procedura %n, «%t»"/>
+<l:template name="productionset" text="Produzione %n, «%t»"/>
+<l:template name="qandadiv" text="D e R %n, «%t»"/>
+<l:template name="refsect1" text="la sezione chiamata «%t»"/>
+<l:template name="refsect2" text="la sezione chiamata «%t»"/>
+<l:template name="refsect3" text="la sezione chiamata «%t»"/>
+<l:template name="refsection" text="la sezione chiamata «%t»"/>
+<l:template name="sect1" text="Sezione %n, «%t»"/>
+<l:template name="sect2" text="Sezione %n, «%t»"/>
+<l:template name="sect3" text="Sezione %n, «%t»"/>
+<l:template name="sect4" text="Sezione %n, «%t»"/>
+<l:template name="sect5" text="Sezione %n, «%t»"/>
+<l:template name="section" text="Sezione %n, «%t»"/>
+<l:template name="simplesect" text="la sezione chiamata «%t»"/>
+<l:template name="table" text="Tabella %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=", e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vedi %t"/>
+<l:template name="seealso" text="Vedi Anche %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Pubblico: "/>
+<l:template name="MsgLevel" text="Livello: "/>
+<l:template name="MsgOrig" text="Origine: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="gennaio"/>
+<l:template name="February" text="febbraio"/>
+<l:template name="March" text="marzo"/>
+<l:template name="April" text="aprile"/>
+<l:template name="May" text="maggio"/>
+<l:template name="June" text="giugno"/>
+<l:template name="July" text="luglio"/>
+<l:template name="August" text="agosto"/>
+<l:template name="September" text="settembre"/>
+<l:template name="October" text="ottobre"/>
+<l:template name="November" text="novembre"/>
+<l:template name="December" text="dicembre"/>
+<l:template name="Monday" text="lunedì"/>
+<l:template name="Tuesday" text="martedì"/>
+<l:template name="Wednesday" text="mercoledì"/>
+<l:template name="Thursday" text="giovedì"/>
+<l:template name="Friday" text="venerdì"/>
+<l:template name="Saturday" text="sabato"/>
+<l:template name="Sunday" text="domenica"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="gen"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="mag"/>
+<l:template name="Jun" text="giu"/>
+<l:template name="Jul" text="lug"/>
+<l:template name="Aug" text="ago"/>
+<l:template name="Sep" text="set"/>
+<l:template name="Oct" text="ott"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dic"/>
+<l:template name="Mon" text="lun"/>
+<l:template name="Tue" text="mar"/>
+<l:template name="Wed" text="mer"/>
+<l:template name="Thu" text="gio"/>
+<l:template name="Fri" text="ven"/>
+<l:template name="Sat" text="sab"/>
+<l:template name="Sun" text="dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0410 Italian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ja.xml b/docs/xsl-generic/common/ja.xml
new file mode 100644
index 00000000..aedc1b12
--- /dev/null
+++ b/docs/xsl-generic/common/ja.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ja" english-language-name="Japanese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ja.xml -->
+<!-- * -->
+<!-- * E-mail the edited ja.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="概要"/>
+<l:gentext key="abstract" text="概要"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="付録"/>
+<l:gentext key="appendix" text="付録"/>
+<l:gentext key="Article" text="項目"/>
+<l:gentext key="article" text="項目"/>
+<l:gentext key="Author" text="著者"/>
+<l:gentext key="Bibliography" text="参考文献"/>
+<l:gentext key="bibliography" text="参考文献"/>
+<l:gentext key="Book" text="ブック"/>
+<l:gentext key="book" text="ブック"/>
+<l:gentext key="CAUTION" text="注意"/>
+<l:gentext key="Caution" text="注意"/>
+<l:gentext key="caution" text="注意"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="奥付"/>
+<l:gentext key="colophon" text="奥付"/>
+<l:gentext key="Copyright" text="製作著作"/>
+<l:gentext key="copyright" text="製作著作"/>
+<l:gentext key="Dedication" text="謝辞"/>
+<l:gentext key="dedication" text="謝辞"/>
+<l:gentext key="Edition" text="編集"/>
+<l:gentext key="edition" text="編集"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="式"/>
+<l:gentext key="equation" text="式"/>
+<l:gentext key="Example" text="例"/>
+<l:gentext key="example" text="例"/>
+<l:gentext key="Figure" text="図"/>
+<l:gentext key="figure" text="図"/>
+<l:gentext key="Glossary" text="用語集"/>
+<l:gentext key="glossary" text="用語集"/>
+<l:gentext key="GlossSee" text="参照"/>
+<l:gentext key="glosssee" text="参照"/>
+<l:gentext key="GlossSeeAlso" text="参照"/>
+<l:gentext key="glossseealso" text="参照"/>
+<l:gentext key="IMPORTANT" text="重要項目"/>
+<l:gentext key="important" text="重要項目"/>
+<l:gentext key="Important" text="重要項目"/>
+<l:gentext key="Index" text="目次"/>
+<l:gentext key="index" text="目次"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text="対象者"/>
+<l:gentext key="msgaud" text="対象者"/>
+<l:gentext key="MsgLevel" text="レベル"/>
+<l:gentext key="msglevel" text="レベル"/>
+<l:gentext key="MsgOrig" text="発信元"/>
+<l:gentext key="msgorig" text="発信元"/>
+<l:gentext key="NOTE" text="注意"/>
+<l:gentext key="Note" text="注意"/>
+<l:gentext key="note" text="注意"/>
+<l:gentext key="Part" text="パート"/>
+<l:gentext key="part" text="パート"/>
+<l:gentext key="Preface" text="序文"/>
+<l:gentext key="preface" text="序文"/>
+<l:gentext key="Procedure" text="手順"/>
+<l:gentext key="procedure" text="手順"/>
+<l:gentext key="ProductionSet" text="プロダクション"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="発行"/>
+<l:gentext key="published" text="発行"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="問:、答:"/>
+<l:gentext key="qandadiv" text="問:、答:"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="問:"/>
+<l:gentext key="question" text="問:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="参照"/>
+<l:gentext key="reference" text="参照"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="名前"/>
+<l:gentext key="refname" text="名前"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="概要"/>
+<l:gentext key="refsynopsisdiv" text="概要"/>
+<l:gentext key="RevHistory" text="改訂履歴"/>
+<l:gentext key="revhistory" text="改訂履歴"/>
+<l:gentext key="revision" text="改訂"/>
+<l:gentext key="Revision" text="改訂"/>
+<l:gentext key="sect1" text="項"/>
+<l:gentext key="sect2" text="項"/>
+<l:gentext key="sect3" text="項"/>
+<l:gentext key="sect4" text="項"/>
+<l:gentext key="sect5" text="項"/>
+<l:gentext key="section" text="項"/>
+<l:gentext key="Section" text="項"/>
+<l:gentext key="see" text="参照"/>
+<l:gentext key="See" text="参照"/>
+<l:gentext key="seealso" text="参照"/>
+<l:gentext key="Seealso" text="参照"/>
+<l:gentext key="SeeAlso" text="参照"/>
+<l:gentext key="set" text="設定"/>
+<l:gentext key="Set" text="設定"/>
+<l:gentext key="setindex" text="目次設定"/>
+<l:gentext key="SetIndex" text="目次設定"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="サイドバー"/>
+<l:gentext key="step" text="ステップ"/>
+<l:gentext key="Step" text="ステップ"/>
+<l:gentext key="table" text="表"/>
+<l:gentext key="Table" text="表"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ティップ"/>
+<l:gentext key="TIP" text="ティップ"/>
+<l:gentext key="Tip" text="ティップ"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="、"/>
+<l:gentext key="by" text=":"/>
+<l:gentext key="Edited" text="編者"/>
+<l:gentext key="edited" text="編者"/>
+<l:gentext key="Editedby" text="編者:"/>
+<l:gentext key="editedby" text="編者:"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="要素が存在しません"/>
+<l:gentext key="notes" text="注意"/>
+<l:gentext key="Notes" text="注意"/>
+<l:gentext key="Pgs" text="偧献"/>
+<l:gentext key="pgs" text="偧献"/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="注意"/>
+<l:gentext key="tablenotes" text="注意"/>
+<l:gentext key="TableofContents" text="目次"/>
+<l:gentext key="tableofcontents" text="目次"/>
+<l:gentext key="unexpectedelementname" text="不明な要素名"/>
+<l:gentext key="unsupported" text="サポートしません"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="式目次"/>
+<l:gentext key="ListofEquations" text="式目次"/>
+<l:gentext key="ListofExamples" text="例目次"/>
+<l:gentext key="listofexamples" text="例目次"/>
+<l:gentext key="ListofFigures" text="図目次"/>
+<l:gentext key="listoffigures" text="図目次"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="表目次"/>
+<l:gentext key="ListofTables" text="表目次"/>
+<l:gentext key="ListofUnknown" text="不明目次"/>
+<l:gentext key="listofunknown" text="不明目次"/>
+<l:gentext key="nav-home" text="ホーム"/>
+<l:gentext key="nav-next" text="次のページ"/>
+<l:gentext key="nav-next-sibling" text="早送り"/>
+<l:gentext key="nav-prev" text="前のページ"/>
+<l:gentext key="nav-prev-sibling" text="巻戻し"/>
+<l:gentext key="nav-up" text="上に戻る"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="シンボル"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="「"/>
+<l:dingbat key="endquote" text="」"/>
+<l:dingbat key="nestedstartquote" text="『"/>
+<l:dingbat key="nestedendquote" text="』"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="●"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="family-given"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="付録 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="第%n章 %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="式 %n. %t"/>
+<l:template name="example" text="例 %n. %t"/>
+<l:template name="figure" text="図 %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="パート %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="手順 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="プロダクション %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表 %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="付録 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="第%n章 %t"/>
+<l:template name="part" text="パート %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="%t項"/>
+<l:template name="refsection" text="%t項"/>
+<l:template name="refsect1" text="%t項"/>
+<l:template name="refsect2" text="%t項"/>
+<l:template name="refsect3" text="%t項"/>
+<l:template name="sect1" text="%t項"/>
+<l:template name="sect2" text="%t項"/>
+<l:template name="sect3" text="%t項"/>
+<l:template name="sect4" text="%t項"/>
+<l:template name="sect5" text="%t項"/>
+<l:template name="section" text="%t項"/>
+<l:template name="simplesect" text="%t項"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="付録%n"/>
+<l:template name="bridgehead" text="項 %n"/>
+<l:template name="chapter" text="第%n章"/>
+<l:template name="equation" text="式 %n"/>
+<l:template name="example" text="例 %n"/>
+<l:template name="figure" text="図 %n"/>
+<l:template name="part" text="パート %n"/>
+<l:template name="procedure" text="手順 %n"/>
+<l:template name="productionset" text="プロダクション %n"/>
+<l:template name="qandadiv" text="問:、答: %n"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="sect1" text="項%n"/>
+<l:template name="sect2" text="項%n"/>
+<l:template name="sect3" text="項%n"/>
+<l:template name="sect4" text="項%n"/>
+<l:template name="sect5" text="項%n"/>
+<l:template name="section" text="項%n"/>
+<l:template name="table" text="表 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="付録 %n. %t"/>
+<l:template name="bridgehead" text="項 %n. 「%t」"/>
+<l:template name="chapter" text="第%n章"/>
+<l:template name="equation" text="式 %n. 「%t」"/>
+<l:template name="example" text="例 %n. 「%t」"/>
+<l:template name="figure" text="図 %n. 「%t」"/>
+<l:template name="part" text="パート %n. 「%t」"/>
+<l:template name="procedure" text="手順 %n. 「%t」"/>
+<l:template name="productionset" text="プロダクション %n. 「%t」"/>
+<l:template name="qandadiv" text="問:、答: %n. 「%t」"/>
+<l:template name="refsect1" text="「%t」"/>
+<l:template name="refsect2" text="「%t」"/>
+<l:template name="refsect3" text="「%t」"/>
+<l:template name="refsection" text="「%t」"/>
+<l:template name="sect1" text="項%n. 「%t」"/>
+<l:template name="sect2" text="項%n. 「%t」"/>
+<l:template name="sect3" text="項%n. 「%t」"/>
+<l:template name="sect4" text="項%n. 「%t」"/>
+<l:template name="sect5" text="項%n. 「%t」"/>
+<l:template name="section" text="項%n. 「%t」"/>
+<l:template name="simplesect" text="「%t」"/>
+<l:template name="table" text="表 %n. 「%t」"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" 、 "/>
+<l:template name="seplast" text=", 、 "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="参照 %t"/>
+<l:template name="seealso" text="参照 %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="対象者: "/>
+<l:template name="MsgLevel" text="レベル: "/>
+<l:template name="MsgOrig" text="発信元: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0411 Japanese"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/kn.xml b/docs/xsl-generic/common/kn.xml
new file mode 100644
index 00000000..7128add7
--- /dev/null
+++ b/docs/xsl-generic/common/kn.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="kn" english-language-name="Kannada">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/kn.xml -->
+<!-- * -->
+<!-- * E-mail the edited kn.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ಸಾರಾಂಶ"/>
+<l:gentext key="abstract" text="ಸಾರಾಂಶ"/>
+<l:gentext key="Answer" text="ಉ:"/>
+<l:gentext key="answer" text="ಉ:"/>
+<l:gentext key="Appendix" text="ಅನುಬಂಧ"/>
+<l:gentext key="appendix" text="ಅನುಬಂಧ"/>
+<l:gentext key="Article" text="ಲೇಖನ"/>
+<l:gentext key="article" text="ಲೇಖನ"/>
+<l:gentext key="Author" text="ಲೇಖಕ"/>
+<l:gentext key="Bibliography" text="Bibliography"/>
+<l:gentext key="bibliography" text="Bibliography"/>
+<l:gentext key="Book" text="ಪುಸ್ತಕ"/>
+<l:gentext key="book" text="ಪುಸ್ತಕ"/>
+<l:gentext key="CAUTION" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="Caution" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="caution" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="Chapter" text="ಅಧ್ಯಾಯ"/>
+<l:gentext key="chapter" text="ಅಧ್ಯಾಯ"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="ಕೃತಿಸ್ವಾಮ್ಯ"/>
+<l:gentext key="copyright" text="ಕೃತಿಸ್ವಾಮ್ಯ"/>
+<l:gentext key="Dedication" text="ಸಮರ್ಪಣೆ"/>
+<l:gentext key="dedication" text="ಸಮರ್ಪಣೆ"/>
+<l:gentext key="Edition" text="ಆವೃತ್ತಿ"/>
+<l:gentext key="edition" text="ಆವೃತ್ತಿ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="ಸಮೀಕರಣ"/>
+<l:gentext key="equation" text="ಸಮೀಕರಣ"/>
+<l:gentext key="Example" text="ಉದಾಹರಣೆ"/>
+<l:gentext key="example" text="ಉದಾಹರಣೆ"/>
+<l:gentext key="Figure" text="ಚಿತ್ರ"/>
+<l:gentext key="figure" text="ಚಿತ್ರ"/>
+<l:gentext key="Glossary" text="ಪಾರಿಭಾಷಿಕಕೋಶ"/>
+<l:gentext key="glossary" text="ಪಾರಿಭಾಷಿಕಕೋಶ"/>
+<l:gentext key="GlossSee" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="glosssee" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="GlossSeeAlso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="glossseealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="IMPORTANT" text="ಮಹತ್ವ"/>
+<l:gentext key="important" text="ಮಹತ್ವ"/>
+<l:gentext key="Important" text="ಮಹತ್ವ"/>
+<l:gentext key="Index" text="ಅನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="index" text="ಅನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legal Notice"/>
+<l:gentext key="legalnotice" text="Legal Notice"/>
+<l:gentext key="MsgAud" text="ಶ್ರೋತೃಗಳು"/>
+<l:gentext key="msgaud" text="ಶ್ರೋತೃಗಳು"/>
+<l:gentext key="MsgLevel" text="ಸ್ತರ"/>
+<l:gentext key="msglevel" text="ಸ್ತರ"/>
+<l:gentext key="MsgOrig" text="ಮೂಲ"/>
+<l:gentext key="msgorig" text="ಮೂಲ"/>
+<l:gentext key="NOTE" text="ಸೂಚನೆ"/>
+<l:gentext key="Note" text="ಸೂಚನೆ"/>
+<l:gentext key="note" text="ಸೂಚನೆ"/>
+<l:gentext key="Part" text="ಭಾಗ"/>
+<l:gentext key="part" text="ಭಾಗ"/>
+<l:gentext key="Preface" text="ಪೀಠಿಕೆ"/>
+<l:gentext key="preface" text="ಪೀಠಿಕೆ"/>
+<l:gentext key="Procedure" text="ಕಾರ್ಯವಿಧಾನ"/>
+<l:gentext key="procedure" text="ಕಾರ್ಯವಿಧಾನ"/>
+<l:gentext key="ProductionSet" text="ನಿರ್ಮಾಣ"/>
+<l:gentext key="PubDate" text="ಪ್ರಕಟನೆ ದಿನಾಂಕ"/>
+<l:gentext key="pubdate" text="ಪ್ರಕಟನೆ ದಿನಾಂಕ"/>
+<l:gentext key="Published" text="ಪ್ರಕಾಶಪಡಿಸಿದ"/>
+<l:gentext key="published" text="ಪ್ರಕಾಶಪಡಿಸಿದ"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ಪ್ರ &amp; ಉ"/>
+<l:gentext key="qandadiv" text="ಪ್ರ &amp; ಉ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ಪ್ರ:"/>
+<l:gentext key="question" text="ಪ್ರ:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="ಉಲ್ಲೇಖ"/>
+<l:gentext key="reference" text="ಉಲ್ಲೇಖ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ಹೆಸರು"/>
+<l:gentext key="refname" text="ಹೆಸರು"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="ಸಾರಾಂಶ"/>
+<l:gentext key="refsynopsisdiv" text="ಸಾರಾಂಶ"/>
+<l:gentext key="RevHistory" text="ಪುರಾವೃತ್ತ ಪರಿಷ್ಕರಣೆ"/>
+<l:gentext key="revhistory" text="ಪುರಾವೃತ್ತ ಪರಿಷ್ಕರಣೆ"/>
+<l:gentext key="revision" text="ಪರಿಷ್ಕರಣೆ"/>
+<l:gentext key="Revision" text="ಪರಿಷ್ಕರಣೆ"/>
+<l:gentext key="sect1" text="ವಿಭಾಗ"/>
+<l:gentext key="sect2" text="ವಿಭಾಗ"/>
+<l:gentext key="sect3" text="ವಿಭಾಗ"/>
+<l:gentext key="sect4" text="ವಿಭಾಗ"/>
+<l:gentext key="sect5" text="ವಿಭಾಗ"/>
+<l:gentext key="section" text="ವಿಭಾಗ"/>
+<l:gentext key="Section" text="ವಿಭಾಗ"/>
+<l:gentext key="see" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="See" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="seealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="Seealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="SeeAlso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="set" text="ಹೊಂದಿಸು"/>
+<l:gentext key="Set" text="ಹೊಂದಿಸು"/>
+<l:gentext key="setindex" text="ಅನುಕ್ರಮಣಿಕೆ ಹೊಂದಿಸು"/>
+<l:gentext key="SetIndex" text="ಅನುಕ್ರಮಣಿಕೆ ಹೊಂದಿಸು"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="ಹಂತ"/>
+<l:gentext key="Step" text="ಹಂತ"/>
+<l:gentext key="table" text="ಕೋಷ್ಟಕ"/>
+<l:gentext key="Table" text="ಕೋಷ್ಟಕ"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ಕಿವಿಮಾತು"/>
+<l:gentext key="TIP" text="ಕಿವಿಮಾತು"/>
+<l:gentext key="Tip" text="ಕಿವಿಮಾತು"/>
+<l:gentext key="Warning" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="warning" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="WARNING" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="and" text="ಮತ್ತು"/>
+<l:gentext key="by" text="ಯಿಂದ"/>
+<l:gentext key="Edited" text="ಸಂಪಾದಿಸಿದ"/>
+<l:gentext key="edited" text="ಸಂಪಾದಿಸಿದ"/>
+<l:gentext key="Editedby" text="ಸಂಪಾದಕ"/>
+<l:gentext key="editedby" text="ಸಂಪಾದಕ"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="non-existant element"/>
+<l:gentext key="notes" text="ಟಿಪ್ಪಣಿ"/>
+<l:gentext key="Notes" text="ಟಿಪ್ಪಣಿ"/>
+<l:gentext key="Pgs" text="ಪುಟಗಳು."/>
+<l:gentext key="pgs" text="ಪುಟಗಳು."/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Notes"/>
+<l:gentext key="tablenotes" text="Notes"/>
+<l:gentext key="TableofContents" text="ವಿಷಯಾನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="tableofcontents" text="ವಿಷಯಾನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="unexpectedelementname" text="ಅನಿರೀಕ್ಷಿತ ವಸ್ತುವಿನ ಹೆಸರು"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="ಸಮೀಕರಣಪಟ್ಟಿ "/>
+<l:gentext key="ListofEquations" text="ಸಮೀಕರಣಪಟ್ಟಿ "/>
+<l:gentext key="ListofExamples" text="List of Examples"/>
+<l:gentext key="listofexamples" text="List of Examples"/>
+<l:gentext key="ListofFigures" text="List of Figures"/>
+<l:gentext key="listoffigures" text="List of Figures"/>
+<l:gentext key="ListofProcedures" text="List of Procedures"/>
+<l:gentext key="listofprocedures" text="List of Procedures"/>
+<l:gentext key="listoftables" text="List of Tables"/>
+<l:gentext key="ListofTables" text="List of Tables"/>
+<l:gentext key="ListofUnknown" text="List of Unknown"/>
+<l:gentext key="listofunknown" text="List of Unknown"/>
+<l:gentext key="nav-home" text="ಮನೆ"/>
+<l:gentext key="nav-next" text="ಮುಂದಿನ"/>
+<l:gentext key="nav-next-sibling" text="Fast Forward"/>
+<l:gentext key="nav-prev" text="ಹಿಂದಿನ"/>
+<l:gentext key="nav-prev-sibling" text="Fast Backward"/>
+<l:gentext key="nav-up" text="ಮೇಲೆ"/>
+<l:gentext key="nav-toc" text="ToC"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ಅನುಬಂಧ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ಸಮೀಕರಣ %n. %t"/>
+<l:template name="example" text="ಉದಾಹರಣೆ %n. %t"/>
+<l:template name="figure" text="ಚಿತ್ರ %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ಭಾಗ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ಕಾರ್ಯವಿಧಾನ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ನಿರ್ಮಾಣ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ಕೋಷ್ಟಕ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ಅನುಬಂಧ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n. %t"/>
+<l:template name="part" text="ಭಾಗ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="ಉ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ಪ್ರ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ಪ್ರ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="sect1" text="the section called “%t”"/>
+<l:template name="sect2" text="the section called “%t”"/>
+<l:template name="sect3" text="the section called “%t”"/>
+<l:template name="sect4" text="the section called “%t”"/>
+<l:template name="sect5" text="the section called “%t”"/>
+<l:template name="section" text="the section called “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ಉ: %n"/>
+<l:template name="appendix" text="ಅನುಬಂಧ %n"/>
+<l:template name="bridgehead" text="ವಿಭಾಗ %n"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n"/>
+<l:template name="equation" text="ಸಮೀಕರಣ %n"/>
+<l:template name="example" text="ಉದಾಹರಣೆ %n"/>
+<l:template name="figure" text="ಚಿತ್ರ %n"/>
+<l:template name="part" text="ಭಾಗ %n"/>
+<l:template name="procedure" text="ಕಾರ್ಯವಿಧಾನ %n"/>
+<l:template name="productionset" text="ನಿರ್ಮಾಣ %n"/>
+<l:template name="qandadiv" text="ಪ್ರ &amp; ಉ %n"/>
+<l:template name="qandaentry" text="ಪ್ರ: %n"/>
+<l:template name="question" text="ಪ್ರ: %n"/>
+<l:template name="sect1" text="ವಿಭಾಗ %n"/>
+<l:template name="sect2" text="ವಿಭಾಗ %n"/>
+<l:template name="sect3" text="ವಿಭಾಗ %n"/>
+<l:template name="sect4" text="ವಿಭಾಗ %n"/>
+<l:template name="sect5" text="ವಿಭಾಗ %n"/>
+<l:template name="section" text="ವಿಭಾಗ %n"/>
+<l:template name="table" text="ಕೋಷ್ಟಕ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ಅನುಬಂಧ %n, %t"/>
+<l:template name="bridgehead" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n, %t"/>
+<l:template name="equation" text="ಸಮೀಕರಣ %n, “%t”"/>
+<l:template name="example" text="ಉದಾಹರಣೆ %n, “%t”"/>
+<l:template name="figure" text="ಚಿತ್ರ %n, “%t”"/>
+<l:template name="part" text="ಭಾಗ %n, “%t”"/>
+<l:template name="procedure" text="ಕಾರ್ಯವಿಧಾನ %n, “%t”"/>
+<l:template name="productionset" text="ನಿರ್ಮಾಣ %n, “%t”"/>
+<l:template name="qandadiv" text="ಪ್ರ &amp; ಉ %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect2" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect3" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect4" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect5" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="section" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="ಕೋಷ್ಟಕ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ಮತ್ತು "/>
+<l:template name="seplast" text=", ಮತ್ತು "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ಇದನ್ನು ನೋಡಿ %t"/>
+<l:template name="seealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ಶ್ರೋತೃಗಳು: "/>
+<l:template name="MsgLevel" text="ಸ್ತರ: "/>
+<l:template name="MsgOrig" text="ಮೂಲ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ಜನೆವರಿ"/>
+<l:template name="February" text="ಫೆಬ್ರುವರಿ"/>
+<l:template name="March" text="ಮಾರ್ಚ್"/>
+<l:template name="April" text="ಏಪ್ರಲ್"/>
+<l:template name="May" text="ಮೇ"/>
+<l:template name="June" text="ಜೂನ್"/>
+<l:template name="July" text="ಜುಲೈ"/>
+<l:template name="August" text="ಅಗಷ್ಟ"/>
+<l:template name="September" text="ಸೆಪ್ಟೆಂಬರ್"/>
+<l:template name="October" text="ಅಕ್ಟೋಬರ್"/>
+<l:template name="November" text="ನವೆಂಬರ್"/>
+<l:template name="December" text="ಡಿಸೆಂಬರ್"/>
+<l:template name="Monday" text="ಸೋಮವಾರ"/>
+<l:template name="Tuesday" text="ಮಂಗಳವಾರ"/>
+<l:template name="Wednesday" text="ಬುಧವಾರ"/>
+<l:template name="Thursday" text="ಗುರುವಾರ"/>
+<l:template name="Friday" text="ಶುಕ್ರವಾರ"/>
+<l:template name="Saturday" text="ಶನಿವಾರ"/>
+<l:template name="Sunday" text="ರವಿವಾರ"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ಜನೆವರಿ"/>
+<l:template name="Feb" text="ಫೆಬ್ರುವರಿ"/>
+<l:template name="Mar" text="ಮಾರ್ಚ್"/>
+<l:template name="Apr" text="ಏಪ್ರಿಲ್"/>
+<l:template name="May" text="ಮೇ"/>
+<l:template name="Jun" text="ಜೂನ್"/>
+<l:template name="Jul" text="ಜುಲೈ"/>
+<l:template name="Aug" text="ಅಗಷ್ಟ"/>
+<l:template name="Sep" text="ಸೆಪ್ಟೆಂಬರ್"/>
+<l:template name="Oct" text="ಅಕ್ಟೋಬರ್"/>
+<l:template name="Nov" text="ನವೆಂಬರ್"/>
+<l:template name="Dec" text="ಡಿಸೆಂಬರ್"/>
+<l:template name="Mon" text="ಸೋಮ"/>
+<l:template name="Tue" text="ಮಂಗಳ"/>
+<l:template name="Wed" text="ಬುಧ"/>
+<l:template name="Thu" text="ಗುರು"/>
+<l:template name="Fri" text="ಶುಕ್ರ"/>
+<l:template name="Sat" text="ಶನಿ"/>
+<l:template name="Sun" text="ರವಿ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x044b Kannada (INDIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ko.xml b/docs/xsl-generic/common/ko.xml
new file mode 100644
index 00000000..02a4ec01
--- /dev/null
+++ b/docs/xsl-generic/common/ko.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ko" english-language-name="Korean">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ko.xml -->
+<!-- * -->
+<!-- * E-mail the edited ko.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="초록"/>
+<l:gentext key="abstract" text="초록"/>
+<l:gentext key="Answer" text="답변"/>
+<l:gentext key="answer" text="답변"/>
+<l:gentext key="Appendix" text="부록"/>
+<l:gentext key="appendix" text="부록"/>
+<l:gentext key="Article" text="문서"/>
+<l:gentext key="article" text="문서"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="서지사항"/>
+<l:gentext key="bibliography" text="서지사항"/>
+<l:gentext key="Book" text="책"/>
+<l:gentext key="book" text="책"/>
+<l:gentext key="CAUTION" text="[경고]"/>
+<l:gentext key="Caution" text="경고"/>
+<l:gentext key="caution" text="경고"/>
+<l:gentext key="Chapter" text="장"/>
+<l:gentext key="chapter" text="장"/>
+<l:gentext key="Colophon" text="판권"/>
+<l:gentext key="colophon" text="판권"/>
+<l:gentext key="Copyright" text="저작권"/>
+<l:gentext key="copyright" text="저작권"/>
+<l:gentext key="Dedication" text="바치는 글"/>
+<l:gentext key="dedication" text="바치는 글"/>
+<l:gentext key="Edition" text="엮음"/>
+<l:gentext key="edition" text="엮음"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="수식"/>
+<l:gentext key="equation" text="수식"/>
+<l:gentext key="Example" text="예"/>
+<l:gentext key="example" text="예"/>
+<l:gentext key="Figure" text="그림"/>
+<l:gentext key="figure" text="그림"/>
+<l:gentext key="Glossary" text="용어해설"/>
+<l:gentext key="glossary" text="용어해설"/>
+<l:gentext key="GlossSee" text="살펴볼 내용"/>
+<l:gentext key="glosssee" text="살펴볼 내용"/>
+<l:gentext key="GlossSeeAlso" text="다른 살펴볼 내용"/>
+<l:gentext key="glossseealso" text="다른 살펴볼 내용"/>
+<l:gentext key="IMPORTANT" text="[중요]"/>
+<l:gentext key="important" text="중요"/>
+<l:gentext key="Important" text="중요"/>
+<l:gentext key="Index" text="색인"/>
+<l:gentext key="index" text="색인"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="법적 공지"/>
+<l:gentext key="legalnotice" text="법적 공지"/>
+<l:gentext key="MsgAud" text="받는 이"/>
+<l:gentext key="msgaud" text="받는 이"/>
+<l:gentext key="MsgLevel" text="중요도"/>
+<l:gentext key="msglevel" text="중요도"/>
+<l:gentext key="MsgOrig" text="보내는 이"/>
+<l:gentext key="msgorig" text="보내는 이"/>
+<l:gentext key="NOTE" text="[참고]"/>
+<l:gentext key="Note" text="참고"/>
+<l:gentext key="note" text="참고"/>
+<l:gentext key="Part" text="부"/>
+<l:gentext key="part" text="부"/>
+<l:gentext key="Preface" text="서문"/>
+<l:gentext key="preface" text="서문"/>
+<l:gentext key="Procedure" text="절차"/>
+<l:gentext key="procedure" text="절차"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="펴냄"/>
+<l:gentext key="published" text="펴냄"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="질문그리고답변"/>
+<l:gentext key="qandadiv" text="질문그리고답변"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="질문"/>
+<l:gentext key="question" text="질문"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="참고문헌"/>
+<l:gentext key="reference" text="참고문헌"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="제목"/>
+<l:gentext key="refname" text="제목"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="요약"/>
+<l:gentext key="refsynopsisdiv" text="요약"/>
+<l:gentext key="RevHistory" text="고친 과정"/>
+<l:gentext key="revhistory" text="고친 과정"/>
+<l:gentext key="revision" text="고침"/>
+<l:gentext key="Revision" text="고침"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="절"/>
+<l:gentext key="Section" text="절"/>
+<l:gentext key="see" text="살펴볼 내용"/>
+<l:gentext key="See" text="살펴볼 내용"/>
+<l:gentext key="seealso" text="[살펴볼 다른 내용]"/>
+<l:gentext key="Seealso" text="살펴볼 다른 내용"/>
+<l:gentext key="SeeAlso" text="[살펴볼 다른 내용]"/>
+<l:gentext key="set" text="전집"/>
+<l:gentext key="Set" text="전집"/>
+<l:gentext key="setindex" text="전집 색인"/>
+<l:gentext key="SetIndex" text="전집 색인"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="덧붙임"/>
+<l:gentext key="step" text="단계"/>
+<l:gentext key="Step" text="단계"/>
+<l:gentext key="table" text="표"/>
+<l:gentext key="Table" text="표"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="작은 정보"/>
+<l:gentext key="TIP" text="[작은 정보]"/>
+<l:gentext key="Tip" text="작은 정보"/>
+<l:gentext key="Warning" text="주의"/>
+<l:gentext key="warning" text="주의"/>
+<l:gentext key="WARNING" text="주의!"/>
+<l:gentext key="and" text="그리고"/>
+<l:gentext key="by" text="지은이"/>
+<l:gentext key="Edited" text="엮음"/>
+<l:gentext key="edited" text="엮음"/>
+<l:gentext key="Editedby" text="엮은이"/>
+<l:gentext key="editedby" text="엮은이"/>
+<l:gentext key="in" text="-"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="존재하지 않는 기초요소입니다"/>
+<l:gentext key="notes" text="주석"/>
+<l:gentext key="Notes" text="주석"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="고친이 "/>
+<l:gentext key="revisedby" text="고친이 "/>
+<l:gentext key="TableNotes" text="참고"/>
+<l:gentext key="tablenotes" text="참고"/>
+<l:gentext key="TableofContents" text="차례"/>
+<l:gentext key="tableofcontents" text="차례"/>
+<l:gentext key="unexpectedelementname" text="알 수 없는 기초요소 이름입니다"/>
+<l:gentext key="unsupported" text="지원되지 않습니다"/>
+<l:gentext key="xrefto" text="이 곳을 참조하세요 : "/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="수식 목록"/>
+<l:gentext key="ListofEquations" text="수식 목록"/>
+<l:gentext key="ListofExamples" text="예 목록"/>
+<l:gentext key="listofexamples" text="예 목록"/>
+<l:gentext key="ListofFigures" text="그림 목록"/>
+<l:gentext key="listoffigures" text="그림 목록"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="표 목록"/>
+<l:gentext key="ListofTables" text="표 목록"/>
+<l:gentext key="ListofUnknown" text="기타 목록"/>
+<l:gentext key="listofunknown" text="기타 목록"/>
+<l:gentext key="nav-home" text="처음으로"/>
+<l:gentext key="nav-next" text="다음"/>
+<l:gentext key="nav-next-sibling" text="다음으로 건너뜀"/>
+<l:gentext key="nav-prev" text="이전"/>
+<l:gentext key="nav-prev-sibling" text="이전으로 건너뜀"/>
+<l:gentext key="nav-up" text="위로"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="부록 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%n장. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="수식 %n. %t"/>
+<l:template name="example" text="예 %n. %t"/>
+<l:template name="figure" text="그림 %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%n부. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="절차 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="표 %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="부록 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="%n장. %t"/>
+<l:template name="part" text="부 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="답변 %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="질문 %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="질문 %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="답변 %n"/>
+<l:template name="appendix" text="부록 %n"/>
+<l:template name="bridgehead" text="절 %n"/>
+<l:template name="chapter" text="%n장"/>
+<l:template name="equation" text="수식 %n"/>
+<l:template name="example" text="예 %n"/>
+<l:template name="figure" text="그림 %n"/>
+<l:template name="part" text="%n부"/>
+<l:template name="procedure" text="절차 %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="질문그리고답변 %n"/>
+<l:template name="qandaentry" text="질문 %n"/>
+<l:template name="question" text="질문 %n"/>
+<l:template name="sect1" text="%n절"/>
+<l:template name="sect2" text="%n절"/>
+<l:template name="sect3" text="%n절"/>
+<l:template name="sect4" text="%n절"/>
+<l:template name="sect5" text="%n절"/>
+<l:template name="section" text="%n절"/>
+<l:template name="table" text="표 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="부록 %n. %t"/>
+<l:template name="bridgehead" text="절 %n. “%t”"/>
+<l:template name="chapter" text="%n장. %t"/>
+<l:template name="equation" text="수식 %n. “%t”"/>
+<l:template name="example" text="예 %n. “%t”"/>
+<l:template name="figure" text="그림 %n. “%t”"/>
+<l:template name="part" text="%n부. %t"/>
+<l:template name="procedure" text="절차 %n. “%t”"/>
+<l:template name="productionset" text="Production %n. “%t”"/>
+<l:template name="qandadiv" text="질문그리고답변 %n. “%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="sect1" text="%n절. “%t”"/>
+<l:template name="sect2" text="%n절. “%t”"/>
+<l:template name="sect3" text="%n절. “%t”"/>
+<l:template name="sect4" text="%n절. “%t”"/>
+<l:template name="sect5" text="%n절. “%t”"/>
+<l:template name="section" text="%n절. “%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+<l:template name="table" text="표 %n. “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" 그리고 "/>
+<l:template name="seplast" text=", 그리고 "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="살펴볼 내용 %t"/>
+<l:template name="seealso" text="다른 살펴볼 내용 %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="받는 이: "/>
+<l:template name="MsgLevel" text="중요도: "/>
+<l:template name="MsgOrig" text="보내는 이: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0412 Korean"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/l10n.dtd b/docs/xsl-generic/common/l10n.dtd
new file mode 100644
index 00000000..1d6f8361
--- /dev/null
+++ b/docs/xsl-generic/common/l10n.dtd
@@ -0,0 +1,63 @@
+<!ENTITY % prefix "l">
+
+<!ENTITY % xmlns "xmlns:%prefix;">
+<!ENTITY % uri "'http://docbook.sourceforge.net/xmlns/l10n/1.0'">
+
+<!ENTITY % i18n "%prefix;:i18n">
+<!ENTITY % l10n "%prefix;:l10n">
+<!ENTITY % gentext "%prefix;:gentext">
+<!ENTITY % dingbat "%prefix;:dingbat">
+<!ENTITY % context "%prefix;:context">
+<!ENTITY % template "%prefix;:template">
+<!ENTITY % letters "%prefix;:letters">
+<!ENTITY % l "%prefix;:l">
+<!ENTITY % lang "lang NMTOKEN #IMPLIED">
+
+<!ELEMENT %i18n; ((%l10n;)+)>
+<!ATTLIST %i18n;
+ %xmlns; CDATA #FIXED %uri;
+>
+
+<!ELEMENT %l10n; (%gentext;|%dingbat;|%context;|%letters;)*>
+<!ATTLIST %l10n;
+ %xmlns; CDATA #FIXED %uri;
+ language CDATA #REQUIRED
+ english-language-name CDATA #IMPLIED
+>
+
+<!ELEMENT %gentext; EMPTY>
+<!ATTLIST %gentext;
+ %lang;
+ key CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
+<!ELEMENT %dingbat; EMPTY>
+<!ATTLIST %dingbat;
+ %lang;
+ key CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
+<!ELEMENT %context; ((%template;)+)>
+<!ATTLIST %context;
+ name CDATA #REQUIRED
+>
+
+<!ELEMENT %template; EMPTY>
+<!ATTLIST %template;
+ %lang;
+ name CDATA #REQUIRED
+ text CDATA #REQUIRED
+ style CDATA #IMPLIED
+>
+
+<!ELEMENT %letters; ((%l;)+)>
+<!ATTLIST %letters;
+ %lang;
+>
+
+<!ELEMENT %l; (#PCDATA)>
+<!ATTLIST %l;
+ i CDATA #REQUIRED
+>
diff --git a/docs/xsl-generic/common/l10n.xml b/docs/xsl-generic/common/l10n.xml
new file mode 100644
index 00000000..23b2636b
--- /dev/null
+++ b/docs/xsl-generic/common/l10n.xml
@@ -0,0 +1,127 @@
+<?xml version='1.0'?>
+<!DOCTYPE l:i18n SYSTEM "l10n.dtd" [
+<!ENTITY af SYSTEM "af.xml">
+<!ENTITY am SYSTEM "am.xml">
+<!ENTITY ar SYSTEM "ar.xml">
+<!ENTITY az SYSTEM "az.xml">
+<!ENTITY bg SYSTEM "bg.xml">
+<!ENTITY bn SYSTEM "bn.xml">
+<!ENTITY bs SYSTEM "bs.xml">
+<!ENTITY ca SYSTEM "ca.xml">
+<!ENTITY cs SYSTEM "cs.xml">
+<!ENTITY cy SYSTEM "cy.xml">
+<!ENTITY da SYSTEM "da.xml">
+<!ENTITY de SYSTEM "de.xml">
+<!ENTITY el SYSTEM "el.xml">
+<!ENTITY en SYSTEM "en.xml">
+<!ENTITY eo SYSTEM "eo.xml">
+<!ENTITY es SYSTEM "es.xml">
+<!ENTITY et SYSTEM "et.xml">
+<!ENTITY eu SYSTEM "eu.xml">
+<!ENTITY fa SYSTEM "fa.xml">
+<!ENTITY fi SYSTEM "fi.xml">
+<!ENTITY fr SYSTEM "fr.xml">
+<!ENTITY ga SYSTEM "ga.xml">
+<!ENTITY gu SYSTEM "gu.xml">
+<!ENTITY he SYSTEM "he.xml">
+<!ENTITY hi SYSTEM "hi.xml">
+<!ENTITY hr SYSTEM "hr.xml">
+<!ENTITY hu SYSTEM "hu.xml">
+<!ENTITY id SYSTEM "id.xml">
+<!ENTITY it SYSTEM "it.xml">
+<!ENTITY ja SYSTEM "ja.xml">
+<!ENTITY kn SYSTEM "kn.xml">
+<!ENTITY ko SYSTEM "ko.xml">
+<!ENTITY la SYSTEM "la.xml">
+<!ENTITY lit SYSTEM "lt.xml">
+<!ENTITY lv SYSTEM "lv.xml">
+<!ENTITY mn SYSTEM "mn.xml">
+<!ENTITY nl SYSTEM "nl.xml">
+<!ENTITY nn SYSTEM "nn.xml">
+<!ENTITY no SYSTEM "no.xml">
+<!ENTITY or SYSTEM "or.xml">
+<!ENTITY pa SYSTEM "pa.xml">
+<!ENTITY pl SYSTEM "pl.xml">
+<!ENTITY pt_br SYSTEM "pt_br.xml">
+<!ENTITY pt SYSTEM "pt.xml">
+<!ENTITY ro SYSTEM "ro.xml">
+<!ENTITY ru SYSTEM "ru.xml">
+<!ENTITY sk SYSTEM "sk.xml">
+<!ENTITY sl SYSTEM "sl.xml">
+<!ENTITY sq SYSTEM "sq.xml">
+<!ENTITY sr_Latn SYSTEM "sr_Latn.xml">
+<!ENTITY sr SYSTEM "sr.xml">
+<!ENTITY sv SYSTEM "sv.xml">
+<!ENTITY ta SYSTEM "ta.xml">
+<!ENTITY th SYSTEM "th.xml">
+<!ENTITY tl SYSTEM "tl.xml">
+<!ENTITY tr SYSTEM "tr.xml">
+<!ENTITY uk SYSTEM "uk.xml">
+<!ENTITY vi SYSTEM "vi.xml">
+<!ENTITY xh SYSTEM "xh.xml">
+<!ENTITY zh_cn SYSTEM "zh_cn.xml">
+<!ENTITY zh_tw SYSTEM "zh_tw.xml">
+]>
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+&af;
+&am;
+&ar;
+&az;
+&bg;
+&bn;
+&bs;
+&ca;
+&cs;
+&cy;
+&da;
+&de;
+&el;
+&en;
+&eo;
+&es;
+&et;
+&eu;
+&fa;
+&fi;
+&fr;
+&ga;
+&gu;
+&he;
+&hi;
+&hr;
+&hu;
+&id;
+&it;
+&ja;
+&kn;
+&ko;
+&la;
+&lit;
+&lv;
+&mn;
+&nl;
+&nn;
+&no;
+&or;
+&pa;
+&pl;
+&pt;
+&pt_br;
+&ro;
+&ru;
+&sk;
+&sl;
+&sq;
+&sr;
+&sr_Latn;
+&sv;
+&ta;
+&th;
+&tl;
+&tr;
+&uk;
+&vi;
+&xh;
+&zh_cn;
+&zh_tw;
+</l:i18n>
diff --git a/docs/xsl-generic/common/l10n.xsl b/docs/xsl-generic/common/l10n.xsl
new file mode 100644
index 00000000..c385a788
--- /dev/null
+++ b/docs/xsl-generic/common/l10n.xsl
@@ -0,0 +1,441 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+ exclude-result-prefixes="l"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: l10n.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ This file contains localization templates (for internationalization)
+ ******************************************************************** -->
+
+<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
+<xsl:param name="local.l10n.xml" select="document('')"/>
+
+<xsl:template name="l10n.language">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="xref-context" select="false()"/>
+
+ <xsl:variable name="mc-language">
+ <xsl:choose>
+ <xsl:when test="$l10n.gentext.language != ''">
+ <xsl:value-of select="$l10n.gentext.language"/>
+ </xsl:when>
+
+ <xsl:when test="$xref-context or $l10n.gentext.use.xref.language != 0">
+ <!-- can't do this one step: attributes are unordered! -->
+ <xsl:variable name="lang-scope"
+ select="$target/ancestor-or-self::*
+ [@lang or @xml:lang][1]"/>
+ <xsl:variable name="lang-attr"
+ select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- can't do this one step: attributes are unordered! -->
+ <xsl:variable name="lang-scope"
+ select="$target/ancestor-or-self::*
+ [@lang or @xml:lang][1]"/>
+ <xsl:variable name="lang-attr"
+ select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="language" select="translate($mc-language,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+ 'abcdefghijklmnopqrstuvwxyz')"/>
+
+ <xsl:variable name="adjusted.language">
+ <xsl:choose>
+ <xsl:when test="contains($language,'-')">
+ <xsl:value-of select="substring-before($language,'-')"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="substring-after($language,'-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$l10n.xml/l:i18n/l:l10n[@language=$adjusted.language]">
+ <xsl:value-of select="$adjusted.language"/>
+ </xsl:when>
+ <!-- try just the lang code without country -->
+ <xsl:when test="$l10n.xml/l:i18n/l:l10n[@language=substring-before($adjusted.language,'_')]">
+ <xsl:value-of select="substring-before($adjusted.language,'_')"/>
+ </xsl:when>
+ <!-- or use the default -->
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No localization exists for "</xsl:text>
+ <xsl:value-of select="$adjusted.language"/>
+ <xsl:text>" or "</xsl:text>
+ <xsl:value-of select="substring-before($adjusted.language,'_')"/>
+ <xsl:text>". Using default "</xsl:text>
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ <xsl:text>".</xsl:text>
+ </xsl:message>
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="language.attribute">
+ <xsl:param name="node" select="."/>
+
+ <xsl:variable name="language">
+ <xsl:choose>
+ <xsl:when test="$l10n.gentext.language != ''">
+ <xsl:value-of select="$l10n.gentext.language"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- can't do this one step: attributes are unordered! -->
+ <xsl:variable name="lang-scope"
+ select="$node/ancestor-or-self::*
+ [@lang or @xml:lang][1]"/>
+ <xsl:variable name="lang-attr"
+ select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="$language != ''">
+ <xsl:attribute name="lang">
+ <xsl:choose>
+ <xsl:when test="$l10n.lang.value.rfc.compliant != 0">
+ <xsl:value-of select="translate($language, '_', '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <!-- FIXME: This is sort of hack, but it was the easiest way to add at least partial support for dir attribute -->
+ <xsl:copy-of select="ancestor-or-self::*[@dir][1]/@dir"/>
+</xsl:template>
+
+<xsl:template name="gentext">
+ <xsl:param name="key" select="local-name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="local.l10n.gentext"
+ select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:gentext[@key=$key])[1]"/>
+
+ <xsl:variable name="l10n.gentext"
+ select="($l10n.xml/l:i18n/l:l10n[@language=$lang]/l:gentext[@key=$key])[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$local.l10n.gentext">
+ <xsl:value-of select="$local.l10n.gentext/@text"/>
+ </xsl:when>
+ <xsl:when test="$l10n.gentext">
+ <xsl:value-of select="$l10n.gentext/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of "</xsl:text>
+ <xsl:value-of select="$key"/>
+ <xsl:text>" exists</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$lang = 'en'">
+ <xsl:text>.</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>; using "en".</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:message>
+
+ <xsl:value-of select="($l10n.xml/l:i18n/l:l10n[@language='en']/l:gentext[@key=$key])[1]/@text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.element.name">
+ <xsl:param name="element.name" select="local-name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="$element.name"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.space">
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template name="gentext.edited.by">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Editedby'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.by">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'by'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.dingbat">
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="local.l10n.dingbat"
+ select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:dingbat[@key=$dingbat])[1]"/>
+
+ <xsl:variable name="l10n.dingbat"
+ select="($l10n.xml/l:i18n/l:l10n[@language=$lang]/l:dingbat[@key=$dingbat])[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$local.l10n.dingbat">
+ <xsl:value-of select="$local.l10n.dingbat/@text"/>
+ </xsl:when>
+ <xsl:when test="$l10n.dingbat">
+ <xsl:value-of select="$l10n.dingbat/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of dingbat </xsl:text>
+ <xsl:value-of select="$dingbat"/>
+ <xsl:text> exists; using "en".</xsl:text>
+ </xsl:message>
+
+ <xsl:value-of select="($l10n.xml/l:i18n/l:l10n[@language='en']/l:dingbat[@key=$dingbat])[1]/@text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.startquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">startquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.endquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">endquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedstartquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedendquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.prev">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-prev'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.next">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-next'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.home">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-home'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.up">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-up'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="gentext.template">
+ <xsl:param name="context" select="'default'"/>
+ <xsl:param name="name" select="'default'"/>
+ <xsl:param name="origname" select="$name"/>
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="referrer"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:variable name="local.localization.node"
+ select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang])[1]"/>
+
+ <xsl:variable name="localization.node"
+ select="($l10n.xml/l:i18n/l:l10n[@language=$lang])[1]"/>
+
+ <xsl:if test="count($localization.node) = 0
+ and count($local.localization.node) = 0
+ and $verbose != 0">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization exists.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="local.context.node"
+ select="$local.localization.node/l:context[@name=$context]"/>
+
+ <xsl:variable name="context.node"
+ select="$localization.node/l:context[@name=$context]"/>
+
+ <xsl:if test="count($context.node) = 0
+ and count($local.context.node) = 0
+ and $verbose != 0">
+ <xsl:message>
+ <xsl:text>No context named "</xsl:text>
+ <xsl:value-of select="$context"/>
+ <xsl:text>" exists in the "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="local.template.node"
+ select="($local.context.node/l:template[@name=$name
+ and @style
+ and @style=$xrefstyle]
+ |$local.context.node/l:template[@name=$name
+ and not(@style)])[1]"/>
+
+ <xsl:variable name="template.node"
+ select="($context.node/l:template[@name=$name
+ and @style
+ and @style=$xrefstyle]
+ |$context.node/l:template[@name=$name
+ and not(@style)])[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$local.template.node/@text">
+ <xsl:value-of select="$local.template.node/@text"/>
+ </xsl:when>
+ <xsl:when test="$template.node/@text">
+ <xsl:value-of select="$template.node/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($name, '/')">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="$context"/>
+ <xsl:with-param name="name" select="substring-after($name, '/')"/>
+ <xsl:with-param name="origname" select="$origname"/>
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$verbose = 0">
+ <!-- silence -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No template for "</xsl:text>
+ <xsl:value-of select="$origname"/>
+ <xsl:text>" (or any of its leaves) exists
+in the context named "</xsl:text>
+ <xsl:value-of select="$context"/>
+ <xsl:text>" in the "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- silently test if a gentext template exists -->
+
+<xsl:template name="gentext.template.exists">
+ <xsl:param name="context" select="'default'"/>
+ <xsl:param name="name" select="'default'"/>
+ <xsl:param name="origname" select="$name"/>
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="referrer"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="$context"/>
+ <xsl:with-param name="name" select="$name"/>
+ <xsl:with-param name="origname" select="$origname"/>
+ <xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="verbose" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($template) != 0">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/common/la.xml b/docs/xsl-generic/common/la.xml
new file mode 100644
index 00000000..ee1a4ec4
--- /dev/null
+++ b/docs/xsl-generic/common/la.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="la" english-language-name="Latin">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/la.xml -->
+<!-- * -->
+<!-- * E-mail the edited la.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Summarium"/>
+<l:gentext key="abstract" text="summarium"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Additamentum"/>
+<l:gentext key="appendix" text="additamentum"/>
+<l:gentext key="Article" text="Articulus"/>
+<l:gentext key="article" text="articulus"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Conspectus librorum"/>
+<l:gentext key="bibliography" text="conspectus librorum"/>
+<l:gentext key="Book" text="Liber"/>
+<l:gentext key="book" text="liber"/>
+<l:gentext key="CAUTION" text="Caveat"/>
+<l:gentext key="Caution" text="Caveat"/>
+<l:gentext key="caution" text="caveat"/>
+<l:gentext key="Chapter" text="Capitulum"/>
+<l:gentext key="chapter" text="capitulum"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicatoria"/>
+<l:gentext key="dedication" text="dedicatoria"/>
+<l:gentext key="Edition" text="Editio"/>
+<l:gentext key="edition" text="editio"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equatio"/>
+<l:gentext key="equation" text="equatio"/>
+<l:gentext key="Example" text="Exemplum"/>
+<l:gentext key="example" text="exemplum"/>
+<l:gentext key="Figure" text="Descriptio"/>
+<l:gentext key="figure" text="descriptio"/>
+<l:gentext key="Glossary" text="Glossarium"/>
+<l:gentext key="glossary" text="glossarium"/>
+<l:gentext key="GlossSee" text="Cfr."/>
+<l:gentext key="glosssee" text="Cfr."/>
+<l:gentext key="GlossSeeAlso" text="Cfr. autem"/>
+<l:gentext key="glossseealso" text="cfr. autem"/>
+<l:gentext key="IMPORTANT" text="GRAVE"/>
+<l:gentext key="important" text="grave"/>
+<l:gentext key="Important" text="Grave"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Nuntius legalis"/>
+<l:gentext key="legalnotice" text="nuntius legalis"/>
+<l:gentext key="MsgAud" text="Legentes"/>
+<l:gentext key="msgaud" text="legentes"/>
+<l:gentext key="MsgLevel" text="Libra"/>
+<l:gentext key="msglevel" text="libra"/>
+<l:gentext key="MsgOrig" text="Fons"/>
+<l:gentext key="msgorig" text="fons"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Pars"/>
+<l:gentext key="part" text="pars"/>
+<l:gentext key="Preface" text="Praefatio"/>
+<l:gentext key="preface" text="praefatio"/>
+<l:gentext key="Procedure" text="Progressio"/>
+<l:gentext key="procedure" text="progressio"/>
+<l:gentext key="ProductionSet" text="Compositio"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Editum"/>
+<l:gentext key="published" text="editum"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; R"/>
+<l:gentext key="qandadiv" text="Q &amp; R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="q:"/>
+<l:gentext key="RefEntry" text="Mentionis descriptio"/>
+<l:gentext key="refentry" text="mentionis descriptio"/>
+<l:gentext key="Reference" text="Mentio"/>
+<l:gentext key="reference" text="mentio"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Mentionis signum"/>
+<l:gentext key="refname" text="mentionis signum"/>
+<l:gentext key="RefSection" text="Mentionis pars"/>
+<l:gentext key="refsection" text="mentionis pars"/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revisionum historia"/>
+<l:gentext key="revhistory" text="revisionum historia"/>
+<l:gentext key="revision" text="Revisio"/>
+<l:gentext key="Revision" text="revisio"/>
+<l:gentext key="sect1" text="Sectio"/>
+<l:gentext key="sect2" text="Sectio"/>
+<l:gentext key="sect3" text="Sectio"/>
+<l:gentext key="sect4" text="Sectio"/>
+<l:gentext key="sect5" text="Sectio"/>
+<l:gentext key="section" text="Sectio"/>
+<l:gentext key="Section" text="Sectio"/>
+<l:gentext key="see" text="videtur"/>
+<l:gentext key="See" text="See" lang="en"/>
+<l:gentext key="seealso" text="videtur autem"/>
+<l:gentext key="Seealso" text="See also" lang="en"/>
+<l:gentext key="SeeAlso" text="See Also" lang="en"/>
+<l:gentext key="set" text="complexus"/>
+<l:gentext key="Set" text="Complexus"/>
+<l:gentext key="setindex" text="complexi index"/>
+<l:gentext key="SetIndex" text="Complexi index"/>
+<l:gentext key="Sidebar" text="Linea a latere posita"/>
+<l:gentext key="sidebar" text="linea a latere posita"/>
+<l:gentext key="step" text="peractio"/>
+<l:gentext key="Step" text="Peractio"/>
+<l:gentext key="table" text="tabula"/>
+<l:gentext key="Table" text="Tabula"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="consilium"/>
+<l:gentext key="TIP" text="CONSILIUM"/>
+<l:gentext key="Tip" text="Consilium"/>
+<l:gentext key="Warning" text="MONITUS"/>
+<l:gentext key="warning" text="monitus"/>
+<l:gentext key="WARNING" text="MONITUS"/>
+<l:gentext key="and" text="et"/>
+<l:gentext key="by" text="a"/>
+<l:gentext key="Edited" text="Editum"/>
+<l:gentext key="edited" text="editum"/>
+<l:gentext key="Editedby" text="Editum a"/>
+<l:gentext key="editedby" text="editum a"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="quod non est"/>
+<l:gentext key="notes" text="commentaria"/>
+<l:gentext key="Notes" text="Commentaria"/>
+<l:gentext key="Pgs" text="Pag."/>
+<l:gentext key="pgs" text="pag."/>
+<l:gentext key="Revisedby" text="Excussum a: "/>
+<l:gentext key="revisedby" text="excussum a: "/>
+<l:gentext key="TableNotes" text="Tabulae commentaria"/>
+<l:gentext key="tablenotes" text="tabulae commentaria"/>
+<l:gentext key="TableofContents" text="Index rerum notabilium"/>
+<l:gentext key="tableofcontents" text="index rerum notabilium"/>
+<l:gentext key="unexpectedelementname" text="necopinatum nomen"/>
+<l:gentext key="unsupported" text="non sustentatus"/>
+<l:gentext key="xrefto" text="mentio"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="index aequationum"/>
+<l:gentext key="ListofEquations" text="Index aequationum"/>
+<l:gentext key="ListofExamples" text="Index exemplorum"/>
+<l:gentext key="listofexamples" text="index exemplorum"/>
+<l:gentext key="ListofFigures" text="Index descriptionum"/>
+<l:gentext key="listoffigures" text="index descriptionum"/>
+<l:gentext key="ListofProcedures" text="Index progressiorum"/>
+<l:gentext key="listofprocedures" text="index progressiorum"/>
+<l:gentext key="listoftables" text="index tabularum"/>
+<l:gentext key="ListofTables" text="Index tabularum"/>
+<l:gentext key="ListofUnknown" text="Index ignotorum"/>
+<l:gentext key="listofunknown" text="index ignotorum"/>
+<l:gentext key="nav-home" text="Initium"/>
+<l:gentext key="nav-next" text="Sequens"/>
+<l:gentext key="nav-next-sibling" text="Procede"/>
+<l:gentext key="nav-prev" text="Praecedens"/>
+<l:gentext key="nav-prev-sibling" text="Recede"/>
+<l:gentext key="nav-up" text="Ascende"/>
+<l:gentext key="nav-toc" text="Index"/>
+<l:gentext key="Draft" text="Plagula"/>
+<l:gentext key="above" text="supra"/>
+<l:gentext key="below" text="sub"/>
+<l:gentext key="sectioncalled" text="sectio vocata"/>
+<l:gentext key="index symbols" text="signa"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="ˢ"/>
+<l:dingbat key="endquote" text="ۢ"/>
+<l:dingbat key="nestedstartquote" text="‹"/>
+<l:dingbat key="nestedendquote" text="›"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="‐"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Additamentum%n.%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capitulum%n.%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equatio%n.%t"/>
+<l:template name="example" text="Exemplum%n.%t"/>
+<l:template name="figure" text="Descriptio%n.%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Pars%n.%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Progressio%n.%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Compositio%n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabula%n.%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Additamentum%n.%t"/>
+<l:template name="article/appendix" text="%n.%t"/>
+<l:template name="bridgehead" text="%n.%t"/>
+<l:template name="chapter" text="Capitulum%n.%t"/>
+<l:template name="part" text="Pars%n.%t"/>
+<l:template name="sect1" text="%n.%t"/>
+<l:template name="sect2" text="%n.%t"/>
+<l:template name="sect3" text="%n.%t"/>
+<l:template name="sect4" text="%n.%t"/>
+<l:template name="sect5" text="%n.%t"/>
+<l:template name="section" text="%n.%t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R:%n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q:%n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q:%n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsection" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect1" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect2" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect3" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect1" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect2" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect3" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect4" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect5" text="sectio vocata ˢ%tۢ"/>
+<l:template name="section" text="sectio vocata ˢ%tۢ"/>
+<l:template name="simplesect" text="sectio vocata ˢ%tۢ"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R:%n"/>
+<l:template name="appendix" text="Additamentum%n"/>
+<l:template name="bridgehead" text="Sectio%n"/>
+<l:template name="chapter" text="Capitulum%n"/>
+<l:template name="equation" text="Equatio%n"/>
+<l:template name="example" text="Exemplum%n"/>
+<l:template name="figure" text="Descriptio%n"/>
+<l:template name="part" text="Pars%n"/>
+<l:template name="procedure" text="Progressio%n"/>
+<l:template name="productionset" text="Compositio%n"/>
+<l:template name="qandadiv" text="Q &amp; R%n"/>
+<l:template name="qandaentry" text="Q:%n"/>
+<l:template name="question" text="Q:%n"/>
+<l:template name="sect1" text="Sectio%n"/>
+<l:template name="sect2" text="Sectio%n"/>
+<l:template name="sect3" text="Sectio%n"/>
+<l:template name="sect4" text="Sectio%n"/>
+<l:template name="sect5" text="Sectio%n"/>
+<l:template name="section" text="Sectio%n"/>
+<l:template name="table" text="Tabula%n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Additamentum%n, %t"/>
+<l:template name="bridgehead" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="chapter" text="Capitulum%n, %t"/>
+<l:template name="equation" text="Equatio%n, ˢ%tۢ"/>
+<l:template name="example" text="Exemplum%n, ˢ%tۢ"/>
+<l:template name="figure" text="Descriptio%n, ˢ%tۢ"/>
+<l:template name="part" text="Pars%n, ˢ%tۢ"/>
+<l:template name="procedure" text="Progressio%n, ˢ%tۢ"/>
+<l:template name="productionset" text="Compositio%n, ˢ%tۢ"/>
+<l:template name="qandadiv" text="Q &amp; R%n, ˢ%tۢ"/>
+<l:template name="refsect1" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect2" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect3" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsection" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect1" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect2" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect3" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect4" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect5" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="section" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="simplesect" text="sectio vocata ˢ%tۢ"/>
+<l:template name="table" text="Tabula%n, ˢ%tۢ"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" et "/>
+<l:template name="seplast" text=", et "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Cfr. %t"/>
+<l:template name="seealso" text="Cfr. autem %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Legentes: "/>
+<l:template name="MsgLevel" text="Libra: "/>
+<l:template name="MsgOrig" text="Fons: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ianuarii"/>
+<l:template name="February" text="Februarii"/>
+<l:template name="March" text="Martii"/>
+<l:template name="April" text="Aprilis"/>
+<l:template name="May" text="Maii"/>
+<l:template name="June" text="Iunii"/>
+<l:template name="July" text="Iulii"/>
+<l:template name="August" text="Augusti"/>
+<l:template name="September" text="Septembris"/>
+<l:template name="October" text="Octobris"/>
+<l:template name="November" text="Novembris"/>
+<l:template name="December" text="Decembris"/>
+<l:template name="Monday" text="Lunae"/>
+<l:template name="Tuesday" text="Martis"/>
+<l:template name="Wednesday" text="Mercurii"/>
+<l:template name="Thursday" text="Iovis"/>
+<l:template name="Friday" text="Veneris"/>
+<l:template name="Saturday" text="Sabathi"/>
+<l:template name="Sunday" text="Dominica"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ian"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Iun"/>
+<l:template name="Jul" text="Iul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Lun"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Mer"/>
+<l:template name="Thu" text="Iov"/>
+<l:template name="Fri" text="Ven"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)" lang="en"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/labels.xsl b/docs/xsl-generic/common/labels.xsl
new file mode 100644
index 00000000..5596f1b7
--- /dev/null
+++ b/docs/xsl-generic/common/labels.xsl
@@ -0,0 +1,869 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: labels.xsl 7031 2007-07-14 19:58:59Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- label markup -->
+
+<doc:mode mode="label.markup" xmlns="">
+<refpurpose>Provides access to element labels</refpurpose>
+<refdescription id="label.markup-desc">
+<para>Processing an element in the
+<literal role="mode">label.markup</literal> mode produces the
+element label.</para>
+<para>Trailing punctuation is not added to the label.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="intralabel.punctuation">
+ <xsl:text>.</xsl:text>
+</xsl:template>
+
+<xsl:template match="*" mode="label.markup">
+ <xsl:param name="verbose" select="1"/>
+ <xsl:if test="$verbose">
+ <xsl:message>
+ <xsl:text>Request for label of unexpected element: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:message>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="set|book" mode="label.markup">
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="label.markup">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="string($part.autolabel) != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$part.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:number from="book" count="part" format="{$format}"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="partintro" mode="label.markup">
+ <!-- no label -->
+</xsl:template>
+
+<xsl:template match="preface" mode="label.markup">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="string($preface.autolabel) != 0">
+ <xsl:if test="$component.label.includes.part.label != 0 and
+ ancestor::part">
+ <xsl:variable name="part.label">
+ <xsl:apply-templates select="ancestor::part"
+ mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$part.label != ''">
+ <xsl:value-of select="$part.label"/>
+ <xsl:apply-templates select="ancestor::part"
+ mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$preface.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$label.from.part != 0 and ancestor::part">
+ <xsl:number from="part" count="preface" format="{$format}" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number from="book" count="preface" format="{$format}" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter" mode="label.markup">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="string($chapter.autolabel) != 0">
+ <xsl:if test="$component.label.includes.part.label != 0 and
+ ancestor::part">
+ <xsl:variable name="part.label">
+ <xsl:apply-templates select="ancestor::part"
+ mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$part.label != ''">
+ <xsl:value-of select="$part.label"/>
+ <xsl:apply-templates select="ancestor::part"
+ mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$chapter.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$label.from.part != 0 and ancestor::part">
+ <xsl:number from="part" count="chapter" format="{$format}" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number from="book" count="chapter" format="{$format}" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="label.markup">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="string($appendix.autolabel) != 0">
+ <xsl:if test="$component.label.includes.part.label != 0 and
+ ancestor::part">
+ <xsl:variable name="part.label">
+ <xsl:apply-templates select="ancestor::part"
+ mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$part.label != ''">
+ <xsl:value-of select="$part.label"/>
+ <xsl:apply-templates select="ancestor::part"
+ mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$appendix.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$label.from.part != 0 and ancestor::part">
+ <xsl:number from="part" count="appendix" format="{$format}" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number from="book|article"
+ count="appendix" format="{$format}" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="label.markup">
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="label.markup">
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="label.markup">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="string($reference.autolabel) != 0">
+ <xsl:if test="$component.label.includes.part.label != 0 and
+ ancestor::part">
+ <xsl:variable name="part.label">
+ <xsl:apply-templates select="ancestor::part"
+ mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$part.label != ''">
+ <xsl:value-of select="$part.label"/>
+ <xsl:apply-templates select="ancestor::part"
+ mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$reference.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$label.from.part != 0 and ancestor::part">
+ <xsl:number from="part" count="reference" format="{$format}" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number from="book" count="reference" format="{$format}" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentry" mode="label.markup">
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="label.markup">
+ <!-- if this is a nested section, label the parent -->
+ <xsl:if test="local-name(..) = 'section'">
+ <xsl:variable name="parent.section.label">
+ <xsl:call-template name="label.this.section">
+ <xsl:with-param name="section" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$parent.section.label != '0'">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- does this section get labelled? -->
+ <xsl:variable name="label">
+ <xsl:call-template name="label.this.section">
+ <xsl:with-param name="section" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component != 0">
+ <xsl:variable name="parent.label">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$parent.label != ''">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+
+<!--
+ <xsl:message>
+ test: <xsl:value-of select="$label"/>, <xsl:number count="section"/>
+ </xsl:message>
+-->
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$label != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$section.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:number format="{$format}" count="section"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1" mode="label.markup">
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="component.label">
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component != 0">
+ <xsl:variable name="parent.label">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$parent.label != ''">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+
+
+ <xsl:variable name="is.numbered">
+ <xsl:call-template name="label.this.section"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$is.numbered != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$section.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:copy-of select="$component.label"/>
+ <xsl:number format="{$format}" count="sect1"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect2|sect3|sect4|sect5" mode="label.markup">
+ <!-- label the parent -->
+ <xsl:variable name="parent.section.label">
+ <xsl:call-template name="label.this.section">
+ <xsl:with-param name="section" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$parent.section.label != '0'">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+
+ <xsl:variable name="is.numbered">
+ <xsl:call-template name="label.this.section"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$is.numbered != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$section.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'sect2'">
+ <xsl:number format="{$format}" count="sect2"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect3'">
+ <xsl:number format="{$format}" count="sect3"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect4'">
+ <xsl:number format="{$format}" count="sect4"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect5'">
+ <xsl:number format="{$format}" count="sect5"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>label.markup: this can't happen!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="label.markup">
+ <!-- FIXME: could we do a better job here? -->
+ <xsl:variable name="contsec"
+ select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface)[last()]"/>
+
+ <xsl:apply-templates select="$contsec" mode="label.markup"/>
+</xsl:template>
+
+<xsl:template match="refsect1" mode="label.markup">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$section.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:number count="refsect1" format="{$format}"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect2|refsect3" mode="label.markup">
+ <!-- label the parent -->
+ <xsl:variable name="parent.label">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$parent.label != ''">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$section.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'refsect2'">
+ <xsl:number count="refsect2" format="{$format}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number count="refsect3" format="{$format}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="label.markup">
+ <!-- if this is a nested section, label the parent -->
+ <xsl:if test="local-name(..) = 'section'
+ or local-name(..) = 'sect1'
+ or local-name(..) = 'sect2'
+ or local-name(..) = 'sect3'
+ or local-name(..) = 'sect4'
+ or local-name(..) = 'sect5'">
+ <xsl:variable name="parent.section.label">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$parent.section.label != ''">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- does this section get labelled? -->
+ <xsl:variable name="label">
+ <xsl:call-template name="label.this.section">
+ <xsl:with-param name="section" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component != 0">
+ <xsl:variable name="parent.label">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="$parent.label != ''">
+ <xsl:apply-templates select=".." mode="label.markup"/>
+ <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$label != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$section.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:number format="{$format}" count="simplesect"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="label.markup">
+ <xsl:variable name="lparent" select="(ancestor::set
+ |ancestor::book
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3)[last()]"/>
+
+ <xsl:variable name="lparent.prefix">
+ <xsl:apply-templates select="$lparent" mode="label.markup"/>
+ </xsl:variable>
+
+ <xsl:variable name="prefix">
+ <xsl:if test="$qanda.inherit.numeration != 0">
+ <xsl:if test="$lparent.prefix != ''">
+ <xsl:apply-templates select="$lparent" mode="label.markup"/>
+ <xsl:apply-templates select="$lparent" mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$qandadiv.autolabel != 0">
+ <xsl:variable name="format">
+ <xsl:call-template name="autolabel.format">
+ <xsl:with-param name="format" select="$qandadiv.autolabel"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$prefix"/>
+ <xsl:number level="multiple" count="qandadiv" format="{$format}"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="label.markup">
+ <xsl:variable name="lparent" select="(ancestor::set
+ |ancestor::book
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3)[last()]"/>
+
+ <xsl:variable name="lparent.prefix">
+ <xsl:apply-templates select="$lparent" mode="label.markup"/>
+ </xsl:variable>
+
+ <xsl:variable name="prefix">
+ <xsl:if test="$qanda.inherit.numeration != 0">
+ <xsl:choose>
+ <xsl:when test="ancestor::qandadiv">
+ <xsl:apply-templates select="ancestor::qandadiv[1]" mode="label.markup"/>
+ <xsl:apply-templates select="ancestor::qandadiv[1]"
+ mode="intralabel.punctuation"/>
+ </xsl:when>
+ <xsl:when test="$lparent.prefix != ''">
+ <xsl:apply-templates select="$lparent" mode="label.markup"/>
+ <xsl:apply-templates select="$lparent" mode="intralabel.punctuation"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="inhlabel"
+ select="ancestor-or-self::qandaset/@defaultlabel[1]"/>
+
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="$inhlabel != ''">
+ <xsl:value-of select="$inhlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="label" select="label"/>
+
+ <xsl:choose>
+ <xsl:when test="count($label)>0">
+ <xsl:apply-templates select="$label"/>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'qanda' and local-name(.) = 'question'">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Question'"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'qanda' and local-name(.) = 'answer'">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Answer'"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'number' and local-name(.) = 'question'">
+ <xsl:value-of select="$prefix"/>
+ <xsl:number level="multiple" count="qandaentry" format="1"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|
+ qandaset|index|setindex" mode="label.markup">
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example" mode="label.markup">
+ <xsl:variable name="pchap"
+ select="ancestor::chapter
+ |ancestor::appendix
+ |ancestor::article[ancestor::book]"/>
+
+ <xsl:variable name="prefix">
+ <xsl:if test="count($pchap) &gt; 0">
+ <xsl:apply-templates select="$pchap" mode="label.markup"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$prefix != ''">
+ <xsl:apply-templates select="$pchap" mode="label.markup"/>
+ <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+ <xsl:number format="1" from="chapter|appendix" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number format="1" from="book|article" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="procedure" mode="label.markup">
+ <xsl:variable name="pchap"
+ select="ancestor::chapter
+ |ancestor::appendix
+ |ancestor::article[ancestor::book]"/>
+
+ <xsl:variable name="prefix">
+ <xsl:if test="count($pchap) &gt; 0">
+ <xsl:apply-templates select="$pchap" mode="label.markup"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="$formal.procedures = 0">
+ <!-- No label -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="count($pchap)>0">
+ <xsl:if test="$prefix != ''">
+ <xsl:apply-templates select="$pchap" mode="label.markup"/>
+ <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+ </xsl:if>
+ <xsl:number count="procedure[title]" format="1"
+ from="chapter|appendix" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number count="procedure[title]" format="1"
+ from="book|article" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="equation" mode="label.markup">
+ <xsl:variable name="pchap"
+ select="ancestor::chapter
+ |ancestor::appendix
+ |ancestor::article[ancestor::book]"/>
+
+ <xsl:variable name="prefix">
+ <xsl:if test="count($pchap) &gt; 0">
+ <xsl:apply-templates select="$pchap" mode="label.markup"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="count($pchap)>0">
+ <xsl:if test="$prefix != ''">
+ <xsl:apply-templates select="$pchap" mode="label.markup"/>
+ <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+ </xsl:if>
+ <xsl:number format="1" count="equation[title or info/title]"
+ from="chapter|appendix" level="any"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number format="1" count="equation[title or info/title]"
+ from="book|article" level="any"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem" mode="label.markup">
+ <xsl:variable name="numeration">
+ <xsl:call-template name="list.numeration">
+ <xsl:with-param name="node" select="parent::orderedlist"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$numeration='arabic'">1</xsl:when>
+ <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+ <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+ <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+ <xsl:when test="$numeration='upperroman'">I</xsl:when>
+ <!-- What!? This should never happen -->
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected numeration: </xsl:text>
+ <xsl:value-of select="$numeration"/>
+ </xsl:message>
+ <xsl:value-of select="1."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="item-number">
+ <xsl:call-template name="orderedlist-item-number"/>
+ </xsl:variable>
+
+ <xsl:number value="$item-number" format="{$type}"/>
+</xsl:template>
+
+<xsl:template match="abstract" mode="label.markup">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="sidebar" mode="label.markup">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="label.this.section">
+ <xsl:param name="section" select="."/>
+
+ <xsl:variable name="level">
+ <xsl:call-template name="section.level"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$level &lt;= $section.autolabel.max.depth">
+ <xsl:value-of select="$section.autolabel"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<doc:template name="label.this.section" xmlns="">
+<refpurpose>Returns true if $section should be labelled</refpurpose>
+<refdescription id="label.this.section-desc">
+<para>Returns true if the specified section should be labelled.
+By default, this template returns zero unless
+the section level is less than or equal to the value of the
+<literal>$section.autolabel.max.depth</literal> parameter, in
+which case it returns
+<literal>$section.autolabel</literal>.
+Custom stylesheets may override it to get more selective behavior.</para>
+</refdescription>
+</doc:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="default.autolabel.format">
+ <xsl:param name="context" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($context) = 'appendix'">
+ <xsl:value-of select="'A'"/>
+ </xsl:when>
+ <xsl:when test="local-name($context) = 'part'">
+ <xsl:value-of select="'I'"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="autolabel.format">
+ <xsl:param name="context" select="."/>
+ <xsl:param name="format"/>
+
+ <xsl:choose>
+ <xsl:when test="string($format) != 0">
+ <xsl:choose>
+ <xsl:when test="string($format)='arabic' or $format='1'">1</xsl:when>
+ <xsl:when test="$format='loweralpha' or $format='a'">
+ <xsl:value-of select="'a'"/>
+ </xsl:when>
+ <xsl:when test="$format='lowerroman' or $format='i'">
+ <xsl:value-of select="'i'"/>
+ </xsl:when>
+ <xsl:when test="$format='upperalpha' or $format='A'">
+ <xsl:value-of select="'A'"/>
+ </xsl:when>
+ <xsl:when test="$format='upperroman' or $format='I'">
+ <xsl:value-of select="'I'"/>
+ </xsl:when>
+ <xsl:when test="$format='arabicindic' or $format='&#x661;'">
+ <xsl:value-of select="'&#x661;'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected </xsl:text><xsl:value-of select="local-name(.)"/><xsl:text>.autolabel value: </xsl:text>
+ <xsl:value-of select="$format"/><xsl:text>; using default.</xsl:text>
+ </xsl:message>
+ <xsl:call-template name="default.autolabel.format"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<doc:template name="autolabel.format" xmlns="">
+<refpurpose>Returns format for autolabel parameters</refpurpose>
+<refdescription id="autolabel.format-desc">
+<para>Returns format passed as parameter if non zero. Supported
+ format are 'arabic' or '1', 'loweralpha' or 'a', 'lowerroman' or 'i',
+ 'upperlapha' or 'A', 'upperroman' or 'I', 'arabicindic' or '&#x661;'.
+ If its not one of these then
+ returns the default format.</para>
+</refdescription>
+</doc:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/lt.xml b/docs/xsl-generic/common/lt.xml
new file mode 100644
index 00000000..7ee48f07
--- /dev/null
+++ b/docs/xsl-generic/common/lt.xml
@@ -0,0 +1,672 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="lt" english-language-name="Lithuanian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/lt.xml -->
+<!-- * -->
+<!-- * E-mail the edited lt.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Santrauka"/>
+<l:gentext key="abstract" text="Santrauka"/>
+<l:gentext key="Answer" text="Ats:"/>
+<l:gentext key="answer" text="Ats:"/>
+<l:gentext key="Appendix" text="Priedas"/>
+<l:gentext key="appendix" text="Priedas"/>
+<l:gentext key="Article" text="Straipsnis"/>
+<l:gentext key="article" text="Straipsnis"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografija"/>
+<l:gentext key="bibliography" text="Bibliografija"/>
+<l:gentext key="Book" text="Knyga"/>
+<l:gentext key="book" text="Knyga"/>
+<l:gentext key="CAUTION" text="ATSARGIAI"/>
+<l:gentext key="Caution" text="Atsargiai"/>
+<l:gentext key="caution" text="Atsargiai"/>
+<l:gentext key="Chapter" text="Skyrius"/>
+<l:gentext key="chapter" text="Skyrius"/>
+<l:gentext key="Colophon" text="Knygos metrika"/>
+<l:gentext key="colophon" text="Knygos metrika"/>
+<l:gentext key="Copyright" text="Autorinės teisės"/>
+<l:gentext key="copyright" text="Autorinės teisės"/>
+<l:gentext key="Dedication" text="Dedikacija"/>
+<l:gentext key="dedication" text="Dedikacija"/>
+<l:gentext key="Edition" text="Leidimas"/>
+<l:gentext key="edition" text="Leidimas"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Lygtis"/>
+<l:gentext key="equation" text="Lygtis"/>
+<l:gentext key="Example" text="Pavyzdys"/>
+<l:gentext key="example" text="Pavyzdys"/>
+<l:gentext key="Figure" text="Pav."/>
+<l:gentext key="figure" text="Pav."/>
+<l:gentext key="Glossary" text="Terminų žodynas"/>
+<l:gentext key="glossary" text="Terminų žodynas"/>
+<l:gentext key="GlossSee" text="Žr."/>
+<l:gentext key="glosssee" text="Žr."/>
+<l:gentext key="GlossSeeAlso" text="Taip pat žr."/>
+<l:gentext key="glossseealso" text="Taip pat žr."/>
+<l:gentext key="IMPORTANT" text="SVARBU"/>
+<l:gentext key="important" text="Svarbu"/>
+<l:gentext key="Important" text="Svarbu"/>
+<l:gentext key="Index" text="Rodyklė"/>
+<l:gentext key="index" text="Rodyklė"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Teisinė pastaba"/>
+<l:gentext key="legalnotice" text="Teisinė pastaba"/>
+<l:gentext key="MsgAud" text="Auditorija"/>
+<l:gentext key="msgaud" text="Auditorija"/>
+<l:gentext key="MsgLevel" text="Lygmuo"/>
+<l:gentext key="msglevel" text="Lygmuo"/>
+<l:gentext key="MsgOrig" text="Kilmė"/>
+<l:gentext key="msgorig" text="Kilmė"/>
+<l:gentext key="NOTE" text="PASTABA"/>
+<l:gentext key="Note" text="Pastaba"/>
+<l:gentext key="note" text="Pastaba"/>
+<l:gentext key="Part" text="Dalis"/>
+<l:gentext key="part" text="Dalis"/>
+<l:gentext key="Preface" text="Įvadas"/>
+<l:gentext key="preface" text="Įvadas"/>
+<l:gentext key="Procedure" text="Procedūra"/>
+<l:gentext key="procedure" text="Procedūra"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Išleidimo data"/>
+<l:gentext key="pubdate" text="Išleidimo data"/>
+<l:gentext key="Published" text="Išleistas"/>
+<l:gentext key="published" text="Išleistas"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Klaus. ir Ats."/>
+<l:gentext key="qandadiv" text="Klaus. ir Ats."/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Klaus.:"/>
+<l:gentext key="question" text="Klaus.:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Nuoroda"/>
+<l:gentext key="reference" text="Nuoroda"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Pavadinimas"/>
+<l:gentext key="refname" text="Pavadinimas"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Trumpa apžvalga"/>
+<l:gentext key="refsynopsisdiv" text="Trumpa apžvalga"/>
+<l:gentext key="RevHistory" text="Pataisymų istorija"/>
+<l:gentext key="revhistory" text="Pataisymų istorija"/>
+<l:gentext key="revision" text="Pataisytas leidimas"/>
+<l:gentext key="Revision" text="Pataisytas leidimas"/>
+<l:gentext key="sect1" text="Skyrius"/>
+<l:gentext key="sect2" text="Skyrius"/>
+<l:gentext key="sect3" text="Skyrius"/>
+<l:gentext key="sect4" text="Skyrius"/>
+<l:gentext key="sect5" text="Skyrius"/>
+<l:gentext key="section" text="Skyrius"/>
+<l:gentext key="Section" text="Skyrius"/>
+<l:gentext key="see" text="žr."/>
+<l:gentext key="See" text="Žr."/>
+<l:gentext key="seealso" text="taip pat žr."/>
+<l:gentext key="Seealso" text="Taip pat žr."/>
+<l:gentext key="SeeAlso" text="Taip pat žr."/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="žingsnis"/>
+<l:gentext key="Step" text="Žingsnis"/>
+<l:gentext key="table" text="Lentelė"/>
+<l:gentext key="Table" text="Lentelė"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Patarimas"/>
+<l:gentext key="TIP" text="PATARIMAS"/>
+<l:gentext key="Tip" text="Patarimas"/>
+<l:gentext key="Warning" text="Įspėjimas"/>
+<l:gentext key="warning" text="Įspėjimas"/>
+<l:gentext key="WARNING" text="ĮSPĖJIMAS"/>
+<l:gentext key="and" text="ir"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Redaguotas"/>
+<l:gentext key="edited" text="Redaguotas"/>
+<l:gentext key="Editedby" text="Redagavo"/>
+<l:gentext key="editedby" text="Redagavo"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="neegzistuojantis elementas"/>
+<l:gentext key="notes" text="Pastabos"/>
+<l:gentext key="Notes" text="Pastabos"/>
+<l:gentext key="Pgs" text="P."/>
+<l:gentext key="pgs" text="P."/>
+<l:gentext key="Revisedby" text="Pataisė: "/>
+<l:gentext key="revisedby" text="Pataisė: "/>
+<l:gentext key="TableNotes" text="Pastabos"/>
+<l:gentext key="tablenotes" text="Pastabos"/>
+<l:gentext key="TableofContents" text="Turinys"/>
+<l:gentext key="tableofcontents" text="Turinys"/>
+<l:gentext key="unexpectedelementname" text="Nenumatyto elemento pavadinimas"/>
+<l:gentext key="unsupported" text="nepalaikomas"/>
+<l:gentext key="xrefto" text="xref į"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lygčių sąrašas"/>
+<l:gentext key="ListofEquations" text="Lygčių sąrašas"/>
+<l:gentext key="ListofExamples" text="Pavyzdžių sąrašas"/>
+<l:gentext key="listofexamples" text="Pavyzdžių sąrašas"/>
+<l:gentext key="ListofFigures" text="Paveikslų sąrašas"/>
+<l:gentext key="listoffigures" text="Paveikslų sąrašas"/>
+<l:gentext key="ListofProcedures" text="Procedūrų sąrašas"/>
+<l:gentext key="listofprocedures" text="Procedūrų sąrašas"/>
+<l:gentext key="listoftables" text="Lentelių sąrašas"/>
+<l:gentext key="ListofTables" text="Lentelių sąrašas"/>
+<l:gentext key="ListofUnknown" text="Nežinomas sąrašas"/>
+<l:gentext key="listofunknown" text="Nežinomas sąrašas"/>
+<l:gentext key="nav-home" text="Į pradžią"/>
+<l:gentext key="nav-next" text="Sekantis"/>
+<l:gentext key="nav-next-sibling" text="Spartus pirmyn"/>
+<l:gentext key="nav-prev" text="Ankstesnis"/>
+<l:gentext key="nav-prev-sibling" text="Spartus atgal"/>
+<l:gentext key="nav-up" text="Aukštyn"/>
+<l:gentext key="nav-toc" text="Turinys"/>
+<l:gentext key="Draft" text="Planas"/>
+<l:gentext key="above" text="aukščiau"/>
+<l:gentext key="below" text="žemiau"/>
+<l:gentext key="sectioncalled" text="skyrius pavadinimu"/>
+<l:gentext key="index symbols" text="Simboliai"/>
+<l:gentext key="lowercase.alpha" text="aąbcčdeęėfghiįyjklmnoprsštuųūvzžqwx"/>
+<l:gentext key="uppercase.alpha" text="AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽQWX"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Priedas %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Skyrius %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Lygtis %n. %t"/>
+<l:template name="example" text="Pavyzdys %n. %t"/>
+<l:template name="figure" text="Pav. %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Dalis %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedūra %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Lentelė %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Priedas %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Skyrius %n. %t"/>
+<l:template name="part" text="Dalis %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Ats: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Klaus.: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Klaus.: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsection" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect1" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect2" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect3" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect1" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect2" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect3" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect4" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect5" text="skyrius pavadinimu „%t“"/>
+<l:template name="section" text="skyrius pavadinimu „%t“"/>
+<l:template name="simplesect" text="skyrius pavadinimu „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Ats: %n"/>
+<l:template name="appendix" text="Priedas %n"/>
+<l:template name="bridgehead" text="Skyrius %n"/>
+<l:template name="chapter" text="Skyrius %n"/>
+<l:template name="equation" text="Lygtis %n"/>
+<l:template name="example" text="Pavyzdys %n"/>
+<l:template name="figure" text="Pav. %n"/>
+<l:template name="part" text="Dalis %n"/>
+<l:template name="procedure" text="Procedūra %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="Klaus. ir Ats. %n"/>
+<l:template name="qandaentry" text="Klaus.: %n"/>
+<l:template name="question" text="Klaus.: %n"/>
+<l:template name="sect1" text="Skyrius %n"/>
+<l:template name="sect2" text="Skyrius %n"/>
+<l:template name="sect3" text="Skyrius %n"/>
+<l:template name="sect4" text="Skyrius %n"/>
+<l:template name="sect5" text="Skyrius %n"/>
+<l:template name="section" text="Skyrius %n"/>
+<l:template name="table" text="Lentelė %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Priedas %n, %t"/>
+<l:template name="bridgehead" text="Skyrius %n, „%t“"/>
+<l:template name="chapter" text="Skyrius %n, %t"/>
+<l:template name="equation" text="Lygtis %n, „%t“"/>
+<l:template name="example" text="Pavyzdys %n, „%t“"/>
+<l:template name="figure" text="Pav. %n, „%t“"/>
+<l:template name="part" text="Dalis %n, „%t“"/>
+<l:template name="procedure" text="Procedūra %n, „%t“"/>
+<l:template name="productionset" text="Produkcija %n, „%t“"/>
+<l:template name="qandadiv" text="Klaus. ir Ats. %n, „%t“"/>
+<l:template name="refsect1" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect2" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect3" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsection" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect1" text="Skyrius %n, „%t“"/>
+<l:template name="sect2" text="Skyrius %n, „%t“"/>
+<l:template name="sect3" text="Skyrius %n, „%t“"/>
+<l:template name="sect4" text="Skyrius %n, „%t“"/>
+<l:template name="sect5" text="Skyrius %n, „%t“"/>
+<l:template name="section" text="Skyrius %n, „%t“"/>
+<l:template name="simplesect" text="skyrius pavadinimu „%t“"/>
+<l:template name="table" text="Lentelė %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ir "/>
+<l:template name="seplast" text=", ir "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Žr. %t"/>
+<l:template name="seealso" text="Taip pat žr. %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Auditorija: "/>
+<l:template name="MsgLevel" text="Lygmuo: "/>
+<l:template name="MsgOrig" text="Kilmė: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y-m-d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Sausis"/>
+<l:template name="February" text="Vasaris"/>
+<l:template name="March" text="Kovas"/>
+<l:template name="April" text="Balandis"/>
+<l:template name="May" text="Gegužė"/>
+<l:template name="June" text="Birželis"/>
+<l:template name="July" text="Liepa"/>
+<l:template name="August" text="Rugpjūtis"/>
+<l:template name="September" text="Rugsėjis"/>
+<l:template name="October" text="Spalis"/>
+<l:template name="November" text="Lapkritis"/>
+<l:template name="December" text="Gruodis"/>
+<l:template name="Monday" text="Pirmadienis"/>
+<l:template name="Tuesday" text="Antradienis"/>
+<l:template name="Wednesday" text="Trečiadienis"/>
+<l:template name="Thursday" text="Ketvirtadienis"/>
+<l:template name="Friday" text="Penktadienis"/>
+<l:template name="Saturday" text="Šeštadienis"/>
+<l:template name="Sunday" text="Sekmadienis"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Sau"/>
+<l:template name="Feb" text="Vas"/>
+<l:template name="Mar" text="Kov"/>
+<l:template name="Apr" text="Bal"/>
+<l:template name="May" text="Geg"/>
+<l:template name="Jun" text="Bir"/>
+<l:template name="Jul" text="Lie"/>
+<l:template name="Aug" text="Rugp"/>
+<l:template name="Sep" text="Rugs"/>
+<l:template name="Oct" text="Spa"/>
+<l:template name="Nov" text="Lap"/>
+<l:template name="Dec" text="Gru"/>
+<l:template name="Mon" text="Pr"/>
+<l:template name="Tue" text="An"/>
+<l:template name="Wed" text="Tr"/>
+<l:template name="Thu" text="Kt"/>
+<l:template name="Fri" text="Pn"/>
+<l:template name="Sat" text="Št"/>
+<l:template name="Sun" text="Sk"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0427 Lithuanian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboliai</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Ą</l:l>
+<l:l i="1">ą</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="3">Č</l:l>
+<l:l i="3">č</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="5">Ę</l:l>
+<l:l i="5">ę</l:l>
+<l:l i="5">Ė</l:l>
+<l:l i="5">ė</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="9">Į</l:l>
+<l:l i="9">į</l:l>
+<l:l i="10">Y</l:l>
+<l:l i="10">y</l:l>
+<l:l i="11">J</l:l>
+<l:l i="11">j</l:l>
+<l:l i="12">K</l:l>
+<l:l i="12">k</l:l>
+<l:l i="13">L</l:l>
+<l:l i="13">l</l:l>
+<l:l i="14">M</l:l>
+<l:l i="14">m</l:l>
+<l:l i="15">N</l:l>
+<l:l i="15">n</l:l>
+<l:l i="16">O</l:l>
+<l:l i="16">o</l:l>
+<l:l i="17">P</l:l>
+<l:l i="17">p</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="19">Š</l:l>
+<l:l i="19">š</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ų</l:l>
+<l:l i="21">ų</l:l>
+<l:l i="21">Ū</l:l>
+<l:l i="21">ū</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">Z</l:l>
+<l:l i="23">z</l:l>
+<l:l i="23">Ž</l:l>
+<l:l i="23">ž</l:l>
+<l:l i="24">Q</l:l>
+<l:l i="24">q</l:l>
+<l:l i="25">W</l:l>
+<l:l i="25">w</l:l>
+<l:l i="26">X</l:l>
+<l:l i="26">x</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/lv.xml b/docs/xsl-generic/common/lv.xml
new file mode 100644
index 00000000..b1eb73a6
--- /dev/null
+++ b/docs/xsl-generic/common/lv.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="lv" english-language-name="Latvian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/lv.xml -->
+<!-- * -->
+<!-- * E-mail the edited lv.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Anotācija"/>
+<l:gentext key="abstract" text="anotācija"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="a:"/>
+<l:gentext key="Appendix" text="Pielikums"/>
+<l:gentext key="appendix" text="pielikums"/>
+<l:gentext key="Article" text="Raksts"/>
+<l:gentext key="article" text="raksts"/>
+<l:gentext key="Author" text="Autors"/>
+<l:gentext key="Bibliography" text="Bibliogrāfija"/>
+<l:gentext key="bibliography" text="bibliogrāfija"/>
+<l:gentext key="Book" text="Grāmata"/>
+<l:gentext key="book" text="grāmata"/>
+<l:gentext key="CAUTION" text="UZMANĪBU"/>
+<l:gentext key="Caution" text="Uzmanību"/>
+<l:gentext key="caution" text="uzmanību"/>
+<l:gentext key="Chapter" text="Nodaļa"/>
+<l:gentext key="chapter" text="nodaļa"/>
+<l:gentext key="Colophon" text="Pēcvārds"/>
+<l:gentext key="colophon" text="pēcvārds"/>
+<l:gentext key="Copyright" text="Autortiesības"/>
+<l:gentext key="copyright" text="autortiesības"/>
+<l:gentext key="Dedication" text="Veltījums"/>
+<l:gentext key="dedication" text="veltījums"/>
+<l:gentext key="Edition" text="Izdevums"/>
+<l:gentext key="edition" text="izdevums"/>
+<l:gentext key="Editor" text="Redaktors"/>
+<l:gentext key="Equation" text="Vienādojums"/>
+<l:gentext key="equation" text="vienādojums"/>
+<l:gentext key="Example" text="Piemērs"/>
+<l:gentext key="example" text="piemērs"/>
+<l:gentext key="Figure" text="Ilustrācija"/>
+<l:gentext key="figure" text="ilustrācija"/>
+<l:gentext key="Glossary" text="Glosārijs"/>
+<l:gentext key="glossary" text="glosārijs"/>
+<l:gentext key="GlossSee" text="Skatīties"/>
+<l:gentext key="glosssee" text="skatīties"/>
+<l:gentext key="GlossSeeAlso" text="Skatīt arī"/>
+<l:gentext key="glossseealso" text="skatīt arī"/>
+<l:gentext key="IMPORTANT" text="SVARĪGI"/>
+<l:gentext key="important" text="svarīgi"/>
+<l:gentext key="Important" text="svarīgs"/>
+<l:gentext key="Index" text="Indekss"/>
+<l:gentext key="index" text="indekss"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Autortiesības"/>
+<l:gentext key="legalnotice" text="autortiesības"/>
+<l:gentext key="MsgAud" text="Auditorija"/>
+<l:gentext key="msgaud" text="auditorija"/>
+<l:gentext key="MsgLevel" text="Ziņ.līmenis"/>
+<l:gentext key="msglevel" text="ziņ.līmenis"/>
+<l:gentext key="MsgOrig" text="Ziņ.izcelsme"/>
+<l:gentext key="msgorig" text="Ziņ.izcelsme"/>
+<l:gentext key="NOTE" text="PIEZĪME"/>
+<l:gentext key="Note" text="Piezīme"/>
+<l:gentext key="note" text="piezīme"/>
+<l:gentext key="Part" text="Daļa"/>
+<l:gentext key="part" text="daļa"/>
+<l:gentext key="Preface" text="Ievads"/>
+<l:gentext key="preface" text="ievads"/>
+<l:gentext key="Procedure" text="Procedūra"/>
+<l:gentext key="procedure" text="Procedūra"/>
+<l:gentext key="ProductionSet" text="Produkta"/>
+<l:gentext key="PubDate" text="Izdošanas datums"/>
+<l:gentext key="pubdate" text="Izdošanas datums"/>
+<l:gentext key="Published" text="Izdots"/>
+<l:gentext key="published" text="izdots"/>
+<l:gentext key="Publisher" text="Izdevējs"/>
+<l:gentext key="Qandadiv" text="J un A"/>
+<l:gentext key="qandadiv" text="J un A"/>
+<l:gentext key="QandASet" text="Bieži uzdotie jautājumi"/>
+<l:gentext key="Question" text="J:"/>
+<l:gentext key="question" text="J:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Atsauce"/>
+<l:gentext key="reference" text="atsauce"/>
+<l:gentext key="References" text="Norādes"/>
+<l:gentext key="RefName" text="Nosaukums"/>
+<l:gentext key="refname" text="nosaukums"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="sinopse"/>
+<l:gentext key="RevHistory" text="Izmaiņu vēsture"/>
+<l:gentext key="revhistory" text="izmaiņu vēsture"/>
+<l:gentext key="revision" text="versija"/>
+<l:gentext key="Revision" text="Versija"/>
+<l:gentext key="sect1" text="Sadaļa"/>
+<l:gentext key="sect2" text="Sadaļa"/>
+<l:gentext key="sect3" text="Sadaļa"/>
+<l:gentext key="sect4" text="Sadaļa"/>
+<l:gentext key="sect5" text="Sadaļa"/>
+<l:gentext key="section" text="sadaļa"/>
+<l:gentext key="Section" text="Sadaļa"/>
+<l:gentext key="see" text="skatīt"/>
+<l:gentext key="See" text="Skatīt"/>
+<l:gentext key="seealso" text="skatīt arī"/>
+<l:gentext key="Seealso" text="skatīt arī"/>
+<l:gentext key="SeeAlso" text="Skatīt arī"/>
+<l:gentext key="set" text="Kolekcija"/>
+<l:gentext key="Set" text="Kolekcija"/>
+<l:gentext key="setindex" text="kolekcijas indekss"/>
+<l:gentext key="SetIndex" text="Kolekcijas indekss"/>
+<l:gentext key="Sidebar" text="Atkāpe"/>
+<l:gentext key="sidebar" text="atkāpe"/>
+<l:gentext key="step" text="solis"/>
+<l:gentext key="Step" text="Solis"/>
+<l:gentext key="table" text="Tabula"/>
+<l:gentext key="Table" text="Tabula"/>
+<l:gentext key="task" text="Uzdevums"/>
+<l:gentext key="Task" text="Uzdevums"/>
+<l:gentext key="tip" text="Ieteikums"/>
+<l:gentext key="TIP" text="IETEIKUMS"/>
+<l:gentext key="Tip" text="Ieteikums"/>
+<l:gentext key="Warning" text="Brīdinājums"/>
+<l:gentext key="warning" text="brīdinājums"/>
+<l:gentext key="WARNING" text="BRĪDINĀJUMS"/>
+<l:gentext key="and" text="un"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Rediģēts"/>
+<l:gentext key="edited" text="rediģēts"/>
+<l:gentext key="Editedby" text="Rediģējis"/>
+<l:gentext key="editedby" text="rediģējis"/>
+<l:gentext key="in" text="iekš"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="neeksistējošs elements"/>
+<l:gentext key="notes" text="piezīmes"/>
+<l:gentext key="Notes" text="Piezīmes"/>
+<l:gentext key="Pgs" text="Lpp."/>
+<l:gentext key="pgs" text="lpp."/>
+<l:gentext key="Revisedby" text="Pārskatījis: "/>
+<l:gentext key="revisedby" text="Pārskatījis: "/>
+<l:gentext key="TableNotes" text="Piezīmes"/>
+<l:gentext key="tablenotes" text="piezīmes"/>
+<l:gentext key="TableofContents" text="Saturs "/>
+<l:gentext key="tableofcontents" text="saturs"/>
+<l:gentext key="unexpectedelementname" text="Negaidīts elementa nosaukums"/>
+<l:gentext key="unsupported" text="neatbalstīts"/>
+<l:gentext key="xrefto" text="saite uz"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Kopijas redaktors"/>
+<l:gentext key="graphicdesigner" text="Grafikas dizaineris"/>
+<l:gentext key="productioneditor" text="Produkta redaktors"/>
+<l:gentext key="technicaleditor" text="Tehniskais redaktors"/>
+<l:gentext key="translator" text="Tulks"/>
+<l:gentext key="listofequations" text="vienādojumu saraksts"/>
+<l:gentext key="ListofEquations" text="Vienādojumu saraksts"/>
+<l:gentext key="ListofExamples" text="Piemēru saraksts"/>
+<l:gentext key="listofexamples" text="piemēru saraksts"/>
+<l:gentext key="ListofFigures" text="Ilustrāciju saraksts"/>
+<l:gentext key="listoffigures" text="ilustrāciju saraksts"/>
+<l:gentext key="ListofProcedures" text="Procesu saraksts"/>
+<l:gentext key="listofprocedures" text="procesu saraksts"/>
+<l:gentext key="listoftables" text="tabulu saraksts"/>
+<l:gentext key="ListofTables" text="Tabulu saraksts"/>
+<l:gentext key="ListofUnknown" text="Nezināmo saraksts"/>
+<l:gentext key="listofunknown" text="Nezināmo saraksts"/>
+<l:gentext key="nav-home" text="Sākums"/>
+<l:gentext key="nav-next" text="Nākamais"/>
+<l:gentext key="nav-next-sibling" text="Ātri uz priekšu"/>
+<l:gentext key="nav-prev" text="Priekšskatījums"/>
+<l:gentext key="nav-prev-sibling" text="Ātri atpakaļ"/>
+<l:gentext key="nav-up" text="Uz augšu"/>
+<l:gentext key="nav-toc" text="Saturs"/>
+<l:gentext key="Draft" text="Uzmetums"/>
+<l:gentext key="above" text="virs"/>
+<l:gentext key="below" text="zem"/>
+<l:gentext key="sectioncalled" text="sadaļa ar nosaukumu"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="lowercase.alpha" text="aābcčdeēfgģhiījkķlļmnņoprsštuūvzž"/>
+<l:gentext key="uppercase.alpha" text="AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Pielikums %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Nodaļa %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Vienādojums %n. %t"/>
+<l:template name="example" text="Piemērs %n. %t"/>
+<l:template name="figure" text="Ilustrācija %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Daļa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedūra %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkta %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabula %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Pielikums %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Nodaļa %n. %t"/>
+<l:template name="part" text="Daļa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="J: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="J: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" (%o)"/>
+<l:template name="olink.page.citation" text=" (lpp. %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(lpp. %p)"/>
+<l:template name="docname" text=" ( %o)"/>
+<l:template name="docnamelong" text=" dokumentā ar nosaukumu %o"/>
+<l:template name="pageabbrev" text="(lpp. %p)"/>
+<l:template name="Page" text="Lappuse %p"/>
+<l:template name="bridgehead" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsection" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect1" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect2" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect3" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect1" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect2" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect3" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect4" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect5" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="section" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="simplesect" text="sadaļa ar nosaukumu “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Pielikums %n"/>
+<l:template name="bridgehead" text="Sadaļa %n"/>
+<l:template name="chapter" text="Nodaļa %n"/>
+<l:template name="equation" text="Vienādojums %n"/>
+<l:template name="example" text="Piemērs %n"/>
+<l:template name="figure" text="Ilustrācija %n"/>
+<l:template name="part" text="Daļa %n"/>
+<l:template name="procedure" text="Procedūra %n"/>
+<l:template name="productionset" text="Produkta %n"/>
+<l:template name="qandadiv" text="J un A %n"/>
+<l:template name="qandaentry" text="J: %n"/>
+<l:template name="question" text="J: %n"/>
+<l:template name="sect1" text="Sadaļa %n"/>
+<l:template name="sect2" text="Sadaļa %n"/>
+<l:template name="sect3" text="Sadaļa %n"/>
+<l:template name="sect4" text="Sadaļa %n"/>
+<l:template name="sect5" text="Sadaļa %n"/>
+<l:template name="section" text="Sadaļa %n"/>
+<l:template name="table" text="Tabula %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Pielikums %n, %t"/>
+<l:template name="bridgehead" text="Sadaļa %n, “%t”"/>
+<l:template name="chapter" text="Nodaļa %n, %t"/>
+<l:template name="equation" text="Vienādojums %n, “%t”"/>
+<l:template name="example" text="Piemērs %n, “%t”"/>
+<l:template name="figure" text="Ilustrācija %n, “%t”"/>
+<l:template name="part" text="Daļa %n, “%t”"/>
+<l:template name="procedure" text="Procedūra %n, “%t”"/>
+<l:template name="productionset" text="Produkta %n, “%t”"/>
+<l:template name="qandadiv" text="J un A %n, “%t”"/>
+<l:template name="refsect1" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect2" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect3" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsection" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect1" text="Sadaļa %n, “%t”"/>
+<l:template name="sect2" text="Sadaļa %n, “%t”"/>
+<l:template name="sect3" text="Sadaļa %n, “%t”"/>
+<l:template name="sect4" text="Sadaļa %n, “%t”"/>
+<l:template name="sect5" text="Sadaļa %n, “%t”"/>
+<l:template name="section" text="Sadaļa %n, “%t”"/>
+<l:template name="simplesect" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="table" text="Tabula %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" un "/>
+<l:template name="seplast" text=", un "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Skatīties %t"/>
+<l:template name="seealso" text="Skatīt arī %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Auditorija: "/>
+<l:template name="MsgLevel" text="Ziņ.līmenis: "/>
+<l:template name="MsgOrig" text="Ziņ.izcelsme: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="Maijs"/>
+<l:template name="June" text="Jūnijs"/>
+<l:template name="July" text="Jūlijs"/>
+<l:template name="August" text="Augusts"/>
+<l:template name="September" text="Septembris"/>
+<l:template name="October" text="Octobris"/>
+<l:template name="November" text="Novembris"/>
+<l:template name="December" text="Decembris"/>
+<l:template name="Monday" text="Pirmdiena"/>
+<l:template name="Tuesday" text="Otrdiena"/>
+<l:template name="Wednesday" text="Trešdiena"/>
+<l:template name="Thursday" text="Ceturtdiena"/>
+<l:template name="Friday" text="Piektdiena"/>
+<l:template name="Saturday" text="Sestdiena"/>
+<l:template name="Sunday" text="Svētdiena"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jūl"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Pr"/>
+<l:template name="Tue" text="Ot"/>
+<l:template name="Wed" text="Tr"/>
+<l:template name="Thu" text="Ce"/>
+<l:template name="Fri" text="Pk"/>
+<l:template name="Sat" text="Se"/>
+<l:template name="Sun" text="Sv"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0427 Latvian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Pieejams "/>
+<l:template name="acctoo" text="Arī pieejams "/>
+<l:template name="onwww" text=" www"/>
+<l:template name="oninet" text="internetā"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/mn.xml b/docs/xsl-generic/common/mn.xml
new file mode 100644
index 00000000..ce24b213
--- /dev/null
+++ b/docs/xsl-generic/common/mn.xml
@@ -0,0 +1,724 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="mn" english-language-name="Mongolian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/mn.xml -->
+<!-- * -->
+<!-- * E-mail the edited mn.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Товч агуулга"/>
+<l:gentext key="abstract" text="товч агуулга"/>
+<l:gentext key="Answer" text="Х:"/>
+<l:gentext key="answer" text="Х:"/>
+<l:gentext key="Appendix" text="Хавсралт"/>
+<l:gentext key="appendix" text="хавсралт"/>
+<l:gentext key="Article" text="Өгүүлэл"/>
+<l:gentext key="article" text="өгүүлэл"/>
+<l:gentext key="Author" text="Зохиогч"/>
+<l:gentext key="Bibliography" text="Ном зүй"/>
+<l:gentext key="bibliography" text="ном зүй"/>
+<l:gentext key="Book" text="Ном"/>
+<l:gentext key="book" text="ном"/>
+<l:gentext key="CAUTION" text="АНХААРУУЛГА"/>
+<l:gentext key="Caution" text="Анхааруулга"/>
+<l:gentext key="caution" text="анхааруулга"/>
+<l:gentext key="Chapter" text="Бүлэг"/>
+<l:gentext key="chapter" text="бүлэг"/>
+<l:gentext key="Colophon" text="Сүүл тайлбар"/>
+<l:gentext key="colophon" text="сүүл тайлбар"/>
+<l:gentext key="Copyright" text="Зохиогчийн эрх"/>
+<l:gentext key="copyright" text="зохиогчийн эрх"/>
+<l:gentext key="Dedication" text="Зохиогчийн үг"/>
+<l:gentext key="dedication" text="зохиогчийн үг"/>
+<l:gentext key="Edition" text="Хэвлэл"/>
+<l:gentext key="edition" text="хэвлэл"/>
+<l:gentext key="Editor" text="Хянан тохиолдуулагч"/>
+<l:gentext key="Equation" text="Тэгшитгэл"/>
+<l:gentext key="equation" text="тэгшитгэл"/>
+<l:gentext key="Example" text="Жишээ"/>
+<l:gentext key="example" text="жишээ"/>
+<l:gentext key="Figure" text="Зураг"/>
+<l:gentext key="figure" text="зураг"/>
+<l:gentext key="Glossary" text="Нэр томъёо"/>
+<l:gentext key="glossary" text="нэр томъёо"/>
+<l:gentext key="GlossSee" text="харна уу"/>
+<l:gentext key="glosssee" text="харна уу"/>
+<l:gentext key="GlossSeeAlso" text="Бас харна уу"/>
+<l:gentext key="glossseealso" text="бас харна уу"/>
+<l:gentext key="IMPORTANT" text="ЧУХАЛ"/>
+<l:gentext key="important" text="чухал"/>
+<l:gentext key="Important" text="Чухал"/>
+<l:gentext key="Index" text="Үгийн жагсаалт"/>
+<l:gentext key="index" text="үгийн жагсаалт"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Хуулийн заалт"/>
+<l:gentext key="legalnotice" text="хуулийн заалт"/>
+<l:gentext key="MsgAud" text="Зориулалт"/>
+<l:gentext key="msgaud" text="зориулалт"/>
+<l:gentext key="MsgLevel" text="Түвшин"/>
+<l:gentext key="msglevel" text="түвшин"/>
+<l:gentext key="MsgOrig" text="Үүсэл"/>
+<l:gentext key="msgorig" text="үүсэл"/>
+<l:gentext key="NOTE" text="ТЭМДЭГЛЭЛ"/>
+<l:gentext key="Note" text="Тэмдэглэл"/>
+<l:gentext key="note" text="тэмдэглэл"/>
+<l:gentext key="Part" text="хэсэг"/>
+<l:gentext key="part" text="Хэсэг"/>
+<l:gentext key="Preface" text="Өмнөх үг"/>
+<l:gentext key="preface" text="өмнөх үг"/>
+<l:gentext key="Procedure" text="Гүйцэтгэл"/>
+<l:gentext key="procedure" text="гүйцэтгэл"/>
+<l:gentext key="ProductionSet" text="Бүтээгдэхүүн"/>
+<l:gentext key="PubDate" text="Хэвлэгдсэн огноо"/>
+<l:gentext key="pubdate" text="хэвлэгдсэн огноо"/>
+<l:gentext key="Published" text="Хэвлэгдсэн"/>
+<l:gentext key="published" text="хэвлэгдсэн"/>
+<l:gentext key="Publisher" text="Хэвлэсэн компани"/>
+<l:gentext key="Qandadiv" text="А ба Х"/>
+<l:gentext key="qandadiv" text="А ба Х"/>
+<l:gentext key="QandASet" text="Түгээмэл тавигддаг асуултууд"/>
+<l:gentext key="Question" text="А:"/>
+<l:gentext key="question" text="А:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Ашигласан ном"/>
+<l:gentext key="reference" text="ашигласан ном"/>
+<l:gentext key="References" text="Ашигласан номнууд"/>
+<l:gentext key="RefName" text="Нэр"/>
+<l:gentext key="refname" text="нэр"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Ерөнхий агуулга"/>
+<l:gentext key="refsynopsisdiv" text="ерөнхий агуулга"/>
+<l:gentext key="RevHistory" text="Залруулалтын түүх"/>
+<l:gentext key="revhistory" text="залруулалтын түүх"/>
+<l:gentext key="revision" text="залруулалт"/>
+<l:gentext key="Revision" text="Залруулалт"/>
+<l:gentext key="sect1" text="Хэсэг"/>
+<l:gentext key="sect2" text="Хэсэг"/>
+<l:gentext key="sect3" text="Хэсэг"/>
+<l:gentext key="sect4" text="Хэсэг"/>
+<l:gentext key="sect5" text="Хэсэг"/>
+<l:gentext key="section" text="Хэсэг"/>
+<l:gentext key="Section" text="Хэсэг"/>
+<l:gentext key="see" text="Харна уу"/>
+<l:gentext key="See" text="харна уу"/>
+<l:gentext key="seealso" text="бас харна уу"/>
+<l:gentext key="Seealso" text="Бас харна уу"/>
+<l:gentext key="SeeAlso" text="Бас харна уу"/>
+<l:gentext key="set" text="цуглуулга"/>
+<l:gentext key="Set" text="Цуглуулга"/>
+<l:gentext key="setindex" text="цуглуулгын жагсаалт"/>
+<l:gentext key="SetIndex" text="Цуглуулгын жагсаалт"/>
+<l:gentext key="Sidebar" text="Хажуу самбар"/>
+<l:gentext key="sidebar" text="хажуу самбар"/>
+<l:gentext key="step" text="алхам"/>
+<l:gentext key="Step" text="Алхам"/>
+<l:gentext key="table" text="хүснэгт"/>
+<l:gentext key="Table" text="Хүснэгт"/>
+<l:gentext key="task" text="даалгавар"/>
+<l:gentext key="Task" text="Даалгавар"/>
+<l:gentext key="tip" text="зөвлөгөө"/>
+<l:gentext key="TIP" text="ЗӨВЛӨГӨӨ"/>
+<l:gentext key="Tip" text="Зөвлөгөө"/>
+<l:gentext key="Warning" text="Сануулга"/>
+<l:gentext key="warning" text="сануулга"/>
+<l:gentext key="WARNING" text="САНУУЛГА"/>
+<l:gentext key="and" text="ба"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Хянасан"/>
+<l:gentext key="edited" text="хянасан"/>
+<l:gentext key="Editedby" text="Хянан тохиолдуулсан"/>
+<l:gentext key="editedby" text="хянан тохиолдуулсан"/>
+<l:gentext key="in" text="дотор"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="байхгүй элемент"/>
+<l:gentext key="notes" text="тайлбар"/>
+<l:gentext key="Notes" text="Тайлбар"/>
+<l:gentext key="Pgs" text="Хуудас"/>
+<l:gentext key="pgs" text="хуудас"/>
+<l:gentext key="Revisedby" text="Залруулсан: "/>
+<l:gentext key="revisedby" text="залруулсан: "/>
+<l:gentext key="TableNotes" text="Тайлбар"/>
+<l:gentext key="tablenotes" text="тайлбар"/>
+<l:gentext key="TableofContents" text="Гарчиг"/>
+<l:gentext key="tableofcontents" text="гарчиг"/>
+<l:gentext key="unexpectedelementname" text="Санамсаргүй элемент"/>
+<l:gentext key="unsupported" text="дэмжигдээгүй"/>
+<l:gentext key="xrefto" text="xref руу"/>
+<l:gentext key="Authors" text="Зохиогчид"/>
+<l:gentext key="copyeditor" text="Хуулбар хянан тохиолдуулагч"/>
+<l:gentext key="graphicdesigner" text="График дизайнч"/>
+<l:gentext key="productioneditor" text="Бүтээгдэхүүн хянан тохиолдуулагч"/>
+<l:gentext key="technicaleditor" text="Техникийн хянан тохиолдуулагч"/>
+<l:gentext key="translator" text="Орчуулагч"/>
+<l:gentext key="listofequations" text="тэгшитгэлийн жагсаалт"/>
+<l:gentext key="ListofEquations" text="Тэгшитгэлийн жагсаалт"/>
+<l:gentext key="ListofExamples" text="Жишээний жагсаалт"/>
+<l:gentext key="listofexamples" text="жишээний жагсаалт"/>
+<l:gentext key="ListofFigures" text="Зургийн жагсаалт"/>
+<l:gentext key="listoffigures" text="зургийн жагсаалт"/>
+<l:gentext key="ListofProcedures" text="Гүйцэтгэлийн жагсаалт"/>
+<l:gentext key="listofprocedures" text="гүйцэтгэлийн жагсаалт"/>
+<l:gentext key="listoftables" text="хүснэгтийн жагсаалт"/>
+<l:gentext key="ListofTables" text="Хүснэгтийн жагсаалт"/>
+<l:gentext key="ListofUnknown" text="Тодорхойгүй жагсаалт"/>
+<l:gentext key="listofunknown" text="тодорхойгүй жагсаалт"/>
+<l:gentext key="nav-home" text="Эхлэл"/>
+<l:gentext key="nav-next" text="Дараах"/>
+<l:gentext key="nav-next-sibling" text="Дараах"/>
+<l:gentext key="nav-prev" text="Өмнөх"/>
+<l:gentext key="nav-prev-sibling" text="Өмнөх"/>
+<l:gentext key="nav-up" text="Дээш"/>
+<l:gentext key="nav-toc" text="Гарчиг"/>
+<l:gentext key="Draft" text="Ноорог"/>
+<l:gentext key="above" text="дээр"/>
+<l:gentext key="below" text="доор"/>
+<l:gentext key="sectioncalled" text="Хэсгийн нэр"/>
+<l:gentext key="index symbols" text="тэмдэгтүүд"/>
+<l:gentext key="lowercase.alpha" text="абвгдеёжзийклмноөпрстуүфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЁЖЗИЙКЛМНОӨПРСТУҮФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="‚"/>
+<l:dingbat key="singleendquote" text="‘"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="3"/>
+<l:context name="styles"><l:template name="person-name" text="овог-нэр"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Хавсралт %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Бүлэг %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Тэгшитгэл %n. %t"/>
+<l:template name="example" text="Жишээ %n. %t"/>
+<l:template name="figure" text="Зураг %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="хэсэг %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Гүйцэтгэл %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Бүтээгдэхүүн %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="А: %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Хүснэгт %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Хавсралт %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Бүлэг %n. %t"/>
+<l:template name="part" text="хэсэг %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Х: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="А: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="А: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" %o "/>
+<l:template name="olink.page.citation" text=" (хуудас %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(Хуудас %p)"/>
+<l:template name="docname" text=" %o "/>
+<l:template name="docnamelong" text=" %o гарчигтай баримтад"/>
+<l:template name="pageabbrev" text="(Х. %p)"/>
+<l:template name="Page" text="Хуудас %p"/>
+<l:template name="bridgehead" text="«%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Х: %n"/>
+<l:template name="appendix" text="Хавсралт %n"/>
+<l:template name="bridgehead" text="Хэсэг %n"/>
+<l:template name="chapter" text="Бүлэг %n"/>
+<l:template name="equation" text="Тэгшитгэл %n"/>
+<l:template name="example" text="Жишээ %n"/>
+<l:template name="figure" text="Зураг %n"/>
+<l:template name="part" text="хэсэг %n"/>
+<l:template name="procedure" text="Гүйцэтгэл %n"/>
+<l:template name="productionset" text="Бүтээгдэхүүн %n"/>
+<l:template name="qandadiv" text="А ба Х %n"/>
+<l:template name="qandaentry" text="А: %n"/>
+<l:template name="question" text="А: %n"/>
+<l:template name="sect1" text="Хэсэг %n"/>
+<l:template name="sect2" text="Хэсэг %n"/>
+<l:template name="sect3" text="Хэсэг %n"/>
+<l:template name="sect4" text="Хэсэг %n"/>
+<l:template name="sect5" text="Хэсэг %n"/>
+<l:template name="section" text="Хэсэг %n"/>
+<l:template name="table" text="Хүснэгт %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Хавсралт %n, %t"/>
+<l:template name="bridgehead" text="Хэсэг %n, «%t»"/>
+<l:template name="chapter" text="Бүлэг %n, %t"/>
+<l:template name="equation" text="Тэгшитгэл %n, «%t»"/>
+<l:template name="example" text="Жишээ %n, «%t»"/>
+<l:template name="figure" text="Зураг %n, «%t»"/>
+<l:template name="part" text="хэсэг %n, «%t»"/>
+<l:template name="procedure" text="Гүйцэтгэл %n, «%t»"/>
+<l:template name="productionset" text="Бүтээгдэхүүн %n, «%t»"/>
+<l:template name="qandadiv" text="А ба Х %n, «%t»"/>
+<l:template name="refsect1" text="Хэсгийн нэр «%t»"/>
+<l:template name="refsect2" text="Хэсгийн нэр «%t»"/>
+<l:template name="refsect3" text="Хэсгийн нэр «%t»"/>
+<l:template name="refsection" text="Хэсгийн нэр «%t»"/>
+<l:template name="sect1" text="Хэсэг %n, «%t»"/>
+<l:template name="sect2" text="Хэсэг %n, «%t»"/>
+<l:template name="sect3" text="Хэсэг %n, «%t»"/>
+<l:template name="sect4" text="Хэсэг %n, «%t»"/>
+<l:template name="sect5" text="Хэсэг %n, «%t»"/>
+<l:template name="section" text="Хэсэг %n, «%t»"/>
+<l:template name="simplesect" text="Хэсгийн нэр «%t»"/>
+<l:template name="table" text="Хүснэгт %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ба "/>
+<l:template name="seplast" text=", ба "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="харна уу %t"/>
+<l:template name="seealso" text="Бас харна уу %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Зориулалт: "/>
+<l:template name="MsgLevel" text="Түвшин: "/>
+<l:template name="MsgOrig" text="Үүсэл: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y/m/d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Тодорхойлолт: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Хулгана сарын"/>
+<l:template name="February" text="Үхэр сарын"/>
+<l:template name="March" text="Бар сарын"/>
+<l:template name="April" text="Туулай сарын"/>
+<l:template name="May" text="Луу сарын"/>
+<l:template name="June" text="Могой сарын"/>
+<l:template name="July" text="Морь сарын"/>
+<l:template name="August" text="Хонь сарын"/>
+<l:template name="September" text="Бич сарын"/>
+<l:template name="October" text="Тахиа сарын"/>
+<l:template name="November" text="Нохой сарын"/>
+<l:template name="December" text="Гахай сарын"/>
+<l:template name="Monday" text="Даваа"/>
+<l:template name="Tuesday" text="Мягмар"/>
+<l:template name="Wednesday" text="Лхагва"/>
+<l:template name="Thursday" text="Пүрэв"/>
+<l:template name="Friday" text="Баасан"/>
+<l:template name="Saturday" text="Бямба"/>
+<l:template name="Sunday" text="Ням"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Хул"/>
+<l:template name="Feb" text="Үхэ"/>
+<l:template name="Mar" text="Бар"/>
+<l:template name="Apr" text="Туу"/>
+<l:template name="May" text="Луу"/>
+<l:template name="Jun" text="Мог"/>
+<l:template name="Jul" text="Мор"/>
+<l:template name="Aug" text="Хон"/>
+<l:template name="Sep" text="Бич"/>
+<l:template name="Oct" text="Тах"/>
+<l:template name="Nov" text="Нох"/>
+<l:template name="Dec" text="Гах"/>
+<l:template name="Mon" text="Да"/>
+<l:template name="Tue" text="Мя"/>
+<l:template name="Wed" text="Лх"/>
+<l:template name="Thu" text="Пү"/>
+<l:template name="Fri" text="Ба"/>
+<l:template name="Sat" text="Бя"/>
+<l:template name="Sun" text="Ня"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0450 Mongolian (MONGOLIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Тэмдэгтүүд</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">А</l:l>
+<l:l i="270">а</l:l>
+<l:l i="280">Б</l:l>
+<l:l i="280">б</l:l>
+<l:l i="290">В</l:l>
+<l:l i="290">в</l:l>
+<l:l i="300">Г</l:l>
+<l:l i="300">г</l:l>
+<l:l i="310">Д</l:l>
+<l:l i="310">д</l:l>
+<l:l i="320">Е</l:l>
+<l:l i="320">е</l:l>
+<l:l i="330">Ё</l:l>
+<l:l i="330">ё</l:l>
+<l:l i="340">Ж</l:l>
+<l:l i="340">ж</l:l>
+<l:l i="350">З</l:l>
+<l:l i="350">з</l:l>
+<l:l i="360">И</l:l>
+<l:l i="360">и</l:l>
+<l:l i="370">Й</l:l>
+<l:l i="370">й</l:l>
+<l:l i="380">К</l:l>
+<l:l i="380">к</l:l>
+<l:l i="390">Л</l:l>
+<l:l i="390">л</l:l>
+<l:l i="400">М</l:l>
+<l:l i="400">м</l:l>
+<l:l i="410">Н</l:l>
+<l:l i="410">н</l:l>
+<l:l i="420">О</l:l>
+<l:l i="420">о</l:l>
+<l:l i="430">Ө</l:l>
+<l:l i="430">ө</l:l>
+<l:l i="440">П</l:l>
+<l:l i="440">п</l:l>
+<l:l i="450">Р</l:l>
+<l:l i="450">р</l:l>
+<l:l i="460">С</l:l>
+<l:l i="460">с</l:l>
+<l:l i="470">Т</l:l>
+<l:l i="470">т</l:l>
+<l:l i="480">У</l:l>
+<l:l i="480">у</l:l>
+<l:l i="490">Ү</l:l>
+<l:l i="490">ү</l:l>
+<l:l i="500">Ф</l:l>
+<l:l i="500">ф</l:l>
+<l:l i="510">Х</l:l>
+<l:l i="510">х</l:l>
+<l:l i="520">Ц</l:l>
+<l:l i="520">ц</l:l>
+<l:l i="530">Ч</l:l>
+<l:l i="530">ч</l:l>
+<l:l i="540">Ш</l:l>
+<l:l i="540">ш</l:l>
+<l:l i="550">Щ</l:l>
+<l:l i="550">щ</l:l>
+<l:l i="560">Ъ</l:l>
+<l:l i="560">ъ</l:l>
+<l:l i="570">Ы</l:l>
+<l:l i="570">ы</l:l>
+<l:l i="580">Ь</l:l>
+<l:l i="580">ь</l:l>
+<l:l i="590">Э</l:l>
+<l:l i="590">э</l:l>
+<l:l i="600">Ю</l:l>
+<l:l i="600">ю</l:l>
+<l:l i="610">Я</l:l>
+<l:l i="610">я</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/nl.xml b/docs/xsl-generic/common/nl.xml
new file mode 100644
index 00000000..41b69ed6
--- /dev/null
+++ b/docs/xsl-generic/common/nl.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nl" english-language-name="Dutch">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/nl.xml -->
+<!-- * -->
+<!-- * E-mail the edited nl.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Samenvatting"/>
+<l:gentext key="abstract" text="Samenvatting"/>
+<l:gentext key="Answer" text="Antwoord:"/>
+<l:gentext key="answer" text="Antwoord:"/>
+<l:gentext key="Appendix" text="Bijlage"/>
+<l:gentext key="appendix" text="Bijlage"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Auteur"/>
+<l:gentext key="Bibliography" text="Literatuurlijst"/>
+<l:gentext key="bibliography" text="Literatuurlijst"/>
+<l:gentext key="Book" text="Boek"/>
+<l:gentext key="book" text="Boek"/>
+<l:gentext key="CAUTION" text="LET OP"/>
+<l:gentext key="Caution" text="Let op"/>
+<l:gentext key="caution" text="Let op"/>
+<l:gentext key="Chapter" text="Hoofdstuk"/>
+<l:gentext key="chapter" text="hoofdstuk"/>
+<l:gentext key="Colophon" text="Colofon"/>
+<l:gentext key="colophon" text="Colofon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Opdracht"/>
+<l:gentext key="dedication" text="Opdracht"/>
+<l:gentext key="Edition" text="Uitgave"/>
+<l:gentext key="edition" text="Uitgave"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Vergelijking"/>
+<l:gentext key="equation" text="Vergelijking"/>
+<l:gentext key="Example" text="Voorbeeld"/>
+<l:gentext key="example" text="Voorbeeld"/>
+<l:gentext key="Figure" text="Figuur"/>
+<l:gentext key="figure" text="Figuur"/>
+<l:gentext key="Glossary" text="Woordenlijst"/>
+<l:gentext key="glossary" text="Woordenlijst"/>
+<l:gentext key="GlossSee" text="Zie"/>
+<l:gentext key="glosssee" text="Zie"/>
+<l:gentext key="GlossSeeAlso" text="Zie ook"/>
+<l:gentext key="glossseealso" text="Zie ook"/>
+<l:gentext key="IMPORTANT" text="BELANGRIJK"/>
+<l:gentext key="important" text="Belangrijk"/>
+<l:gentext key="Important" text="Belangrijk"/>
+<l:gentext key="Index" text="Register"/>
+<l:gentext key="index" text="Register"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Bericht"/>
+<l:gentext key="legalnotice" text="Bericht"/>
+<l:gentext key="MsgAud" text="Doelgroep"/>
+<l:gentext key="msgaud" text="Doelgroep"/>
+<l:gentext key="MsgLevel" text="Niveau"/>
+<l:gentext key="msglevel" text="Niveau"/>
+<l:gentext key="MsgOrig" text="Herkomst"/>
+<l:gentext key="msgorig" text="Herkomst"/>
+<l:gentext key="NOTE" text="OPMERKING"/>
+<l:gentext key="Note" text="Opmerking"/>
+<l:gentext key="note" text="Opmerking"/>
+<l:gentext key="Part" text="Deel"/>
+<l:gentext key="part" text="Deel"/>
+<l:gentext key="Preface" text="Voorwoord"/>
+<l:gentext key="preface" text="Voorwoord"/>
+<l:gentext key="Procedure" text="Procedure"/>
+<l:gentext key="procedure" text="Procedure"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Uitgegeven"/>
+<l:gentext key="published" text="Uitgegeven"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Vraag en Antwoord"/>
+<l:gentext key="qandadiv" text="Vraag en Antwoord"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Vraag:"/>
+<l:gentext key="question" text="Vraag:"/>
+<l:gentext key="RefEntry" text="Referentielemma"/>
+<l:gentext key="refentry" text="Referentielemma"/>
+<l:gentext key="Reference" text="Referentie"/>
+<l:gentext key="reference" text="Referentie"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Referentienaam"/>
+<l:gentext key="refname" text="Referentienaam"/>
+<l:gentext key="RefSection" text="Referentieparagraaf"/>
+<l:gentext key="refsection" text="Referentieparagraaf"/>
+<l:gentext key="RefSynopsisDiv" text="Referentiesamenvatting"/>
+<l:gentext key="refsynopsisdiv" text="Referentiesamenvatting"/>
+<l:gentext key="RevHistory" text="Wijzigingen"/>
+<l:gentext key="revhistory" text="Wijzigingen"/>
+<l:gentext key="revision" text="Herziening"/>
+<l:gentext key="Revision" text="Herziening"/>
+<l:gentext key="sect1" text="Paragraaf"/>
+<l:gentext key="sect2" text="Paragraaf"/>
+<l:gentext key="sect3" text="Paragraaf"/>
+<l:gentext key="sect4" text="Paragraaf"/>
+<l:gentext key="sect5" text="Paragraaf"/>
+<l:gentext key="section" text="paragraaf"/>
+<l:gentext key="Section" text="Paragraaf"/>
+<l:gentext key="see" text="Zie"/>
+<l:gentext key="See" text="Zie"/>
+<l:gentext key="seealso" text="Zie ook"/>
+<l:gentext key="Seealso" text="Zie ook"/>
+<l:gentext key="SeeAlso" text="Zie ook"/>
+<l:gentext key="set" text="Verzameling"/>
+<l:gentext key="Set" text="Verzameling"/>
+<l:gentext key="setindex" text="Hoofdregister"/>
+<l:gentext key="SetIndex" text="Hoofdregister"/>
+<l:gentext key="Sidebar" text="Excursie"/>
+<l:gentext key="sidebar" text="excursie"/>
+<l:gentext key="step" text="stap"/>
+<l:gentext key="Step" text="Stap"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Waarschuwing"/>
+<l:gentext key="warning" text="Waarschuwing"/>
+<l:gentext key="WARNING" text="WAARSCHUWING"/>
+<l:gentext key="and" text="en"/>
+<l:gentext key="by" text="door"/>
+<l:gentext key="Edited" text="Redactie"/>
+<l:gentext key="edited" text="Redactie"/>
+<l:gentext key="Editedby" text="Redactie door"/>
+<l:gentext key="editedby" text="Redactie door"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="niet bestaand element"/>
+<l:gentext key="notes" text="Noten"/>
+<l:gentext key="Notes" text="Noten"/>
+<l:gentext key="Pgs" text="blz."/>
+<l:gentext key="pgs" text="blz."/>
+<l:gentext key="Revisedby" text="Herzien door: "/>
+<l:gentext key="revisedby" text="Herzien door: "/>
+<l:gentext key="TableNotes" text="Opmerkingen"/>
+<l:gentext key="tablenotes" text="Opmerkingen"/>
+<l:gentext key="TableofContents" text="Inhoudsopgave"/>
+<l:gentext key="tableofcontents" text="Inhoudsopgave"/>
+<l:gentext key="unexpectedelementname" text="ONVERWACHT-ELEMENT"/>
+<l:gentext key="unsupported" text="niet ondersteund"/>
+<l:gentext key="xrefto" text="verwijzing naar"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lijst van vergelijkingen"/>
+<l:gentext key="ListofEquations" text="Lijst van vergelijkingen"/>
+<l:gentext key="ListofExamples" text="Lijst van voorbeelden"/>
+<l:gentext key="listofexamples" text="Lijst van voorbeelden"/>
+<l:gentext key="ListofFigures" text="Lijst van figuren"/>
+<l:gentext key="listoffigures" text="Lijst van figuren"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Lijst van tabellen"/>
+<l:gentext key="ListofTables" text="Lijst van tabellen"/>
+<l:gentext key="ListofUnknown" text="Lijst van ???"/>
+<l:gentext key="listofunknown" text="Lijst van ???"/>
+<l:gentext key="nav-home" text="Begin"/>
+<l:gentext key="nav-next" text="Volgende"/>
+<l:gentext key="nav-next-sibling" text="Verder vooruit"/>
+<l:gentext key="nav-prev" text="Terug"/>
+<l:gentext key="nav-prev-sibling" text="Verder terug"/>
+<l:gentext key="nav-up" text="Omhoog"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Ontwerp"/>
+<l:gentext key="above" text="boven"/>
+<l:gentext key="below" text="onder"/>
+<l:gentext key="sectioncalled" text="de paragraaf"/>
+<l:gentext key="index symbols" text="Symbolen"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzëïé"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZËÏÉ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Bijlage %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Vergelijking %n. %t"/>
+<l:template name="example" text="Voorbeeld %n. %t"/>
+<l:template name="figure" text="Figuur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Bijlage %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="de paragraaf “%t”"/>
+<l:template name="refsection" text="de paragraaf “%t”"/>
+<l:template name="refsect1" text="de paragraaf “%t”"/>
+<l:template name="refsect2" text="de paragraaf “%t”"/>
+<l:template name="refsect3" text="de paragraaf “%t”"/>
+<l:template name="sect1" text="de paragraaf “%t”"/>
+<l:template name="sect2" text="de paragraaf “%t”"/>
+<l:template name="sect3" text="de paragraaf “%t”"/>
+<l:template name="sect4" text="de paragraaf “%t”"/>
+<l:template name="sect5" text="de paragraaf “%t”"/>
+<l:template name="section" text="de paragraaf “%t”"/>
+<l:template name="simplesect" text="de paragraaf “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="Bijlage %n"/>
+<l:template name="bridgehead" text="Paragraaf %n"/>
+<l:template name="chapter" text="Hoofdstuk %n"/>
+<l:template name="equation" text="Vergelijking %n"/>
+<l:template name="example" text="Voorbeeld %n"/>
+<l:template name="figure" text="Figuur %n"/>
+<l:template name="part" text="Deel %n"/>
+<l:template name="procedure" text="Procedure %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Vraag en Antwoord %n"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="sect1" text="Paragraaf %n"/>
+<l:template name="sect2" text="Paragraaf %n"/>
+<l:template name="sect3" text="Paragraaf %n"/>
+<l:template name="sect4" text="Paragraaf %n"/>
+<l:template name="sect5" text="Paragraaf %n"/>
+<l:template name="section" text="Paragraaf %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Bijlage %n, %t"/>
+<l:template name="bridgehead" text="Paragraaf %n, “%t”"/>
+<l:template name="chapter" text="Hoofdstuk %n, %t"/>
+<l:template name="equation" text="Vergelijking %n, “%t”"/>
+<l:template name="example" text="Voorbeeld %n, “%t”"/>
+<l:template name="figure" text="Figuur %n, “%t”"/>
+<l:template name="part" text="Deel %n, “%t”"/>
+<l:template name="procedure" text="Procedure %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Vraag en Antwoord %n, “%t”"/>
+<l:template name="refsect1" text="de paragraaf “%t”"/>
+<l:template name="refsect2" text="de paragraaf “%t”"/>
+<l:template name="refsect3" text="de paragraaf “%t”"/>
+<l:template name="refsection" text="de paragraaf “%t”"/>
+<l:template name="sect1" text="Paragraaf %n, “%t”"/>
+<l:template name="sect2" text="Paragraaf %n, “%t”"/>
+<l:template name="sect3" text="Paragraaf %n, “%t”"/>
+<l:template name="sect4" text="Paragraaf %n, “%t”"/>
+<l:template name="sect5" text="Paragraaf %n, “%t”"/>
+<l:template name="section" text="Paragraaf %n, “%t”"/>
+<l:template name="simplesect" text="de paragraaf “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" en "/>
+<l:template name="seplast" text=", en "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Zie %t"/>
+<l:template name="seealso" text="Zie ook %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Doelgroep: "/>
+<l:template name="MsgLevel" text="Niveau: "/>
+<l:template name="MsgOrig" text="Herkomst: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0413 Dutch"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/nn.xml b/docs/xsl-generic/common/nn.xml
new file mode 100644
index 00000000..fa1db047
--- /dev/null
+++ b/docs/xsl-generic/common/nn.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nn" english-language-name="Nynorsk">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/nn.xml -->
+<!-- * -->
+<!-- * E-mail the edited nn.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Samandrag"/>
+<l:gentext key="abstract" text="Samandrag"/>
+<l:gentext key="Answer" text="Svar"/>
+<l:gentext key="answer" text="svar"/>
+<l:gentext key="Appendix" text="Tillegg"/>
+<l:gentext key="appendix" text="tillegg"/>
+<l:gentext key="Article" text="Artikkel"/>
+<l:gentext key="article" text="artikkel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="bibliografi"/>
+<l:gentext key="Book" text="Bok"/>
+<l:gentext key="book" text="bok"/>
+<l:gentext key="CAUTION" text="OBS"/>
+<l:gentext key="Caution" text="Obs"/>
+<l:gentext key="caution" text="OBS"/>
+<l:gentext key="Chapter" text="Kapittel"/>
+<l:gentext key="chapter" text="kapittel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Opphavsrett"/>
+<l:gentext key="copyright" text="opphavsrett"/>
+<l:gentext key="Dedication" text="Dedikasjon"/>
+<l:gentext key="dedication" text="dedikasjon"/>
+<l:gentext key="Edition" text="Utgåve"/>
+<l:gentext key="edition" text="utgåve"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Formel"/>
+<l:gentext key="equation" text="formel"/>
+<l:gentext key="Example" text="Døme"/>
+<l:gentext key="example" text="døme"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="figur"/>
+<l:gentext key="Glossary" text="Ordliste"/>
+<l:gentext key="glossary" text="ordliste"/>
+<l:gentext key="GlossSee" text="Sjå"/>
+<l:gentext key="glosssee" text="sjå"/>
+<l:gentext key="GlossSeeAlso" text="Sjå òg"/>
+<l:gentext key="glossseealso" text="sjå òg"/>
+<l:gentext key="IMPORTANT" text="VIKTIG"/>
+<l:gentext key="important" text="viktig"/>
+<l:gentext key="Important" text="Viktig"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="publikum"/>
+<l:gentext key="MsgLevel" text="Nivå"/>
+<l:gentext key="msglevel" text="nivå"/>
+<l:gentext key="MsgOrig" text="Opphav"/>
+<l:gentext key="msgorig" text="Opphav"/>
+<l:gentext key="NOTE" text="NOTAT"/>
+<l:gentext key="Note" text="Notat"/>
+<l:gentext key="note" text="NOTAT"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="del"/>
+<l:gentext key="Preface" text="Forord"/>
+<l:gentext key="preface" text="forord"/>
+<l:gentext key="Procedure" text="Prosedyre"/>
+<l:gentext key="procedure" text="prosedyre"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Utgitt"/>
+<l:gentext key="published" text="utgitt"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Spørsmål og Svar"/>
+<l:gentext key="qandadiv" text="Spørsmål og Svar"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Spørsmål"/>
+<l:gentext key="question" text="spørsmål"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referanse"/>
+<l:gentext key="reference" text="referanse"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Namn"/>
+<l:gentext key="refname" text="namn"/>
+<l:gentext key="RefSection" text="Del"/>
+<l:gentext key="refsection" text="del"/>
+<l:gentext key="RefSynopsisDiv" text="Oversyn"/>
+<l:gentext key="refsynopsisdiv" text="oversyn"/>
+<l:gentext key="RevHistory" text="Revisjonshistorie"/>
+<l:gentext key="revhistory" text="revisjonshistorie"/>
+<l:gentext key="revision" text="revisjon"/>
+<l:gentext key="Revision" text="Revisjon"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="del"/>
+<l:gentext key="Section" text="Del"/>
+<l:gentext key="see" text="sjå"/>
+<l:gentext key="See" text="Sjå"/>
+<l:gentext key="seealso" text="sjå òg"/>
+<l:gentext key="Seealso" text="Sjå òg"/>
+<l:gentext key="SeeAlso" text="Sjå òg"/>
+<l:gentext key="set" text="set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text="Sidestolpe"/>
+<l:gentext key="sidebar" text="sidestolpe"/>
+<l:gentext key="step" text="steg"/>
+<l:gentext key="Step" text="Steg"/>
+<l:gentext key="table" text="tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="tips"/>
+<l:gentext key="TIP" text="TIPS"/>
+<l:gentext key="Tip" text="Tips"/>
+<l:gentext key="Warning" text="Åtvaring"/>
+<l:gentext key="warning" text="åtvaring"/>
+<l:gentext key="WARNING" text="ÅTVARING"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="by" text="av"/>
+<l:gentext key="Edited" text="Redigert"/>
+<l:gentext key="edited" text="redigert"/>
+<l:gentext key="Editedby" text="Redigert av"/>
+<l:gentext key="editedby" text="redigert av"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="ikkje-eksisterande element"/>
+<l:gentext key="notes" text="merknader"/>
+<l:gentext key="Notes" text="Merknader"/>
+<l:gentext key="Pgs" text="Sider"/>
+<l:gentext key="pgs" text="sider"/>
+<l:gentext key="Revisedby" text="Revidert av: "/>
+<l:gentext key="revisedby" text="revidert av: "/>
+<l:gentext key="TableNotes" text="Merknader"/>
+<l:gentext key="tablenotes" text="merknader"/>
+<l:gentext key="TableofContents" text="Innhald"/>
+<l:gentext key="tableofcontents" text="Innhald"/>
+<l:gentext key="unexpectedelementname" text="UVENTA-ELEMENTNAVN"/>
+<l:gentext key="unsupported" text="ikkje støtta"/>
+<l:gentext key="xrefto" text="xref til"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="formeloversikt"/>
+<l:gentext key="ListofEquations" text="Formeloversikt"/>
+<l:gentext key="ListofExamples" text="Dømeoversikt"/>
+<l:gentext key="listofexamples" text="dømeoversikt"/>
+<l:gentext key="ListofFigures" text="Figuroversikt"/>
+<l:gentext key="listoffigures" text="figuroversikt"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="tabelloversikt"/>
+<l:gentext key="ListofTables" text="Tabelloversikt"/>
+<l:gentext key="ListofUnknown" text="???-oversikt"/>
+<l:gentext key="listofunknown" text="???-oversikt"/>
+<l:gentext key="nav-home" text="Heim"/>
+<l:gentext key="nav-next" text="Fram"/>
+<l:gentext key="nav-next-sibling" text="Raskt framover"/>
+<l:gentext key="nav-prev" text="Att"/>
+<l:gentext key="nav-prev-sibling" text="Raskt bakover"/>
+<l:gentext key="nav-up" text="Opp"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Formel %n. %t"/>
+<l:template name="example" text="Døme %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedyre %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Spørsmål %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørsmål %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="Tillegg %n"/>
+<l:template name="bridgehead" text="Del %n"/>
+<l:template name="chapter" text="Kapittel %n"/>
+<l:template name="equation" text="Formel %n"/>
+<l:template name="example" text="Døme %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Prosedyre %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Spørsmål og Svar %n"/>
+<l:template name="qandaentry" text="Spørsmål %n"/>
+<l:template name="question" text="Spørsmål %n"/>
+<l:template name="sect1" text="Del %n"/>
+<l:template name="sect2" text="Del %n"/>
+<l:template name="sect3" text="Del %n"/>
+<l:template name="sect4" text="Del %n"/>
+<l:template name="sect5" text="Del %n"/>
+<l:template name="section" text="Del %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Tillegg %n, %t"/>
+<l:template name="bridgehead" text="Del %n, “%t”"/>
+<l:template name="chapter" text="Kapittel %n, %t"/>
+<l:template name="equation" text="Formel %n, “%t”"/>
+<l:template name="example" text="Døme %n, “%t”"/>
+<l:template name="figure" text="Figur %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Prosedyre %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Spørsmål og Svar %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Del %n, “%t”"/>
+<l:template name="sect2" text="Del %n, “%t”"/>
+<l:template name="sect3" text="Del %n, “%t”"/>
+<l:template name="sect4" text="Del %n, “%t”"/>
+<l:template name="sect5" text="Del %n, “%t”"/>
+<l:template name="section" text="Del %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabell %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=", og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Sjå %t"/>
+<l:template name="seealso" text="Sjå òg %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Nivå: "/>
+<l:template name="MsgOrig" text="Opphav: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0814 Norwegian (Nynorsk)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/no.xml b/docs/xsl-generic/common/no.xml
new file mode 100644
index 00000000..27e2279e
--- /dev/null
+++ b/docs/xsl-generic/common/no.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="no" english-language-name="Norwegian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/no.xml -->
+<!-- * -->
+<!-- * E-mail the edited no.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstract"/>
+<l:gentext key="abstract" text="Abstract"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Tillegg"/>
+<l:gentext key="appendix" text="Tillegg"/>
+<l:gentext key="Article" text=""/>
+<l:gentext key="article" text=""/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="Bibliografi"/>
+<l:gentext key="Book" text=""/>
+<l:gentext key="book" text=""/>
+<l:gentext key="CAUTION" text="OBS"/>
+<l:gentext key="Caution" text="Obs"/>
+<l:gentext key="caution" text="Obs"/>
+<l:gentext key="Chapter" text="Kapittel"/>
+<l:gentext key="chapter" text="Kapittel"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedikasjon"/>
+<l:gentext key="dedication" text="Dedikasjon"/>
+<l:gentext key="Edition" text=""/>
+<l:gentext key="edition" text=""/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Formel"/>
+<l:gentext key="equation" text="Formel"/>
+<l:gentext key="Example" text="Eksempel"/>
+<l:gentext key="example" text="Eksempel"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="Figur"/>
+<l:gentext key="Glossary" text="Ordliste"/>
+<l:gentext key="glossary" text="Ordliste"/>
+<l:gentext key="GlossSee" text="Se"/>
+<l:gentext key="glosssee" text="Se"/>
+<l:gentext key="GlossSeeAlso" text="Se Også"/>
+<l:gentext key="glossseealso" text="Se Også"/>
+<l:gentext key="IMPORTANT" text="VIKTIG"/>
+<l:gentext key="important" text="Viktig"/>
+<l:gentext key="Important" text="Viktig"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="Publikum"/>
+<l:gentext key="MsgLevel" text="Nivå"/>
+<l:gentext key="msglevel" text="Nivå"/>
+<l:gentext key="MsgOrig" text="Opphav"/>
+<l:gentext key="msgorig" text="Opphav"/>
+<l:gentext key="NOTE" text="NOTAT"/>
+<l:gentext key="Note" text="Notat"/>
+<l:gentext key="note" text="Notat"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="Del"/>
+<l:gentext key="Preface" text="Forord"/>
+<l:gentext key="preface" text="Forord"/>
+<l:gentext key="Procedure" text="Prosedyre"/>
+<l:gentext key="procedure" text="Prosedyre"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text=""/>
+<l:gentext key="published" text=""/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referanse"/>
+<l:gentext key="reference" text="Referanse"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Navn"/>
+<l:gentext key="refname" text="Navn"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revisjonshistorie"/>
+<l:gentext key="revhistory" text="Revisjonshistorie"/>
+<l:gentext key="revision" text="Revisjon"/>
+<l:gentext key="Revision" text="Revisjon"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="seksjon"/>
+<l:gentext key="Section" text="Seksjon"/>
+<l:gentext key="see" text="Se"/>
+<l:gentext key="See" text="Se"/>
+<l:gentext key="seealso" text="Se Også"/>
+<l:gentext key="Seealso" text="Se også"/>
+<l:gentext key="SeeAlso" text="Se Også"/>
+<l:gentext key="set" text=""/>
+<l:gentext key="Set" text=""/>
+<l:gentext key="setindex" text="Indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text=""/>
+<l:gentext key="step" text="steg"/>
+<l:gentext key="Step" text="Steg"/>
+<l:gentext key="table" text="Tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tips"/>
+<l:gentext key="TIP" text="TIPS"/>
+<l:gentext key="Tip" text="Tips"/>
+<l:gentext key="Warning" text="Advarsel"/>
+<l:gentext key="warning" text="Advarsel"/>
+<l:gentext key="WARNING" text="ADVARSEL"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="by" text="av"/>
+<l:gentext key="Edited" text="Redigert"/>
+<l:gentext key="edited" text="Redigert"/>
+<l:gentext key="Editedby" text="Redigert av"/>
+<l:gentext key="editedby" text="Redigert av"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="ikke-eksisterende element"/>
+<l:gentext key="notes" text="Sluttnotater"/>
+<l:gentext key="Notes" text="Sluttnotater"/>
+<l:gentext key="Pgs" text="Sdr."/>
+<l:gentext key="pgs" text="Sdr."/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Notater"/>
+<l:gentext key="tablenotes" text="Notater"/>
+<l:gentext key="TableofContents" text="Innholdsfortegnelse"/>
+<l:gentext key="tableofcontents" text="Innholdsfortegnelse"/>
+<l:gentext key="unexpectedelementname" text="UVENTET-ELEMENTNAVN"/>
+<l:gentext key="unsupported" text="ikke støttet"/>
+<l:gentext key="xrefto" text="xref til"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Formeloversikt"/>
+<l:gentext key="ListofEquations" text="Formeloversikt"/>
+<l:gentext key="ListofExamples" text="Eksempeloversikt"/>
+<l:gentext key="listofexamples" text="Eksempeloversikt"/>
+<l:gentext key="ListofFigures" text="Figuroversikt"/>
+<l:gentext key="listoffigures" text="Figuroversikt"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabelloversikt"/>
+<l:gentext key="ListofTables" text="Tabelloversikt"/>
+<l:gentext key="ListofUnknown" text="???-oversikt"/>
+<l:gentext key="listofunknown" text="???-oversikt"/>
+<l:gentext key="nav-home" text="Hjem"/>
+<l:gentext key="nav-next" text="Neste"/>
+<l:gentext key="nav-next-sibling" text="Raskt Fremover"/>
+<l:gentext key="nav-prev" text="Forrige"/>
+<l:gentext key="nav-prev-sibling" text="Raskt Bakover"/>
+<l:gentext key="nav-up" text="Opp"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Formel %n. %t"/>
+<l:template name="example" text="Eksempel %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedyre %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Tillegg %n"/>
+<l:template name="bridgehead" text="Seksjon %n"/>
+<l:template name="chapter" text="Kapittel %n"/>
+<l:template name="equation" text="Formel %n"/>
+<l:template name="example" text="Eksempel %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Prosedyre %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Seksjon %n"/>
+<l:template name="sect2" text="Seksjon %n"/>
+<l:template name="sect3" text="Seksjon %n"/>
+<l:template name="sect4" text="Seksjon %n"/>
+<l:template name="sect5" text="Seksjon %n"/>
+<l:template name="section" text="Seksjon %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Tillegg %n, %t"/>
+<l:template name="bridgehead" text="Seksjon %n, “%t”"/>
+<l:template name="chapter" text="Kapittel %n, %t"/>
+<l:template name="equation" text="Formel %n, “%t”"/>
+<l:template name="example" text="Eksempel %n, “%t”"/>
+<l:template name="figure" text="Figur %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Prosedyre %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Seksjon %n, “%t”"/>
+<l:template name="sect2" text="Seksjon %n, “%t”"/>
+<l:template name="sect3" text="Seksjon %n, “%t”"/>
+<l:template name="sect4" text="Seksjon %n, “%t”"/>
+<l:template name="sect5" text="Seksjon %n, “%t”"/>
+<l:template name="section" text="Seksjon %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabell %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=", og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Se %t"/>
+<l:template name="seealso" text="Se Også %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Nivå: "/>
+<l:template name="MsgOrig" text="Opphav: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0414 Norwegian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/olink.xsl b/docs/xsl-generic/common/olink.xsl
new file mode 100644
index 00000000..91849263
--- /dev/null
+++ b/docs/xsl-generic/common/olink.xsl
@@ -0,0 +1,1149 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- Create keys for quickly looking up olink targets -->
+<xsl:key name="targetdoc-key" match="document" use="@targetdoc" />
+<xsl:key name="targetptr-key" match="div|obj"
+ use="concat(ancestor::document/@targetdoc, '/',
+ @targetptr, '/', ancestor::document/@lang)" />
+
+<!-- Return filename of database -->
+<xsl:template name="select.target.database">
+ <xsl:param name="targetdoc.att" select="''"/>
+ <xsl:param name="targetptr.att" select="''"/>
+ <xsl:param name="olink.lang" select="''"/>
+
+ <!-- use root's xml:base if exists -->
+ <xsl:variable name="xml.base" select="/*/@xml:base"/>
+
+ <!-- This selection can be customized if needed -->
+ <xsl:variable name="target.database.filename">
+ <xsl:choose>
+ <xsl:when test="$xml.base != '' and
+ not(starts-with($target.database.document, 'file:/')) and
+ not(starts-with($target.database.document, '/'))">
+ <xsl:call-template name="systemIdToBaseURI">
+ <xsl:with-param name="systemId" select="$xml.base"/>
+ </xsl:call-template>
+ <xsl:value-of select="$target.database.document"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$target.database.document"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="target.database"
+ select="document($target.database.filename,/)"/>
+
+ <xsl:choose>
+ <!-- Was the database document parameter not set? -->
+ <xsl:when test="$target.database.document = ''">
+ <xsl:message>
+ <xsl:text>Olinks not processed: must specify a </xsl:text>
+ <xsl:text>$target.database.document parameter&#10;</xsl:text>
+ <xsl:text>when using olinks with targetdoc </xsl:text>
+ <xsl:text>and targetptr attributes.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <!-- Did it not open? Should be a targetset element -->
+ <xsl:when test="not($target.database/*)">
+ <xsl:message>
+ <xsl:text>Olink error: could not open target database '</xsl:text>
+ <xsl:value-of select="$target.database.filename"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$target.database.filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.olink.key">
+ <xsl:param name="targetdoc.att" select="''"/>
+ <xsl:param name="targetptr.att" select="''"/>
+ <xsl:param name="olink.lang" select="''"/>
+ <xsl:param name="target.database"/>
+
+ <xsl:if test="$target.database/*">
+ <xsl:variable name="olink.fallback.sequence">
+ <xsl:call-template name="select.olink.lang.fallback">
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- Recurse through the languages until you find a match -->
+ <xsl:call-template name="select.olink.key.in.lang">
+ <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+ <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ <xsl:with-param name="fallback.index" select="1"/>
+ <xsl:with-param name="olink.fallback.sequence"
+ select="$olink.fallback.sequence"/>
+ </xsl:call-template>
+ </xsl:if>
+
+</xsl:template>
+
+<!-- Locate olink key in a particular language -->
+<xsl:template name="select.olink.key.in.lang">
+ <xsl:param name="targetdoc.att" select="''"/>
+ <xsl:param name="targetptr.att" select="''"/>
+ <xsl:param name="olink.lang" select="''"/>
+ <xsl:param name="target.database"/>
+ <xsl:param name="fallback.index" select="1"/>
+ <xsl:param name="olink.fallback.sequence" select="''"/>
+
+ <xsl:variable name="target.lang">
+ <xsl:call-template name="select.target.lang">
+ <xsl:with-param name="fallback.index" select="$fallback.index"/>
+ <xsl:with-param name="olink.fallback.sequence"
+ select="$olink.fallback.sequence"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message><xsl:text>Olink debug: cases for targetdoc='</xsl:text>
+ <xsl:value-of select="$targetdoc.att"/>
+ <xsl:text>' and targetptr='</xsl:text>
+ <xsl:value-of select="$targetptr.att"/>
+ <xsl:text>' in language '</xsl:text>
+ <xsl:value-of select="$target.lang"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <!-- Customize these cases if you want different selection logic -->
+ <xsl:variable name="CaseA">
+ <!-- targetdoc.att = not blank
+ targetptr.att = not blank
+ -->
+ <xsl:if test="$targetdoc.att != '' and
+ $targetptr.att != ''">
+ <xsl:for-each select="$target.database">
+ <xsl:variable name="key"
+ select="concat($targetdoc.att, '/',
+ $targetptr.att, '/',
+ $target.lang)"/>
+ <xsl:choose>
+ <xsl:when test="key('targetptr-key', $key)/@href != ''">
+ <xsl:value-of select="$key"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseA matched.</xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseA NOT matched</xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="CaseB">
+ <!-- targetdoc.att = not blank
+ targetptr.att = not blank
+ prefer.internal.olink = not zero
+ current.docid = not blank
+ -->
+ <xsl:if test="$targetdoc.att != '' and
+ $targetptr.att != '' and
+ $current.docid != '' and
+ $prefer.internal.olink != 0">
+ <xsl:for-each select="$target.database">
+ <xsl:variable name="key"
+ select="concat($current.docid, '/',
+ $targetptr.att, '/',
+ $target.lang)"/>
+ <xsl:choose>
+ <xsl:when test="key('targetptr-key', $key)/@href != ''">
+ <xsl:value-of select="$key"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseB matched.</xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseB NOT matched</xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="CaseC">
+ <!-- targetdoc.att = blank
+ targetptr.att = not blank
+ current.docid = not blank
+ -->
+ <xsl:if test="string-length($targetdoc.att) = 0 and
+ $targetptr.att != '' and
+ $current.docid != ''">
+ <!-- Must use a for-each to change context for keys to work -->
+ <xsl:for-each select="$target.database">
+ <xsl:variable name="key"
+ select="concat($current.docid, '/',
+ $targetptr.att, '/',
+ $target.lang)"/>
+ <xsl:choose>
+ <xsl:when test="key('targetptr-key', $key)/@href != ''">
+ <xsl:value-of select="$key"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseC matched.</xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseC NOT matched.</xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="CaseD">
+ <!-- targetdoc.att = blank
+ targetptr.att = not blank
+ current.docid = blank
+ -->
+ <!-- This is possible if only one document in the database -->
+ <xsl:if test="string-length($targetdoc.att) = 0 and
+ $targetptr.att != '' and
+ string-length($current.docid) = 0 and
+ count($target.database//document) = 1">
+ <xsl:for-each select="$target.database">
+ <xsl:variable name="key"
+ select="concat(.//document/@targetdoc, '/',
+ $targetptr.att, '/',
+ $target.lang)"/>
+ <xsl:choose>
+ <xsl:when test="key('targetptr-key', $key)/@href != ''">
+ <xsl:value-of select="$key"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseD matched.</xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseD NOT matched</xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="CaseE">
+ <!-- targetdoc.att = not blank
+ targetptr.att = blank
+ -->
+ <xsl:if test="$targetdoc.att != '' and
+ string-length($targetptr.att) = 0">
+
+ <!-- Try the document's root element id -->
+ <xsl:variable name="rootid">
+ <xsl:choose>
+ <xsl:when test="$target.lang != ''">
+ <xsl:value-of select="$target.database//document[@targetdoc = $targetdoc.att and @lang = $target.lang]/*[1]/@targetptr"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$target.database//document[@targetdoc = $targetdoc.att and not(@lang)]/*[1]/@targetptr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:for-each select="$target.database">
+ <xsl:variable name="key"
+ select="concat($targetdoc.att, '/',
+ $rootid, '/',
+ $target.lang)"/>
+ <xsl:choose>
+ <xsl:when test="key('targetptr-key', $key)/@href != ''">
+ <xsl:value-of select="$key"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseE matched.</xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseE NOT matched.</xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="CaseF">
+ <!-- targetdoc.att = not blank
+ targetptr.att = blank
+ prefer.internal.olink = not zero
+ current.docid = not blank
+ -->
+ <xsl:if test="$targetdoc.att != '' and
+ string-length($targetptr.att) = 0 and
+ $current.docid != '' and
+ $prefer.internal.olink != 0">
+ <!-- Try the document's root element id -->
+ <xsl:variable name="rootid">
+ <xsl:choose>
+ <xsl:when test="$target.lang != ''">
+ <xsl:value-of select="$target.database//document[@targetdoc = $current.docid and @lang = $target.lang]/*[1]/@targetptr"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$target.database//document[@targetdoc = $current.docid and not(@lang)]/*[1]/@targetptr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:for-each select="$target.database">
+ <xsl:variable name="key"
+ select="concat($current.docid, '/',
+ $rootid, '/',
+ $target.lang)"/>
+ <xsl:choose>
+ <xsl:when test="key('targetptr-key', $key)/@href != ''">
+ <xsl:value-of select="$key"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseF matched.</xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$olink.debug != 0">
+ <xsl:message>Olink debug: CaseF NOT matched.</xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:variable>
+
+ <!-- Now select the best match. Customize the order if needed -->
+ <xsl:variable name="selected.key">
+ <xsl:choose>
+ <xsl:when test="$CaseB != ''">
+ <xsl:value-of select="$CaseB"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: CaseB key is the final selection: </xsl:text>
+ <xsl:value-of select="$CaseB"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$CaseA != ''">
+ <xsl:value-of select="$CaseA"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: CaseA key is the final selection: </xsl:text>
+ <xsl:value-of select="$CaseA"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$CaseC != ''">
+ <xsl:value-of select="$CaseC"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: CaseC key is the final selection: </xsl:text>
+ <xsl:value-of select="$CaseC"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$CaseD != ''">
+ <xsl:value-of select="$CaseD"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: CaseD key is the final selection: </xsl:text>
+ <xsl:value-of select="$CaseD"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$CaseF != ''">
+ <xsl:value-of select="$CaseF"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: CaseF key is the final selection: </xsl:text>
+ <xsl:value-of select="$CaseF"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$CaseE != ''">
+ <xsl:value-of select="$CaseE"/>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: CaseE key is the final selection: </xsl:text>
+ <xsl:value-of select="$CaseE"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: No case matched for lang '</xsl:text>
+ <xsl:value-of select="$target.lang"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$selected.key != ''">
+ <xsl:value-of select="$selected.key"/>
+ </xsl:when>
+ <xsl:when test="string-length($selected.key) = 0 and
+ string-length($target.lang) = 0">
+ <!-- No match on last try, and we are done -->
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Recurse through next language -->
+ <xsl:call-template name="select.olink.key.in.lang">
+ <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+ <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ <xsl:with-param name="fallback.index" select="$fallback.index + 1"/>
+ <xsl:with-param name="olink.fallback.sequence"
+ select="$olink.fallback.sequence"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="select.target.lang">
+ <xsl:param name="fallback.index" select="1"/>
+ <xsl:param name="olink.fallback.sequence" select="''"/>
+
+ <!-- recurse backwards to find the lang matching the index -->
+ <xsl:variable name="firstlang"
+ select="substring-before($olink.fallback.sequence, ' ')"/>
+ <xsl:variable name="rest"
+ select="substring-after($olink.fallback.sequence, ' ')"/>
+ <xsl:choose>
+ <xsl:when test="$fallback.index = 1">
+ <xsl:value-of select="$firstlang"/>
+ </xsl:when>
+ <xsl:when test="$fallback.index &gt; 1">
+ <xsl:call-template name="select.target.lang">
+ <xsl:with-param name="fallback.index" select="$fallback.index - 1"/>
+ <xsl:with-param name="olink.fallback.sequence"
+ select="$rest"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.olink.lang.fallback">
+ <xsl:param name="olink.lang" select="''"/>
+
+ <!-- Prefer language of the olink element -->
+ <xsl:value-of select="concat(normalize-space(concat($olink.lang, ' ',
+ $olink.lang.fallback.sequence)), ' ')"/>
+</xsl:template>
+
+<!-- Returns the complete olink href value if found -->
+<xsl:template name="make.olink.href">
+ <xsl:param name="olink.key" select="''"/>
+ <xsl:param name="target.database"/>
+
+ <xsl:if test="$olink.key != ''">
+ <xsl:variable name="target.href" >
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $olink.key)/@href" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="targetdoc">
+ <xsl:value-of select="substring-before($olink.key, '/')"/>
+ </xsl:variable>
+
+ <!-- Does the target database use a sitemap? -->
+ <xsl:variable name="use.sitemap">
+ <xsl:choose>
+ <xsl:when test="$target.database//sitemap">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+
+ <!-- Get the baseuri for this targetptr -->
+ <xsl:variable name="baseuri" >
+ <xsl:choose>
+ <!-- Does the database use a sitemap? -->
+ <xsl:when test="$use.sitemap != 0" >
+ <xsl:choose>
+ <!-- Was current.docid parameter set? -->
+ <xsl:when test="$current.docid != ''">
+ <!-- Was it found in the database? -->
+ <xsl:variable name="currentdoc.key" >
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetdoc-key',
+ $current.docid)/@targetdoc" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$currentdoc.key != ''">
+ <xsl:for-each select="$target.database" >
+ <xsl:call-template name="targetpath" >
+ <xsl:with-param name="dirnode"
+ select="key('targetdoc-key', $current.docid)/parent::dir"/>
+ <xsl:with-param name="targetdoc" select="$targetdoc"/>
+ </xsl:call-template>
+ </xsl:for-each >
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Olink error: cannot compute relative </xsl:text>
+ <xsl:text>sitemap path because $current.docid '</xsl:text>
+ <xsl:value-of select="$current.docid"/>
+ <xsl:text>' not found in target database.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Olink warning: cannot compute relative </xsl:text>
+ <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- In either case, add baseuri from its document entry-->
+ <xsl:variable name="docbaseuri">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="$docbaseuri != ''" >
+ <xsl:value-of select="$docbaseuri"/>
+ </xsl:if>
+ </xsl:when>
+ <!-- No database sitemap in use -->
+ <xsl:otherwise>
+ <!-- Just use any baseuri from its document entry -->
+ <xsl:variable name="docbaseuri">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="$docbaseuri != ''" >
+ <xsl:value-of select="$docbaseuri"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Form the href information -->
+ <xsl:if test="$baseuri != ''">
+ <xsl:value-of select="$baseuri"/>
+ <xsl:if test="substring($target.href,1,1) != '#'">
+ <!--xsl:text>/</xsl:text-->
+ </xsl:if>
+ </xsl:if>
+ <!-- optionally turn off frag for PDF references -->
+ <xsl:if test="not($insert.olink.pdf.frag = 0 and
+ translate(substring($baseuri, string-length($baseuri) - 3),
+ 'PDF', 'pdf') = '.pdf'
+ and starts-with($target.href, '#') )">
+ <xsl:value-of select="$target.href"/>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<!-- Computes the href of the object containing the olink element -->
+<xsl:template name="olink.from.uri">
+ <xsl:param name="target.database"/>
+ <xsl:param name="object" select="NotAnElement"/>
+ <xsl:param name="object.targetdoc" select="$current.docid"/>
+ <xsl:param name="object.lang"
+ select="concat($object/ancestor::*[last()]/@lang,
+ $object/ancestor::*[last()]/@xml:lang)"/>
+
+ <xsl:variable name="parent.id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- Get the olink key for the parent of olink element -->
+ <xsl:variable name="from.key">
+ <xsl:call-template name="select.olink.key">
+ <xsl:with-param name="targetdoc.att" select="$object.targetdoc"/>
+ <xsl:with-param name="targetptr.att" select="$parent.id"/>
+ <xsl:with-param name="olink.lang" select="$object.lang"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="from.olink.href">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $from.key)/@href" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:choose>
+ <!-- we found the olink object -->
+ <xsl:when test="$from.olink.href != ''">
+ <xsl:value-of select="$from.olink.href"/>
+ </xsl:when>
+ <xsl:when test="not($object/parent::*)">
+ <xsl:value-of select="$from.olink.href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- recurse upward in current document -->
+ <xsl:call-template name="olink.from.uri">
+ <xsl:with-param name="target.database" select="$target.database"/>
+ <xsl:with-param name="object" select="$object/parent::*"/>
+ <xsl:with-param name="object.targetdoc" select="$object.targetdoc"/>
+ <xsl:with-param name="object.lang" select="$object.lang"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="olink.hottext">
+ <xsl:param name="target.database"/>
+ <xsl:param name="olink.lang" select="''"/>
+ <xsl:param name="olink.key" select="''"/>
+ <xsl:param name="referrer" select="."/>
+ <xsl:param name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle)
+ and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:choose>
+ <!-- If it has elements or text (not just PI or comment) -->
+ <xsl:when test="child::text() or child::*">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="$olink.key != ''">
+ <!-- Get the xref text for this record -->
+ <xsl:variable name="xref.text" >
+ <xsl:for-each select="$target.database" >
+ <xsl:copy-of
+ select="key('targetptr-key', $olink.key)/xreftext/node()" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="xref.number" >
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $olink.key)/@number" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="target.elem" >
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $olink.key)/@element" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="lang">
+ <xsl:variable name="candidate">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetptr-key', $olink.key)/@lang" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$candidate != ''">
+ <xsl:value-of select="$candidate"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$olink.lang"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="targetdoc">
+ <xsl:value-of select="substring-before($olink.key, '/')"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$xrefstyle != '' and
+ starts-with(normalize-space($xrefstyle), 'select:') and
+ (contains($xrefstyle, 'nodocname') or
+ contains($xrefstyle, 'nopage')) and
+ not(contains($xrefstyle, 'title')) and
+ not(contains($xrefstyle, 'label'))">
+ <xsl:copy-of select="$xref.text"/>
+ </xsl:when>
+ <xsl:when test="$xrefstyle != ''">
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>xrefstyle is '</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:variable name="template">
+ <xsl:choose>
+ <xsl:when test="starts-with(normalize-space($xrefstyle),
+ 'select:')">
+ <xsl:call-template name="make.gentext.template">
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="purpose" select="'olink'"/>
+ <xsl:with-param name="referrer" select="."/>
+ <xsl:with-param name="target.elem" select="$target.elem"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with(normalize-space($xrefstyle),
+ 'template:')">
+ <xsl:value-of select="substring-after(
+ normalize-space($xrefstyle), 'template:')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Look for Gentext template with @style attribute -->
+ <!-- Must compare to no style value because gentext.template
+ falls back to no style -->
+
+ <xsl:variable name="xref-context">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="styled-xref-context">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="xref-number-context">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref-number'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="styled-xref-number-context">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref-number'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="xref-number-and-title-context">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context"
+ select="'xref-number-and-title'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="styled-xref-number-and-title-context">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context"
+ select="'xref-number-and-title'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$xref-number-and-title-context !=
+ $styled-xref-number-and-title-context and
+ $xref.number != '' and
+ $xref.with.number.and.title != 0">
+ <xsl:value-of
+ select="$styled-xref-number-and-title-context"/>
+ </xsl:when>
+ <xsl:when test="$xref-number-context !=
+ $styled-xref-number-context and
+ $xref.number != ''">
+ <xsl:value-of select="$styled-xref-number-context"/>
+ </xsl:when>
+ <xsl:when test="$xref-context != $styled-xref-context">
+ <xsl:value-of select="$styled-xref-context"/>
+ </xsl:when>
+ <xsl:when test="$xref-number-and-title-context != '' and
+ $xref.number != '' and
+ $xref.with.number.and.title != 0">
+ <xsl:value-of
+ select="$xref-number-and-title-context"/>
+ <xsl:if test="$olink.debug">
+ <xsl:message>
+ <xsl:text>Olink error: no gentext template</xsl:text>
+ <xsl:text> exists for xrefstyle '</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>' for element '</xsl:text>
+ <xsl:value-of select="$target.elem"/>
+ <xsl:text>' in language '</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>' in context 'xref-number-and-title</xsl:text>
+ <xsl:text>'. Using template without @style.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$xref-number-context != '' and
+ $xref.number != ''">
+ <xsl:value-of select="$xref-number-context"/>
+ <xsl:if test="$olink.debug">
+ <xsl:message>
+ <xsl:text>Olink error: no gentext template</xsl:text>
+ <xsl:text> exists for xrefstyle '</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>' for element '</xsl:text>
+ <xsl:value-of select="$target.elem"/>
+ <xsl:text>' in language '</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>' in context 'xref-number</xsl:text>
+ <xsl:text>'. Using template without @style.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$xref-context != ''">
+ <xsl:value-of select="$xref-context"/>
+ <xsl:if test="$olink.debug">
+ <xsl:message>
+ <xsl:text>Olink error: no gentext template</xsl:text>
+ <xsl:text> exists for xrefstyle '</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>' for element '</xsl:text>
+ <xsl:value-of select="$target.elem"/>
+ <xsl:text>' in language '</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>' in context 'xref</xsl:text>
+ <xsl:text>'. Using template without @style.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Olink error: no gentext template</xsl:text>
+ <xsl:text> exists for xrefstyle '</xsl:text>
+ <xsl:value-of select="$xrefstyle"/>
+ <xsl:text>' for element '</xsl:text>
+ <xsl:value-of select="$target.elem"/>
+ <xsl:text>' in language '</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>'. Trying '%t'.</xsl:text>
+ </xsl:message>
+ <xsl:value-of select="'%t'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: xrefstyle template is '</xsl:text>
+ <xsl:value-of select="$template"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$template"/>
+ <xsl:with-param name="title">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $olink.key)/ttl" />
+ </xsl:for-each>
+ </xsl:with-param>
+ <xsl:with-param name="label">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetptr-key', $olink.key)/@number" />
+ </xsl:for-each>
+ </xsl:with-param>
+ <xsl:with-param name="pagenumber">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetptr-key', $olink.key)/@page" />
+ </xsl:for-each>
+ </xsl:with-param>
+ <xsl:with-param name="docname">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetdoc-key', $targetdoc)/div[1]/ttl" />
+ </xsl:for-each>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$use.local.olink.style != 0">
+
+ <xsl:variable name="template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="name" select="$target.elem"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$template"/>
+ <xsl:with-param name="title">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $olink.key)/ttl" />
+ </xsl:for-each>
+ </xsl:with-param>
+ <xsl:with-param name="label">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetptr-key', $olink.key)/@number" />
+ </xsl:for-each>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$xref.text !=''">
+ <xsl:copy-of select="$xref.text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Olink error: no generated text for </xsl:text>
+ <xsl:text>targetdoc/targetptr/lang = '</xsl:text>
+ <xsl:value-of select="$olink.key"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ <xsl:text>????</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@targetdoc != '' or @targetptr != ''">
+ <xsl:if test="$olink.key != ''">
+ <xsl:message>
+ <xsl:text>Olink error: no generated text for </xsl:text>
+ <xsl:text>targetdoc/targetptr/lang = '</xsl:text>
+ <xsl:value-of select="$olink.key"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text>????</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- old style olink -->
+ <xsl:call-template name="olink.outline">
+ <xsl:with-param name="outline.base.uri"
+ select="unparsed-entity-uri(@targetdocent)"/>
+ <xsl:with-param name="localinfo" select="@localinfo"/>
+ <xsl:with-param name="return" select="'xreftext'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="olink.docname.markup">
+ <!-- No-op for now -->
+</xsl:template>
+
+<xsl:template name="targetpath">
+ <xsl:param name="dirnode" />
+ <xsl:param name="targetdoc" select="''"/>
+
+<!--
+<xsl:message>dirnode is <xsl:value-of select="$dirnode/@name"/></xsl:message>
+<xsl:message>targetdoc is <xsl:value-of select="$targetdoc"/></xsl:message>
+-->
+ <!-- recursive template generates path to olink target directory -->
+ <xsl:choose>
+ <!-- Have we arrived at the final path step? -->
+ <xsl:when test="$dirnode/child::document[@targetdoc = $targetdoc]">
+ <!-- We are done -->
+ </xsl:when>
+ <!-- Have we reached the top without a match? -->
+ <xsl:when test="local-name($dirnode) != 'dir'" >
+ <xsl:message>Olink error: cannot locate targetdoc <xsl:value-of select="$targetdoc"/> in sitemap</xsl:message>
+ </xsl:when>
+ <!-- Is the target in a descendant? -->
+ <xsl:when test="$dirnode/descendant::document/@targetdoc = $targetdoc">
+ <xsl:variable name="step" select="$dirnode/child::dir[descendant::document/@targetdoc = $targetdoc]"/>
+ <xsl:if test = "$step">
+ <xsl:value-of select="$step/@name"/>
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ <!-- Now recurse with the child -->
+ <xsl:call-template name="targetpath" >
+ <xsl:with-param name="dirnode" select="$step"/>
+ <xsl:with-param name="targetdoc" select="$targetdoc"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- Otherwise we need to move up a step -->
+ <xsl:otherwise>
+ <xsl:if test="$dirnode/parent::dir">
+ <xsl:text>../</xsl:text>
+ </xsl:if>
+ <xsl:call-template name="targetpath" >
+ <xsl:with-param name="dirnode" select="$dirnode/parent::*"/>
+ <xsl:with-param name="targetdoc" select="$targetdoc"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink.page.citation">
+ <xsl:param name="olink.key" select="''"/>
+ <xsl:param name="olink.lang" select="'en'"/>
+ <xsl:param name="target.database"/>
+ <xsl:param name="linkend" select="''"/>
+ <xsl:param name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle)
+ and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:variable name="targetdoc">
+ <xsl:value-of select="substring-before($olink.key, '/')"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$linkend != ''">
+ <xsl:call-template name="xref.page.citation">
+ <xsl:with-param name="linkend" select="$linkend"/>
+ <xsl:with-param name="target" select="key('id', $linkend)"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="not(starts-with(normalize-space($xrefstyle),
+ 'select:')
+ and (contains($xrefstyle, 'page')
+ or contains($xrefstyle, 'Page')))
+ and $current.docid != ''
+ and $current.docid != $targetdoc
+ and $insert.olink.page.number = 'yes' ">
+
+ <xsl:variable name="page-number">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetptr-key', $olink.key)/@page" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:if test="$page-number != ''">
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="name" select="'olink.page.citation'"/>
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="lang" select="$olink.lang"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="pagenumber" select="$page-number"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink.document.citation">
+ <xsl:param name="olink.key" select="''"/>
+ <xsl:param name="olink.lang" select="'en'"/>
+ <xsl:param name="target.database"/>
+ <xsl:param name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle)
+ and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:variable name="page">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetptr-key', $olink.key)/@page" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="targetdoc">
+ <xsl:value-of select="substring-before($olink.key, '/')"/>
+ </xsl:variable>
+
+ <xsl:variable name="targetptr">
+ <xsl:value-of
+ select="substring-before(substring-after($olink.key, '/'), '/')"/>
+ </xsl:variable>
+
+ <!-- Don't add docname if pointing to root element -->
+ <xsl:variable name="rootptr">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetdoc-key', $targetdoc)/div[1]/@targetptr" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="docname">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of
+ select="key('targetdoc-key', $targetdoc)/div[1]/ttl" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:if test="not(starts-with(normalize-space($xrefstyle), 'select:')
+ and (contains($xrefstyle, 'docname')))
+ and ($olink.doctitle = 'yes' or $olink.doctitle = '1')
+ and $current.docid != ''
+ and $rootptr != $targetptr
+ and $current.docid != $targetdoc
+ and $docname != ''">
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="name" select="'olink.document.citation'"/>
+ <xsl:with-param name="context" select="'xref'"/>
+ <xsl:with-param name="lang" select="$olink.lang"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="docname" select="$docname"/>
+ <xsl:with-param name="pagenumber" select="$page"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="xref.page.citation">
+ <!-- Determine if this xref should have a page citation.
+ Context node is the xref or local olink element -->
+ <xsl:param name="linkend" select="@linkend"/>
+ <xsl:param name="target" select="key('id', $linkend)"/>
+ <xsl:param name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle)
+ and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:if test="not(starts-with(normalize-space($xrefstyle),'select:')
+ and (contains($xrefstyle, 'page')
+ or contains($xrefstyle, 'Page')))
+ and ( $insert.xref.page.number = 'yes'
+ or $insert.xref.page.number = '1')
+ or local-name($target) = 'para'">
+ <xsl:apply-templates select="$target" mode="page.citation">
+ <xsl:with-param name="id" select="$linkend"/>
+ </xsl:apply-templates>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/common/or.xml b/docs/xsl-generic/common/or.xml
new file mode 100644
index 00000000..0c3593f7
--- /dev/null
+++ b/docs/xsl-generic/common/or.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="or" english-language-name="Oriya">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/or.xml -->
+<!-- * -->
+<!-- * E-mail the edited or.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ସାରାଂଶ"/>
+<l:gentext key="abstract" text="ସାରାଂଶ"/>
+<l:gentext key="Answer" text="ଉ:"/>
+<l:gentext key="answer" text="ଉ:"/>
+<l:gentext key="Appendix" text="ପରିଶିଷ୍ଠ"/>
+<l:gentext key="appendix" text="ପରିଶିଷ୍ଠ"/>
+<l:gentext key="Article" text="ନିବନ୍ଧ"/>
+<l:gentext key="article" text="ନିବନ୍ଧ"/>
+<l:gentext key="Author" text="ଲେଖକ"/>
+<l:gentext key="Bibliography" text="ଗ୍ରନ୍ଥସୂଚୀ"/>
+<l:gentext key="bibliography" text="ଗ୍ରନ୍ଥସୂଚୀ"/>
+<l:gentext key="Book" text="ପୁସ୍ତକ"/>
+<l:gentext key="book" text="ପୁସ୍ତକ"/>
+<l:gentext key="CAUTION" text="ସାବଧାନ"/>
+<l:gentext key="Caution" text="ସାବଧାନ"/>
+<l:gentext key="caution" text="ସାବଧାନ"/>
+<l:gentext key="Chapter" text="ଅଧ୍ଯାୟ"/>
+<l:gentext key="chapter" text="ଅଧ୍ଯାୟ"/>
+<l:gentext key="Colophon" text="ପୁସ୍ତକ ପରିଚୟ"/>
+<l:gentext key="colophon" text="ପୁସ୍ତକ ପରିଚୟ"/>
+<l:gentext key="Copyright" text="ସ୍ବତ୍ତ୍ବାଧୀକାର"/>
+<l:gentext key="copyright" text="ସ୍ବତ୍ତ୍ବାଧୀକାର"/>
+<l:gentext key="Dedication" text="ସମର୍ପଣ"/>
+<l:gentext key="dedication" text="ସମର୍ପଣ"/>
+<l:gentext key="Edition" text="ସଂସକରଣ"/>
+<l:gentext key="edition" text="ସଂସକରଣ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="ସମୀକରଣ"/>
+<l:gentext key="equation" text="ସମୀକରଣ"/>
+<l:gentext key="Example" text="ଉଦାହରଣ"/>
+<l:gentext key="example" text="ଉଦାହରଣ"/>
+<l:gentext key="Figure" text="ଚିତ୍ର"/>
+<l:gentext key="figure" text="ଚିତ୍ର"/>
+<l:gentext key="Glossary" text="ଶବ୍ଦକୋଷ"/>
+<l:gentext key="glossary" text="ଶବ୍ଦକୋଷ"/>
+<l:gentext key="GlossSee" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="glosssee" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="GlossSeeAlso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="glossseealso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="IMPORTANT" text="ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"/>
+<l:gentext key="important" text="ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"/>
+<l:gentext key="Important" text="ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"/>
+<l:gentext key="Index" text="ଅନୁକ୍ରମଣିକା"/>
+<l:gentext key="index" text="ଅନୁକ୍ରମଣିକା"/>
+<l:gentext key="ISBN" text="ଆଇ.ଏସ.ବି.ଏନ."/>
+<l:gentext key="isbn" text="ଆଇ.ଏସ.ବି.ଏନ."/>
+<l:gentext key="LegalNotice" text="ବୈଧାନିକ ସୂଚନା"/>
+<l:gentext key="legalnotice" text="ବୈଧାନିକ ସୂଚନା"/>
+<l:gentext key="MsgAud" text="ଶ୍ରୋତୃବର୍ଗ"/>
+<l:gentext key="msgaud" text="ଶ୍ରୋତୃବର୍ଗ"/>
+<l:gentext key="MsgLevel" text="ସ୍ତର"/>
+<l:gentext key="msglevel" text="ସ୍ତର"/>
+<l:gentext key="MsgOrig" text="ଉତ୍ପତ୍ତି"/>
+<l:gentext key="msgorig" text="ଉତ୍ପତ୍ତି"/>
+<l:gentext key="NOTE" text="ଟୀକା"/>
+<l:gentext key="Note" text="ଟୀକା"/>
+<l:gentext key="note" text="ଟୀକା"/>
+<l:gentext key="Part" text="ଭାଗ"/>
+<l:gentext key="part" text="ଭାଗ"/>
+<l:gentext key="Preface" text="ଭୂମିକା"/>
+<l:gentext key="preface" text="ଭୂମିକା"/>
+<l:gentext key="Procedure" text="କାର୍ଯ୍ଯବିଧି"/>
+<l:gentext key="procedure" text="କାର୍ଯ୍ଯବିଧି"/>
+<l:gentext key="ProductionSet" text="ଉତ୍ପାଦନ"/>
+<l:gentext key="PubDate" text="ପ୍ରକାଶନ ତାରୀଖ"/>
+<l:gentext key="pubdate" text="ପ୍ରକାଶନ ତାରୀଖ"/>
+<l:gentext key="Published" text="ପ୍ରକାଶିତ"/>
+<l:gentext key="published" text="ପ୍ରକାଶିତ"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ପ୍ର &amp; ଉ"/>
+<l:gentext key="qandadiv" text="ପ୍ର &amp; ଉ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ପ୍ର:"/>
+<l:gentext key="question" text="ପ୍ର:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="ସନ୍ଦର୍ଭ"/>
+<l:gentext key="reference" text="ସନ୍ଦର୍ଭ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ନାମ"/>
+<l:gentext key="refname" text="ନାମ"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="ସାରାଂଶ"/>
+<l:gentext key="refsynopsisdiv" text="ସାରାଂଶ"/>
+<l:gentext key="RevHistory" text="ସଂଶୋଧନ ଇତିହାସ"/>
+<l:gentext key="revhistory" text="ସଂଶୋଧନ ଇତିହାସ"/>
+<l:gentext key="revision" text="ସଂଶୋଧନ"/>
+<l:gentext key="Revision" text="ସଂଶୋଧନ"/>
+<l:gentext key="sect1" text="ଅଂଶ"/>
+<l:gentext key="sect2" text="ଅଂଶ"/>
+<l:gentext key="sect3" text="ଅଂଶ"/>
+<l:gentext key="sect4" text="ଅଂଶ"/>
+<l:gentext key="sect5" text="ଅଂଶ"/>
+<l:gentext key="section" text="ଅଂଶ"/>
+<l:gentext key="Section" text="ଅଂଶ"/>
+<l:gentext key="see" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="See" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="seealso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="Seealso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="SeeAlso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="set" text="ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="Set" text="ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="setindex" text="ଅନୁକ୍ରମଣିକା ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="SetIndex" text="ଅନୁକ୍ରମଣିକା ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="Sidebar" text="ପାର୍ଶ୍ବପଟି"/>
+<l:gentext key="sidebar" text="ପାର୍ଶ୍ବପଟି"/>
+<l:gentext key="step" text="ପଦକ୍ଷେପ"/>
+<l:gentext key="Step" text="ପଦକ୍ଷେପ"/>
+<l:gentext key="table" text="ସାରଣୀ"/>
+<l:gentext key="Table" text="ସାରଣୀ"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ସଂକେତ"/>
+<l:gentext key="TIP" text="ସଂକେତ"/>
+<l:gentext key="Tip" text="ସଂକେତ"/>
+<l:gentext key="Warning" text="ଚେତାବନୀ"/>
+<l:gentext key="warning" text="ଚେତାବନୀ"/>
+<l:gentext key="WARNING" text="ଚେତାବନୀ"/>
+<l:gentext key="and" text="ଓ"/>
+<l:gentext key="by" text="ଦ୍ବାରା"/>
+<l:gentext key="Edited" text="ସମ୍ପାଦିତ"/>
+<l:gentext key="edited" text="ସମ୍ପାଦିତ"/>
+<l:gentext key="Editedby" text="ଦ୍ବାରା ସମ୍ପାଦିତ"/>
+<l:gentext key="editedby" text="ଦ୍ବାରା ସମ୍ପାଦିତ"/>
+<l:gentext key="in" text="ଭିତରେ"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="ଅସ୍ତିସ୍ବହୀନ ଉପାଦାନ"/>
+<l:gentext key="notes" text="ଟୀକା"/>
+<l:gentext key="Notes" text="ଟୀକା"/>
+<l:gentext key="Pgs" text="ପୃଷ୍ଠା"/>
+<l:gentext key="pgs" text="ପୃଷ୍ଠା"/>
+<l:gentext key="Revisedby" text="ଦ୍ବାରା ସଂଶୋଧିତ: "/>
+<l:gentext key="revisedby" text="ଦ୍ବାରା ସଂଶୋଧିତ: "/>
+<l:gentext key="TableNotes" text="ଟୀକା"/>
+<l:gentext key="tablenotes" text="ଟୀକା"/>
+<l:gentext key="TableofContents" text="ସୂଚୀପତ୍ର"/>
+<l:gentext key="tableofcontents" text="ସୂଚୀପତ୍ର"/>
+<l:gentext key="unexpectedelementname" text="ଅପ୍ରତ୍ଯାଶିତ ଉପାଦାନ ନାମ"/>
+<l:gentext key="unsupported" text="ଅସହାୟକ"/>
+<l:gentext key="xrefto" text="ସହିତ ପ୍ରାସଙ୍ଗିକ ସନ୍ଦର୍ଭ କରନ୍ତୁ"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="ସମୀକରଣ ତାଲିକା"/>
+<l:gentext key="ListofEquations" text="ସମୀକରଣ ତାଲିକା"/>
+<l:gentext key="ListofExamples" text="ଉଦାହରଣ ତାଲିକା"/>
+<l:gentext key="listofexamples" text="ଉଦାହରଣ ତାଲିକା"/>
+<l:gentext key="ListofFigures" text="ଚିତ୍ର ତାଲିକା"/>
+<l:gentext key="listoffigures" text="ଚିତ୍ର ତାଲିକା"/>
+<l:gentext key="ListofProcedures" text="କାର୍ଯ୍ଯବିଧି ତାଲିକା"/>
+<l:gentext key="listofprocedures" text="କାର୍ଯ୍ଯବିଧି ତାଲିକା"/>
+<l:gentext key="listoftables" text="ସାରଣୀ ତାଲିକା"/>
+<l:gentext key="ListofTables" text="ସାରଣୀ ତାଲିକା"/>
+<l:gentext key="ListofUnknown" text="ଅଜଣାର ତାଲିକା"/>
+<l:gentext key="listofunknown" text="ଅଜଣାର ତାଲିକା"/>
+<l:gentext key="nav-home" text="ମୂଳ ସ୍ଥାନ"/>
+<l:gentext key="nav-next" text="ପରବର୍ତ୍ତୀ"/>
+<l:gentext key="nav-next-sibling" text="ଦ୍ରୁତ ଆଗକୁ"/>
+<l:gentext key="nav-prev" text="ପୂର୍ବ"/>
+<l:gentext key="nav-prev-sibling" text="ଦ୍ରୁତ ପଛକୁ"/>
+<l:gentext key="nav-up" text="ଉପରକୁ"/>
+<l:gentext key="nav-toc" text="ସୂଚୀପତ୍ର"/>
+<l:gentext key="Draft" text="ଡ୍ରାଫ୍ଟ"/>
+<l:gentext key="above" text="ଉପରେ"/>
+<l:gentext key="below" text="ତଳେ"/>
+<l:gentext key="sectioncalled" text="ଏହି ଅଂଶର ନାମ"/>
+<l:gentext key="index symbols" text="ପ୍ରତୀକ"/>
+<l:gentext key="lowercase.alpha" text="ଅଆଇଈଉଊଋଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯୟରଲଳୱଶଷସହ"/>
+<l:gentext key="uppercase.alpha" text="ଅଆଇଈଉଊଋଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯୟରଲଳୱଶଷସହ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="ପ୍ରଥମ-ଶେଷ"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ପରିଶିଷ୍ଠ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ସମୀକରଣ %n. %t"/>
+<l:template name="example" text="ଉଦାହରଣ %n. %t"/>
+<l:template name="figure" text="ଚିତ୍ର %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ଭାଗ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="କାର୍ଯ୍ଯବିଧି %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ଉତ୍ପାଦନ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ସାରଣୀ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ପରିଶିଷ୍ଠ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n. %t"/>
+<l:template name="part" text="ଭାଗ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="ଉ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ପ୍ର: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ପ୍ର: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text="%oରେ"/>
+<l:template name="olink.page.citation" text=" (ପୃଷ୍ଠା %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(ପୃଷ୍ଠା %p)"/>
+<l:template name="docname" text="%oରେ"/>
+<l:template name="docnamelong" text="%o ନାମକ ଦଲିଲରେ"/>
+<l:template name="pageabbrev" text="(ପୃ. %p)"/>
+<l:template name="Page" text="ପୃଷ୍ଠା %p"/>
+<l:template name="bridgehead" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsection" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect1" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect2" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect3" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect1" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect2" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect3" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect4" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect5" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="section" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="simplesect" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ଉ: %n"/>
+<l:template name="appendix" text="ପରିଶିଷ୍ଠ %n"/>
+<l:template name="bridgehead" text="ଅଂଶ %n"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n"/>
+<l:template name="equation" text="ସମୀକରଣ %n"/>
+<l:template name="example" text="ଉଦାହରଣ %n"/>
+<l:template name="figure" text="ଚିତ୍ର %n"/>
+<l:template name="part" text="ଭାଗ %n"/>
+<l:template name="procedure" text="କାର୍ଯ୍ଯବିଧି %n"/>
+<l:template name="productionset" text="ଉତ୍ପାଦନ %n"/>
+<l:template name="qandadiv" text="ପ୍ର &amp; ଉ %n"/>
+<l:template name="qandaentry" text="ପ୍ର: %n"/>
+<l:template name="question" text="ପ୍ର: %n"/>
+<l:template name="sect1" text="ଅଂଶ %n"/>
+<l:template name="sect2" text="ଅଂଶ %n"/>
+<l:template name="sect3" text="ଅଂଶ %n"/>
+<l:template name="sect4" text="ଅଂଶ %n"/>
+<l:template name="sect5" text="ଅଂଶ %n"/>
+<l:template name="section" text="ଅଂଶ %n"/>
+<l:template name="table" text="ସାରଣୀ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ପରିଶିଷ୍ଠ %n, %t"/>
+<l:template name="bridgehead" text="ଅଂଶ %n, “%t”"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n, %t"/>
+<l:template name="equation" text="ସମୀକରଣ %n, “%t”"/>
+<l:template name="example" text="ଉଦାହରଣ %n, “%t”"/>
+<l:template name="figure" text="ଚିତ୍ର %n, “%t”"/>
+<l:template name="part" text="ଭାଗ %n, “%t”"/>
+<l:template name="procedure" text="କାର୍ଯ୍ଯବିଧି %n, “%t”"/>
+<l:template name="productionset" text="ଉତ୍ପାଦନ %n, “%t”"/>
+<l:template name="qandadiv" text="ପ୍ର &amp; ଉ %n, “%t”"/>
+<l:template name="refsect1" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect2" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect3" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsection" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect1" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect2" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect3" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect4" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect5" text="ଅଂଶ %n, “%t”"/>
+<l:template name="section" text="ଅଂଶ %n, “%t”"/>
+<l:template name="simplesect" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="table" text="ସାରଣୀ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ଓ "/>
+<l:template name="seplast" text=", ଓ "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ଦେଖନ୍ତୁ %t"/>
+<l:template name="seealso" text="ଏହା ଭି ଦେଖନ୍ତୁ %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ଶ୍ରୋତୃବର୍ଗ: "/>
+<l:template name="MsgLevel" text="ସ୍ତର: "/>
+<l:template name="MsgOrig" text="ଉତ୍ପତ୍ତି: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="ମାସ/ଦିନ/ବର୍ଷ"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[ବ୍ଯାଖ୍ଯା: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ଜାନୁଆରି"/>
+<l:template name="February" text="ଫେବ୍ରୁଆରି"/>
+<l:template name="March" text="ମାର୍ଚ୍ଚ"/>
+<l:template name="April" text="ଏପ୍ରିଲ"/>
+<l:template name="May" text="ମେ"/>
+<l:template name="June" text="ଜୁନ"/>
+<l:template name="July" text="ଜୁଲାଇ"/>
+<l:template name="August" text="ଅଗଷ୍ଟ"/>
+<l:template name="September" text="ସେପ୍ଟେମ୍ବର"/>
+<l:template name="October" text="ଅକ୍ଟୋବର"/>
+<l:template name="November" text="ନଭେମ୍ବର"/>
+<l:template name="December" text="ଡିସେମ୍ବର"/>
+<l:template name="Monday" text="ସୋମବାର"/>
+<l:template name="Tuesday" text="ମଙ୍ଗଳବାର"/>
+<l:template name="Wednesday" text="ବୁଧବାର"/>
+<l:template name="Thursday" text="ଗୁରୁବାର"/>
+<l:template name="Friday" text="ଶୁକ୍ରବାର"/>
+<l:template name="Saturday" text="ଶନିବାର"/>
+<l:template name="Sunday" text="ରବିବାର"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ଜାନ"/>
+<l:template name="Feb" text="ଫେବ"/>
+<l:template name="Mar" text="ମାର"/>
+<l:template name="Apr" text="ଏପ୍ର"/>
+<l:template name="May" text="ମେ"/>
+<l:template name="Jun" text="ଜୁନ"/>
+<l:template name="Jul" text="ଜୁଲ"/>
+<l:template name="Aug" text="ଅଗ"/>
+<l:template name="Sep" text="ସେପ"/>
+<l:template name="Oct" text="ଅକ୍ଟ"/>
+<l:template name="Nov" text="ନଭ"/>
+<l:template name="Dec" text="ଡିସ"/>
+<l:template name="Mon" text="ସୋମ"/>
+<l:template name="Tue" text="ମଂଗଳ"/>
+<l:template name="Wed" text="ବୁଧ"/>
+<l:template name="Thu" text="ଗୁରୁ"/>
+<l:template name="Fri" text="ଶୁକ୍ର"/>
+<l:template name="Sat" text="ଶନି"/>
+<l:template name="Sun" text="ରବି"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/pa.xml b/docs/xsl-generic/common/pa.xml
new file mode 100644
index 00000000..c54bf9dd
--- /dev/null
+++ b/docs/xsl-generic/common/pa.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pa" english-language-name="Punjabi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pa.xml -->
+<!-- * -->
+<!-- * E-mail the edited pa.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ਸਾਰ"/>
+<l:gentext key="abstract" text="ਸਾਰ"/>
+<l:gentext key="Answer" text="ਜ:"/>
+<l:gentext key="answer" text="ਜ:"/>
+<l:gentext key="Appendix" text="ਅੰਤਿਕਾ"/>
+<l:gentext key="appendix" text="ਅੰਤਿਕਾ"/>
+<l:gentext key="Article" text="ਲੇਖ"/>
+<l:gentext key="article" text="ਲੇਖ"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="ਪੁਸਤਕ-ਸੂਚੀ"/>
+<l:gentext key="bibliography" text="ਪੁਸਤਕ-ਸੂਚੀ"/>
+<l:gentext key="Book" text="ਪੁਸਤਕ"/>
+<l:gentext key="book" text="ਪੁਸਤਕ"/>
+<l:gentext key="CAUTION" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="Caution" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="caution" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="Chapter" text="ਅਧਿਆਇ"/>
+<l:gentext key="chapter" text="ਅਧਿਆਇ"/>
+<l:gentext key="Colophon" text="ਲੇਖਕਾਂਬਾਰੇ"/>
+<l:gentext key="colophon" text="ਲੇਖਕਾਂਬਾਰੇ"/>
+<l:gentext key="Copyright" text="ਹੱਕਰਾਖਵੇਂਹਨ"/>
+<l:gentext key="copyright" text="ਹੱਕਰਾਖਵੇਂਹਨ"/>
+<l:gentext key="Dedication" text="ਸਮਰਪਿਤ"/>
+<l:gentext key="dedication" text="ਸਮਰਪਿਤ"/>
+<l:gentext key="Edition" text="ਪ੍ਰਕਾਸ਼ਨ"/>
+<l:gentext key="edition" text="ਪ੍ਰਕਾਸ਼ਨ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="ਸਮੀਕਰਨ"/>
+<l:gentext key="equation" text="ਸਮੀਕਰਨ"/>
+<l:gentext key="Example" text="ਉਦਾਹਰਨ"/>
+<l:gentext key="example" text="ਉਦਾਹਰਨ"/>
+<l:gentext key="Figure" text="ਚਿੱਤਰ"/>
+<l:gentext key="figure" text="ਚਿੱਤਰ"/>
+<l:gentext key="Glossary" text="ਸ਼ਬਦਾਵਲੀ"/>
+<l:gentext key="glossary" text="ਸ਼ਬਦਾਵਲੀ"/>
+<l:gentext key="GlossSee" text="ਵੇਖੋ"/>
+<l:gentext key="glosssee" text="ਵੇਖੋ"/>
+<l:gentext key="GlossSeeAlso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="glossseealso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="IMPORTANT" text="ਖਾਸ"/>
+<l:gentext key="important" text="ਖਾਸ"/>
+<l:gentext key="Important" text="ਖਾਸ"/>
+<l:gentext key="Index" text="ਤਤਕਰਾ"/>
+<l:gentext key="index" text="ਤਤਕਰਾ"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ਕਾਨੂੰਨੀਸੂਚਨਾ"/>
+<l:gentext key="legalnotice" text="ਕਾਨੂੰਨੀਸੂਚਨਾ"/>
+<l:gentext key="MsgAud" text="ਪਾਠਕ"/>
+<l:gentext key="msgaud" text="ਪਾਠਕ"/>
+<l:gentext key="MsgLevel" text="ਪੱਧਰ"/>
+<l:gentext key="msglevel" text="ਪੱਧਰ"/>
+<l:gentext key="MsgOrig" text="ਮੁੱਢ"/>
+<l:gentext key="msgorig" text="ਮੁੱਢ"/>
+<l:gentext key="NOTE" text="ਸੂਚਨਾ"/>
+<l:gentext key="Note" text="ਸੂਚਨਾ"/>
+<l:gentext key="note" text="ਸੂਚਨਾ"/>
+<l:gentext key="Part" text="ਭਾਗ"/>
+<l:gentext key="part" text="ਭਾਗ"/>
+<l:gentext key="Preface" text="ਭੂਮਿਕਾ"/>
+<l:gentext key="preface" text="ਭੂਮਿਕਾ"/>
+<l:gentext key="Procedure" text="ਕਾਰਵਾਈ"/>
+<l:gentext key="procedure" text="ਕਾਰਵਾਈ"/>
+<l:gentext key="ProductionSet" text="ਉਤਪਾਦਨ"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="ਪ੍ਰਕਾਸ਼ਿਤ"/>
+<l:gentext key="published" text="ਪ੍ਰਕਾਸ਼ਿਤ"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ਸ:"/>
+<l:gentext key="question" text="ਸ:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="ਹਵਾਲਾ"/>
+<l:gentext key="reference" text="ਹਵਾਲਾ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ਨਾਂ"/>
+<l:gentext key="refname" text="ਨਾਂ"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="ਖੁਲਾਸਾ"/>
+<l:gentext key="refsynopsisdiv" text="ਖੁਲਾਸਾ"/>
+<l:gentext key="RevHistory" text="ਸੁਧਾਈਅਤੀਤ"/>
+<l:gentext key="revhistory" text="ਸੁਧਾਈਅਤੀਤ"/>
+<l:gentext key="revision" text="ਸੁਧਾਈ"/>
+<l:gentext key="Revision" text="ਸੁਧਾਈ"/>
+<l:gentext key="sect1" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect2" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect3" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect4" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect5" text="ਹਿੱਸਾ"/>
+<l:gentext key="section" text="ਹਿੱਸਾ"/>
+<l:gentext key="Section" text="ਹਿੱਸਾ"/>
+<l:gentext key="see" text="ਵੇਖੋ"/>
+<l:gentext key="See" text="ਵੇਖੋ"/>
+<l:gentext key="seealso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="Seealso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="SeeAlso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="set" text="ਨਿਰਧਾਰਿਤ"/>
+<l:gentext key="Set" text="ਨਿਰਧਾਰਿਤ"/>
+<l:gentext key="setindex" text="ਤਤਕਰਾਨਿਰਧਾਰਨ"/>
+<l:gentext key="SetIndex" text="ਤਤਕਰਾਨਿਰਧਾਰਨ"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="ਬਾਹੀ"/>
+<l:gentext key="step" text="ਪਗ਼"/>
+<l:gentext key="Step" text="ਪਗ਼"/>
+<l:gentext key="table" text="ਸਾਰਣੀ"/>
+<l:gentext key="Table" text="ਸਾਰਣੀ"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ਸੰਕੇਤ"/>
+<l:gentext key="TIP" text="ਸੰਕੇਤ"/>
+<l:gentext key="Tip" text="ਸੰਕੇਤ"/>
+<l:gentext key="Warning" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="warning" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="WARNING" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="and" text="ਅਤੇ"/>
+<l:gentext key="by" text="ਲਈ"/>
+<l:gentext key="Edited" text="ਸੰਪਾਦਨ"/>
+<l:gentext key="edited" text="ਸੰਪਾਦਨ"/>
+<l:gentext key="Editedby" text="ਸੰਪਾਦਨਕੀਤਾ"/>
+<l:gentext key="editedby" text="ਸੰਪਾਦਨਕੀਤਾ"/>
+<l:gentext key="in" text="ਵਿੱਚ"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="ਨਾ-ਮੌਜੂਦਾਇਕਾਈ"/>
+<l:gentext key="notes" text="ਸੂਚਨਾ"/>
+<l:gentext key="Notes" text="ਸੂਚਨਾ"/>
+<l:gentext key="Pgs" text="ਸਫ਼ੇ"/>
+<l:gentext key="pgs" text="ਸਫ਼ੇ"/>
+<l:gentext key="Revisedby" text="ਸੁਧਾਈਕੀਤੀ:"/>
+<l:gentext key="revisedby" text="ਸੁਧਾਈਕੀਤੀ:"/>
+<l:gentext key="TableNotes" text="ਸੂਚਨਾ"/>
+<l:gentext key="tablenotes" text="ਸੂਚਨਾ"/>
+<l:gentext key="TableofContents" text="ਭਾਗਸਾਰਣੀ"/>
+<l:gentext key="tableofcontents" text="ਭਾਗਸਾਰਣੀ"/>
+<l:gentext key="unexpectedelementname" text="ਨਾ-ਲੋੜੀਦਾਇਕਾਈਨਾਂ"/>
+<l:gentext key="unsupported" text="ਨਾ-ਸਹਾਇਕ"/>
+<l:gentext key="xrefto" text="xrefto"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="ਸਮੀਕਰਨਸੂਚੀ"/>
+<l:gentext key="ListofEquations" text="ਸਮੀਕਰਨਸੂਚੀ"/>
+<l:gentext key="ListofExamples" text="ਉਦਾਹਰਨਸੂਚੀ"/>
+<l:gentext key="listofexamples" text="ਉਦਾਹਰਨਸੂਚੀ"/>
+<l:gentext key="ListofFigures" text="ਚਿੱਤਰਸੂਚੀ"/>
+<l:gentext key="listoffigures" text="ਚਿੱਤਰਸੂਚੀ"/>
+<l:gentext key="ListofProcedures" text="ਕਾਰਵਾਈਸੂਚੀ"/>
+<l:gentext key="listofprocedures" text="ਕਾਰਵਾਈਸੂਚੀ"/>
+<l:gentext key="listoftables" text="ਸਾਰਣੀਸੂਚੀ"/>
+<l:gentext key="ListofTables" text="ਸਾਰਣੀਸੂਚੀ"/>
+<l:gentext key="ListofUnknown" text="ਅਣਜਾਣਸੂਚੀ"/>
+<l:gentext key="listofunknown" text="ਅਣਜਾਣਸੂਚੀ"/>
+<l:gentext key="nav-home" text="ਘਰ"/>
+<l:gentext key="nav-next" text="ਅੱਗੇ"/>
+<l:gentext key="nav-next-sibling" text="ਤੇਜ਼ਅੱਗੇ"/>
+<l:gentext key="nav-prev" text="ਪਿੱਛੇ"/>
+<l:gentext key="nav-prev-sibling" text="ਤੇਜ਼ਪਿੱਛੇ"/>
+<l:gentext key="nav-up" text="ਉੱਪਰ"/>
+<l:gentext key="nav-toc" text="ਸਾਰਣੀ"/>
+<l:gentext key="Draft" text="ਡਰਾਫਟ"/>
+<l:gentext key="above" text="ਉੱਪਰ"/>
+<l:gentext key="below" text="ਹੇਠਾਂ"/>
+<l:gentext key="sectioncalled" text="ਭਾਗਕਹਿੰਦੇਨੇ"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ਅੰਤਿਕਾ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ਸਮੀਕਰਨ %n. %t"/>
+<l:template name="example" text="ਉਦਾਹਰਨ %n. %t"/>
+<l:template name="figure" text="ਚਿੱਤਰ %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ਭਾਗ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ਕਾਰਵਾਈ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ਉਤਪਾਦਨ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ਸਾਰਣੀ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ਅੰਤਿਕਾ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n. %t"/>
+<l:template name="part" text="ਭਾਗ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="ਜ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ਸ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ਸ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsection" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsect1" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsect2" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsect3" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="sect1" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="sect2" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="sect3" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="sect4" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="sect5" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="section" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="simplesect" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ਜ: %n"/>
+<l:template name="appendix" text="ਅੰਤਿਕਾ %n"/>
+<l:template name="bridgehead" text="ਹਿੱਸਾ %n"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n"/>
+<l:template name="equation" text="ਸਮੀਕਰਨ %n"/>
+<l:template name="example" text="ਉਦਾਹਰਨ %n"/>
+<l:template name="figure" text="ਚਿੱਤਰ %n"/>
+<l:template name="part" text="ਭਾਗ %n"/>
+<l:template name="procedure" text="ਕਾਰਵਾਈ %n"/>
+<l:template name="productionset" text="ਉਤਪਾਦਨ %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="ਸ: %n"/>
+<l:template name="question" text="ਸ: %n"/>
+<l:template name="sect1" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect2" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect3" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect4" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect5" text="ਹਿੱਸਾ %n"/>
+<l:template name="section" text="ਹਿੱਸਾ %n"/>
+<l:template name="table" text="ਸਾਰਣੀ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ਅੰਤਿਕਾ %n, %t"/>
+<l:template name="bridgehead" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n, %t"/>
+<l:template name="equation" text="ਸਮੀਕਰਨ %n, “%t”"/>
+<l:template name="example" text="ਉਦਾਹਰਨ %n, “%t”"/>
+<l:template name="figure" text="ਚਿੱਤਰ %n, “%t”"/>
+<l:template name="part" text="ਭਾਗ %n, “%t”"/>
+<l:template name="procedure" text="ਕਾਰਵਾਈ %n, “%t”"/>
+<l:template name="productionset" text="ਉਤਪਾਦਨ %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsect2" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsect3" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="refsection" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="sect1" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect2" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect3" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect4" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect5" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="section" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="simplesect" text="ਭਾਗਕਹਿੰਦੇਨੇ “%t”"/>
+<l:template name="table" text="ਸਾਰਣੀ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ਅਤੇ "/>
+<l:template name="seplast" text=", ਅਤੇ "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ਵੇਖੋ %t"/>
+<l:template name="seealso" text="ਇਹਵੀਵੇਖੋ %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ਪਾਠਕ: "/>
+<l:template name="MsgLevel" text="ਪੱਧਰ: "/>
+<l:template name="MsgOrig" text="ਮੁੱਢ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January"/>
+<l:template name="February" text="February"/>
+<l:template name="March" text="March"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="June"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="October"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Monday"/>
+<l:template name="Tuesday" text="Tuesday"/>
+<l:template name="Wednesday" text="Wednesday"/>
+<l:template name="Thursday" text="Thursday"/>
+<l:template name="Friday" text="Friday"/>
+<l:template name="Saturday" text="Saturday"/>
+<l:template name="Sunday" text="Sunday"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tue"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Thu"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Sat"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0446 Punjabi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/pi.xsl b/docs/xsl-generic/common/pi.xsl
new file mode 100644
index 00000000..bab86644
--- /dev/null
+++ b/docs/xsl-generic/common/pi.xsl
@@ -0,0 +1,346 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:date="http://exslt.org/dates-and-times"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ exclude-result-prefixes="doc date exsl"
+ extension-element-prefixes="date exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: pi.xsl 7107 2007-07-22 10:22:06Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<doc:reference xmlns=""><info><title>Common Processing Instruction Reference</title>
+ <releaseinfo role="meta">
+ $Id: pi.xsl 7107 2007-07-22 10:22:06Z xmldoc $
+ </releaseinfo>
+ </info>
+ <partintro id="partintro">
+ <title>Introduction</title>
+ <para>This is generated reference documentation for all
+ user-specifiable processing instructions (PIs) in the
+ “common” part of the DocBook XSL stylesheets.
+ <note>
+ <para>You add these PIs at particular points in a document to
+ cause specific “exceptions” to formatting/output behavior. To
+ make global changes in formatting/output behavior across an
+ entire document, it’s better to do it by setting an
+ appropriate stylesheet parameter (if there is one).</para>
+ </note>
+ </para>
+ </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<doc:pi name="dbchoice_choice" xmlns="">
+ <refpurpose>Generates a localized choice separator</refpurpose>
+ <refdescription id="select.choice.separator-desc">
+ <para>Use the <tag class="xmlpi">dbchoice choice</tag> PI to
+ generate an appropriate localized “choice” separator (for
+ example, <literal>and</literal> or <literal>or</literal>)
+ before the final item in an inline <tag>simplelist</tag></para>
+ <warning>
+ <para>This PI is a less-than-ideal hack; support for it may
+ disappear in the future (particularly if and when a more
+ appropriate means for marking up "choice" lists becomes
+ available in DocBook).</para>
+ </warning>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbchoice choice="and"|"or"|<replaceable>string</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>choice="and"</term>
+ <listitem>
+ <para>generates a localized <literal>and</literal> separator</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>choice="or"</term>
+ <listitem>
+ <para>generates a localized <literal>or</literal> separator</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>choice="<replaceable>string</replaceable>"</term>
+ <listitem>
+ <para>generates a literal <replaceable>string</replaceable> separator</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbchoice_choice">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbchoice')"/>
+ <xsl:with-param name="attribute">choice</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbtimestamp" xmlns="">
+ <refpurpose>Inserts a date timestamp</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbtimestamp</tag> PI at any point in a
+ source document to cause a date timestamp (a formatted
+ string representing the current date and time) to be
+ inserted in output of the document.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbtimestamp format="<replaceable>formatstring</replaceable>" [padding="0"|"1"]</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>format="<replaceable>formatstring</replaceable>"</term>
+ <listitem>
+ <para>Specifies format in which the date and time are
+ output</para>
+ <note>
+ <para>For details of the content of the format string,
+ see <link role="tcg" xlink:href="Datetime.html"
+ >Date and time</link>.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>padding="0"|"1"</term>
+ <listitem>
+ <para>Specifies padding behavior; if non-zero, padding is is added</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbtimestamp">
+ <xsl:variable name="format">
+ <xsl:variable name="pi-format">
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="."/>
+ <xsl:with-param name="attribute">format</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$pi-format != ''">
+ <xsl:value-of select="$pi-format"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'datetime'"/>
+ <xsl:with-param name="name" select="'format'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="padding">
+ <xsl:variable name="pi-padding">
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="."/>
+ <xsl:with-param name="attribute">padding</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$pi-padding != ''">
+ <xsl:value-of select="$pi-padding"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="date">
+ <xsl:choose>
+ <xsl:when test="function-available('date:date-time')">
+ <xsl:value-of select="date:date-time()"/>
+ </xsl:when>
+ <xsl:when test="function-available('date:dateTime')">
+ <!-- Xalan quirk -->
+ <xsl:value-of select="date:dateTime()"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('date:date-time') or
+ function-available('date:dateTime')">
+ <xsl:call-template name="datetime.format">
+ <xsl:with-param name="date" select="$date"/>
+ <xsl:with-param name="format" select="$format"/>
+ <xsl:with-param name="padding" select="$padding"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ Timestamp processing requires XSLT processor with EXSLT date support.
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<doc:pi name="dbtex_delims" xmlns="">
+ <refpurpose>Generates delimiters around embedded TeX equations
+ in output</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbtex delims</tag> PI as a
+ child of a <tag>textobject</tag> containing embedded TeX
+ markup, to cause that markup to be surrounded by
+ <literal>$</literal> delimiter characters in output.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbtex delims="no"|"yes"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>dbtex delims="no"|"yes"</term>
+ <listitem>
+ <para>Specifies whether delimiters are output</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>tex.math.delims</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="TexMath.html"
+ >DBTeXMath</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbtex_delims">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbtex')"/>
+ <xsl:with-param name="attribute" select="'delims'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()" mode="titlepage.mode">
+ <!-- * Als process PIs on title pages -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbtimestamp')">
+ <xsl:call-template name="pi.dbtimestamp"/>
+</xsl:template>
+
+<xsl:template name="datetime.format">
+ <xsl:param name="date"/>
+ <xsl:param name="format"/>
+ <xsl:param name="padding" select="1"/>
+ <xsl:if test="$format != ''">
+ <!-- replace any whitespace in the format string with a non-breaking space -->
+ <xsl:variable name="format-nbsp"
+ select="translate($format,
+ '&#x20;&#x9;&#xd;&#xa;',
+ '&#xa0;&#xa0;&#xa0;&#xa0;')"/>
+ <xsl:variable name="tokenized-format-string">
+ <xsl:call-template name="str.tokenize.keep.delimiters">
+ <xsl:with-param name="string" select="$format-nbsp"/>
+ <xsl:with-param name="delimiters" select="'&#xa0;,./-()[]:'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- include extra test for Xalan quirk -->
+ <xsl:when test="function-available('exsl:node-set') or
+ contains(system-property('xsl:vendor'),'Apache Software Foundation')">
+ <!-- We must preserve context node in order to get valid language -->
+ <xsl:variable name="context" select="."/>
+ <xsl:for-each select="exsl:node-set($tokenized-format-string)/node()">
+ <xsl:variable name="token">
+ <xsl:value-of select="."/>
+ </xsl:variable>
+ <!-- Restore context node -->
+ <xsl:for-each select="$context">
+ <xsl:choose>
+ <xsl:when test="$token = 'a'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'datetime-abbrev'"/>
+ <xsl:with-param name="name" select="date:day-abbreviation($date)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$token = 'A'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'datetime-full'"/>
+ <xsl:with-param name="name" select="date:day-name($date)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$token = 'b'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'datetime-abbrev'"/>
+ <xsl:with-param name="name" select="date:month-abbreviation($date)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$token = 'c'">
+ <xsl:value-of select="date:date($date)"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="date:time($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'B'">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'datetime-full'"/>
+ <xsl:with-param name="name" select="date:month-name($date)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$token = 'd'">
+ <xsl:if test="$padding = 1 and
+ string-length(date:day-in-month($date)) = 1">0</xsl:if>
+ <xsl:value-of select="date:day-in-month($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'H'">
+ <xsl:if test="$padding = 1 and string-length(date:hour-in-day($date)) = 1">0</xsl:if>
+ <xsl:value-of select="date:hour-in-day($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'j'">
+ <xsl:value-of select="date:day-in-year($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'm'">
+ <xsl:if test="$padding = 1 and string-length(date:month-in-year($date)) = 1">0</xsl:if>
+ <xsl:value-of select="date:month-in-year($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'M'">
+ <xsl:if test="string-length(date:minute-in-hour($date)) = 1">0</xsl:if>
+ <xsl:value-of select="date:minute-in-hour($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'S'">
+ <xsl:if test="string-length(date:second-in-minute($date)) = 1">0</xsl:if>
+ <xsl:value-of select="date:second-in-minute($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'U'">
+ <xsl:value-of select="date:week-in-year($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'w'">
+ <xsl:value-of select="date:day-in-week($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'x'">
+ <xsl:value-of select="date:date($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'X'">
+ <xsl:value-of select="date:time($date)"/>
+ </xsl:when>
+ <xsl:when test="$token = 'Y'">
+ <xsl:value-of select="date:year($date)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$token"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ Timestamp processing requires an XSLT processor with support
+ for the EXSLT node-set() function.
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/pl.xml b/docs/xsl-generic/common/pl.xml
new file mode 100644
index 00000000..5112a8ee
--- /dev/null
+++ b/docs/xsl-generic/common/pl.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pl" english-language-name="Polish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pl.xml -->
+<!-- * -->
+<!-- * E-mail the edited pl.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrakt"/>
+<l:gentext key="abstract" text="Abstrakt"/>
+<l:gentext key="Answer" text="Odp:"/>
+<l:gentext key="answer" text="Odp:"/>
+<l:gentext key="Appendix" text="Dodatek"/>
+<l:gentext key="appendix" text="dodatek"/>
+<l:gentext key="Article" text="Artykuł"/>
+<l:gentext key="article" text="Artykuł"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Książka"/>
+<l:gentext key="book" text="Książka"/>
+<l:gentext key="CAUTION" text="PRZYPADEK"/>
+<l:gentext key="Caution" text="Uwaga!"/>
+<l:gentext key="caution" text="Uwaga!"/>
+<l:gentext key="Chapter" text="Rozdział"/>
+<l:gentext key="chapter" text="rozdział"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedykacja"/>
+<l:gentext key="dedication" text="Dedykacja"/>
+<l:gentext key="Edition" text="Wydanie"/>
+<l:gentext key="edition" text="Wydanie"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Równanie"/>
+<l:gentext key="equation" text="Równanie"/>
+<l:gentext key="Example" text="Przykład"/>
+<l:gentext key="example" text="Przykład"/>
+<l:gentext key="Figure" text="Rysunek"/>
+<l:gentext key="figure" text="Rysunek"/>
+<l:gentext key="Glossary" text="Glossary"/>
+<l:gentext key="glossary" text="Glossary"/>
+<l:gentext key="GlossSee" text="Patrz"/>
+<l:gentext key="glosssee" text="Patrz"/>
+<l:gentext key="GlossSeeAlso" text="Patrz też"/>
+<l:gentext key="glossseealso" text="Patrz też"/>
+<l:gentext key="IMPORTANT" text="WAŻNE"/>
+<l:gentext key="important" text="WAŻNE"/>
+<l:gentext key="Important" text="WAŻNE"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text="Odbiorcy"/>
+<l:gentext key="msgaud" text="Odbiorcy"/>
+<l:gentext key="MsgLevel" text="Poziom"/>
+<l:gentext key="msglevel" text="Poziom"/>
+<l:gentext key="MsgOrig" text="Nadawca"/>
+<l:gentext key="msgorig" text="Nadawca"/>
+<l:gentext key="NOTE" text="Notatka"/>
+<l:gentext key="Note" text="Notatka"/>
+<l:gentext key="note" text="Notatka"/>
+<l:gentext key="Part" text="Część"/>
+<l:gentext key="part" text="Część"/>
+<l:gentext key="Preface" text="Przedmowa"/>
+<l:gentext key="preface" text="Przedmowa"/>
+<l:gentext key="Procedure" text="Procedura"/>
+<l:gentext key="procedure" text="Procedura"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Data wydania"/>
+<l:gentext key="published" text="Data wydania"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Pyt i Odp"/>
+<l:gentext key="qandadiv" text="Pyt i Odp"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Pyt:"/>
+<l:gentext key="question" text="Pyt:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Materiały źródłowe"/>
+<l:gentext key="reference" text="Materiały źródłowe"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nazwa"/>
+<l:gentext key="refname" text="Nazwa"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Składnia"/>
+<l:gentext key="refsynopsisdiv" text="Składnia"/>
+<l:gentext key="RevHistory" text="Historia zmian"/>
+<l:gentext key="revhistory" text="Historia zmian"/>
+<l:gentext key="revision" text="Zmiana"/>
+<l:gentext key="Revision" text="Zmiana"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="sekcja"/>
+<l:gentext key="Section" text="Sekcja"/>
+<l:gentext key="see" text="Patrz"/>
+<l:gentext key="See" text="Patrz"/>
+<l:gentext key="seealso" text="Patrz też"/>
+<l:gentext key="Seealso" text="Patrz też"/>
+<l:gentext key="SeeAlso" text="Patrz też"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text=""/>
+<l:gentext key="step" text="krok"/>
+<l:gentext key="Step" text="krok"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Podpowiedź"/>
+<l:gentext key="TIP" text="Podpowiedź"/>
+<l:gentext key="Tip" text="Podpowiedź"/>
+<l:gentext key="Warning" text="Ostrzeżenie"/>
+<l:gentext key="warning" text="Ostrzeżenie"/>
+<l:gentext key="WARNING" text="Ostrzeżenie"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Edited"/>
+<l:gentext key="edited" text="Edited"/>
+<l:gentext key="Editedby" text="Redakcja: "/>
+<l:gentext key="editedby" text="Redakcja: "/>
+<l:gentext key="in" text="w"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="nie istniejący element"/>
+<l:gentext key="notes" text="Przypisy"/>
+<l:gentext key="Notes" text="Przypisy"/>
+<l:gentext key="Pgs" text="stron"/>
+<l:gentext key="pgs" text="stron"/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Przypisy"/>
+<l:gentext key="tablenotes" text="Przypisy"/>
+<l:gentext key="TableofContents" text="Spis treści"/>
+<l:gentext key="tableofcontents" text="Spis treści"/>
+<l:gentext key="unexpectedelementname" text="Unexpected element name"/>
+<l:gentext key="unsupported" text="nie wspierany"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Spis równań"/>
+<l:gentext key="ListofEquations" text="Spis równań"/>
+<l:gentext key="ListofExamples" text="Spis przykładów"/>
+<l:gentext key="listofexamples" text="Spis przykładów"/>
+<l:gentext key="ListofFigures" text="Spis rysunków"/>
+<l:gentext key="listoffigures" text="Spis rysunków"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Spis tabel"/>
+<l:gentext key="ListofTables" text="Spis tabel"/>
+<l:gentext key="ListofUnknown" text="Spis ???"/>
+<l:gentext key="listofunknown" text="Spis ???"/>
+<l:gentext key="nav-home" text="Spis treści"/>
+<l:gentext key="nav-next" text="Następny"/>
+<l:gentext key="nav-next-sibling" text="Następny rozdział"/>
+<l:gentext key="nav-prev" text="Poprzedni"/>
+<l:gentext key="nav-prev-sibling" text="Poprzedni rozdział"/>
+<l:gentext key="nav-up" text="Początek rozdziału"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="aąbcćdeęfghijklłmnńoòpqrsśtuvwxyzźż"/>
+<l:gentext key="uppercase.alpha" text="AĄBCĆDEĘFGHIJKLŁMNŃOÒPQRSŚTUVWXYZŹŻ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="«"/>
+<l:dingbat key="nestedendquote" text="»"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="ߦ"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Rozdział %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Równanie %n. %t"/>
+<l:template name="example" text="Przykład %n. %t"/>
+<l:template name="figure" text="Rysunek %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Część %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Rozdział %n. %t"/>
+<l:template name="part" text="Część %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Odp: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Pyt: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pyt: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="sect1" text="„%t”"/>
+<l:template name="sect2" text="„%t”"/>
+<l:template name="sect3" text="„%t”"/>
+<l:template name="sect4" text="„%t”"/>
+<l:template name="sect5" text="„%t”"/>
+<l:template name="section" text="„%t”"/>
+<l:template name="simplesect" text="„%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Odp: %n"/>
+<l:template name="appendix" text="Dodatek %n"/>
+<l:template name="bridgehead" text="Sekcja %n"/>
+<l:template name="chapter" text="Rozdział %n"/>
+<l:template name="equation" text="Równanie %n"/>
+<l:template name="example" text="Przykład %n"/>
+<l:template name="figure" text="Rysunek %n"/>
+<l:template name="part" text="Część %n"/>
+<l:template name="procedure" text="Procedura %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Pyt i Odp %n"/>
+<l:template name="qandaentry" text="Pyt: %n"/>
+<l:template name="question" text="Pyt: %n"/>
+<l:template name="sect1" text="Sekcja %n"/>
+<l:template name="sect2" text="Sekcja %n"/>
+<l:template name="sect3" text="Sekcja %n"/>
+<l:template name="sect4" text="Sekcja %n"/>
+<l:template name="sect5" text="Sekcja %n"/>
+<l:template name="section" text="Sekcja %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatek %n, %t"/>
+<l:template name="bridgehead" text="Sekcja %n, „%t”"/>
+<l:template name="chapter" text="Rozdział %n, %t"/>
+<l:template name="equation" text="Równanie %n, „%t”"/>
+<l:template name="example" text="Przykład %n, „%t”"/>
+<l:template name="figure" text="Rysunek %n, „%t”"/>
+<l:template name="part" text="Część %n, „%t”"/>
+<l:template name="procedure" text="Procedura %n, „%t”"/>
+<l:template name="productionset" text="Production %n, „%t”"/>
+<l:template name="qandadiv" text="Pyt i Odp %n, „%t”"/>
+<l:template name="refsect1" text="the section called „%t”"/>
+<l:template name="refsect2" text="the section called „%t”"/>
+<l:template name="refsect3" text="the section called „%t”"/>
+<l:template name="refsection" text="the section called „%t”"/>
+<l:template name="sect1" text="Sekcja %n, „%t”"/>
+<l:template name="sect2" text="Sekcja %n, „%t”"/>
+<l:template name="sect3" text="Sekcja %n, „%t”"/>
+<l:template name="sect4" text="Sekcja %n, „%t”"/>
+<l:template name="sect5" text="Sekcja %n, „%t”"/>
+<l:template name="section" text="Sekcja %n, „%t”"/>
+<l:template name="simplesect" text="the section called „%t”"/>
+<l:template name="table" text="Tabela %n, „%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Patrz %t"/>
+<l:template name="seealso" text="Patrz też %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Odbiorcy: "/>
+<l:template name="MsgLevel" text="Poziom: "/>
+<l:template name="MsgOrig" text="Nadawca: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0415 Polish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/pt.xml b/docs/xsl-generic/common/pt.xml
new file mode 100644
index 00000000..d5b32b1e
--- /dev/null
+++ b/docs/xsl-generic/common/pt.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pt" english-language-name="Portuguese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pt.xml -->
+<!-- * -->
+<!-- * E-mail the edited pt.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="Resumo"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Apêndice"/>
+<l:gentext key="appendix" text="apêndice"/>
+<l:gentext key="Article" text="Artigo"/>
+<l:gentext key="article" text="Artigo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Livro"/>
+<l:gentext key="book" text="Livro"/>
+<l:gentext key="CAUTION" text="CUIDADO"/>
+<l:gentext key="Caution" text="Cuidado"/>
+<l:gentext key="caution" text="Cuidado"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="capítulo"/>
+<l:gentext key="Colophon" text="Ficha Técnica"/>
+<l:gentext key="colophon" text="Ficha Técnica"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedicatória"/>
+<l:gentext key="dedication" text="Dedicatória"/>
+<l:gentext key="Edition" text="Edição"/>
+<l:gentext key="edition" text="Edição"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equação"/>
+<l:gentext key="equation" text="Equação"/>
+<l:gentext key="Example" text="Exemplo"/>
+<l:gentext key="example" text="Exemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Glossário"/>
+<l:gentext key="glossary" text="Glossário"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="Ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver Também"/>
+<l:gentext key="glossseealso" text="Ver Também"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice Remissivo"/>
+<l:gentext key="index" text="Índice Remissivo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Aviso Legal"/>
+<l:gentext key="legalnotice" text="Aviso Legal"/>
+<l:gentext key="MsgAud" text="Audiência"/>
+<l:gentext key="msgaud" text="Audiência"/>
+<l:gentext key="MsgLevel" text="Nível"/>
+<l:gentext key="msglevel" text="Nível"/>
+<l:gentext key="MsgOrig" text="Origem"/>
+<l:gentext key="msgorig" text="Origem"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="Nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefácio"/>
+<l:gentext key="preface" text="Prefácio"/>
+<l:gentext key="Procedure" text="Procedimento"/>
+<l:gentext key="procedure" text="Procedimento"/>
+<l:gentext key="ProductionSet" text="Produção"/>
+<l:gentext key="PubDate" text="Editado"/>
+<l:gentext key="pubdate" text="Editado"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="Publicado"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P &amp; R"/>
+<l:gentext key="qandadiv" text="P &amp; R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referência"/>
+<l:gentext key="reference" text="Referência"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="Nome"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="Sinopse"/>
+<l:gentext key="RevHistory" text="Historial de Revisões"/>
+<l:gentext key="revhistory" text="Historial de Revisões"/>
+<l:gentext key="revision" text="Revisão"/>
+<l:gentext key="Revision" text="Revisão"/>
+<l:gentext key="sect1" text="Secção"/>
+<l:gentext key="sect2" text="Secção"/>
+<l:gentext key="sect3" text="Secção"/>
+<l:gentext key="sect4" text="Secção"/>
+<l:gentext key="sect5" text="Secção"/>
+<l:gentext key="section" text="secção"/>
+<l:gentext key="Section" text="Secção"/>
+<l:gentext key="see" text="Ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="Ver Também"/>
+<l:gentext key="Seealso" text="ver também"/>
+<l:gentext key="SeeAlso" text="Ver Também"/>
+<l:gentext key="set" text="Conjunto"/>
+<l:gentext key="Set" text="Conjunto"/>
+<l:gentext key="setindex" text="Índice de Conjuntos"/>
+<l:gentext key="SetIndex" text="Índice de Conjuntos"/>
+<l:gentext key="Sidebar" text="Barra Lateral"/>
+<l:gentext key="sidebar" text="barra lateral"/>
+<l:gentext key="step" text="passo"/>
+<l:gentext key="Step" text="Passo"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Dica"/>
+<l:gentext key="TIP" text="DICA"/>
+<l:gentext key="Tip" text="Dica"/>
+<l:gentext key="Warning" text="Atenção"/>
+<l:gentext key="warning" text="Atenção"/>
+<l:gentext key="WARNING" text="ATENÇÃO"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="Editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="Editado por"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elemento não existente"/>
+<l:gentext key="notes" text="Notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Páginas"/>
+<l:gentext key="pgs" text="Páginas"/>
+<l:gentext key="Revisedby" text="Revisto por: "/>
+<l:gentext key="revisedby" text="Revisto por: "/>
+<l:gentext key="TableNotes" text="Notas"/>
+<l:gentext key="tablenotes" text="Notas"/>
+<l:gentext key="TableofContents" text="Índice"/>
+<l:gentext key="tableofcontents" text="Índice"/>
+<l:gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+<l:gentext key="unsupported" text="não suportado"/>
+<l:gentext key="xrefto" text="referência cruzada para"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lista de Equações"/>
+<l:gentext key="ListofEquations" text="Lista de Equações"/>
+<l:gentext key="ListofExamples" text="Lista de Exemplos"/>
+<l:gentext key="listofexamples" text="Lista de Exemplos"/>
+<l:gentext key="ListofFigures" text="Lista de Figuras"/>
+<l:gentext key="listoffigures" text="Lista de Figuras"/>
+<l:gentext key="ListofProcedures" text="Lista de Procedimentos"/>
+<l:gentext key="listofprocedures" text="Lista de Procedimentos"/>
+<l:gentext key="listoftables" text="Lista de Tabelas"/>
+<l:gentext key="ListofTables" text="Lista de Tabelas"/>
+<l:gentext key="ListofUnknown" text="Lista de Desconhecido"/>
+<l:gentext key="listofunknown" text="Lista de Desconhecido"/>
+<l:gentext key="nav-home" text="Início"/>
+<l:gentext key="nav-next" text="Próximo"/>
+<l:gentext key="nav-next-sibling" text="Próxima Parte"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Parte Anterior"/>
+<l:gentext key="nav-up" text="Subir"/>
+<l:gentext key="nav-toc" text="Índice"/>
+<l:gentext key="Draft" text="Rascunho"/>
+<l:gentext key="above" text="acima"/>
+<l:gentext key="below" text="abaixo"/>
+<l:gentext key="sectioncalled" text="a secção chamada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equação %n. %t"/>
+<l:template name="example" text="Exemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produção %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pergunta %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apêndice %n"/>
+<l:template name="bridgehead" text="Secção %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Equação %n"/>
+<l:template name="example" text="Exemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimento %n"/>
+<l:template name="productionset" text="Produção %n"/>
+<l:template name="qandadiv" text="P &amp; R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Secção %n"/>
+<l:template name="sect2" text="Secção %n"/>
+<l:template name="sect3" text="Secção %n"/>
+<l:template name="sect4" text="Secção %n"/>
+<l:template name="sect5" text="Secção %n"/>
+<l:template name="section" text="Secção %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apêndice %n, %t"/>
+<l:template name="bridgehead" text="Secção %n, “%t”"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Equação %n, “%t”"/>
+<l:template name="example" text="Exemplo %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimento %n, “%t”"/>
+<l:template name="productionset" text="Produção %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; R %n, “%t”"/>
+<l:template name="refsect1" text="a secção chamada “%t”"/>
+<l:template name="refsect2" text="a secção chamada “%t”"/>
+<l:template name="refsect3" text="a secção chamada “%t”"/>
+<l:template name="refsection" text="a secção chamada “%t”"/>
+<l:template name="sect1" text="Secção %n, “%t”"/>
+<l:template name="sect2" text="Secção %n, “%t”"/>
+<l:template name="sect3" text="Secção %n, “%t”"/>
+<l:template name="sect4" text="Secção %n, “%t”"/>
+<l:template name="sect5" text="Secção %n, “%t”"/>
+<l:template name="section" text="Secção %n, “%t”"/>
+<l:template name="simplesect" text="a secção chamada “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=" e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t"/>
+<l:template name="seealso" text="Ver Também %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiência: "/>
+<l:template name="MsgLevel" text="Nível: "/>
+<l:template name="MsgOrig" text="Origem: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0816 Portuguese (PORTUGAL)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/pt_br.xml b/docs/xsl-generic/common/pt_br.xml
new file mode 100644
index 00000000..56c1c910
--- /dev/null
+++ b/docs/xsl-generic/common/pt_br.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pt_br" english-language-name="Portuguese (Brazil)">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pt_br.xml -->
+<!-- * -->
+<!-- * E-mail the edited pt_br.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="Resumo"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Apêndice"/>
+<l:gentext key="appendix" text="apêndice"/>
+<l:gentext key="Article" text="Artigo"/>
+<l:gentext key="article" text="Artigo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Livro"/>
+<l:gentext key="book" text="Livro"/>
+<l:gentext key="CAUTION" text="CUIDADO"/>
+<l:gentext key="Caution" text="Cuidado"/>
+<l:gentext key="caution" text="Cuidado"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="capítulo"/>
+<l:gentext key="Colophon" text="Considerações finais"/>
+<l:gentext key="colophon" text="Considerações finais"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedicatória"/>
+<l:gentext key="dedication" text="Dedicatória"/>
+<l:gentext key="Edition" text="Edição"/>
+<l:gentext key="edition" text="Edição"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equação"/>
+<l:gentext key="equation" text="Equação"/>
+<l:gentext key="Example" text="Exemplo"/>
+<l:gentext key="example" text="Exemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Glossário"/>
+<l:gentext key="glossary" text="Glossário"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="Ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver Também"/>
+<l:gentext key="glossseealso" text="Ver Também"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice Remissivo"/>
+<l:gentext key="index" text="Índice Remissivo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Nota Legal"/>
+<l:gentext key="legalnotice" text="Nota Legal"/>
+<l:gentext key="MsgAud" text="Audiência"/>
+<l:gentext key="msgaud" text="Audiência"/>
+<l:gentext key="MsgLevel" text="Nível"/>
+<l:gentext key="msglevel" text="Nível"/>
+<l:gentext key="MsgOrig" text="Origem"/>
+<l:gentext key="msgorig" text="Origem"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="Nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefácio"/>
+<l:gentext key="preface" text="Prefácio"/>
+<l:gentext key="Procedure" text="Procedimento"/>
+<l:gentext key="procedure" text="Procedimento"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Data de Publicação"/>
+<l:gentext key="pubdate" text="Data de Publicação"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="Publicado"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P &amp; R"/>
+<l:gentext key="qandadiv" text="P &amp; R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referência"/>
+<l:gentext key="reference" text="Referência"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="Nome"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="Sinopse"/>
+<l:gentext key="RevHistory" text="Histórico de Revisões"/>
+<l:gentext key="revhistory" text="Histórico de Revisões"/>
+<l:gentext key="revision" text="Revisão"/>
+<l:gentext key="Revision" text="Revisão"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="seção"/>
+<l:gentext key="Section" text="Seção"/>
+<l:gentext key="see" text="Ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="Ver Também"/>
+<l:gentext key="Seealso" text="ver também"/>
+<l:gentext key="SeeAlso" text="Ver Também"/>
+<l:gentext key="set" text="Conjunto"/>
+<l:gentext key="Set" text="Conjunto"/>
+<l:gentext key="setindex" text="Índice do Conjunto"/>
+<l:gentext key="SetIndex" text="Índice do Conjunto"/>
+<l:gentext key="Sidebar" text="Quadro Lateral"/>
+<l:gentext key="sidebar" text="quadro lateral"/>
+<l:gentext key="step" text="passo"/>
+<l:gentext key="Step" text="Passo"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Dica"/>
+<l:gentext key="TIP" text="DICA"/>
+<l:gentext key="Tip" text="Dica"/>
+<l:gentext key="Warning" text="Atenção"/>
+<l:gentext key="warning" text="Atenção"/>
+<l:gentext key="WARNING" text="ATENÇÃO"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="Editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="Editado por"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="elemento inexistente"/>
+<l:gentext key="notes" text="Notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Páginas"/>
+<l:gentext key="pgs" text="Páginas"/>
+<l:gentext key="Revisedby" text="Revisado por: "/>
+<l:gentext key="revisedby" text="Revisado por: "/>
+<l:gentext key="TableNotes" text="Notas"/>
+<l:gentext key="tablenotes" text="Notas"/>
+<l:gentext key="TableofContents" text="Índice"/>
+<l:gentext key="tableofcontents" text="Índice"/>
+<l:gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+<l:gentext key="unsupported" text="não suportado"/>
+<l:gentext key="xrefto" text="referência para"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lista de Equações"/>
+<l:gentext key="ListofEquations" text="Lista de Equações"/>
+<l:gentext key="ListofExamples" text="Lista de Exemplos"/>
+<l:gentext key="listofexamples" text="Lista de Exemplos"/>
+<l:gentext key="ListofFigures" text="Lista de Figuras"/>
+<l:gentext key="listoffigures" text="Lista de Figuras"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Lista de Tabelas"/>
+<l:gentext key="ListofTables" text="Lista de Tabelas"/>
+<l:gentext key="ListofUnknown" text="Lista de ???"/>
+<l:gentext key="listofunknown" text="Lista de ???"/>
+<l:gentext key="nav-home" text="Principal"/>
+<l:gentext key="nav-next" text="Próxima"/>
+<l:gentext key="nav-next-sibling" text="Fim"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Início"/>
+<l:gentext key="nav-up" text="Acima"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equação %n. %t"/>
+<l:template name="example" text="Exemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t" lang="en"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s" lang="en"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apêndice %n"/>
+<l:template name="bridgehead" text="Seção %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Equação %n"/>
+<l:template name="example" text="Exemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimento %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="P &amp; R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Seção %n"/>
+<l:template name="sect2" text="Seção %n"/>
+<l:template name="sect3" text="Seção %n"/>
+<l:template name="sect4" text="Seção %n"/>
+<l:template name="sect5" text="Seção %n"/>
+<l:template name="section" text="Seção %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apêndice %n, %t"/>
+<l:template name="bridgehead" text="Seção %n, “%t”"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Equação %n, “%t”"/>
+<l:template name="example" text="Exemplo %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimento %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; R %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Seção %n, “%t”"/>
+<l:template name="sect2" text="Seção %n, “%t”"/>
+<l:template name="sect3" text="Seção %n, “%t”"/>
+<l:template name="sect4" text="Seção %n, “%t”"/>
+<l:template name="sect5" text="Seção %n, “%t”"/>
+<l:template name="section" text="Seção %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=", e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t"/>
+<l:template name="seealso" text="Ver Também %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiência: "/>
+<l:template name="MsgLevel" text="Nível: "/>
+<l:template name="MsgOrig" text="Origem: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0416 Portuguese (BRAZIL)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/refentry.xml b/docs/xsl-generic/common/refentry.xml
new file mode 100644
index 00000000..c5e6776b
--- /dev/null
+++ b/docs/xsl-generic/common/refentry.xml
@@ -0,0 +1,781 @@
+<?xml version="1.0"?>
+
+<reference xml:id="refentry">
+ <info>
+ <title>Common » Refentry Metadata Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: refentry.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ </releaseinfo>
+ </info>
+
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+
+<para>This is technical reference documentation for the “refentry
+ metadata” templates in the DocBook XSL Stylesheets.</para>
+
+
+<para>This is not intended to be user documentation. It is provided
+ for developers writing customization layers for the stylesheets.</para>
+
+ <note>
+
+<para>Currently, only the manpages stylesheets make use of these
+ templates. They are, however, potentially useful elsewhere.</para>
+
+ </note>
+ </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.metadata">
+<refnamediv>
+<refname>get.refentry.metadata</refname>
+<refpurpose>Gathers metadata from a refentry and its ancestors</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.metadata"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>Reference documentation for particular commands, functions,
+ etc., is sometimes viewed in isolation from its greater "context". For
+ example, users view Unix man pages as, well, individual pages, not as
+ part of a "book" of some kind. Therefore, it is sometimes necessary to
+ embed "context" information in output for each <tag>refentry</tag>.</para>
+
+
+
+<para>However, one problem is that different users mark up that
+ context information in different ways. Often (usually), the
+ context information is not actually part of the content of the
+ <tag>refentry</tag> itself, but instead part of the content of a
+ parent or ancestor element to the the <tag>refentry</tag>. And
+ even then, DocBook provides a variety of elements that users might
+ potentially use to mark up the same kind of information. One user
+ might use the <tag>productnumber</tag> element to mark up version
+ information about a particular product, while another might use
+ the <tag>releaseinfo</tag> element.</para>
+
+
+
+<para>Taking all that in mind, the
+ <function>get.refentry.metadata</function> template tries to gather
+ metadata from a <tag>refentry</tag> element and its ancestor
+ elements in an intelligent and user-configurable way. The basic
+ mechanism used in the XPath expressions throughout this stylesheet
+ is to select the relevant metadata from the *info element that is
+ closest to the actual <tag>refentry</tag> – either on the
+ <tag>refentry</tag> itself, or on its nearest ancestor.</para>
+
+
+ <note>
+
+<para>The <function>get.refentry.metadata</function>
+ template is actually just sort of a "driver" template; it
+ calls other templates that do the actual data collection,
+ then returns the data as a set.</para>
+
+ </note>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+
+<para>A node containing user preferences (from global
+ stylesheet parameters)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a node set with the following elements. The
+ descriptions are verbatim from the <literal>man(7)</literal> man
+ page.
+
+<variablelist>
+ <varlistentry>
+ <term>title</term>
+ <listitem>
+
+<para>the title of the man page (e.g., <literal>MAN</literal>)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>section</term>
+ <listitem>
+
+<para>the section number the man page should be placed in (e.g.,
+ <literal>7</literal>)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>date</term>
+ <listitem>
+
+<para>the date of the last revision</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>source</term>
+ <listitem>
+
+<para>the source of the command</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>manual</term>
+ <listitem>
+
+<para>the title of the manual (e.g., <citetitle>Linux
+ Programmer's Manual</citetitle>)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.title">
+<refnamediv>
+<refname>get.refentry.title</refname>
+<refpurpose>Gets title metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.title"&gt;
+&lt;xsl:param name="refname"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <literal>man(7)</literal> man page describes this as "the
+ title of the man page (e.g., <literal>MAN</literal>). This differs
+ from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
+ <tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
+ otherwise, we just use first <tag>refname</tag> in the first
+ <tag>refnamediv</tag> in the source.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a <tag>title</tag> node.</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.section">
+<refnamediv>
+<refname>get.refentry.section</refname>
+<refpurpose>Gets section metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.section"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="quiet" select="0"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <literal>man(7)</literal> man page describes this as "the
+ section number the man page should be placed in (e.g.,
+ <literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
+ specified in the source, and we find that the <tag>refentry</tag> is
+ for a function, we use the section number <literal>3</literal>
+ ["Library calls (functions within program libraries)"]; otherwise, we
+ default to using <literal>1</literal> ["Executable programs or shell
+ commands"].</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>quiet</term>
+ <listitem>
+
+<para>If non-zero, no "missing" message is emitted</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a string representing a section number.</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.date">
+<refnamediv>
+<refname>get.refentry.date</refname>
+<refpurpose>Gets date metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.date"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <literal>man(7)</literal> man page describes this as "the
+ date of the last revision". If we cannot find a date in the source, we
+ generate one.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+
+<para>A node containing users preferences (from global stylesheet parameters)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a <tag>date</tag> node.</para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.source">
+<refnamediv>
+<refname>get.refentry.source</refname>
+<refpurpose>Gets source metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.source"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <literal>man(7)</literal> man page describes this as "the
+ source of the command", and provides the following examples:
+
+<itemizedlist>
+ <listitem>
+
+<para>For binaries, use something like: GNU, NET-2, SLS
+ Distribution, MCC Distribution.</para>
+
+ </listitem>
+ <listitem>
+
+<para>For system calls, use the version of the kernel that you are
+ currently looking at: Linux 0.99.11.</para>
+
+ </listitem>
+ <listitem>
+
+<para>For library calls, use the source of the function: GNU, BSD
+ 4.3, Linux DLL 4.4.1.</para>
+
+ </listitem>
+ </itemizedlist>
+
+ </para>
+
+
+
+<para>The <literal>solbook(5)</literal> man page describes
+ something very much like what <literal>man(7)</literal> calls
+ "source", except that <literal>solbook(5)</literal> names it
+ "software" and describes it like this:
+ <blockquote>
+
+<para>This is the name of the software product that the topic
+ discussed on the reference page belongs to. For example UNIX
+ commands are part of the <literal>SunOS x.x</literal>
+ release.</para>
+
+ </blockquote>
+ </para>
+
+
+
+<para>In practice, there are many pages that simply have a version
+ number in the "source" field. So, it looks like what we have is a
+ two-part field,
+ <replaceable>Name</replaceable> <replaceable>Version</replaceable>,
+ where:
+
+<variablelist>
+ <varlistentry>
+ <term>Name</term>
+ <listitem>
+
+<para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Version</term>
+ <listitem>
+
+<para>version name</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ Each part is optional. If the <replaceable>Name</replaceable> is a
+ product name, then the <replaceable>Version</replaceable> is probably
+ the version of the product. Or there may be no
+ <replaceable>Name</replaceable>, in which case, if there is a
+ <replaceable>Version</replaceable>, it is probably the version of the
+ item itself, not the product it is part of. Or, if the
+ <replaceable>Name</replaceable> is an organization name, then there
+ probably will be no <replaceable>Version</replaceable>.
+ </para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+
+<para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a <tag>source</tag> node.</para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.source.name">
+<refnamediv>
+<refname>get.refentry.source.name</refname>
+<refpurpose>Gets source-name metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.source.name"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>A "source name" is one part of a (potentially) two-part
+ <replaceable>Name</replaceable> <replaceable>Version</replaceable>
+ source field. For more details, see the documentation for the
+ <function>get.refentry.source</function> template.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+
+<para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Depending on what output method is used for the
+ current stylesheet, either returns a text node or possibly an element
+ node, containing "source name" data.</para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.version">
+<refnamediv>
+<refname>get.refentry.version</refname>
+<refpurpose>Gets version metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.version"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>A "version" is one part of a (potentially) two-part
+ <replaceable>Name</replaceable> <replaceable>Version</replaceable>
+ source field. For more details, see the documentation for the
+ <function>get.refentry.source</function> template.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+
+<para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Depending on what output method is used for the
+ current stylesheet, either returns a text node or possibly an element
+ node, containing "version" data.</para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.manual">
+<refnamediv>
+<refname>get.refentry.manual</refname>
+<refpurpose>Gets source metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.manual"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <literal>man(7)</literal> man page describes this as "the
+ title of the manual (e.g., <citetitle>Linux Programmer's
+ Manual</citetitle>)". Here are some examples from existing man pages:
+
+<itemizedlist>
+ <listitem>
+
+<para><citetitle>dpkg utilities</citetitle>
+ (<command>dpkg-name</command>)</para>
+
+ </listitem>
+ <listitem>
+
+<para><citetitle>User Contributed Perl Documentation</citetitle>
+ (<command>GET</command>)</para>
+
+ </listitem>
+ <listitem>
+
+<para><citetitle>GNU Development Tools</citetitle>
+ (<command>ld</command>)</para>
+
+ </listitem>
+ <listitem>
+
+<para><citetitle>Emperor Norton Utilities</citetitle>
+ (<command>ddate</command>)</para>
+
+ </listitem>
+ <listitem>
+
+<para><citetitle>Debian GNU/Linux manual</citetitle>
+ (<command>faked</command>)</para>
+
+ </listitem>
+ <listitem>
+
+<para><citetitle>GIMP Manual Pages</citetitle>
+ (<command>gimp</command>)</para>
+
+ </listitem>
+ <listitem>
+
+<para><citetitle>KDOC Documentation System</citetitle>
+ (<command>qt2kdoc</command>)</para>
+
+ </listitem>
+ </itemizedlist>
+
+ </para>
+
+
+
+<para>The <literal>solbook(5)</literal> man page describes
+ something very much like what <literal>man(7)</literal> calls
+ "manual", except that <literal>solbook(5)</literal> names it
+ "sectdesc" and describes it like this:
+ <blockquote>
+
+<para>This is the section title of the reference page; for
+ example <literal>User Commands</literal>.</para>
+
+ </blockquote>
+ </para>
+
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+
+<para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a <tag>manual</tag> node.</para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.metadata.prefs">
+<refnamediv>
+<refname>get.refentry.metadata.prefs</refname>
+<refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.metadata.prefs"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The DocBook XSL stylesheets include several user-configurable
+ global stylesheet parameters for controlling <tag>refentry</tag>
+ metadata gathering. Those parameters are not read directly by the
+ other <tag>refentry</tag> metadata-gathering
+ templates. Instead, they are read only by the
+ <function>get.refentry.metadata.prefs</function> template,
+ which assembles them into a structure that is then passed to
+ the other <tag>refentry</tag> metadata-gathering
+ templates.</para>
+
+
+
+<para>So the, <function>get.refentry.metadata.prefs</function>
+ template is the only interface to collecting stylesheet parameters for
+ controlling <tag>refentry</tag> metadata gathering.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<para>There are no local parameters for this template; however, it
+ does rely on a number of global parameters.</para>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a <tag>manual</tag> node.</para>
+
+ </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.set.refentry.metadata">
+<refnamediv>
+<refname>set.refentry.metadata</refname>
+<refpurpose>Sets content of a refentry metadata item</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="set.refentry.metadata"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="contents"/&gt;
+&lt;xsl:param name="context"/&gt;
+&lt;xsl:param name="preferred"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <function>set.refentry.metadata</function> template is
+ called each time a suitable source element is found for a certain
+ metadata field.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+
+<para>The first <tag>refname</tag> in the refentry</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+
+<para>A single *info node that contains the selected source element.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>contents</term>
+ <listitem>
+
+<para>A node containing the selected source element.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>context</term>
+ <listitem>
+
+<para>A string describing the metadata context in which the
+ <function>set.refentry.metadata</function> template was
+ called: either "date", "source", "version", or "manual".</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns formatted contents of a selected source element.</para>
+</refsect1></refentry>
+</reference>
+
diff --git a/docs/xsl-generic/common/refentry.xsl b/docs/xsl-generic/common/refentry.xsl
new file mode 100644
index 00000000..75bc84b0
--- /dev/null
+++ b/docs/xsl-generic/common/refentry.xsl
@@ -0,0 +1,1277 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:date="http://exslt.org/dates-and-times"
+ exclude-result-prefixes="doc date"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: refentry.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<doc:reference xmlns="" xml:id="refentry">
+ <info>
+ <title>Common » Refentry Metadata Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: refentry.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ </releaseinfo>
+ </info>
+ <!-- * yes, partintro is a valid child of a reference... -->
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+ <para>This is technical reference documentation for the “refentry
+ metadata” templates in the DocBook XSL Stylesheets.</para>
+ <para>This is not intended to be user documentation. It is provided
+ for developers writing customization layers for the stylesheets.</para>
+ <note>
+ <para>Currently, only the manpages stylesheets make use of these
+ templates. They are, however, potentially useful elsewhere.</para>
+ </note>
+ </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.metadata" xmlns="">
+ <refpurpose>Gathers metadata from a refentry and its ancestors</refpurpose>
+ <refdescription id="get.refentry.metadata-desc">
+ <para>Reference documentation for particular commands, functions,
+ etc., is sometimes viewed in isolation from its greater "context". For
+ example, users view Unix man pages as, well, individual pages, not as
+ part of a "book" of some kind. Therefore, it is sometimes necessary to
+ embed "context" information in output for each <tag>refentry</tag>.</para>
+
+ <para>However, one problem is that different users mark up that
+ context information in different ways. Often (usually), the
+ context information is not actually part of the content of the
+ <tag>refentry</tag> itself, but instead part of the content of a
+ parent or ancestor element to the the <tag>refentry</tag>. And
+ even then, DocBook provides a variety of elements that users might
+ potentially use to mark up the same kind of information. One user
+ might use the <tag>productnumber</tag> element to mark up version
+ information about a particular product, while another might use
+ the <tag>releaseinfo</tag> element.</para>
+
+ <para>Taking all that in mind, the
+ <function>get.refentry.metadata</function> template tries to gather
+ metadata from a <tag>refentry</tag> element and its ancestor
+ elements in an intelligent and user-configurable way. The basic
+ mechanism used in the XPath expressions throughout this stylesheet
+ is to select the relevant metadata from the *info element that is
+ closest to the actual <tag>refentry</tag>&#160;– either on the
+ <tag>refentry</tag> itself, or on its nearest ancestor.</para>
+
+ <note>
+ <para>The <function>get.refentry.metadata</function>
+ template is actually just sort of a "driver" template; it
+ calls other templates that do the actual data collection,
+ then returns the data as a set.</para>
+ </note>
+
+ </refdescription>
+ <refparameter id="get.refentry.metadata-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+ <para>A node containing user preferences (from global
+ stylesheet parameters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.metadata-returns">
+ <para>Returns a node set with the following elements. The
+ descriptions are verbatim from the <literal>man(7)</literal> man
+ page.
+ <variablelist>
+ <varlistentry>
+ <term>title</term>
+ <listitem>
+ <para>the title of the man page (e.g., <literal>MAN</literal>)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>section</term>
+ <listitem>
+ <para>the section number the man page should be placed in (e.g.,
+ <literal>7</literal>)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>date</term>
+ <listitem>
+ <para>the date of the last revision</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>source</term>
+ <listitem>
+ <para>the source of the command</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>manual</term>
+ <listitem>
+ <para>the title of the manual (e.g., <citetitle>Linux
+ Programmer's Manual</citetitle>)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.metadata">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="prefs"/>
+ <title>
+ <xsl:call-template name="get.refentry.title">
+ <xsl:with-param name="refname" select="$refname"/>
+ </xsl:call-template>
+ </title>
+ <section>
+ <xsl:call-template name="get.refentry.section">
+ <xsl:with-param name="refname" select="$refname"/>
+ </xsl:call-template>
+ </section>
+ <date>
+ <xsl:call-template name="get.refentry.date">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param name="prefs" select="$prefs/DatePrefs"/>
+ </xsl:call-template>
+ </date>
+ <source>
+ <xsl:call-template name="get.refentry.source">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param name="prefs" select="$prefs/SourcePrefs"/>
+ </xsl:call-template>
+ </source>
+ <manual>
+ <xsl:call-template name="get.refentry.manual">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param name="prefs" select="$prefs/ManualPrefs"/>
+ </xsl:call-template>
+ </manual>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<doc:template name="get.refentry.title" xmlns="">
+ <refpurpose>Gets title metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.title-desc">
+ <para>The <literal>man(7)</literal> man page describes this as "the
+ title of the man page (e.g., <literal>MAN</literal>). This differs
+ from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
+ <tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
+ otherwise, we just use first <tag>refname</tag> in the first
+ <tag>refnamediv</tag> in the source.</para>
+ </refdescription>
+ <refparameter id="get.refentry.title-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.title-returns">
+ <para>Returns a <tag>title</tag> node.</para></refreturn>
+</doc:template>
+<xsl:template name="get.refentry.title">
+ <xsl:param name="refname"/>
+ <xsl:choose>
+ <xsl:when test="refmeta/refentrytitle">
+ <xsl:copy>
+ <xsl:apply-templates select="refmeta/refentrytitle/node()"/>
+ </xsl:copy>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$refname"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.section" xmlns="">
+ <refpurpose>Gets section metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.section-desc">
+ <para>The <literal>man(7)</literal> man page describes this as "the
+ section number the man page should be placed in (e.g.,
+ <literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
+ specified in the source, and we find that the <tag>refentry</tag> is
+ for a function, we use the section number <literal>3</literal>
+ ["Library calls (functions within program libraries)"]; otherwise, we
+ default to using <literal>1</literal> ["Executable programs or shell
+ commands"].</para>
+ </refdescription>
+ <refparameter id="get.refentry.section-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>quiet</term>
+ <listitem>
+ <para>If non-zero, no "missing" message is emitted</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.section-returns">
+ <para>Returns a string representing a section number.</para></refreturn>
+</doc:template>
+<xsl:template name="get.refentry.section">
+ <xsl:param name="refname"/>
+ <xsl:param name="quiet" select="0"/>
+ <xsl:choose>
+ <xsl:when test="refmeta/manvolnum">
+ <xsl:value-of select="refmeta/manvolnum"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$quiet = 0">
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manvol</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no refentry/refmeta/manvolnum</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manvol</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/manvolnum</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test=".//funcsynopsis">
+ <xsl:if test="$quiet = 0">
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manvol</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>Setting man section to 3</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:text>3</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>1</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.date" xmlns="">
+ <refpurpose>Gets date metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.date-desc">
+ <para>The <literal>man(7)</literal> man page describes this as "the
+ date of the last revision". If we cannot find a date in the source, we
+ generate one.</para>
+ </refdescription>
+ <refparameter id="get.refentry.date-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+ <para>A node containing users preferences (from global stylesheet parameters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.date-returns">
+ <para>Returns a <tag>date</tag> node.</para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.date">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="prefs"/>
+ <xsl:variable name="Date">
+ <xsl:choose>
+ <!-- * if profiling is enabled for date, and the date -->
+ <!-- * profile is non-empty, use it -->
+ <xsl:when test="not($prefs/@profileEnabled = 0) and
+ not($prefs/@profile = '')">
+ <xsl:call-template name="evaluate.info.profile">
+ <xsl:with-param name="profile" select="$prefs/@profile"/>
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * either profiling is not enabled for date, or the-->
+ <!-- * date profile is empty, so we need to look for date -->
+ <!-- * in *info -->
+ <xsl:choose>
+ <!-- * look for date or pubdate in *info -->
+ <xsl:when test="$info/date/node()
+ |$info/pubdate/node()">
+ <xsl:apply-templates
+ select="(($info[date])[last()]/date)[1]|
+ (($info[pubdate])[last()]/pubdate)[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * found no Date or Pubdate -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not($Date = '')">
+ <xsl:value-of select="$Date"/>
+ </xsl:when>
+ <!-- * We couldn't find a date, so we generate a date. -->
+ <!-- * And we make it an appropriately localized date. -->
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta date</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no date; using generated date</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta date</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/date</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template name="datetime.format">
+ <xsl:with-param name="date">
+ <xsl:choose>
+ <xsl:when test="function-available('date:date-time')">
+ <xsl:value-of select="date:date-time()"/>
+ </xsl:when>
+ <xsl:when test="function-available('date:dateTime')">
+ <!-- Xalan quirk -->
+ <xsl:value-of select="date:dateTime()"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="format">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'datetime'"/>
+ <xsl:with-param name="name" select="'format'"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.source" xmlns="">
+ <refpurpose>Gets source metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.source-desc">
+ <para>The <literal>man(7)</literal> man page describes this as "the
+ source of the command", and provides the following examples:
+ <itemizedlist>
+ <listitem>
+ <para>For binaries, use something like: GNU, NET-2, SLS
+ Distribution, MCC Distribution.</para>
+ </listitem>
+ <listitem>
+ <para>For system calls, use the version of the kernel that you are
+ currently looking at: Linux 0.99.11.</para>
+ </listitem>
+ <listitem>
+ <para>For library calls, use the source of the function: GNU, BSD
+ 4.3, Linux DLL 4.4.1.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>The <literal>solbook(5)</literal> man page describes
+ something very much like what <literal>man(7)</literal> calls
+ "source", except that <literal>solbook(5)</literal> names it
+ "software" and describes it like this:
+ <blockquote>
+ <para>This is the name of the software product that the topic
+ discussed on the reference page belongs to. For example UNIX
+ commands are part of the <literal>SunOS x.x</literal>
+ release.</para>
+ </blockquote>
+ </para>
+
+ <para>In practice, there are many pages that simply have a version
+ number in the "source" field. So, it looks like what we have is a
+ two-part field,
+ <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>,
+ where:
+ <variablelist>
+ <varlistentry>
+ <term>Name</term>
+ <listitem>
+ <para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Version</term>
+ <listitem>
+ <para>version name</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ Each part is optional. If the <replaceable>Name</replaceable> is a
+ product name, then the <replaceable>Version</replaceable> is probably
+ the version of the product. Or there may be no
+ <replaceable>Name</replaceable>, in which case, if there is a
+ <replaceable>Version</replaceable>, it is probably the version of the
+ item itself, not the product it is part of. Or, if the
+ <replaceable>Name</replaceable> is an organization name, then there
+ probably will be no <replaceable>Version</replaceable>.
+ </para>
+ </refdescription>
+ <refparameter id="get.refentry.source-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+ <para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.source-returns">
+ <para>Returns a <tag>source</tag> node.</para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.source">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="prefs"/>
+ <xsl:variable name="Name">
+ <xsl:if test="$prefs/Name/@suppress = 0">
+ <xsl:call-template name="get.refentry.source.name">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param name="prefs" select="$prefs/Name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="Version">
+ <xsl:if test="$prefs/Version/@suppress = 0">
+ <xsl:call-template name="get.refentry.version">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param name="prefs" select="$prefs/Version"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- * if we have a Name and/or Version, use either or both -->
+ <!-- * of those, in the form "Name Version" or just "Name" -->
+ <!-- * or just "Version" -->
+ <xsl:when test="not($Name = '') or not($Version = '')">
+ <xsl:choose>
+ <xsl:when test="not($Name = '') and not($Version = '')">
+ <xsl:copy-of select="$Name"/>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$Name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:copy-of select="$Version"/>
+ </xsl:when>
+ <!-- * if no Name and no Version, use fallback (if any) -->
+ <xsl:when test="not($prefs/@fallback = '')">
+ <xsl:variable name="source.fallback">
+ <xsl:call-template name="evaluate.info.profile">
+ <xsl:with-param name="profile" select="$prefs/@fallback"/>
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not($source.fallback = '')">
+ <xsl:value-of select="$source.fallback"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta source</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no valid fallback for source; leaving empty</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta source</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no source fallback specified; leaving empty</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.source.name" xmlns="">
+ <refpurpose>Gets source-name metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.source.name-desc">
+ <para>A "source name" is one part of a (potentially) two-part
+ <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+ source field. For more details, see the documentation for the
+ <function>get.refentry.source</function> template.</para>
+ </refdescription>
+ <refparameter id="get.refentry.source.name-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+ <para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.source.name-returns">
+ <para>Depending on what output method is used for the
+ current stylesheet, either returns a text node or possibly an element
+ node, containing "source name" data.</para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.source.name">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="prefs"/>
+ <xsl:choose>
+ <!-- * if profiling is enabled for source.name, and the -->
+ <!-- * source.name profile is non-empty, use it -->
+ <xsl:when test="not($prefs/@profileEnabled = 0) and
+ not($prefs/@profile = '')">
+ <xsl:call-template name="evaluate.info.profile">
+ <xsl:with-param name="profile" select="$prefs/@profile"/>
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * either profiling for source.name is not enabled, or-->
+ <!-- * the source.name profile is empty; so we need to look -->
+ <!-- * for a name to use -->
+ <xsl:choose>
+ <xsl:when test="refmeta/refmiscinfo[@class = 'source' or @class = 'software']">
+ <xsl:apply-templates
+ select="refmeta/refmiscinfo[@class = 'source' or @class='software'][1]/node()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$info/productname">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[productname])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[productname])[last()]/productname)[1]"/>
+ <xsl:with-param name="context">source</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info/corpname">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[corpname])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[corpname])[last()]/corpname)[1]"/>
+ <xsl:with-param name="context">source</xsl:with-param>
+ <xsl:with-param name="preferred">productname</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info/corpcredit">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[corpcredit])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[corpcredit])[last()]/corpcredit)[1]"/>
+ <xsl:with-param name="context">source</xsl:with-param>
+ <xsl:with-param name="preferred">productname</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info/corpauthor">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[corpauthor])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[corpauthor])[last()]/corpauthor)[1]"/>
+ <xsl:with-param name="context">source</xsl:with-param>
+ <xsl:with-param name="preferred">productname</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info//orgname">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[//orgname])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[//orgname])[last()]//orgname)[1]"/>
+ <xsl:with-param name="context">source</xsl:with-param>
+ <xsl:with-param name="preferred">productname</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info//publishername">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[//publishername])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[//publishername])[last()]//publishername)[1]"/>
+ <xsl:with-param name="context">source</xsl:with-param>
+ <xsl:with-param name="preferred">productname</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta source</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no *info/productname or alternative</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta source</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/productname</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta source</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no refentry/refmeta/refmiscinfo@class=source</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta source</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.version" xmlns="">
+ <refpurpose>Gets version metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.version-desc">
+ <para>A "version" is one part of a (potentially) two-part
+ <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+ source field. For more details, see the documentation for the
+ <function>get.refentry.source</function> template.</para>
+ </refdescription>
+ <refparameter id="get.refentry.version-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+ <para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.version-returns">
+ <para>Depending on what output method is used for the
+ current stylesheet, either returns a text node or possibly an element
+ node, containing "version" data.</para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.version">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="prefs"/>
+ <xsl:choose>
+ <!-- * if profiling is enabled for version, and the -->
+ <!-- * version profile is non-empty, use it -->
+ <xsl:when test="not($prefs/@profileEnabled = 0) and
+ not($prefs/@profile = '')">
+ <xsl:call-template name="evaluate.info.profile">
+ <xsl:with-param name="profile" select="$prefs/@profile"/>
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * either profiling for source.name is not enabled, or-->
+ <!-- * the source.name profile is empty; so we need to look -->
+ <!-- * for a name to use -->
+ <xsl:choose>
+ <xsl:when test="refmeta/refmiscinfo[@class = 'version']">
+ <xsl:apply-templates
+ select="refmeta/refmiscinfo[@class = 'version'][1]/node()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$info/productnumber">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[productnumber])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[productnumber])[last()]/productnumber)[1]"/>
+ <xsl:with-param name="context">version</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info/edition">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[edition])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[edition])[last()]/edition)[1]"/>
+ <xsl:with-param name="context">version</xsl:with-param>
+ <xsl:with-param name="preferred">productnumber</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info/releaseinfo">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[releaseinfo])[last()]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[releaseinfo])[last()]/releaseinfo)[1]"/>
+ <xsl:with-param name="context">version</xsl:with-param>
+ <xsl:with-param name="preferred">productnumber</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta version</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no *info/productnumber or alternative</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta version</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/productnumber</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta version</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no refentry/refmeta/refmiscinfo@class=version</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta version</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.manual" xmlns="">
+ <refpurpose>Gets source metadata for a refentry</refpurpose>
+ <refdescription id="get.refentry.manual-desc">
+ <para>The <literal>man(7)</literal> man page describes this as "the
+ title of the manual (e.g., <citetitle>Linux Programmer's
+ Manual</citetitle>)". Here are some examples from existing man pages:
+ <itemizedlist>
+ <listitem>
+ <para><citetitle>dpkg utilities</citetitle>
+ (<command>dpkg-name</command>)</para>
+ </listitem>
+ <listitem>
+ <para><citetitle>User Contributed Perl Documentation</citetitle>
+ (<command>GET</command>)</para>
+ </listitem>
+ <listitem>
+ <para><citetitle>GNU Development Tools</citetitle>
+ (<command>ld</command>)</para>
+ </listitem>
+ <listitem>
+ <para><citetitle>Emperor Norton Utilities</citetitle>
+ (<command>ddate</command>)</para>
+ </listitem>
+ <listitem>
+ <para><citetitle>Debian GNU/Linux manual</citetitle>
+ (<command>faked</command>)</para>
+ </listitem>
+ <listitem>
+ <para><citetitle>GIMP Manual Pages</citetitle>
+ (<command>gimp</command>)</para>
+ </listitem>
+ <listitem>
+ <para><citetitle>KDOC Documentation System</citetitle>
+ (<command>qt2kdoc</command>)</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>The <literal>solbook(5)</literal> man page describes
+ something very much like what <literal>man(7)</literal> calls
+ "manual", except that <literal>solbook(5)</literal> names it
+ "sectdesc" and describes it like this:
+ <blockquote>
+ <para>This is the section title of the reference page; for
+ example <literal>User Commands</literal>.</para>
+ </blockquote>
+ </para>
+
+ </refdescription>
+ <refparameter id="get.refentry.manual-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A set of info nodes (from a <tag>refentry</tag>
+ element and its ancestors)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>prefs</term>
+ <listitem>
+ <para>A node containing users preferences (from global
+ stylesheet parameters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="get.refentry.manual-returns">
+ <para>Returns a <tag>manual</tag> node.</para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.manual">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="prefs"/>
+ <xsl:variable name="Manual">
+ <xsl:choose>
+ <!-- * if profiling is enabled for manual, and the manual -->
+ <!-- * profile is non-empty, use it -->
+ <xsl:when test="not($prefs/@profileEnabled = 0) and
+ not($prefs/@profile = '')">
+ <xsl:call-template name="evaluate.info.profile">
+ <xsl:with-param name="profile" select="$prefs/@profile"/>
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="refmeta/refmiscinfo[@class = 'manual' or @class = 'sectdesc']">
+ <xsl:apply-templates
+ select="refmeta/refmiscinfo[@class = 'manual' or @class = 'sectdesc'][1]/node()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * only in the case of choosing appropriate -->
+ <!-- * "manual" content do we select the furthest -->
+ <!-- * (first) matching element instead of the -->
+ <!-- * closest (last) matching one -->
+ <xsl:choose>
+ <xsl:when test="ancestor::*/title">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="(ancestor::*[title])[1]"/>
+ <xsl:with-param
+ name="contents"
+ select="(ancestor::*[title])[1]/title"/>
+ <xsl:with-param name="context">manual</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$info/title">
+ <xsl:call-template name="set.refentry.metadata">
+ <xsl:with-param name="refname" select="$refname"/>
+ <xsl:with-param
+ name="info"
+ select="($info[title])[1]"/>
+ <xsl:with-param
+ name="contents"
+ select="(($info[title])[1]/title)[1]"/>
+ <xsl:with-param name="context">manual</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no titled ancestor of refentry</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no refentry/refmeta/refmiscinfo@class=manual</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not($Manual = '')">
+ <xsl:copy-of select="$Manual"/>
+ </xsl:when>
+ <!-- * if no Manual, use contents of specified Fallback (if any) -->
+ <xsl:when test="not($prefs/@fallback = '')">
+ <xsl:variable name="manual.fallback">
+ <xsl:call-template name="evaluate.info.profile">
+ <xsl:with-param name="profile" select="$prefs/@fallback"/>
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not($manual.fallback = '')">
+ <xsl:value-of select="$manual.fallback"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no valid fallback for manual; leaving empty</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>no manual fallback specified; leaving empty</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<doc:template name="get.refentry.metadata.prefs" xmlns="">
+ <refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
+ <refdescription id="get.refentry.metadata.prefs-desc">
+ <para>The DocBook XSL stylesheets include several user-configurable
+ global stylesheet parameters for controlling <tag>refentry</tag>
+ metadata gathering. Those parameters are not read directly by the
+ other <tag>refentry</tag> metadata-gathering
+ templates. Instead, they are read only by the
+ <function>get.refentry.metadata.prefs</function> template,
+ which assembles them into a structure that is then passed to
+ the other <tag>refentry</tag> metadata-gathering
+ templates.</para>
+
+ <para>So the, <function>get.refentry.metadata.prefs</function>
+ template is the only interface to collecting stylesheet parameters for
+ controlling <tag>refentry</tag> metadata gathering.</para>
+ </refdescription>
+ <refparameter id="get.refentry.metadata.prefs-params">
+ <para>There are no local parameters for this template; however, it
+ does rely on a number of global parameters.</para>
+ </refparameter>
+ <refreturn id="get.refentry.metadata.prefs-returns">
+ <para>Returns a <tag>manual</tag> node.</para>
+ </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.metadata.prefs">
+ <DatePrefs>
+ <xsl:attribute name="profile">
+ <xsl:value-of select="$refentry.date.profile"/>
+ </xsl:attribute>
+ <xsl:attribute name="profileEnabled">
+ <xsl:value-of select="$refentry.date.profile.enabled"/>
+ </xsl:attribute>
+ </DatePrefs>
+ <SourcePrefs>
+ <xsl:attribute name="fallback">
+ <xsl:value-of select="$refentry.source.fallback.profile"/>
+ </xsl:attribute>
+ <Name>
+ <xsl:attribute name="profile">
+ <xsl:value-of select="$refentry.source.name.profile"/>
+ </xsl:attribute>
+ <xsl:attribute name="profileEnabled">
+ <xsl:value-of select="$refentry.source.name.profile.enabled"/>
+ </xsl:attribute>
+ <xsl:attribute name="suppress">
+ <xsl:value-of select="$refentry.source.name.suppress"/>
+ </xsl:attribute>
+ </Name>
+ <Version>
+ <xsl:attribute name="profile">
+ <xsl:value-of select="$refentry.version.profile"/>
+ </xsl:attribute>
+ <xsl:attribute name="profileEnabled">
+ <xsl:value-of select="$refentry.version.profile.enabled"/>
+ </xsl:attribute>
+ <xsl:attribute name="suppress">
+ <xsl:value-of select="$refentry.version.suppress"/>
+ </xsl:attribute>
+ </Version>
+ </SourcePrefs>
+ <ManualPrefs>
+ <xsl:attribute name="fallback">
+ <xsl:value-of select="$refentry.manual.fallback.profile"/>
+ </xsl:attribute>
+ <xsl:attribute name="profile">
+ <xsl:value-of select="$refentry.manual.profile"/>
+ </xsl:attribute>
+ <xsl:attribute name="profileEnabled">
+ <xsl:value-of select="$refentry.manual.profile.enabled"/>
+ </xsl:attribute>
+ </ManualPrefs>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<doc:template name="set.refentry.metadata" xmlns="">
+ <refpurpose>Sets content of a refentry metadata item</refpurpose>
+ <refdescription id="set.refentry.metadata-desc">
+ <para>The <function>set.refentry.metadata</function> template is
+ called each time a suitable source element is found for a certain
+ metadata field.</para>
+ </refdescription>
+ <refparameter id="set.refentry.metadata-params">
+ <variablelist>
+ <varlistentry>
+ <term>refname</term>
+ <listitem>
+ <para>The first <tag>refname</tag> in the refentry</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>info</term>
+ <listitem>
+ <para>A single *info node that contains the selected source element.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>contents</term>
+ <listitem>
+ <para>A node containing the selected source element.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>context</term>
+ <listitem>
+ <para>A string describing the metadata context in which the
+ <function>set.refentry.metadata</function> template was
+ called: either "date", "source", "version", or "manual".</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="set.refentry.metadata-returns">
+ <para>Returns formatted contents of a selected source element.</para></refreturn>
+</doc:template>
+<xsl:template name="set.refentry.metadata">
+ <xsl:param name="refname"/>
+ <xsl:param name="info"/>
+ <xsl:param name="contents"/>
+ <xsl:param name="context"/>
+ <xsl:param name="preferred"/>
+ <xsl:if test="not($preferred = '')">
+ <xsl:if test="$refentry.meta.get.quietly = 0">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc" select="concat('meta ', $context)"/>
+ <xsl:with-param name="message" select="concat('No ', $preferred)"/>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc" select="concat('meta ', $context)"/>
+ <xsl:with-param name="message">
+ <xsl:text>no refentry/refmeta/refmiscinfo@class=</xsl:text>
+ <xsl:value-of select="$context"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc" select="concat('meta ', $context)"/>
+ <xsl:with-param name="message" select="concat('Using ', local-name($contents))"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:value-of select="$contents"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/ro.xml b/docs/xsl-generic/common/ro.xml
new file mode 100644
index 00000000..50bd8dc7
--- /dev/null
+++ b/docs/xsl-generic/common/ro.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ro" english-language-name="Romanian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ro.xml -->
+<!-- * -->
+<!-- * E-mail the edited ro.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Rezumat"/>
+<l:gentext key="abstract" text="Rezumat"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Anexa"/>
+<l:gentext key="appendix" text="anexa"/>
+<l:gentext key="Article" text="Articol"/>
+<l:gentext key="article" text="Articol"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografie"/>
+<l:gentext key="bibliography" text="Bibliografie"/>
+<l:gentext key="Book" text="Carte"/>
+<l:gentext key="book" text="Carte"/>
+<l:gentext key="CAUTION" text="ATENȚIE"/>
+<l:gentext key="Caution" text="Atenție"/>
+<l:gentext key="caution" text="Atenție"/>
+<l:gentext key="Chapter" text="Cap."/>
+<l:gentext key="chapter" text="cap."/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedicație"/>
+<l:gentext key="dedication" text="Dedicație"/>
+<l:gentext key="Edition" text="Ediție"/>
+<l:gentext key="edition" text="Ediție"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="ecuația"/>
+<l:gentext key="equation" text="ecuația"/>
+<l:gentext key="Example" text="Exemplu"/>
+<l:gentext key="example" text="Exemplu"/>
+<l:gentext key="Figure" text="Fig."/>
+<l:gentext key="figure" text="Fig."/>
+<l:gentext key="Glossary" text="Glosar"/>
+<l:gentext key="glossary" text="Glosar"/>
+<l:gentext key="GlossSee" text="Vezi"/>
+<l:gentext key="glosssee" text="Vezi"/>
+<l:gentext key="GlossSeeAlso" text="Vezi și"/>
+<l:gentext key="glossseealso" text="Vezi și"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text=""/>
+<l:gentext key="msgaud" text=""/>
+<l:gentext key="MsgLevel" text="Nivel"/>
+<l:gentext key="msglevel" text="Nivel"/>
+<l:gentext key="MsgOrig" text="Origine"/>
+<l:gentext key="msgorig" text="Origine"/>
+<l:gentext key="NOTE" text="NOTĂ"/>
+<l:gentext key="Note" text="Notă"/>
+<l:gentext key="note" text="Notă"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefață"/>
+<l:gentext key="preface" text="Prefață"/>
+<l:gentext key="Procedure" text="Procedură"/>
+<l:gentext key="procedure" text="Procedură"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Publicat"/>
+<l:gentext key="published" text="Publicat"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Întrebări și răspunsuri"/>
+<l:gentext key="qandadiv" text="întrebări și răspunsuri"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Î:"/>
+<l:gentext key="question" text="î:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referință"/>
+<l:gentext key="reference" text="Referință"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nume"/>
+<l:gentext key="refname" text="Nume"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Rezumat"/>
+<l:gentext key="refsynopsisdiv" text="Rezumat"/>
+<l:gentext key="RevHistory" text="Istoricul versiunilor"/>
+<l:gentext key="revhistory" text="Istoricul versiunilor"/>
+<l:gentext key="revision" text="Versiune"/>
+<l:gentext key="Revision" text="Versiune"/>
+<l:gentext key="sect1" text="Secțiune"/>
+<l:gentext key="sect2" text="Secțiune"/>
+<l:gentext key="sect3" text="Secțiune"/>
+<l:gentext key="sect4" text="Secțiune"/>
+<l:gentext key="sect5" text="Secțiune"/>
+<l:gentext key="section" text="sec."/>
+<l:gentext key="Section" text="Secțiune"/>
+<l:gentext key="see" text="Vezi"/>
+<l:gentext key="See" text="Vezi"/>
+<l:gentext key="seealso" text="Vezi și"/>
+<l:gentext key="Seealso" text="Vezi și"/>
+<l:gentext key="SeeAlso" text="Vezi și"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Index"/>
+<l:gentext key="SetIndex" text="Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="operațiune"/>
+<l:gentext key="Step" text="Operație"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Indicație"/>
+<l:gentext key="TIP" text="INDICAȚIE"/>
+<l:gentext key="Tip" text="Indicație"/>
+<l:gentext key="Warning" text="Avertisment"/>
+<l:gentext key="warning" text="Avertisment"/>
+<l:gentext key="WARNING" text="AVERTISMENT"/>
+<l:gentext key="and" text="și"/>
+<l:gentext key="by" text="de"/>
+<l:gentext key="Edited" text="Publicat"/>
+<l:gentext key="edited" text="Publicat"/>
+<l:gentext key="Editedby" text="Publicat de"/>
+<l:gentext key="editedby" text="Publicat de"/>
+<l:gentext key="in" text="în"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="element inexistent"/>
+<l:gentext key="notes" text="Note"/>
+<l:gentext key="Notes" text="Note"/>
+<l:gentext key="Pgs" text="Pagini"/>
+<l:gentext key="pgs" text="Pagini"/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Remarci"/>
+<l:gentext key="tablenotes" text="Remarci"/>
+<l:gentext key="TableofContents" text="Cuprins"/>
+<l:gentext key="tableofcontents" text="Cuprins"/>
+<l:gentext key="unexpectedelementname" text="Nume de element neașteptat"/>
+<l:gentext key="unsupported" text="nerecunoscut de sisitem"/>
+<l:gentext key="xrefto" text="referință către"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Listă de ecuații"/>
+<l:gentext key="ListofEquations" text="Listă de ecuații"/>
+<l:gentext key="ListofExamples" text="Listă de exemple"/>
+<l:gentext key="listofexamples" text="Listă de exemple"/>
+<l:gentext key="ListofFigures" text="Listă de figuri"/>
+<l:gentext key="listoffigures" text="Listă de figuri"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Listă de tabele"/>
+<l:gentext key="ListofTables" text="Listă de tabele"/>
+<l:gentext key="ListofUnknown" text="Listă de necunoscute"/>
+<l:gentext key="listofunknown" text="Listă de necunoscute"/>
+<l:gentext key="nav-home" text="Acasă"/>
+<l:gentext key="nav-next" text="Înainte"/>
+<l:gentext key="nav-next-sibling" text="Repede ïnainte"/>
+<l:gentext key="nav-prev" text="Înapoi"/>
+<l:gentext key="nav-prev-sibling" text="Repede înapoi"/>
+<l:gentext key="nav-up" text="Sus"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Ciornă"/>
+<l:gentext key="above" text="deasupra"/>
+<l:gentext key="below" text="sub"/>
+<l:gentext key="sectioncalled" text="secțiunea numită"/>
+<l:gentext key="index symbols" text="Simboluri"/>
+<l:gentext key="lowercase.alpha" text="aăâbcdefghiîjklmnopqrsștșuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="AĂÂBCDEFGHIÎJKLMNOPQRSȘTȚUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="«"/>
+<l:dingbat key="nestedendquote" text="»"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Anexa %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Cap. %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ecuația %n. %t"/>
+<l:template name="example" text="Exemplu %n. %t"/>
+<l:template name="figure" text="Fig. %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedură %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Anexa %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Cap. %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Î: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Î: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="sect1" text="„%t”"/>
+<l:template name="sect2" text="„%t”"/>
+<l:template name="sect3" text="„%t”"/>
+<l:template name="sect4" text="„%t”"/>
+<l:template name="sect5" text="„%t”"/>
+<l:template name="section" text="„%t”"/>
+<l:template name="simplesect" text="„%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Anexa %n"/>
+<l:template name="bridgehead" text="Secțiune %n"/>
+<l:template name="chapter" text="Cap. %n"/>
+<l:template name="equation" text="ecuația %n"/>
+<l:template name="example" text="Exemplu %n"/>
+<l:template name="figure" text="Fig. %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedură %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Întrebări și răspunsuri %n"/>
+<l:template name="qandaentry" text="Î: %n"/>
+<l:template name="question" text="Î: %n"/>
+<l:template name="sect1" text="Secțiune %n"/>
+<l:template name="sect2" text="Secțiune %n"/>
+<l:template name="sect3" text="Secțiune %n"/>
+<l:template name="sect4" text="Secțiune %n"/>
+<l:template name="sect5" text="Secțiune %n"/>
+<l:template name="section" text="Secțiune %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Anexa %n, %t"/>
+<l:template name="bridgehead" text="Secțiune %n, „%t”"/>
+<l:template name="chapter" text="Cap. %n, %t"/>
+<l:template name="equation" text="ecuația %n, „%t”"/>
+<l:template name="example" text="Exemplu %n, „%t”"/>
+<l:template name="figure" text="Fig. %n, „%t”"/>
+<l:template name="part" text="Parte %n, „%t”"/>
+<l:template name="procedure" text="Procedură %n, „%t”"/>
+<l:template name="productionset" text="Production %n, „%t”"/>
+<l:template name="qandadiv" text="Întrebări și răspunsuri %n, „%t”"/>
+<l:template name="refsect1" text="secțiunea numită „%t”"/>
+<l:template name="refsect2" text="secțiunea numită „%t”"/>
+<l:template name="refsect3" text="secțiunea numită „%t”"/>
+<l:template name="refsection" text="secțiunea numită „%t”"/>
+<l:template name="sect1" text="Secțiune %n, „%t”"/>
+<l:template name="sect2" text="Secțiune %n, „%t”"/>
+<l:template name="sect3" text="Secțiune %n, „%t”"/>
+<l:template name="sect4" text="Secțiune %n, „%t”"/>
+<l:template name="sect5" text="Secțiune %n, „%t”"/>
+<l:template name="section" text="Secțiune %n, „%t”"/>
+<l:template name="simplesect" text="secțiunea numită „%t”"/>
+<l:template name="table" text="Tabel %n, „%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" și "/>
+<l:template name="seplast" text=", și "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vezi %t"/>
+<l:template name="seealso" text="Vezi și %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text=": "/>
+<l:template name="MsgLevel" text="Nivel: "/>
+<l:template name="MsgOrig" text="Origine: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0418 Romanian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ru.xml b/docs/xsl-generic/common/ru.xml
new file mode 100644
index 00000000..290a9b1b
--- /dev/null
+++ b/docs/xsl-generic/common/ru.xml
@@ -0,0 +1,720 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ru" english-language-name="Russian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ru.xml -->
+<!-- * -->
+<!-- * E-mail the edited ru.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Аннотация"/>
+<l:gentext key="abstract" text="Аннотация"/>
+<l:gentext key="Answer" text="О:"/>
+<l:gentext key="answer" text="О:"/>
+<l:gentext key="Appendix" text="Приложение"/>
+<l:gentext key="appendix" text="приложение"/>
+<l:gentext key="Article" text="Статья"/>
+<l:gentext key="article" text="Статья"/>
+<l:gentext key="Author" text="Автор"/>
+<l:gentext key="Bibliography" text="Литература"/>
+<l:gentext key="bibliography" text="Литература"/>
+<l:gentext key="Book" text="Книга"/>
+<l:gentext key="book" text="Книга"/>
+<l:gentext key="CAUTION" text="ПРЕДОСТЕРЕЖЕНИЕ"/>
+<l:gentext key="Caution" text="Предостережение"/>
+<l:gentext key="caution" text="Предостережение"/>
+<l:gentext key="Chapter" text="Глава"/>
+<l:gentext key="chapter" text="глава"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Посвящение"/>
+<l:gentext key="dedication" text="Посвящение"/>
+<l:gentext key="Edition" text="Редакция"/>
+<l:gentext key="edition" text="Редакция"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="Формула"/>
+<l:gentext key="Example" text="Пример"/>
+<l:gentext key="example" text="Пример"/>
+<l:gentext key="Figure" text="Рисунок"/>
+<l:gentext key="figure" text="Рисунок"/>
+<l:gentext key="Glossary" text="Глоссарий"/>
+<l:gentext key="glossary" text="Глоссарий"/>
+<l:gentext key="GlossSee" text="См."/>
+<l:gentext key="glosssee" text="См."/>
+<l:gentext key="GlossSeeAlso" text="См. также"/>
+<l:gentext key="glossseealso" text="См. также"/>
+<l:gentext key="IMPORTANT" text="ВАЖНО"/>
+<l:gentext key="important" text="Важно"/>
+<l:gentext key="Important" text="Важно"/>
+<l:gentext key="Index" text="Предметный указатель"/>
+<l:gentext key="index" text="Предметный указатель"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Авторские права"/>
+<l:gentext key="legalnotice" text="Авторские права"/>
+<l:gentext key="MsgAud" text="Audience"/>
+<l:gentext key="msgaud" text="Audience"/>
+<l:gentext key="MsgLevel" text="Level"/>
+<l:gentext key="msglevel" text="Level"/>
+<l:gentext key="MsgOrig" text="Origin"/>
+<l:gentext key="msgorig" text="Origin"/>
+<l:gentext key="NOTE" text="ЗАМЕЧАНИЕ"/>
+<l:gentext key="Note" text="Замечание"/>
+<l:gentext key="note" text="Замечание"/>
+<l:gentext key="Part" text="Часть"/>
+<l:gentext key="part" text="Часть"/>
+<l:gentext key="Preface" text="Предисловие"/>
+<l:gentext key="preface" text="Предисловие"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="Процедура"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Опубликовано"/>
+<l:gentext key="published" text="Опубликовано"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="В и О"/>
+<l:gentext key="qandadiv" text="В и О"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="В:"/>
+<l:gentext key="question" text="В:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Ссылка"/>
+<l:gentext key="reference" text="Ссылка"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Название"/>
+<l:gentext key="refname" text="Название"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Синтаксис"/>
+<l:gentext key="refsynopsisdiv" text="Синтаксис"/>
+<l:gentext key="RevHistory" text="История переиздания"/>
+<l:gentext key="revhistory" text="История переиздания"/>
+<l:gentext key="revision" text="Издание"/>
+<l:gentext key="Revision" text="Издание"/>
+<l:gentext key="sect1" text="Раздел"/>
+<l:gentext key="sect2" text="Раздел"/>
+<l:gentext key="sect3" text="Раздел"/>
+<l:gentext key="sect4" text="Раздел"/>
+<l:gentext key="sect5" text="Раздел"/>
+<l:gentext key="section" text="раздел"/>
+<l:gentext key="Section" text="Раздел"/>
+<l:gentext key="see" text="См."/>
+<l:gentext key="See" text="См."/>
+<l:gentext key="seealso" text="См. также"/>
+<l:gentext key="Seealso" text="См. также"/>
+<l:gentext key="SeeAlso" text="См. также"/>
+<l:gentext key="set" text="Подборка"/>
+<l:gentext key="Set" text="Подборка"/>
+<l:gentext key="setindex" text="Индекс подборки"/>
+<l:gentext key="SetIndex" text="Индекс подборки"/>
+<l:gentext key="Sidebar" text="Выделение"/>
+<l:gentext key="sidebar" text="выделение"/>
+<l:gentext key="step" text="шаг"/>
+<l:gentext key="Step" text="Шаг"/>
+<l:gentext key="table" text="Таблица"/>
+<l:gentext key="Table" text="Таблица"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Подсказка"/>
+<l:gentext key="TIP" text="ПОДСКАЗКА"/>
+<l:gentext key="Tip" text="Подсказка"/>
+<l:gentext key="Warning" text="Внимание"/>
+<l:gentext key="warning" text="Внимание"/>
+<l:gentext key="WARNING" text="ВНИМАНИЕ"/>
+<l:gentext key="and" text=""/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Под редакцией"/>
+<l:gentext key="edited" text="Под редакцией"/>
+<l:gentext key="Editedby" text="Под редакцией"/>
+<l:gentext key="editedby" text="Под редакцией"/>
+<l:gentext key="in" text="в"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="non-existant element"/>
+<l:gentext key="notes" text="Примечания"/>
+<l:gentext key="Notes" text="Примечания"/>
+<l:gentext key="Pgs" text="Стр."/>
+<l:gentext key="pgs" text="Стр."/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Примечания"/>
+<l:gentext key="tablenotes" text="Примечания"/>
+<l:gentext key="TableofContents" text="Содержание"/>
+<l:gentext key="tableofcontents" text="Содержание"/>
+<l:gentext key="unexpectedelementname" text="unexpected element name"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Список формул"/>
+<l:gentext key="ListofEquations" text="Список формул"/>
+<l:gentext key="ListofExamples" text="Список примеров"/>
+<l:gentext key="listofexamples" text="Список примеров"/>
+<l:gentext key="ListofFigures" text="Список иллюстраций"/>
+<l:gentext key="listoffigures" text="Список иллюстраций"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Список таблиц"/>
+<l:gentext key="ListofTables" text="Список таблиц"/>
+<l:gentext key="ListofUnknown" text="Неопределенный список"/>
+<l:gentext key="listofunknown" text="Неопределенный список"/>
+<l:gentext key="nav-home" text="Начало"/>
+<l:gentext key="nav-next" text="След."/>
+<l:gentext key="nav-next-sibling" text="След. подраздел"/>
+<l:gentext key="nav-prev" text="Пред."/>
+<l:gentext key="nav-prev-sibling" text="Пред. подраздел"/>
+<l:gentext key="nav-up" text="Уровень выше"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Черновик"/>
+<l:gentext key="above" text="выше"/>
+<l:gentext key="below" text="ниже"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="абвгдеёжзийклмнопрстуфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Пример %n. %t"/>
+<l:template name="figure" text="Рисунок %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Часть %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблица %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="part" text="Часть %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="О: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="В: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="В: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="«%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="О: %n"/>
+<l:template name="appendix" text="Приложение %n"/>
+<l:template name="bridgehead" text="Раздел %n"/>
+<l:template name="chapter" text="Глава %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Пример %n"/>
+<l:template name="figure" text="Рисунок %n"/>
+<l:template name="part" text="Часть %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="В и О %n"/>
+<l:template name="qandaentry" text="В: %n"/>
+<l:template name="question" text="В: %n"/>
+<l:template name="sect1" text="Раздел %n"/>
+<l:template name="sect2" text="Раздел %n"/>
+<l:template name="sect3" text="Раздел %n"/>
+<l:template name="sect4" text="Раздел %n"/>
+<l:template name="sect5" text="Раздел %n"/>
+<l:template name="section" text="Раздел %n"/>
+<l:template name="table" text="Таблица %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Приложение %n, %t"/>
+<l:template name="bridgehead" text="Раздел %n, «%t»"/>
+<l:template name="chapter" text="Глава %n, %t"/>
+<l:template name="equation" text="Формула %n, «%t»"/>
+<l:template name="example" text="Пример %n, «%t»"/>
+<l:template name="figure" text="Рисунок %n, «%t»"/>
+<l:template name="part" text="Часть %n, «%t»"/>
+<l:template name="procedure" text="Процедура %n, «%t»"/>
+<l:template name="productionset" text="Production %n, «%t»"/>
+<l:template name="qandadiv" text="В и О %n, «%t»"/>
+<l:template name="refsect1" text="the section called «%t»"/>
+<l:template name="refsect2" text="the section called «%t»"/>
+<l:template name="refsect3" text="the section called «%t»"/>
+<l:template name="refsection" text="the section called «%t»"/>
+<l:template name="sect1" text="Раздел %n, «%t»"/>
+<l:template name="sect2" text="Раздел %n, «%t»"/>
+<l:template name="sect3" text="Раздел %n, «%t»"/>
+<l:template name="sect4" text="Раздел %n, «%t»"/>
+<l:template name="sect5" text="Раздел %n, «%t»"/>
+<l:template name="section" text="Раздел %n, «%t»"/>
+<l:template name="simplesect" text="the section called «%t»"/>
+<l:template name="table" text="Таблица %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" "/>
+<l:template name="seplast" text=", "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="См. %t"/>
+<l:template name="seealso" text="См. также %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audience: "/>
+<l:template name="MsgLevel" text="Level: "/>
+<l:template name="MsgOrig" text="Origin: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="января"/>
+<l:template name="February" text="февраля"/>
+<l:template name="March" text="марта"/>
+<l:template name="April" text="апреля"/>
+<l:template name="May" text="мая"/>
+<l:template name="June" text="июня"/>
+<l:template name="July" text="июля"/>
+<l:template name="August" text="августа"/>
+<l:template name="September" text="сентября"/>
+<l:template name="October" text="октября"/>
+<l:template name="November" text="ноября"/>
+<l:template name="December" text="декабря"/>
+<l:template name="Monday" text="понедельник"/>
+<l:template name="Tuesday" text="вторник"/>
+<l:template name="Wednesday" text="среда"/>
+<l:template name="Thursday" text="четвэрг"/>
+<l:template name="Friday" text="пятница"/>
+<l:template name="Saturday" text="суббота"/>
+<l:template name="Sunday" text="воскресенье"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Янв"/>
+<l:template name="Feb" text="Фев"/>
+<l:template name="Mar" text="Мар"/>
+<l:template name="Apr" text="Апр"/>
+<l:template name="May" text="Май"/>
+<l:template name="Jun" text="Июн"/>
+<l:template name="Jul" text="Июл"/>
+<l:template name="Aug" text="Авг"/>
+<l:template name="Sep" text="Сен"/>
+<l:template name="Oct" text="Окт"/>
+<l:template name="Nov" text="Ноя"/>
+<l:template name="Dec" text="Дек"/>
+<l:template name="Mon" text="Пнд"/>
+<l:template name="Tue" text="Втр"/>
+<l:template name="Wed" text="Срд"/>
+<l:template name="Thu" text="Чтв"/>
+<l:template name="Fri" text="Птн"/>
+<l:template name="Sat" text="Сбт"/>
+<l:template name="Sun" text="Вск"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0419 Russian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0"/>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">А</l:l>
+<l:l i="270">а</l:l>
+<l:l i="280">Б</l:l>
+<l:l i="280">б</l:l>
+<l:l i="290">В</l:l>
+<l:l i="290">в</l:l>
+<l:l i="300">Г</l:l>
+<l:l i="300">г</l:l>
+<l:l i="310">Д</l:l>
+<l:l i="310">д</l:l>
+<l:l i="320">Е</l:l>
+<l:l i="320">е</l:l>
+<l:l i="320">Ё</l:l>
+<l:l i="320">ё</l:l>
+<l:l i="330">Ж</l:l>
+<l:l i="330">ж</l:l>
+<l:l i="340">З</l:l>
+<l:l i="340">з</l:l>
+<l:l i="350">И</l:l>
+<l:l i="350">и</l:l>
+<l:l i="360">Й</l:l>
+<l:l i="360">й</l:l>
+<l:l i="370">К</l:l>
+<l:l i="370">к</l:l>
+<l:l i="380">Л</l:l>
+<l:l i="380">л</l:l>
+<l:l i="390">М</l:l>
+<l:l i="390">м</l:l>
+<l:l i="400">Н</l:l>
+<l:l i="400">н</l:l>
+<l:l i="410">О</l:l>
+<l:l i="410">о</l:l>
+<l:l i="420">П</l:l>
+<l:l i="420">п</l:l>
+<l:l i="430">Р</l:l>
+<l:l i="430">р</l:l>
+<l:l i="440">С</l:l>
+<l:l i="440">с</l:l>
+<l:l i="450">Т</l:l>
+<l:l i="450">т</l:l>
+<l:l i="460">У</l:l>
+<l:l i="460">у</l:l>
+<l:l i="470">Ф</l:l>
+<l:l i="470">ф</l:l>
+<l:l i="480">Х</l:l>
+<l:l i="480">х</l:l>
+<l:l i="490">Ц</l:l>
+<l:l i="490">ц</l:l>
+<l:l i="500">Ч</l:l>
+<l:l i="500">ч</l:l>
+<l:l i="510">Ш</l:l>
+<l:l i="510">ш</l:l>
+<l:l i="520">Щ</l:l>
+<l:l i="520">щ</l:l>
+<l:l i="530">Ъ</l:l>
+<l:l i="530">ъ</l:l>
+<l:l i="540">Ы</l:l>
+<l:l i="540">ы</l:l>
+<l:l i="550">Ь</l:l>
+<l:l i="550">ь</l:l>
+<l:l i="560">Э</l:l>
+<l:l i="560">э</l:l>
+<l:l i="570">Ю</l:l>
+<l:l i="570">ю</l:l>
+<l:l i="580">Я</l:l>
+<l:l i="580">я</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/sk.xml b/docs/xsl-generic/common/sk.xml
new file mode 100644
index 00000000..50f7e2cd
--- /dev/null
+++ b/docs/xsl-generic/common/sk.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sk" english-language-name="Slovak">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sk.xml -->
+<!-- * -->
+<!-- * E-mail the edited sk.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrakt"/>
+<l:gentext key="abstract" text="Abstrakt"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Dodatok"/>
+<l:gentext key="appendix" text="dodatok"/>
+<l:gentext key="Article" text="Článok"/>
+<l:gentext key="article" text="Článok"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Kniha"/>
+<l:gentext key="book" text="Kniha"/>
+<l:gentext key="CAUTION" text="VÝSTRAHA"/>
+<l:gentext key="Caution" text="Výstraha"/>
+<l:gentext key="caution" text="Výstraha"/>
+<l:gentext key="Chapter" text="Kapitola"/>
+<l:gentext key="chapter" text="kapitola"/>
+<l:gentext key="Colophon" text="Tiráž"/>
+<l:gentext key="colophon" text="Tiráž"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Venovanie"/>
+<l:gentext key="dedication" text="Venovanie"/>
+<l:gentext key="Edition" text="Vydanie"/>
+<l:gentext key="edition" text="Vydanie"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Rovnica"/>
+<l:gentext key="equation" text="Rovnica"/>
+<l:gentext key="Example" text="Príklad"/>
+<l:gentext key="example" text="Príklad"/>
+<l:gentext key="Figure" text="Obrázok"/>
+<l:gentext key="figure" text="Obrázok"/>
+<l:gentext key="Glossary" text="Slovník"/>
+<l:gentext key="glossary" text="Slovník"/>
+<l:gentext key="GlossSee" text="Pozri"/>
+<l:gentext key="glosssee" text="Pozri"/>
+<l:gentext key="GlossSeeAlso" text="Pozri tiež"/>
+<l:gentext key="glossseealso" text="Pozri tiež"/>
+<l:gentext key="IMPORTANT" text="DÔLEŽITÉ"/>
+<l:gentext key="important" text="Dôležité"/>
+<l:gentext key="Important" text="Dôležité"/>
+<l:gentext key="Index" text="Zoznam"/>
+<l:gentext key="index" text="Zoznam"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Právna poznámka"/>
+<l:gentext key="legalnotice" text="Právna poznámka"/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="Publikum"/>
+<l:gentext key="MsgLevel" text="Úroveň"/>
+<l:gentext key="msglevel" text="Úroveň"/>
+<l:gentext key="MsgOrig" text="Pôvod"/>
+<l:gentext key="msgorig" text="Pôvod"/>
+<l:gentext key="NOTE" text="POZNÁMKA"/>
+<l:gentext key="Note" text="Poznámka"/>
+<l:gentext key="note" text="Poznámka"/>
+<l:gentext key="Part" text="Časť"/>
+<l:gentext key="part" text="Časť"/>
+<l:gentext key="Preface" text="Predslov"/>
+<l:gentext key="preface" text="Predslov"/>
+<l:gentext key="Procedure" text="Postup"/>
+<l:gentext key="procedure" text="Postup"/>
+<l:gentext key="ProductionSet" text="Produkcia"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Vydané"/>
+<l:gentext key="published" text="Vydané"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Odkaz"/>
+<l:gentext key="reference" text="Odkaz"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Meno"/>
+<l:gentext key="refname" text="Meno"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Prehľad"/>
+<l:gentext key="refsynopsisdiv" text="Prehľad"/>
+<l:gentext key="RevHistory" text="Prehľad revízií"/>
+<l:gentext key="revhistory" text="Prehľad revízií"/>
+<l:gentext key="revision" text="Revízia"/>
+<l:gentext key="Revision" text="Revízia"/>
+<l:gentext key="sect1" text="Oddiel"/>
+<l:gentext key="sect2" text="Oddiel"/>
+<l:gentext key="sect3" text="Oddiel"/>
+<l:gentext key="sect4" text="Oddiel"/>
+<l:gentext key="sect5" text="Oddiel"/>
+<l:gentext key="section" text="oddiel"/>
+<l:gentext key="Section" text="Oddiel"/>
+<l:gentext key="see" text="Pozri"/>
+<l:gentext key="See" text="Pozri"/>
+<l:gentext key="seealso" text="Pozri tiež"/>
+<l:gentext key="Seealso" text="Pozri tiež"/>
+<l:gentext key="SeeAlso" text="Pozri tiež"/>
+<l:gentext key="set" text="Nastaviť"/>
+<l:gentext key="Set" text="Nastaviť"/>
+<l:gentext key="setindex" text="nastaviť index"/>
+<l:gentext key="SetIndex" text="Nastaviť index"/>
+<l:gentext key="Sidebar" text="Marginália"/>
+<l:gentext key="sidebar" text="marginália"/>
+<l:gentext key="step" text="krok"/>
+<l:gentext key="Step" text="Krok"/>
+<l:gentext key="table" text="Tabuľka"/>
+<l:gentext key="Table" text="Tabuľka"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Varovanie"/>
+<l:gentext key="warning" text="Varovanie"/>
+<l:gentext key="WARNING" text="VAROVANIE"/>
+<l:gentext key="and" text="a"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Vydané"/>
+<l:gentext key="edited" text="Vydané"/>
+<l:gentext key="Editedby" text="Zostavil: "/>
+<l:gentext key="editedby" text="Zostavil: "/>
+<l:gentext key="in" text="v"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="neexistujúci prvok"/>
+<l:gentext key="notes" text="Poznámky"/>
+<l:gentext key="Notes" text="Poznámky"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Revidoval: "/>
+<l:gentext key="revisedby" text="Revidoval: "/>
+<l:gentext key="TableNotes" text="Poznámky"/>
+<l:gentext key="tablenotes" text="Poznámky"/>
+<l:gentext key="TableofContents" text="Obsah"/>
+<l:gentext key="tableofcontents" text="Obsah"/>
+<l:gentext key="unexpectedelementname" text="Neočakávané meno prvku"/>
+<l:gentext key="unsupported" text="nepodporovaný"/>
+<l:gentext key="xrefto" text="xref k"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Zoznam rovníc"/>
+<l:gentext key="ListofEquations" text="Zoznam rovníc"/>
+<l:gentext key="ListofExamples" text="Zoznam príkladov"/>
+<l:gentext key="listofexamples" text="Zoznam príkladov"/>
+<l:gentext key="ListofFigures" text="Zoznam obrázkov"/>
+<l:gentext key="listoffigures" text="Zoznam obrázkov"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Zoznam tabuliek"/>
+<l:gentext key="ListofTables" text="Zoznam tabuliek"/>
+<l:gentext key="ListofUnknown" text="Zoznam neznámeho"/>
+<l:gentext key="listofunknown" text="Zoznam neznámeho"/>
+<l:gentext key="nav-home" text="Domov"/>
+<l:gentext key="nav-next" text="Nasledujúci"/>
+<l:gentext key="nav-next-sibling" text="Rýchlo dopredu"/>
+<l:gentext key="nav-prev" text="Predchádzajúci"/>
+<l:gentext key="nav-prev-sibling" text="Rýchlo nazpät"/>
+<l:gentext key="nav-up" text="Hore"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Koncept"/>
+<l:gentext key="above" text="nad"/>
+<l:gentext key="below" text="pod"/>
+<l:gentext key="sectioncalled" text="oddiel nazvaný"/>
+<l:gentext key="index symbols" text="Symboly"/>
+<l:gentext key="lowercase.alpha" text="aáäbcčdďeéfghiíjklĺľmnňoóôpqrŕsštťuúvwxyýzž"/>
+<l:gentext key="uppercase.alpha" text="AÁÄBCČDĎEÉFGHIÍJKLĹĽMNŇOÓÔPQRŔSŠTŤUÚVWXYÝZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatok %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Rovnica %n. %t"/>
+<l:template name="example" text="Príklad %n. %t"/>
+<l:template name="figure" text="Obrázok %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Časť %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postup %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcia %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabuľka %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatok %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="part" text="Časť %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Dodatok %n"/>
+<l:template name="bridgehead" text="Oddiel %n"/>
+<l:template name="chapter" text="Kapitola %n"/>
+<l:template name="equation" text="Rovnica %n"/>
+<l:template name="example" text="Príklad %n"/>
+<l:template name="figure" text="Obrázok %n"/>
+<l:template name="part" text="Časť %n"/>
+<l:template name="procedure" text="Postup %n"/>
+<l:template name="productionset" text="Produkcia %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Oddiel %n"/>
+<l:template name="sect2" text="Oddiel %n"/>
+<l:template name="sect3" text="Oddiel %n"/>
+<l:template name="sect4" text="Oddiel %n"/>
+<l:template name="sect5" text="Oddiel %n"/>
+<l:template name="section" text="Oddiel %n"/>
+<l:template name="table" text="Tabuľka %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatok %n, %t"/>
+<l:template name="bridgehead" text="Oddiel %n, “%t”"/>
+<l:template name="chapter" text="Kapitola %n, %t"/>
+<l:template name="equation" text="Rovnica %n, “%t”"/>
+<l:template name="example" text="Príklad %n, “%t”"/>
+<l:template name="figure" text="Obrázok %n, “%t”"/>
+<l:template name="part" text="Časť %n, “%t”"/>
+<l:template name="procedure" text="Postup %n, “%t”"/>
+<l:template name="productionset" text="Produkcia %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="oddiel nazvaný “%t”"/>
+<l:template name="refsect2" text="oddiel nazvaný “%t”"/>
+<l:template name="refsect3" text="oddiel nazvaný “%t”"/>
+<l:template name="refsection" text="oddiel nazvaný “%t”"/>
+<l:template name="sect1" text="Oddiel %n, “%t”"/>
+<l:template name="sect2" text="Oddiel %n, “%t”"/>
+<l:template name="sect3" text="Oddiel %n, “%t”"/>
+<l:template name="sect4" text="Oddiel %n, “%t”"/>
+<l:template name="sect5" text="Oddiel %n, “%t”"/>
+<l:template name="section" text="Oddiel %n, “%t”"/>
+<l:template name="simplesect" text="oddiel nazvaný “%t”"/>
+<l:template name="table" text="Tabuľka %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" a "/>
+<l:template name="seplast" text=", a "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Pozri %t"/>
+<l:template name="seealso" text="Pozri tiež %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Úroveň: "/>
+<l:template name="MsgOrig" text="Pôvod: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d. B Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januára"/>
+<l:template name="February" text="februára"/>
+<l:template name="March" text="marca"/>
+<l:template name="April" text="apríla"/>
+<l:template name="May" text="mája"/>
+<l:template name="June" text="júna"/>
+<l:template name="July" text="júla"/>
+<l:template name="August" text="augusta"/>
+<l:template name="September" text="septembra"/>
+<l:template name="October" text="októbra"/>
+<l:template name="November" text="novembra"/>
+<l:template name="December" text="decembra"/>
+<l:template name="Monday" text="pondelok"/>
+<l:template name="Tuesday" text="utorok"/>
+<l:template name="Wednesday" text="streda"/>
+<l:template name="Thursday" text="štvrtok"/>
+<l:template name="Friday" text="piatok"/>
+<l:template name="Saturday" text="sobota"/>
+<l:template name="Sunday" text="nedeľa"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="máj"/>
+<l:template name="Jun" text="jún"/>
+<l:template name="Jul" text="júl"/>
+<l:template name="Aug" text="aug"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="po"/>
+<l:template name="Tue" text="ut"/>
+<l:template name="Wed" text="st"/>
+<l:template name="Thu" text="št"/>
+<l:template name="Fri" text="pi"/>
+<l:template name="Sat" text="so"/>
+<l:template name="Sun" text="ne"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041b Slovak"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/sl.xml b/docs/xsl-generic/common/sl.xml
new file mode 100644
index 00000000..43d229ea
--- /dev/null
+++ b/docs/xsl-generic/common/sl.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sl" english-language-name="Slovenian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sl.xml -->
+<!-- * -->
+<!-- * E-mail the edited sl.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Povzetek"/>
+<l:gentext key="abstract" text="Povzetek"/>
+<l:gentext key="Answer" text="O:"/>
+<l:gentext key="answer" text="O:"/>
+<l:gentext key="Appendix" text="Dodatek"/>
+<l:gentext key="appendix" text="dodatek"/>
+<l:gentext key="Article" text="Članek"/>
+<l:gentext key="article" text="Članek"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="Literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="Knjiga"/>
+<l:gentext key="CAUTION" text="OPOZORILO"/>
+<l:gentext key="Caution" text="Opozorilo"/>
+<l:gentext key="caution" text="Opozorilo"/>
+<l:gentext key="Chapter" text="Poglavje"/>
+<l:gentext key="chapter" text="poglavje"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="Kolofon"/>
+<l:gentext key="Copyright" text="Pravna zaščita"/>
+<l:gentext key="copyright" text="Pravna zaščita"/>
+<l:gentext key="Dedication" text="Posvetilo"/>
+<l:gentext key="dedication" text="Posvetilo"/>
+<l:gentext key="Edition" text="Izdaja"/>
+<l:gentext key="edition" text="Izdaja"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Enačba"/>
+<l:gentext key="equation" text="Enačba"/>
+<l:gentext key="Example" text="Primer"/>
+<l:gentext key="example" text="Primer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="Slika"/>
+<l:gentext key="Glossary" text="Slovarček"/>
+<l:gentext key="glossary" text="Slovarček"/>
+<l:gentext key="GlossSee" text="glej"/>
+<l:gentext key="glosssee" text="glej"/>
+<l:gentext key="GlossSeeAlso" text="glej tudi"/>
+<l:gentext key="glossseealso" text="glej tudi"/>
+<l:gentext key="IMPORTANT" text="POMEMBNO"/>
+<l:gentext key="important" text="Pomembno"/>
+<l:gentext key="Important" text="Pomembno"/>
+<l:gentext key="Index" text="Stvarno kazalo"/>
+<l:gentext key="index" text="Stvarno kazalo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravno sporočilo"/>
+<l:gentext key="legalnotice" text="Pravno sporočilo"/>
+<l:gentext key="MsgAud" text="Občinstvo"/>
+<l:gentext key="msgaud" text="Občinstvo"/>
+<l:gentext key="MsgLevel" text="Raven"/>
+<l:gentext key="msglevel" text="Raven"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="Izvor"/>
+<l:gentext key="NOTE" text="OPOMBA"/>
+<l:gentext key="Note" text="Opomba"/>
+<l:gentext key="note" text="Opomba"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="Del"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="Predgovor"/>
+<l:gentext key="Procedure" text="Postopek"/>
+<l:gentext key="procedure" text="Postopek"/>
+<l:gentext key="ProductionSet" text="Izdelava"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Izdano"/>
+<l:gentext key="published" text="Izdano"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="V in O"/>
+<l:gentext key="qandadiv" text="V in O"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="V:"/>
+<l:gentext key="question" text="V:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Sklic"/>
+<l:gentext key="reference" text="Sklic"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="Ime"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="Sinopsis"/>
+<l:gentext key="RevHistory" text="Zgodovina različic"/>
+<l:gentext key="revhistory" text="Zgodovina različic"/>
+<l:gentext key="revision" text="Različica"/>
+<l:gentext key="Revision" text="Različica"/>
+<l:gentext key="sect1" text="Razdelek"/>
+<l:gentext key="sect2" text="Razdelek"/>
+<l:gentext key="sect3" text="Razdelek"/>
+<l:gentext key="sect4" text="Razdelek"/>
+<l:gentext key="sect5" text="Razdelek"/>
+<l:gentext key="section" text="razdelek"/>
+<l:gentext key="Section" text="Razdelek"/>
+<l:gentext key="see" text="glej"/>
+<l:gentext key="See" text="glej"/>
+<l:gentext key="seealso" text="glej tudi"/>
+<l:gentext key="Seealso" text="Glej tudi"/>
+<l:gentext key="SeeAlso" text="glej tudi"/>
+<l:gentext key="set" text="Postavi"/>
+<l:gentext key="Set" text="Postavi"/>
+<l:gentext key="setindex" text="Postavi stvarno kazalo"/>
+<l:gentext key="SetIndex" text="Postavi stvarno kazalo"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Namig"/>
+<l:gentext key="TIP" text="NAMIG"/>
+<l:gentext key="Tip" text="Namig"/>
+<l:gentext key="Warning" text="Pozor"/>
+<l:gentext key="warning" text="Pozor"/>
+<l:gentext key="WARNING" text="POZOR"/>
+<l:gentext key="and" text="in"/>
+<l:gentext key="by" text="od"/>
+<l:gentext key="Edited" text="Urejeno"/>
+<l:gentext key="edited" text="Urejeno"/>
+<l:gentext key="Editedby" text="Uredil"/>
+<l:gentext key="editedby" text="Uredil"/>
+<l:gentext key="in" text="v"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="neobstoječi element"/>
+<l:gentext key="notes" text="Notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Pregledal: "/>
+<l:gentext key="revisedby" text="Pregledal: "/>
+<l:gentext key="TableNotes" text="Notes"/>
+<l:gentext key="tablenotes" text="Notes"/>
+<l:gentext key="TableofContents" text="Kazalo"/>
+<l:gentext key="tableofcontents" text="Kazalo"/>
+<l:gentext key="unexpectedelementname" text="Nepričakovano ime elementa"/>
+<l:gentext key="unsupported" text="nepodprto"/>
+<l:gentext key="xrefto" text="xref na"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Seznam enačb"/>
+<l:gentext key="ListofEquations" text="Seznam enačb"/>
+<l:gentext key="ListofExamples" text="Seznam primerov"/>
+<l:gentext key="listofexamples" text="Seznam primerov"/>
+<l:gentext key="ListofFigures" text="Seznam slik"/>
+<l:gentext key="listoffigures" text="Seznam slik"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Seznam tabel"/>
+<l:gentext key="ListofTables" text="Seznam tabel"/>
+<l:gentext key="ListofUnknown" text="Seznam neznanih stvari"/>
+<l:gentext key="listofunknown" text="Seznam neznanih stvari"/>
+<l:gentext key="nav-home" text="Domov"/>
+<l:gentext key="nav-next" text="Naprej"/>
+<l:gentext key="nav-next-sibling" text="Hitro naprej"/>
+<l:gentext key="nav-prev" text="Nazaj"/>
+<l:gentext key="nav-prev-sibling" text="Hitro nazaj"/>
+<l:gentext key="nav-up" text="Gor"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="razdelek, imenovan"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="lowercase.alpha" text="abcčdefghijklmnopqrsštuvwxyzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČDEFGHIJKLMNOPQRSŠTUVWXYZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Enačba %n. %t"/>
+<l:template name="example" text="Primer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postopek %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Izdelava %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Poglavje %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="V: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="V: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="Dodatek %n"/>
+<l:template name="bridgehead" text="Razdelek %n"/>
+<l:template name="chapter" text="Poglavje %n"/>
+<l:template name="equation" text="Enačba %n"/>
+<l:template name="example" text="Primer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Postopek %n"/>
+<l:template name="productionset" text="Izdelava %n"/>
+<l:template name="qandadiv" text="V in O %n"/>
+<l:template name="qandaentry" text="V: %n"/>
+<l:template name="question" text="V: %n"/>
+<l:template name="sect1" text="Razdelek %n"/>
+<l:template name="sect2" text="Razdelek %n"/>
+<l:template name="sect3" text="Razdelek %n"/>
+<l:template name="sect4" text="Razdelek %n"/>
+<l:template name="sect5" text="Razdelek %n"/>
+<l:template name="section" text="Razdelek %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatek %n, %t"/>
+<l:template name="bridgehead" text="Razdelek %n, “%t”"/>
+<l:template name="chapter" text="Poglavje %n, %t"/>
+<l:template name="equation" text="Enačba %n, “%t”"/>
+<l:template name="example" text="Primer %n, “%t”"/>
+<l:template name="figure" text="Slika %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Postopek %n, “%t”"/>
+<l:template name="productionset" text="Izdelava %n, “%t”"/>
+<l:template name="qandadiv" text="V in O %n, “%t”"/>
+<l:template name="refsect1" text="razdelek, imenovan “%t”"/>
+<l:template name="refsect2" text="razdelek, imenovan “%t”"/>
+<l:template name="refsect3" text="razdelek, imenovan “%t”"/>
+<l:template name="refsection" text="razdelek, imenovan “%t”"/>
+<l:template name="sect1" text="Razdelek %n, “%t”"/>
+<l:template name="sect2" text="Razdelek %n, “%t”"/>
+<l:template name="sect3" text="Razdelek %n, “%t”"/>
+<l:template name="sect4" text="Razdelek %n, “%t”"/>
+<l:template name="sect5" text="Razdelek %n, “%t”"/>
+<l:template name="section" text="Razdelek %n, “%t”"/>
+<l:template name="simplesect" text="razdelek, imenovan “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" in "/>
+<l:template name="seplast" text=", in "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="glej %t"/>
+<l:template name="seealso" text="glej tudi %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Občinstvo: "/>
+<l:template name="MsgLevel" text="Raven: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0424 Slovenian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/sq.xml b/docs/xsl-generic/common/sq.xml
new file mode 100644
index 00000000..66c97b94
--- /dev/null
+++ b/docs/xsl-generic/common/sq.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sq" english-language-name="Albanian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sq.xml -->
+<!-- * -->
+<!-- * E-mail the edited sq.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Përshkrimi"/>
+<l:gentext key="abstract" text="Përshkrimi"/>
+<l:gentext key="Answer" text="P:"/>
+<l:gentext key="answer" text="P:"/>
+<l:gentext key="Appendix" text="Shtesë"/>
+<l:gentext key="appendix" text="Shtesë"/>
+<l:gentext key="Article" text="Artikull"/>
+<l:gentext key="article" text="Artikull"/>
+<l:gentext key="Author" text="Autorë"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Libri"/>
+<l:gentext key="book" text="Libri"/>
+<l:gentext key="CAUTION" text="KUJDES"/>
+<l:gentext key="Caution" text="Kujdes"/>
+<l:gentext key="caution" text="Kujdes"/>
+<l:gentext key="Chapter" text="Kapitulli"/>
+<l:gentext key="chapter" text="kapitulli"/>
+<l:gentext key="Colophon" text="Shënime publikimi"/>
+<l:gentext key="colophon" text="shënime publikimi"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Përkushtim"/>
+<l:gentext key="dedication" text="Përkushtim"/>
+<l:gentext key="Edition" text="Versioni"/>
+<l:gentext key="edition" text="Versioni"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ekuacion"/>
+<l:gentext key="equation" text="Ekuacion"/>
+<l:gentext key="Example" text="Shembull"/>
+<l:gentext key="example" text="Shembull"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Fjalori"/>
+<l:gentext key="glossary" text="Fjalori"/>
+<l:gentext key="GlossSee" text="Shiko"/>
+<l:gentext key="glosssee" text="Shiko"/>
+<l:gentext key="GlossSeeAlso" text="Shiko Edhe"/>
+<l:gentext key="glossseealso" text="Shiko Edhe"/>
+<l:gentext key="IMPORTANT" text="ME RËNDËSI"/>
+<l:gentext key="important" text="Me rëndësi"/>
+<l:gentext key="Important" text="Me rëndësi"/>
+<l:gentext key="Index" text="Treguesi"/>
+<l:gentext key="index" text="Treguesi"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Shënime Legale"/>
+<l:gentext key="legalnotice" text="Shënime Legale"/>
+<l:gentext key="MsgAud" text="Publiku"/>
+<l:gentext key="msgaud" text="Publiku"/>
+<l:gentext key="MsgLevel" text="Niveli"/>
+<l:gentext key="msglevel" text="Niveli"/>
+<l:gentext key="MsgOrig" text="Origjina"/>
+<l:gentext key="msgorig" text="Origjina"/>
+<l:gentext key="NOTE" text="SHËNIM"/>
+<l:gentext key="Note" text="Shënim"/>
+<l:gentext key="note" text="Shënim"/>
+<l:gentext key="Part" text="Pjesa"/>
+<l:gentext key="part" text="Pjesa"/>
+<l:gentext key="Preface" text="Parathënie"/>
+<l:gentext key="preface" text="Parathënie"/>
+<l:gentext key="Procedure" text="Proçedura"/>
+<l:gentext key="procedure" text="Proçedura"/>
+<l:gentext key="ProductionSet" text="Prodhimi"/>
+<l:gentext key="PubDate" text="Data Publikimit"/>
+<l:gentext key="pubdate" text="Data e publikimit"/>
+<l:gentext key="Published" text="Publikuar"/>
+<l:gentext key="published" text="Publikuar"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P &amp; P"/>
+<l:gentext key="qandadiv" text="P &amp; P"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Riferim"/>
+<l:gentext key="reference" text="Riferim"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Emri"/>
+<l:gentext key="refname" text="Emri"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Përshkrimi"/>
+<l:gentext key="refsynopsisdiv" text="Përshkrimi"/>
+<l:gentext key="RevHistory" text="Ditari i Revizioneve"/>
+<l:gentext key="revhistory" text="Ditari i Revizioneve"/>
+<l:gentext key="revision" text="Revizioni"/>
+<l:gentext key="Revision" text="Revizioni"/>
+<l:gentext key="sect1" text="Seksioni"/>
+<l:gentext key="sect2" text="Seksioni"/>
+<l:gentext key="sect3" text="Seksioni"/>
+<l:gentext key="sect4" text="Seksioni"/>
+<l:gentext key="sect5" text="Seksioni"/>
+<l:gentext key="section" text="Seksioni"/>
+<l:gentext key="Section" text="Seksioni"/>
+<l:gentext key="see" text="shiko"/>
+<l:gentext key="See" text="Shiko"/>
+<l:gentext key="seealso" text="shiko gjithashtu"/>
+<l:gentext key="Seealso" text="Shiko gjithashtu"/>
+<l:gentext key="SeeAlso" text="Shiko Gjithashtu"/>
+<l:gentext key="set" text="Përmbledhje"/>
+<l:gentext key="Set" text="Përmbledhje"/>
+<l:gentext key="setindex" text="Treguesi i Përmbledhjes"/>
+<l:gentext key="SetIndex" text="Treguesi i Përmbledhjes"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="shënim anësor"/>
+<l:gentext key="step" text="hapi"/>
+<l:gentext key="Step" text="Hapi"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Propozim"/>
+<l:gentext key="TIP" text="PROPOZIM"/>
+<l:gentext key="Tip" text="Propozim"/>
+<l:gentext key="Warning" text="Paralajmërim"/>
+<l:gentext key="warning" text="Paralajmërim"/>
+<l:gentext key="WARNING" text="PARALAJMËRIM"/>
+<l:gentext key="and" text="dhe"/>
+<l:gentext key="by" text="nga"/>
+<l:gentext key="Edited" text="Shkruar"/>
+<l:gentext key="edited" text="Shkruar"/>
+<l:gentext key="Editedby" text="Shkruar nga"/>
+<l:gentext key="editedby" text="Shkruar nga"/>
+<l:gentext key="in" text="në"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="element jo ekzistues"/>
+<l:gentext key="notes" text="Shënime"/>
+<l:gentext key="Notes" text="Shënime"/>
+<l:gentext key="Pgs" text="Fq."/>
+<l:gentext key="pgs" text="Fq."/>
+<l:gentext key="Revisedby" text="Rishikuar nga: "/>
+<l:gentext key="revisedby" text="Rishikuar nga: "/>
+<l:gentext key="TableNotes" text="Shënime"/>
+<l:gentext key="tablenotes" text="Shënime"/>
+<l:gentext key="TableofContents" text="Tabela e përmbajtjes"/>
+<l:gentext key="tableofcontents" text="Tabela e Përmbajtjes"/>
+<l:gentext key="unexpectedelementname" text="Emër i papritur elementi"/>
+<l:gentext key="unsupported" text="nuk suportohet"/>
+<l:gentext key="xrefto" text="riferiment me"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lista e Ekuacioneve"/>
+<l:gentext key="ListofEquations" text="Lista e Ekuacioneve"/>
+<l:gentext key="ListofExamples" text="Lista e Shembujve"/>
+<l:gentext key="listofexamples" text="Lista e Shembujve"/>
+<l:gentext key="ListofFigures" text="Lista e Figurave"/>
+<l:gentext key="listoffigures" text="Lista e Figurave"/>
+<l:gentext key="ListofProcedures" text="Lista e Proçedurave"/>
+<l:gentext key="listofprocedures" text="Lista e Proçedurave"/>
+<l:gentext key="listoftables" text="Lista e Tabelave"/>
+<l:gentext key="ListofTables" text="Lista e Tabelave"/>
+<l:gentext key="ListofUnknown" text="Lista e të Panjohurave"/>
+<l:gentext key="listofunknown" text="Lista e të Panjohurave"/>
+<l:gentext key="nav-home" text="Fillimi"/>
+<l:gentext key="nav-next" text="Vazhdo"/>
+<l:gentext key="nav-next-sibling" text="Para me Shpejtësi"/>
+<l:gentext key="nav-prev" text="Mbrapa"/>
+<l:gentext key="nav-prev-sibling" text="Mbrapsht me Shpejtësi"/>
+<l:gentext key="nav-up" text="Sipër"/>
+<l:gentext key="nav-toc" text="TeP"/>
+<l:gentext key="Draft" text="Kopje prove"/>
+<l:gentext key="above" text="sipër"/>
+<l:gentext key="below" text="poshtë"/>
+<l:gentext key="sectioncalled" text="seksioni i quajtur"/>
+<l:gentext key="index symbols" text="Simbole"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Shtesë %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitulli %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekuacion %n. %t"/>
+<l:template name="example" text="Shembull %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Pjesa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Proçedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Prodhimi %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Shtesë %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitulli %n. %t"/>
+<l:template name="part" text="Pjesa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="P: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="seksioni i quajtur “%t”"/>
+<l:template name="refsection" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect1" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect2" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect3" text="seksioni i quajtur “%t”"/>
+<l:template name="sect1" text="seksioni i quajtur “%t”"/>
+<l:template name="sect2" text="seksioni i quajtur “%t”"/>
+<l:template name="sect3" text="seksioni i quajtur “%t”"/>
+<l:template name="sect4" text="seksioni i quajtur “%t”"/>
+<l:template name="sect5" text="seksioni i quajtur “%t”"/>
+<l:template name="section" text="seksioni i quajtur “%t”"/>
+<l:template name="simplesect" text="seksioni i quajtur “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="P: %n"/>
+<l:template name="appendix" text="Shtesë %n"/>
+<l:template name="bridgehead" text="Seksioni %n"/>
+<l:template name="chapter" text="Kapitulli %n"/>
+<l:template name="equation" text="Ekuacion %n"/>
+<l:template name="example" text="Shembull %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Pjesa %n"/>
+<l:template name="procedure" text="Proçedura %n"/>
+<l:template name="productionset" text="Prodhimi %n"/>
+<l:template name="qandadiv" text="P &amp; P %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Seksioni %n"/>
+<l:template name="sect2" text="Seksioni %n"/>
+<l:template name="sect3" text="Seksioni %n"/>
+<l:template name="sect4" text="Seksioni %n"/>
+<l:template name="sect5" text="Seksioni %n"/>
+<l:template name="section" text="Seksioni %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Shtesë %n, %t"/>
+<l:template name="bridgehead" text="Seksioni %n, “%t”"/>
+<l:template name="chapter" text="Kapitulli %n, %t"/>
+<l:template name="equation" text="Ekuacion %n, “%t”"/>
+<l:template name="example" text="Shembull %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Pjesa %n, “%t”"/>
+<l:template name="procedure" text="Proçedura %n, “%t”"/>
+<l:template name="productionset" text="Prodhimi %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; P %n, “%t”"/>
+<l:template name="refsect1" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect2" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect3" text="seksioni i quajtur “%t”"/>
+<l:template name="refsection" text="seksioni i quajtur “%t”"/>
+<l:template name="sect1" text="Seksioni %n, “%t”"/>
+<l:template name="sect2" text="Seksioni %n, “%t”"/>
+<l:template name="sect3" text="Seksioni %n, “%t”"/>
+<l:template name="sect4" text="Seksioni %n, “%t”"/>
+<l:template name="sect5" text="Seksioni %n, “%t”"/>
+<l:template name="section" text="Seksioni %n, “%t”"/>
+<l:template name="simplesect" text="seksioni i quajtur “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" dhe "/>
+<l:template name="seplast" text=", dhe "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Shiko %t"/>
+<l:template name="seealso" text="Shiko Edhe %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publiku: "/>
+<l:template name="MsgLevel" text="Niveli: "/>
+<l:template name="MsgOrig" text="Origjina: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janar"/>
+<l:template name="February" text="Shkurt"/>
+<l:template name="March" text="Mars"/>
+<l:template name="April" text="Prill"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Qershor"/>
+<l:template name="July" text="Korrik"/>
+<l:template name="August" text="Gusht"/>
+<l:template name="September" text="Shtator"/>
+<l:template name="October" text="Tetor"/>
+<l:template name="November" text="Nëntor"/>
+<l:template name="December" text="Dhjetor"/>
+<l:template name="Monday" text="E hënë"/>
+<l:template name="Tuesday" text="E martë"/>
+<l:template name="Wednesday" text="E mërkurë"/>
+<l:template name="Thursday" text="E enjte"/>
+<l:template name="Friday" text="E premte"/>
+<l:template name="Saturday" text="E shtunë"/>
+<l:template name="Sunday" text="E djelë"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Shk"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Pri"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Qer"/>
+<l:template name="Jul" text="Kor"/>
+<l:template name="Aug" text="Gsh"/>
+<l:template name="Sep" text="Sht"/>
+<l:template name="Oct" text="Tet"/>
+<l:template name="Nov" text="Nën"/>
+<l:template name="Dec" text="Dhj"/>
+<l:template name="Mon" text="Hën"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Mër"/>
+<l:template name="Thu" text="Enj"/>
+<l:template name="Fri" text="Pre"/>
+<l:template name="Sat" text="Sht"/>
+<l:template name="Sun" text="Dje"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041c Albanian (ALBANIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/sr.xml b/docs/xsl-generic/common/sr.xml
new file mode 100644
index 00000000..db5db1d9
--- /dev/null
+++ b/docs/xsl-generic/common/sr.xml
@@ -0,0 +1,714 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sr" english-language-name="Serbian in Cyrillic script">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sr.xml -->
+<!-- * -->
+<!-- * E-mail the edited sr.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Сажетак"/>
+<l:gentext key="abstract" text="сажетак"/>
+<l:gentext key="Answer" text="О:"/>
+<l:gentext key="answer" text="о:"/>
+<l:gentext key="Appendix" text="Додатак"/>
+<l:gentext key="appendix" text="додатак"/>
+<l:gentext key="Article" text="Чланак"/>
+<l:gentext key="article" text="чланак"/>
+<l:gentext key="Author" text="Аутор"/>
+<l:gentext key="Bibliography" text="Литература"/>
+<l:gentext key="bibliography" text="литература"/>
+<l:gentext key="Book" text="Књига"/>
+<l:gentext key="book" text="књига"/>
+<l:gentext key="CAUTION" text="УПОЗОРЕЊЕ"/>
+<l:gentext key="Caution" text="Упозорење"/>
+<l:gentext key="caution" text="упозорење"/>
+<l:gentext key="Chapter" text="Поглавље"/>
+<l:gentext key="chapter" text="поглавље"/>
+<l:gentext key="Colophon" text="Колофон"/>
+<l:gentext key="colophon" text="колофон"/>
+<l:gentext key="Copyright" text="Ауторска права"/>
+<l:gentext key="copyright" text="ауторска права"/>
+<l:gentext key="Dedication" text="Посвета"/>
+<l:gentext key="dedication" text="посвета"/>
+<l:gentext key="Edition" text="Издање"/>
+<l:gentext key="edition" text="издање"/>
+<l:gentext key="Editor" text="Уредник"/>
+<l:gentext key="Equation" text="Једначина"/>
+<l:gentext key="equation" text="једначина"/>
+<l:gentext key="Example" text="Пример"/>
+<l:gentext key="example" text="пример"/>
+<l:gentext key="Figure" text="Слика"/>
+<l:gentext key="figure" text="слика"/>
+<l:gentext key="Glossary" text="Речник"/>
+<l:gentext key="glossary" text="речник"/>
+<l:gentext key="GlossSee" text="Види"/>
+<l:gentext key="glosssee" text="види"/>
+<l:gentext key="GlossSeeAlso" text="Види такође"/>
+<l:gentext key="glossseealso" text="види такође"/>
+<l:gentext key="IMPORTANT" text="ВАЖНО"/>
+<l:gentext key="important" text="важно"/>
+<l:gentext key="Important" text="Важно"/>
+<l:gentext key="Index" text="Индекс"/>
+<l:gentext key="index" text="индекс"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Правна напомена"/>
+<l:gentext key="legalnotice" text="правна напомена"/>
+<l:gentext key="MsgAud" text="Публика"/>
+<l:gentext key="msgaud" text="публика"/>
+<l:gentext key="MsgLevel" text="Ниво"/>
+<l:gentext key="msglevel" text="ниво"/>
+<l:gentext key="MsgOrig" text="Извор"/>
+<l:gentext key="msgorig" text="извор"/>
+<l:gentext key="NOTE" text="ПРИМЕДБА"/>
+<l:gentext key="Note" text="Примедба"/>
+<l:gentext key="note" text="примедба"/>
+<l:gentext key="Part" text="Део"/>
+<l:gentext key="part" text="део"/>
+<l:gentext key="Preface" text="Предговор"/>
+<l:gentext key="preface" text="предговор"/>
+<l:gentext key="Procedure" text="Поступак"/>
+<l:gentext key="procedure" text="поступак"/>
+<l:gentext key="ProductionSet" text="Продукција"/>
+<l:gentext key="PubDate" text="Датум издавања"/>
+<l:gentext key="pubdate" text="датум издавања"/>
+<l:gentext key="Published" text="Издано"/>
+<l:gentext key="published" text="издано"/>
+<l:gentext key="Publisher" text="Издавач"/>
+<l:gentext key="Qandadiv" text="П и О"/>
+<l:gentext key="qandadiv" text="п и о"/>
+<l:gentext key="QandASet" text="Често постављана питања"/>
+<l:gentext key="Question" text="П:"/>
+<l:gentext key="question" text="п:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Референца"/>
+<l:gentext key="reference" text="референца"/>
+<l:gentext key="References" text="Референце"/>
+<l:gentext key="RefName" text="Име"/>
+<l:gentext key="refname" text="име"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Преглед"/>
+<l:gentext key="refsynopsisdiv" text="преглед"/>
+<l:gentext key="RevHistory" text="Историја ревизија"/>
+<l:gentext key="revhistory" text="историја ревизија"/>
+<l:gentext key="revision" text="ревизија"/>
+<l:gentext key="Revision" text="Ревизија"/>
+<l:gentext key="sect1" text="Одељак"/>
+<l:gentext key="sect2" text="Одељак"/>
+<l:gentext key="sect3" text="Одељак"/>
+<l:gentext key="sect4" text="Одељак"/>
+<l:gentext key="sect5" text="Одељак"/>
+<l:gentext key="section" text="одељак"/>
+<l:gentext key="Section" text="Одељак"/>
+<l:gentext key="see" text="види"/>
+<l:gentext key="See" text="Види"/>
+<l:gentext key="seealso" text="види такође"/>
+<l:gentext key="Seealso" text="Види такође"/>
+<l:gentext key="SeeAlso" text="Види такође"/>
+<l:gentext key="set" text="скуп"/>
+<l:gentext key="Set" text="Скуп"/>
+<l:gentext key="setindex" text="индекс скупа"/>
+<l:gentext key="SetIndex" text="Индекс скупа"/>
+<l:gentext key="Sidebar" text="Бочна трака"/>
+<l:gentext key="sidebar" text="бочна трака"/>
+<l:gentext key="step" text="корак"/>
+<l:gentext key="Step" text="Корак"/>
+<l:gentext key="table" text="табела"/>
+<l:gentext key="Table" text="Табела"/>
+<l:gentext key="task" text="задатак"/>
+<l:gentext key="Task" text="Задатак"/>
+<l:gentext key="tip" text="савет"/>
+<l:gentext key="TIP" text="САВЕТ"/>
+<l:gentext key="Tip" text="Савет"/>
+<l:gentext key="Warning" text="Упозорење"/>
+<l:gentext key="warning" text="упозорење"/>
+<l:gentext key="WARNING" text="УПОЗОРЕЊЕ"/>
+<l:gentext key="and" text="и"/>
+<l:gentext key="by" text="од"/>
+<l:gentext key="Edited" text="Уређено"/>
+<l:gentext key="edited" text="уређено"/>
+<l:gentext key="Editedby" text="Уредио(ла)"/>
+<l:gentext key="editedby" text="Уредио(ла)"/>
+<l:gentext key="in" text="у"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="непостојећи елемент"/>
+<l:gentext key="notes" text="примедбе"/>
+<l:gentext key="Notes" text="Примедбе"/>
+<l:gentext key="Pgs" text="Стр."/>
+<l:gentext key="pgs" text="стр."/>
+<l:gentext key="Revisedby" text="Прегледао(ла): "/>
+<l:gentext key="revisedby" text="прегледао(ла): "/>
+<l:gentext key="TableNotes" text="Примедбе"/>
+<l:gentext key="tablenotes" text="примедбе"/>
+<l:gentext key="TableofContents" text="Садржај"/>
+<l:gentext key="tableofcontents" text="садржај"/>
+<l:gentext key="unexpectedelementname" text="неочекивано име елемента"/>
+<l:gentext key="unsupported" text="није подржано"/>
+<l:gentext key="xrefto" text="унакрсна референца на"/>
+<l:gentext key="Authors" text="Аутори"/>
+<l:gentext key="copyeditor" text="Издавачки уредник"/>
+<l:gentext key="graphicdesigner" text="Графички дизајнер"/>
+<l:gentext key="productioneditor" text="Извршни уредник"/>
+<l:gentext key="technicaleditor" text="Технички уредник"/>
+<l:gentext key="translator" text="Преводилац"/>
+<l:gentext key="listofequations" text="списак једначина"/>
+<l:gentext key="ListofEquations" text="Списак једначина"/>
+<l:gentext key="ListofExamples" text="Списак примера"/>
+<l:gentext key="listofexamples" text="списак примера"/>
+<l:gentext key="ListofFigures" text="Списак слика"/>
+<l:gentext key="listoffigures" text="списак слика"/>
+<l:gentext key="ListofProcedures" text="Списак поступака"/>
+<l:gentext key="listofprocedures" text="списак поступака"/>
+<l:gentext key="listoftables" text="списак табела"/>
+<l:gentext key="ListofTables" text="Списак табела"/>
+<l:gentext key="ListofUnknown" text="списак непознатих"/>
+<l:gentext key="listofunknown" text="Списак непознатих"/>
+<l:gentext key="nav-home" text="Почетак"/>
+<l:gentext key="nav-next" text="Следећи"/>
+<l:gentext key="nav-next-sibling" text="Брзо напред"/>
+<l:gentext key="nav-prev" text="Претходни"/>
+<l:gentext key="nav-prev-sibling" text="Брзо назад"/>
+<l:gentext key="nav-up" text="Врх"/>
+<l:gentext key="nav-toc" text="Садр."/>
+<l:gentext key="Draft" text="Нацрт"/>
+<l:gentext key="above" text="изнад"/>
+<l:gentext key="below" text="испод"/>
+<l:gentext key="sectioncalled" text="одељак под именом"/>
+<l:gentext key="index symbols" text="Симболи"/>
+<l:gentext key="lowercase.alpha" text="абвгдђежзијклљмнњопрстћуфхцчџш"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="име-презиме"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Додатак %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Поглавље %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Једначина %n. %t"/>
+<l:template name="example" text="Пример %n. %t"/>
+<l:template name="figure" text="Слика %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Део %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Поступак %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Продукција %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Табела %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Додатак %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Поглавље %n. %t"/>
+<l:template name="part" text="Део %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="О: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="П: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="П: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" у %o"/>
+<l:template name="olink.page.citation" text=" (стр. %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(страна %p)"/>
+<l:template name="docname" text=" у %o"/>
+<l:template name="docnamelong" text=" у документу са насловом %o"/>
+<l:template name="pageabbrev" text="(стр. %p)"/>
+<l:template name="Page" text="Страна %p"/>
+<l:template name="bridgehead" text="одељак под именом „%t“"/>
+<l:template name="refsection" text="одељак под именом „%t“"/>
+<l:template name="refsect1" text="одељак под именом „%t“"/>
+<l:template name="refsect2" text="одељак под именом „%t“"/>
+<l:template name="refsect3" text="одељак под именом „%t“"/>
+<l:template name="sect1" text="одељак под именом „%t“"/>
+<l:template name="sect2" text="одељак под именом „%t“"/>
+<l:template name="sect3" text="одељак под именом „%t“"/>
+<l:template name="sect4" text="одељак под именом „%t“"/>
+<l:template name="sect5" text="одељак под именом „%t“"/>
+<l:template name="section" text="одељак под именом „%t“"/>
+<l:template name="simplesect" text="одељак под именом „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="О: %n"/>
+<l:template name="appendix" text="Додатак %n"/>
+<l:template name="bridgehead" text="Одељак %n"/>
+<l:template name="chapter" text="Поглавље %n"/>
+<l:template name="equation" text="Једначина %n"/>
+<l:template name="example" text="Пример %n"/>
+<l:template name="figure" text="Слика %n"/>
+<l:template name="part" text="Део %n"/>
+<l:template name="procedure" text="Поступак %n"/>
+<l:template name="productionset" text="Продукција %n"/>
+<l:template name="qandadiv" text="П и О %n"/>
+<l:template name="qandaentry" text="П: %n"/>
+<l:template name="question" text="П: %n"/>
+<l:template name="sect1" text="Одељак %n"/>
+<l:template name="sect2" text="Одељак %n"/>
+<l:template name="sect3" text="Одељак %n"/>
+<l:template name="sect4" text="Одељак %n"/>
+<l:template name="sect5" text="Одељак %n"/>
+<l:template name="section" text="Одељак %n"/>
+<l:template name="table" text="Табела %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Додатак %n, %t"/>
+<l:template name="bridgehead" text="Одељак %n, „%t“"/>
+<l:template name="chapter" text="Поглавље %n, %t"/>
+<l:template name="equation" text="Једначина %n, „%t“"/>
+<l:template name="example" text="Пример %n, „%t“"/>
+<l:template name="figure" text="Слика %n, „%t“"/>
+<l:template name="part" text="Део %n, „%t“"/>
+<l:template name="procedure" text="Поступак %n, „%t“"/>
+<l:template name="productionset" text="Продукција %n, „%t“"/>
+<l:template name="qandadiv" text="П и О %n, „%t“"/>
+<l:template name="refsect1" text="одељак под именом „%t“"/>
+<l:template name="refsect2" text="одељак под именом „%t“"/>
+<l:template name="refsect3" text="одељак под именом „%t“"/>
+<l:template name="refsection" text="одељак под именом „%t“"/>
+<l:template name="sect1" text="Одељак %n, „%t“"/>
+<l:template name="sect2" text="Одељак %n, „%t“"/>
+<l:template name="sect3" text="Одељак %n, „%t“"/>
+<l:template name="sect4" text="Одељак %n, „%t“"/>
+<l:template name="sect5" text="Одељак %n, „%t“"/>
+<l:template name="section" text="Одељак %n, „%t“"/>
+<l:template name="simplesect" text="одељак под именом „%t“"/>
+<l:template name="table" text="Табела %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" и "/>
+<l:template name="seplast" text=", и "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Види %t"/>
+<l:template name="seealso" text="Види такође %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Публика: "/>
+<l:template name="MsgLevel" text="Ниво: "/>
+<l:template name="MsgOrig" text="Извор: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y."/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Дефиниција: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="јануар"/>
+<l:template name="February" text="фебруар"/>
+<l:template name="March" text="март"/>
+<l:template name="April" text="април"/>
+<l:template name="May" text="мај"/>
+<l:template name="June" text="јун"/>
+<l:template name="July" text="јул"/>
+<l:template name="August" text="август"/>
+<l:template name="September" text="септембар"/>
+<l:template name="October" text="октобар"/>
+<l:template name="November" text="новембар"/>
+<l:template name="December" text="децембар"/>
+<l:template name="Monday" text="понедељак"/>
+<l:template name="Tuesday" text="уторак"/>
+<l:template name="Wednesday" text="среда"/>
+<l:template name="Thursday" text="четвртак"/>
+<l:template name="Friday" text="петак"/>
+<l:template name="Saturday" text="субота"/>
+<l:template name="Sunday" text="недеља"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="јан"/>
+<l:template name="Feb" text="феб"/>
+<l:template name="Mar" text="мар"/>
+<l:template name="Apr" text="апр"/>
+<l:template name="May" text="мај"/>
+<l:template name="Jun" text="јун"/>
+<l:template name="Jul" text="јул"/>
+<l:template name="Aug" text="авг"/>
+<l:template name="Sep" text="сеп"/>
+<l:template name="Oct" text="окт"/>
+<l:template name="Nov" text="нов"/>
+<l:template name="Dec" text="дец"/>
+<l:template name="Mon" text="пон"/>
+<l:template name="Tue" text="уто"/>
+<l:template name="Wed" text="сре"/>
+<l:template name="Thu" text="чет"/>
+<l:template name="Fri" text="пет"/>
+<l:template name="Sat" text="суб"/>
+<l:template name="Sun" text="нед"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0C1A Serbian (Cyrillic)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Симболи</l:l>
+<l:l i="1">А</l:l>
+<l:l i="1">а</l:l>
+<l:l i="2">Б</l:l>
+<l:l i="2">б</l:l>
+<l:l i="3">В</l:l>
+<l:l i="3">в</l:l>
+<l:l i="4">Г</l:l>
+<l:l i="4">г</l:l>
+<l:l i="5">Д</l:l>
+<l:l i="5">д</l:l>
+<l:l i="6">Ђ</l:l>
+<l:l i="6">ђ</l:l>
+<l:l i="7">Е</l:l>
+<l:l i="7">е</l:l>
+<l:l i="8">Ж</l:l>
+<l:l i="8">ж</l:l>
+<l:l i="9">З</l:l>
+<l:l i="9">з</l:l>
+<l:l i="10">И</l:l>
+<l:l i="10">и</l:l>
+<l:l i="11">Ј</l:l>
+<l:l i="11">ј</l:l>
+<l:l i="12">К</l:l>
+<l:l i="12">к</l:l>
+<l:l i="13">Л</l:l>
+<l:l i="13">л</l:l>
+<l:l i="14">Љ</l:l>
+<l:l i="14">љ</l:l>
+<l:l i="15">М</l:l>
+<l:l i="15">м</l:l>
+<l:l i="16">Н</l:l>
+<l:l i="16">н</l:l>
+<l:l i="17">Њ</l:l>
+<l:l i="17">њ</l:l>
+<l:l i="18">О</l:l>
+<l:l i="18">о</l:l>
+<l:l i="19">П</l:l>
+<l:l i="19">п</l:l>
+<l:l i="20">Р</l:l>
+<l:l i="20">р</l:l>
+<l:l i="21">С</l:l>
+<l:l i="21">с</l:l>
+<l:l i="22">Т</l:l>
+<l:l i="22">т</l:l>
+<l:l i="23">Ћ</l:l>
+<l:l i="23">ћ</l:l>
+<l:l i="24">У</l:l>
+<l:l i="24">у</l:l>
+<l:l i="25">Ф</l:l>
+<l:l i="25">ф</l:l>
+<l:l i="26">Х</l:l>
+<l:l i="26">х</l:l>
+<l:l i="27">Ц</l:l>
+<l:l i="27">ц</l:l>
+<l:l i="28">Ч</l:l>
+<l:l i="28">ч</l:l>
+<l:l i="29">Џ</l:l>
+<l:l i="29">џ</l:l>
+<l:l i="30">Ш</l:l>
+<l:l i="30">ш</l:l>
+<l:l i="31">A</l:l>
+<l:l i="31">a</l:l>
+<l:l i="32">B</l:l>
+<l:l i="32">b</l:l>
+<l:l i="33">C</l:l>
+<l:l i="33">c</l:l>
+<l:l i="34">D</l:l>
+<l:l i="34">d</l:l>
+<l:l i="35">E</l:l>
+<l:l i="35">e</l:l>
+<l:l i="36">F</l:l>
+<l:l i="36">f</l:l>
+<l:l i="37">G</l:l>
+<l:l i="37">g</l:l>
+<l:l i="38">H</l:l>
+<l:l i="38">h</l:l>
+<l:l i="39">I</l:l>
+<l:l i="39">i</l:l>
+<l:l i="40">J</l:l>
+<l:l i="40">j</l:l>
+<l:l i="41">K</l:l>
+<l:l i="41">k</l:l>
+<l:l i="42">L</l:l>
+<l:l i="42">l</l:l>
+<l:l i="43">M</l:l>
+<l:l i="43">m</l:l>
+<l:l i="44">N</l:l>
+<l:l i="44">n</l:l>
+<l:l i="45">O</l:l>
+<l:l i="45">o</l:l>
+<l:l i="46">P</l:l>
+<l:l i="46">p</l:l>
+<l:l i="47">Q</l:l>
+<l:l i="47">Q</l:l>
+<l:l i="48">R</l:l>
+<l:l i="48">r</l:l>
+<l:l i="49">S</l:l>
+<l:l i="49">s</l:l>
+<l:l i="50">T</l:l>
+<l:l i="50">t</l:l>
+<l:l i="51">U</l:l>
+<l:l i="51">u</l:l>
+<l:l i="52">V</l:l>
+<l:l i="52">v</l:l>
+<l:l i="53">W</l:l>
+<l:l i="53">w</l:l>
+<l:l i="54">X</l:l>
+<l:l i="54">x</l:l>
+<l:l i="55">Y</l:l>
+<l:l i="55">y</l:l>
+<l:l i="56">Z</l:l>
+<l:l i="56">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/sr_Latn.xml b/docs/xsl-generic/common/sr_Latn.xml
new file mode 100644
index 00000000..a6e03d0e
--- /dev/null
+++ b/docs/xsl-generic/common/sr_Latn.xml
@@ -0,0 +1,673 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sr_latn" english-language-name="Serbian in Latin script">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sr_Latn.xml -->
+<!-- * -->
+<!-- * E-mail the edited sr_Latn.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sažetak"/>
+<l:gentext key="abstract" text="sažetak"/>
+<l:gentext key="Answer" text="O:"/>
+<l:gentext key="answer" text="o:"/>
+<l:gentext key="Appendix" text="Dodatak"/>
+<l:gentext key="appendix" text="dodatak"/>
+<l:gentext key="Article" text="Članak"/>
+<l:gentext key="article" text="članak"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="knjiga"/>
+<l:gentext key="CAUTION" text="UPOZORENJE"/>
+<l:gentext key="Caution" text="Upozorenje"/>
+<l:gentext key="caution" text="upozorenje"/>
+<l:gentext key="Chapter" text="Poglavlje"/>
+<l:gentext key="chapter" text="poglavlje"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Autorska prava"/>
+<l:gentext key="copyright" text="autorska prava"/>
+<l:gentext key="Dedication" text="Posveta"/>
+<l:gentext key="dedication" text="posveta"/>
+<l:gentext key="Edition" text="Izdanje"/>
+<l:gentext key="edition" text="izdanje"/>
+<l:gentext key="Editor" text="Urednik"/>
+<l:gentext key="Equation" text="Jednačina"/>
+<l:gentext key="equation" text="jednačina"/>
+<l:gentext key="Example" text="Primer"/>
+<l:gentext key="example" text="primer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="slika"/>
+<l:gentext key="Glossary" text="Rečnik"/>
+<l:gentext key="glossary" text="rečnik"/>
+<l:gentext key="GlossSee" text="Vidi"/>
+<l:gentext key="glosssee" text="vidi"/>
+<l:gentext key="GlossSeeAlso" text="Vidi takođe"/>
+<l:gentext key="glossseealso" text="vidi takođe"/>
+<l:gentext key="IMPORTANT" text="VAŽNO"/>
+<l:gentext key="important" text="važno"/>
+<l:gentext key="Important" text="Važno"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravna napomena"/>
+<l:gentext key="legalnotice" text="pravna napomena"/>
+<l:gentext key="MsgAud" text="Publika"/>
+<l:gentext key="msgaud" text="publika"/>
+<l:gentext key="MsgLevel" text="Nivo"/>
+<l:gentext key="msglevel" text="nivo"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="izvor"/>
+<l:gentext key="NOTE" text="PRIMEDBA"/>
+<l:gentext key="Note" text="Primedba"/>
+<l:gentext key="note" text="primedba"/>
+<l:gentext key="Part" text="Deo"/>
+<l:gentext key="part" text="deo"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="predgovor"/>
+<l:gentext key="Procedure" text="Postupak"/>
+<l:gentext key="procedure" text="postupak"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Datum izdavanja"/>
+<l:gentext key="pubdate" text="datum izdavanja"/>
+<l:gentext key="Published" text="Izdano"/>
+<l:gentext key="published" text="izdano"/>
+<l:gentext key="Publisher" text="Izdavač"/>
+<l:gentext key="Qandadiv" text="P i O"/>
+<l:gentext key="qandadiv" text="p i o"/>
+<l:gentext key="QandASet" text="Često postavljana pitanja"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="p:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referenca"/>
+<l:gentext key="reference" text="referenca"/>
+<l:gentext key="References" text="Reference"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="ime"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Pregled"/>
+<l:gentext key="refsynopsisdiv" text="pregled"/>
+<l:gentext key="RevHistory" text="Istorija revizija"/>
+<l:gentext key="revhistory" text="istorija revizija"/>
+<l:gentext key="revision" text="revizija"/>
+<l:gentext key="Revision" text="Revizija"/>
+<l:gentext key="sect1" text="Odeljak"/>
+<l:gentext key="sect2" text="Odeljak"/>
+<l:gentext key="sect3" text="Odeljak"/>
+<l:gentext key="sect4" text="Odeljak"/>
+<l:gentext key="sect5" text="Odeljak"/>
+<l:gentext key="section" text="odeljak"/>
+<l:gentext key="Section" text="Odeljak"/>
+<l:gentext key="see" text="vidi"/>
+<l:gentext key="See" text="Vidi"/>
+<l:gentext key="seealso" text="vidi takođe"/>
+<l:gentext key="Seealso" text="Vidi takođe"/>
+<l:gentext key="SeeAlso" text="Vidi takođe"/>
+<l:gentext key="set" text="skup"/>
+<l:gentext key="Set" text="Skup"/>
+<l:gentext key="setindex" text="indeks skupa"/>
+<l:gentext key="SetIndex" text="Indeks skupa"/>
+<l:gentext key="Sidebar" text="Bočna traka"/>
+<l:gentext key="sidebar" text="bočna traka"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="zadatak"/>
+<l:gentext key="Task" text="Zadatak"/>
+<l:gentext key="tip" text="savet"/>
+<l:gentext key="TIP" text="SAVET"/>
+<l:gentext key="Tip" text="Savet"/>
+<l:gentext key="Warning" text="Upozorenje"/>
+<l:gentext key="warning" text="upozorenje"/>
+<l:gentext key="WARNING" text="UPOZORENJE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="by" text="od"/>
+<l:gentext key="Edited" text="Uređeno"/>
+<l:gentext key="edited" text="uređeno"/>
+<l:gentext key="Editedby" text="Uredio(la)"/>
+<l:gentext key="editedby" text="Uredio(la)"/>
+<l:gentext key="in" text="u"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="nepostojeći element"/>
+<l:gentext key="notes" text="primedbe"/>
+<l:gentext key="Notes" text="Primedbe"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="str."/>
+<l:gentext key="Revisedby" text="Pregledao(la): "/>
+<l:gentext key="revisedby" text="pregledao(la): "/>
+<l:gentext key="TableNotes" text="Primedbe"/>
+<l:gentext key="tablenotes" text="primedbe"/>
+<l:gentext key="TableofContents" text="Sadržaj"/>
+<l:gentext key="tableofcontents" text="sadržaj"/>
+<l:gentext key="unexpectedelementname" text="neočekivano ime elementa"/>
+<l:gentext key="unsupported" text="nije podržano"/>
+<l:gentext key="xrefto" text="unakrsna referenca na"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Izdavački urednik"/>
+<l:gentext key="graphicdesigner" text="Grafički dizajner"/>
+<l:gentext key="productioneditor" text="Izvršni urednik"/>
+<l:gentext key="technicaleditor" text="Tehnički urednik"/>
+<l:gentext key="translator" text="Prevodilac"/>
+<l:gentext key="listofequations" text="spisak jednačina"/>
+<l:gentext key="ListofEquations" text="Spisak jednačina"/>
+<l:gentext key="ListofExamples" text="Spisak primera"/>
+<l:gentext key="listofexamples" text="spisak primera"/>
+<l:gentext key="ListofFigures" text="Spisak slika"/>
+<l:gentext key="listoffigures" text="spisak slika"/>
+<l:gentext key="ListofProcedures" text="Spisak postupaka"/>
+<l:gentext key="listofprocedures" text="spisak postupaka"/>
+<l:gentext key="listoftables" text="spisak tabela"/>
+<l:gentext key="ListofTables" text="Spisak tabela"/>
+<l:gentext key="ListofUnknown" text="spisak nepoznatih"/>
+<l:gentext key="listofunknown" text="Spisak nepoznatih"/>
+<l:gentext key="nav-home" text="Početak"/>
+<l:gentext key="nav-next" text="Sledeći"/>
+<l:gentext key="nav-next-sibling" text="Brzo napred"/>
+<l:gentext key="nav-prev" text="Prethodni"/>
+<l:gentext key="nav-prev-sibling" text="Brzo nazad"/>
+<l:gentext key="nav-up" text="Vrh"/>
+<l:gentext key="nav-toc" text="Sadr."/>
+<l:gentext key="Draft" text="Nacrt"/>
+<l:gentext key="above" text="iznad"/>
+<l:gentext key="below" text="ispod"/>
+<l:gentext key="sectioncalled" text="odeljak pod imenom"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="lowercase.alpha" text="abcčćdđefghijklmnopqrsštuvwxyzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČĆDĐEFGHIJKLMNOPQRSŠTUVWXYZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="ime-prezime"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Jednačina %n. %t"/>
+<l:template name="example" text="Primer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deo %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postupak %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="part" text="Deo %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" u %o"/>
+<l:template name="olink.page.citation" text=" (str. %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(strana %p)"/>
+<l:template name="docname" text=" u %o"/>
+<l:template name="docnamelong" text=" u dokumentu sa naslovom %o"/>
+<l:template name="pageabbrev" text="(str. %p)"/>
+<l:template name="Page" text="Strana %p"/>
+<l:template name="bridgehead" text="odeljak pod imenom „%t“"/>
+<l:template name="refsection" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect1" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect2" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect3" text="odeljak pod imenom „%t“"/>
+<l:template name="sect1" text="odeljak pod imenom „%t“"/>
+<l:template name="sect2" text="odeljak pod imenom „%t“"/>
+<l:template name="sect3" text="odeljak pod imenom „%t“"/>
+<l:template name="sect4" text="odeljak pod imenom „%t“"/>
+<l:template name="sect5" text="odeljak pod imenom „%t“"/>
+<l:template name="section" text="odeljak pod imenom „%t“"/>
+<l:template name="simplesect" text="odeljak pod imenom „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="Dodatak %n"/>
+<l:template name="bridgehead" text="Odeljak %n"/>
+<l:template name="chapter" text="Poglavlje %n"/>
+<l:template name="equation" text="Jednačina %n"/>
+<l:template name="example" text="Primer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Deo %n"/>
+<l:template name="procedure" text="Postupak %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="P i O %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Odeljak %n"/>
+<l:template name="sect2" text="Odeljak %n"/>
+<l:template name="sect3" text="Odeljak %n"/>
+<l:template name="sect4" text="Odeljak %n"/>
+<l:template name="sect5" text="Odeljak %n"/>
+<l:template name="section" text="Odeljak %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatak %n, %t"/>
+<l:template name="bridgehead" text="Odeljak %n, „%t“"/>
+<l:template name="chapter" text="Poglavlje %n, %t"/>
+<l:template name="equation" text="Jednačina %n, „%t“"/>
+<l:template name="example" text="Primer %n, „%t“"/>
+<l:template name="figure" text="Slika %n, „%t“"/>
+<l:template name="part" text="Deo %n, „%t“"/>
+<l:template name="procedure" text="Postupak %n, „%t“"/>
+<l:template name="productionset" text="Produkcija %n, „%t“"/>
+<l:template name="qandadiv" text="P i O %n, „%t“"/>
+<l:template name="refsect1" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect2" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect3" text="odeljak pod imenom „%t“"/>
+<l:template name="refsection" text="odeljak pod imenom „%t“"/>
+<l:template name="sect1" text="Odeljak %n, „%t“"/>
+<l:template name="sect2" text="Odeljak %n, „%t“"/>
+<l:template name="sect3" text="Odeljak %n, „%t“"/>
+<l:template name="sect4" text="Odeljak %n, „%t“"/>
+<l:template name="sect5" text="Odeljak %n, „%t“"/>
+<l:template name="section" text="Odeljak %n, „%t“"/>
+<l:template name="simplesect" text="odeljak pod imenom „%t“"/>
+<l:template name="table" text="Tabela %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidi %t"/>
+<l:template name="seealso" text="Vidi takođe %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publika: "/>
+<l:template name="MsgLevel" text="Nivo: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y."/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definicija: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januar"/>
+<l:template name="February" text="februar"/>
+<l:template name="March" text="mart"/>
+<l:template name="April" text="april"/>
+<l:template name="May" text="maj"/>
+<l:template name="June" text="jun"/>
+<l:template name="July" text="jul"/>
+<l:template name="August" text="avgust"/>
+<l:template name="September" text="septembar"/>
+<l:template name="October" text="oktobar"/>
+<l:template name="November" text="novembar"/>
+<l:template name="December" text="decembar"/>
+<l:template name="Monday" text="ponedeljak"/>
+<l:template name="Tuesday" text="utorak"/>
+<l:template name="Wednesday" text="sreda"/>
+<l:template name="Thursday" text="četvrtak"/>
+<l:template name="Friday" text="petak"/>
+<l:template name="Saturday" text="subota"/>
+<l:template name="Sunday" text="nedelja"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="maj"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jul"/>
+<l:template name="Aug" text="avg"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="pon"/>
+<l:template name="Tue" text="uto"/>
+<l:template name="Wed" text="sre"/>
+<l:template name="Thu" text="čet"/>
+<l:template name="Fri" text="pet"/>
+<l:template name="Sat" text="sub"/>
+<l:template name="Sun" text="ned"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x081a Serbian (Latin)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboli</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Č</l:l>
+<l:l i="4">č</l:l>
+<l:l i="5">Ć</l:l>
+<l:l i="5">ć</l:l>
+<l:l i="6">D</l:l>
+<l:l i="6">d</l:l>
+<l:l i="7">DŽ</l:l>
+<l:l i="7">Dž</l:l>
+<l:l i="7">dž</l:l>
+<l:l i="8">Đ</l:l>
+<l:l i="8">đ</l:l>
+<l:l i="9">E</l:l>
+<l:l i="9">e</l:l>
+<l:l i="10">F</l:l>
+<l:l i="10">f</l:l>
+<l:l i="11">G</l:l>
+<l:l i="11">g</l:l>
+<l:l i="12">H</l:l>
+<l:l i="12">h</l:l>
+<l:l i="13">I</l:l>
+<l:l i="13">i</l:l>
+<l:l i="14">J</l:l>
+<l:l i="14">j</l:l>
+<l:l i="15">K</l:l>
+<l:l i="15">k</l:l>
+<l:l i="16">L</l:l>
+<l:l i="16">l</l:l>
+<l:l i="17">LJ</l:l>
+<l:l i="17">Lj</l:l>
+<l:l i="17">lj</l:l>
+<l:l i="18">M</l:l>
+<l:l i="18">m</l:l>
+<l:l i="19">N</l:l>
+<l:l i="19">n</l:l>
+<l:l i="20">NJ</l:l>
+<l:l i="20">Nj</l:l>
+<l:l i="20">nj</l:l>
+<l:l i="21">O</l:l>
+<l:l i="21">o</l:l>
+<l:l i="22">P</l:l>
+<l:l i="22">p</l:l>
+<l:l i="23">Q</l:l>
+<l:l i="23">Q</l:l>
+<l:l i="24">R</l:l>
+<l:l i="24">r</l:l>
+<l:l i="25">S</l:l>
+<l:l i="25">s</l:l>
+<l:l i="26">Š</l:l>
+<l:l i="26">š</l:l>
+<l:l i="27">T</l:l>
+<l:l i="27">t</l:l>
+<l:l i="28">U</l:l>
+<l:l i="28">u</l:l>
+<l:l i="29">V</l:l>
+<l:l i="29">v</l:l>
+<l:l i="30">W</l:l>
+<l:l i="30">w</l:l>
+<l:l i="31">X</l:l>
+<l:l i="31">x</l:l>
+<l:l i="32">Y</l:l>
+<l:l i="32">y</l:l>
+<l:l i="33">Z</l:l>
+<l:l i="33">z</l:l>
+<l:l i="34">Ž</l:l>
+<l:l i="34">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/stripns.xsl b/docs/xsl-generic/common/stripns.xsl
new file mode 100644
index 00000000..dd1cd7f2
--- /dev/null
+++ b/docs/xsl-generic/common/stripns.xsl
@@ -0,0 +1,342 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:NodeInfo="http://org.apache.xalan.lib.NodeInfo"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="db ng exsl saxon NodeInfo"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: stripns.xsl 7267 2007-08-22 12:20:28Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- put an xml:base attribute on the root element -->
+<xsl:template match="/*" mode="stripNS">
+ <xsl:choose>
+ <xsl:when test="self::ng:* or self::db:*">
+ <xsl:element name="{local-name(.)}">
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="add-xml-base"/>
+
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="add-xml-base"/>
+
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="stripNS">
+ <xsl:choose>
+ <xsl:when test="self::ng:* or self::db:*">
+ <xsl:element name="{local-name(.)}">
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="db:info" mode="stripNS">
+ <xsl:variable name="info">
+ <xsl:choose>
+ <xsl:when test="parent::db:article
+ |parent::db:appendix
+ |parent::db:bibliography
+ |parent::db:book
+ |parent::db:chapter
+ |parent::db:glossary
+ |parent::db:index
+ |parent::db:part
+ |parent::db:preface
+ |parent::db:refentry
+ |parent::db:reference
+ |parent::db:refsect1
+ |parent::db:refsect2
+ |parent::db:refsect3
+ |parent::db:refsection
+ |parent::db:refsynopsisdiv
+ |parent::db:sect1
+ |parent::db:sect2
+ |parent::db:sect3
+ |parent::db:sect4
+ |parent::db:sect5
+ |parent::db:section
+ |parent::db:setindex
+ |parent::db:set
+ |parent::db:slides
+ |parent::db:sidebar">
+ <xsl:value-of select="local-name(parent::*)"/>
+ <xsl:text>info</xsl:text>
+ </xsl:when>
+ <xsl:when test="parent::db:audioobject
+ |parent::db:imageobject
+ |parent::db:inlinemediaobject
+ |parent::db:mediaobject
+ |parent::db:mediaobjectco
+ |parent::db:textobject
+ |parent::db:videoobject">
+ <xsl:text>objectinfo</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>blockinfo</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$info}">
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:element>
+
+ <xsl:if test="(not(../db:title) and not(../ng:title))
+ and ($info = 'prefaceinfo'
+ or $info = 'chapterinfo'
+ or $info = 'sectioninfo'
+ or $info = 'sect1info'
+ or $info = 'sect2info'
+ or $info = 'sect3info'
+ or $info = 'sect4info'
+ or $info = 'sect5info'
+ or $info = 'refsectioninfo'
+ or $info = 'refsect1info'
+ or $info = 'refsect2info'
+ or $info = 'refsect3info'
+ or $info = 'blockinfo'
+ or $info = 'appendixinfo')">
+ <xsl:apply-templates select="db:title|ng:title" mode="stripNS"/>
+ </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="ng:link|db:link" mode="stripNS">
+ <xsl:variable xmlns:xlink="http://www.w3.org/1999/xlink"
+ name="href" select="@xlink:href|@href"/>
+ <xsl:choose>
+ <xsl:when test="$href != '' and not(starts-with($href,'#'))">
+ <ulink url="{$href}">
+ <xsl:for-each select="@*">
+ <xsl:if test="local-name(.) != 'href'
+ and name(.) != 'version'
+ and name(.) != 'xml:id'">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="stripNS"/>
+ </ulink>
+ </xsl:when>
+ <xsl:when test="$href != '' and starts-with($href,'#')">
+ <link linkend="{substring-after($href,'#')}">
+ <xsl:for-each select="@*">
+ <xsl:if test="local-name(.) != 'href'
+ and name(.) != 'version'
+ and name(.) != 'xml:id'">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="stripNS"/>
+ </link>
+ </xsl:when>
+ <xsl:otherwise>
+ <link>
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="stripNS"/>
+ </link>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="ng:tag|db:tag" mode="stripNS">
+ <sgmltag>
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')]"/>
+ <xsl:apply-templates mode="stripNS"/>
+ </sgmltag>
+</xsl:template>
+
+<xsl:template match="ng:textdata|db:textdata
+ |ng:imagedata|db:imagedata
+ |ng:videodata|db:videodata
+ |ng:audiodata|db:audiodata" mode="stripNS">
+ <xsl:element name="{local-name(.)}">
+ <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+ and not(name(.) = 'version')
+ and not(name(.) = 'entityref')]"/>
+ <xsl:if test="@xml:id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@xml:id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template name="add-xml-base">
+ <xsl:if test="not(@xml:base)">
+ <xsl:variable name="base">
+ <xsl:choose>
+ <xsl:when test="function-available('saxon:systemId')">
+ <xsl:value-of select="saxon:systemId()"/>
+ </xsl:when>
+ <xsl:when test="function-available('NodeInfo:systemId')">
+ <xsl:value-of select="NodeInfo:systemId()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>WARNING: cannot add @xml:base to node </xsl:text>
+ <xsl:text>set root element. </xsl:text>
+ <xsl:text>Relative paths may not work.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- debug
+ <xsl:message>base is <xsl:value-of select="$base"/></xsl:message>
+ -->
+ <xsl:if test="$base != ''">
+ <xsl:attribute name="xml:base">
+ <xsl:call-template name="systemIdToBaseURI">
+ <xsl:with-param name="systemId">
+ <!-- file: seems to confuse some processors. -->
+ <xsl:choose>
+ <!-- however, windows paths must use file:///c:/path -->
+ <xsl:when test="starts-with($base, 'file:///') and
+ substring($base, 10, 1) = ':'">
+ <xsl:value-of select="$base"/>
+ </xsl:when>
+ <xsl:when test="starts-with($base, 'file:/')
+ and substring($base, 8, 1) = ':'">
+ <xsl:value-of select="concat('file:///',
+ substring-after($base,'file:/'))"/>
+ </xsl:when>
+ <xsl:when test="starts-with($base, 'file:///')">
+ <xsl:value-of select="substring-after($base,'file://')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($base, 'file://')">
+ <xsl:value-of select="substring-after($base,'file:/')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($base, 'file:/')">
+ <xsl:value-of select="substring-after($base,'file:')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$base"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="systemIdToBaseURI">
+ <xsl:param name="systemId" select="''"/>
+ <xsl:if test="contains($systemId,'/')">
+ <xsl:value-of select="substring-before($systemId,'/')"/>
+ <xsl:text>/</xsl:text>
+ <xsl:call-template name="systemIdToBaseURI">
+ <xsl:with-param name="systemId"
+ select="substring-after($systemId,'/')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment()|processing-instruction()|text()" mode="stripNS">
+ <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="/" priority="-1">
+ <xsl:choose>
+ <xsl:when test="(function-available('exsl:node-set') or
+ contains(system-property('xsl:vendor'),
+ 'Apache Software Foundation'))
+ and (*/self::ng:* or */self::db:*)">
+ <xsl:message>Stripping namespace from DocBook 5 document.</xsl:message>
+ <xsl:variable name="nons">
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:variable>
+ <xsl:message>Processing stripped document.</xsl:message>
+ <xsl:apply-templates select="exsl:node-set($nons)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="@* | node()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/subtitles.xsl b/docs/xsl-generic/common/subtitles.xsl
new file mode 100644
index 00000000..8211c84b
--- /dev/null
+++ b/docs/xsl-generic/common/subtitles.xsl
@@ -0,0 +1,155 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: subtitles.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- subtitle markup -->
+
+<doc:mode mode="subtitle.markup" xmlns="">
+<refpurpose>Provides access to element subtitles</refpurpose>
+<refdescription id="subtitle.markup-desc">
+<para>Processing an element in the
+<literal role="mode">subtitle.markup</literal> mode produces the
+subtitle of the element.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="subtitle.markup">
+ <xsl:message>
+ <xsl:text>Request for subtitle of unexpected element: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:message>
+ <xsl:text>???SUBTITLE???</xsl:text>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="set" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(setinfo/subtitle|info/subtitle|subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(bookinfo/subtitle|info/subtitle|subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(partinfo/subtitle
+ |docinfo/subtitle
+ |info/subtitle
+ |subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(docinfo/subtitle
+ |info/subtitle
+ |prefaceinfo/subtitle
+ |chapterinfo/subtitle
+ |appendixinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="article" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(artheader/subtitle
+ |articleinfo/subtitle
+ |info/subtitle
+ |subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(subtitle|info/subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(referenceinfo/subtitle
+ |docinfo/subtitle
+ |info/subtitle
+ |subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(blockinfo/subtitle|info/subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(refentryinfo/subtitle
+ |info/subtitle
+ |docinfo/subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"
+ mode="subtitle.markup">
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(info/subtitle
+ |sectioninfo/subtitle
+ |sect1info/subtitle
+ |sect2info/subtitle
+ |sect3info/subtitle
+ |sect4info/subtitle
+ |sect5info/subtitle
+ |refsect1info/subtitle
+ |refsect2info/subtitle
+ |refsect3info/subtitle
+ |subtitle)[1]"
+ mode="subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/common/sv.xml b/docs/xsl-generic/common/sv.xml
new file mode 100644
index 00000000..1e7adbbe
--- /dev/null
+++ b/docs/xsl-generic/common/sv.xml
@@ -0,0 +1,658 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sv" english-language-name="Swedish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sv.xml -->
+<!-- * -->
+<!-- * E-mail the edited sv.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sammanfattning"/>
+<l:gentext key="abstract" text="Sammanfattning"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Appendix"/>
+<l:gentext key="appendix" text="appendix"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="Bibliografi"/>
+<l:gentext key="Book" text="Bok"/>
+<l:gentext key="book" text="Bok"/>
+<l:gentext key="CAUTION" text="OBSERVERA"/>
+<l:gentext key="Caution" text="Observera"/>
+<l:gentext key="caution" text="Observera"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="kapitel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedikation"/>
+<l:gentext key="dedication" text="Dedikation"/>
+<l:gentext key="Edition" text="Utgåva"/>
+<l:gentext key="edition" text="Utgåva"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ekvation"/>
+<l:gentext key="equation" text="Ekvation"/>
+<l:gentext key="Example" text="Exempel"/>
+<l:gentext key="example" text="Exempel"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="Figur"/>
+<l:gentext key="Glossary" text="Gloslista"/>
+<l:gentext key="glossary" text="Gloslista"/>
+<l:gentext key="GlossSee" text="Se"/>
+<l:gentext key="glosssee" text="Se"/>
+<l:gentext key="GlossSeeAlso" text="Se Även"/>
+<l:gentext key="glossseealso" text="Se Även"/>
+<l:gentext key="IMPORTANT" text="VIKTIGT"/>
+<l:gentext key="important" text="Viktigt"/>
+<l:gentext key="Important" text="Viktigt"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legal Notice"/>
+<l:gentext key="legalnotice" text="Legal Notice"/>
+<l:gentext key="MsgAud" text="Målgrupp"/>
+<l:gentext key="msgaud" text="Målgrupp"/>
+<l:gentext key="MsgLevel" text="Nivå"/>
+<l:gentext key="msglevel" text="Nivå"/>
+<l:gentext key="MsgOrig" text="Ursprung"/>
+<l:gentext key="msgorig" text="Ursprung"/>
+<l:gentext key="NOTE" text="NOTERA"/>
+<l:gentext key="Note" text="Notera"/>
+<l:gentext key="note" text="Notera"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="Del"/>
+<l:gentext key="Preface" text="Företal"/>
+<l:gentext key="preface" text="Företal"/>
+<l:gentext key="Procedure" text="Procedur"/>
+<l:gentext key="procedure" text="Procedur"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Publicerad"/>
+<l:gentext key="published" text="Publicerad"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Fråga och A"/>
+<l:gentext key="qandadiv" text="Fråga och A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Fråga:"/>
+<l:gentext key="question" text="Fråga:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referens"/>
+<l:gentext key="reference" text="Referens"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Namn"/>
+<l:gentext key="refname" text="Namn"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revisionshistorik"/>
+<l:gentext key="revhistory" text="Revisionshistorik"/>
+<l:gentext key="revision" text="Revision"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="avsnitt"/>
+<l:gentext key="Section" text="Avsnitt"/>
+<l:gentext key="see" text="se"/>
+<l:gentext key="See" text="Se"/>
+<l:gentext key="seealso" text="se även"/>
+<l:gentext key="Seealso" text="Se även"/>
+<l:gentext key="SeeAlso" text="Se Även"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text="Sidebar"/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="steg"/>
+<l:gentext key="Step" text="Steg"/>
+<l:gentext key="table" text="Tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tips"/>
+<l:gentext key="TIP" text="TIPS"/>
+<l:gentext key="Tip" text="Tips"/>
+<l:gentext key="Warning" text="Varning"/>
+<l:gentext key="warning" text="Varning"/>
+<l:gentext key="WARNING" text="VARNING"/>
+<l:gentext key="and" text="och"/>
+<l:gentext key="by" text="av"/>
+<l:gentext key="Edited" text="Redigerad"/>
+<l:gentext key="edited" text="Redigerad"/>
+<l:gentext key="Editedby" text="Redigerad av"/>
+<l:gentext key="editedby" text="Redigerad av"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="icke-existerande element"/>
+<l:gentext key="notes" text="Noter"/>
+<l:gentext key="Notes" text="Noter"/>
+<l:gentext key="Pgs" text="Sid."/>
+<l:gentext key="pgs" text="Sid."/>
+<l:gentext key="Revisedby" text="Reviderad av: "/>
+<l:gentext key="revisedby" text="Reviderad av: "/>
+<l:gentext key="TableNotes" text="Noter"/>
+<l:gentext key="tablenotes" text="Noter"/>
+<l:gentext key="TableofContents" text="Innehållsförteckning"/>
+<l:gentext key="tableofcontents" text="Innehållsförteckning"/>
+<l:gentext key="unexpectedelementname" text="Oväntat elementnamn"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="korsreferens till"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Ekvationsförteckning"/>
+<l:gentext key="ListofEquations" text="Ekvationsförteckning"/>
+<l:gentext key="ListofExamples" text="Exempelförteckning"/>
+<l:gentext key="listofexamples" text="Exempelförteckning"/>
+<l:gentext key="ListofFigures" text="Figurförteckning"/>
+<l:gentext key="listoffigures" text="Figurförteckning"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabellförteckning"/>
+<l:gentext key="ListofTables" text="Tabellförteckning"/>
+<l:gentext key="ListofUnknown" text="Förteckning av okända"/>
+<l:gentext key="listofunknown" text="Förteckning av okända"/>
+<l:gentext key="nav-home" text="Hem"/>
+<l:gentext key="nav-next" text="Nästa"/>
+<l:gentext key="nav-next-sibling" text="Snabbt framåt"/>
+<l:gentext key="nav-prev" text="Föregående"/>
+<l:gentext key="nav-prev-sibling" text="Snabbt bakåt"/>
+<l:gentext key="nav-up" text="Upp"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Utkast"/>
+<l:gentext key="above" text="ovan"/>
+<l:gentext key="below" text="nedan"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symboler"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzåäö"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="”"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="’"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekvation %n. %t"/>
+<l:template name="example" text="Exempel %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t" lang="en"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s" lang="en"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Fråga: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Fråga: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="”%t”"/>
+<l:template name="refsection" text="”%t”"/>
+<l:template name="refsect1" text="”%t”"/>
+<l:template name="refsect2" text="”%t”"/>
+<l:template name="refsect3" text="”%t”"/>
+<l:template name="sect1" text="”%t”"/>
+<l:template name="sect2" text="”%t”"/>
+<l:template name="sect3" text="”%t”"/>
+<l:template name="sect4" text="”%t”"/>
+<l:template name="sect5" text="”%t”"/>
+<l:template name="section" text="”%t”"/>
+<l:template name="simplesect" text="”%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Appendix %n"/>
+<l:template name="bridgehead" text="Avsnitt %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Ekvation %n"/>
+<l:template name="example" text="Exempel %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Procedur %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Fråga och A %n"/>
+<l:template name="qandaentry" text="Fråga: %n"/>
+<l:template name="question" text="Fråga: %n"/>
+<l:template name="sect1" text="Avsnitt %n"/>
+<l:template name="sect2" text="Avsnitt %n"/>
+<l:template name="sect3" text="Avsnitt %n"/>
+<l:template name="sect4" text="Avsnitt %n"/>
+<l:template name="sect5" text="Avsnitt %n"/>
+<l:template name="section" text="Avsnitt %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendix %n, %t"/>
+<l:template name="bridgehead" text="Avsnitt %n, ”%t”"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Ekvation %n, ”%t”"/>
+<l:template name="example" text="Exempel %n, ”%t”"/>
+<l:template name="figure" text="Figur %n, ”%t”"/>
+<l:template name="part" text="Del %n, ”%t”"/>
+<l:template name="procedure" text="Procedur %n, ”%t”"/>
+<l:template name="productionset" text="Production %n, ”%t”"/>
+<l:template name="qandadiv" text="Fråga och A %n, ”%t”"/>
+<l:template name="refsect1" text="the section called ”%t”"/>
+<l:template name="refsect2" text="the section called ”%t”"/>
+<l:template name="refsect3" text="the section called ”%t”"/>
+<l:template name="refsection" text="the section called ”%t”"/>
+<l:template name="sect1" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect2" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect3" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect4" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect5" text="Avsnitt %n, ”%t”"/>
+<l:template name="section" text="Avsnitt %n, ”%t”"/>
+<l:template name="simplesect" text="the section called ”%t”"/>
+<l:template name="table" text="Tabell %n, ”%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" och "/>
+<l:template name="seplast" text=" och "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Se %t"/>
+<l:template name="seealso" text="Se Även %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Målgrupp: "/>
+<l:template name="MsgLevel" text="Nivå: "/>
+<l:template name="MsgOrig" text="Ursprung: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d-m-Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januari"/>
+<l:template name="February" text="Februari"/>
+<l:template name="March" text="Mars"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="Augusti"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Måndag"/>
+<l:template name="Tuesday" text="Tisdag"/>
+<l:template name="Wednesday" text="Onsdag"/>
+<l:template name="Thursday" text="Torsdag"/>
+<l:template name="Friday" text="Fredag"/>
+<l:template name="Saturday" text="Lördag"/>
+<l:template name="Sunday" text="Söndag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tis"/>
+<l:template name="Wed" text="Ons"/>
+<l:template name="Thu" text="Tor"/>
+<l:template name="Fri" text="Fre"/>
+<l:template name="Sat" text="Lör"/>
+<l:template name="Sun" text="Sön"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041d Swedish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+<l:l i="27">Å</l:l>
+<l:l i="27">å</l:l>
+<l:l i="28">Ä</l:l>
+<l:l i="28">ä</l:l>
+<l:l i="29">Ö</l:l>
+<l:l i="29">ö</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/ta.xml b/docs/xsl-generic/common/ta.xml
new file mode 100644
index 00000000..448136a1
--- /dev/null
+++ b/docs/xsl-generic/common/ta.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ta" english-language-name="Tamil">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ta.xml -->
+<!-- * -->
+<!-- * E-mail the edited ta.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="சுருக்கம்"/>
+<l:gentext key="abstract" text="சுருக்கம்"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="இணைப்பு"/>
+<l:gentext key="appendix" text="இணைப்பு"/>
+<l:gentext key="Article" text="கட்டுரை"/>
+<l:gentext key="article" text="கட்டுரை"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="விவரக்குறிப்பு"/>
+<l:gentext key="bibliography" text="விவரக்குறிப்பு"/>
+<l:gentext key="Book" text="புத்தகம்"/>
+<l:gentext key="book" text="புத்தகம்"/>
+<l:gentext key="CAUTION" text="எச்சரிக்கை"/>
+<l:gentext key="Caution" text="எச்சரிக்கை"/>
+<l:gentext key="caution" text="எச்சரிக்கை"/>
+<l:gentext key="Chapter" text="பாடம்"/>
+<l:gentext key="chapter" text="பாடம்"/>
+<l:gentext key="Colophon" text="பின்குறிப்பு"/>
+<l:gentext key="colophon" text="பின்குறிப்பு"/>
+<l:gentext key="Copyright" text="காப்புரிமை"/>
+<l:gentext key="copyright" text="காப்புரிமை"/>
+<l:gentext key="Dedication" text="சமர்பணம்"/>
+<l:gentext key="dedication" text="சமர்பணம்"/>
+<l:gentext key="Edition" text="பதிப்பு"/>
+<l:gentext key="edition" text="பதிப்பு"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="சமன்பாடு"/>
+<l:gentext key="equation" text="சமன்பாடு"/>
+<l:gentext key="Example" text="உதாரணம்"/>
+<l:gentext key="example" text="உதாரணம்"/>
+<l:gentext key="Figure" text="படம்"/>
+<l:gentext key="figure" text="படம்"/>
+<l:gentext key="Glossary" text="அகராதி"/>
+<l:gentext key="glossary" text="அகராதி"/>
+<l:gentext key="GlossSee" text="பார்"/>
+<l:gentext key="glosssee" text="பார்"/>
+<l:gentext key="GlossSeeAlso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="glossseealso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="IMPORTANT" text="முக்கியம்"/>
+<l:gentext key="important" text="முக்கியம்"/>
+<l:gentext key="Important" text="முக்கியம்"/>
+<l:gentext key="Index" text="அட்டவணை"/>
+<l:gentext key="index" text="அட்டவணை"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="சட்டஅறிக்கை"/>
+<l:gentext key="legalnotice" text="சட்டஅறிக்கை"/>
+<l:gentext key="MsgAud" text="பார்வையாளர்கள்"/>
+<l:gentext key="msgaud" text="பார்வையாளர்கள்"/>
+<l:gentext key="MsgLevel" text="மட்டம்"/>
+<l:gentext key="msglevel" text="மட்டம்"/>
+<l:gentext key="MsgOrig" text="மூலம்"/>
+<l:gentext key="msgorig" text="மூலம்"/>
+<l:gentext key="NOTE" text="குறிப்பு"/>
+<l:gentext key="Note" text="குறிப்பு"/>
+<l:gentext key="note" text="குறிப்பு"/>
+<l:gentext key="Part" text="பகுதி"/>
+<l:gentext key="part" text="பகுதி"/>
+<l:gentext key="Preface" text="முன்னுரை"/>
+<l:gentext key="preface" text="முன்னுரை"/>
+<l:gentext key="Procedure" text="முறை"/>
+<l:gentext key="procedure" text="முறை"/>
+<l:gentext key="ProductionSet" text="உற்பத்தி"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="பதிப்பிக்கப்பட்ட"/>
+<l:gentext key="published" text="பதிப்பிக்கப்பட்ட"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="குறிப்புகள்"/>
+<l:gentext key="reference" text="குறிப்புகள்"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="பெயர்"/>
+<l:gentext key="refname" text="பெயர்"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="சுருக்கம்"/>
+<l:gentext key="refsynopsisdiv" text="சுருக்கம்"/>
+<l:gentext key="RevHistory" text="மீள்பார்வைவரலாறு"/>
+<l:gentext key="revhistory" text="மீள்பார்வைவரலாறு"/>
+<l:gentext key="revision" text="மீள்பார்வை"/>
+<l:gentext key="Revision" text="மீள்பார்வை"/>
+<l:gentext key="sect1" text="பகுதி"/>
+<l:gentext key="sect2" text="பகுதி"/>
+<l:gentext key="sect3" text="பகுதி"/>
+<l:gentext key="sect4" text="பகுதி"/>
+<l:gentext key="sect5" text="பகுதி"/>
+<l:gentext key="section" text="பகுதி"/>
+<l:gentext key="Section" text="பகுதி"/>
+<l:gentext key="see" text="பார்"/>
+<l:gentext key="See" text="பார்"/>
+<l:gentext key="seealso" text="இதையும்பார்"/>
+<l:gentext key="Seealso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="SeeAlso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="set" text="அமை"/>
+<l:gentext key="Set" text="அமை"/>
+<l:gentext key="setindex" text="அட்டவணைஅமை"/>
+<l:gentext key="SetIndex" text="அட்டவணைஅமை"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="பக்கபட்டி"/>
+<l:gentext key="step" text="படிமுறை"/>
+<l:gentext key="Step" text="படிகள்"/>
+<l:gentext key="table" text="அட்டவணை"/>
+<l:gentext key="Table" text="அட்டவணை"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="குறிப்பு"/>
+<l:gentext key="TIP" text="குறிப்பு"/>
+<l:gentext key="Tip" text="குறிப்பு"/>
+<l:gentext key="Warning" text="எச்சரிக்கை"/>
+<l:gentext key="warning" text="எச்சரிக்கை"/>
+<l:gentext key="WARNING" text="எச்சரிக்கை"/>
+<l:gentext key="and" text="மற்றும்"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="திருத்தப்பட்ட"/>
+<l:gentext key="edited" text="திருத்தப்பட்ட"/>
+<l:gentext key="Editedby" text="திருத்தியவர்"/>
+<l:gentext key="editedby" text="திருத்தியவர்"/>
+<l:gentext key="in" text="இல்"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="இல்லாதஉறுப்பு"/>
+<l:gentext key="notes" text="குறிப்புகள்"/>
+<l:gentext key="Notes" text="குறிப்புகள்"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="மீண்டும்பார்த்தவர்:"/>
+<l:gentext key="revisedby" text="மீண்டும்பார்த்தவர்:"/>
+<l:gentext key="TableNotes" text="குறிப்புகள்"/>
+<l:gentext key="tablenotes" text="குறிப்புகள்"/>
+<l:gentext key="TableofContents" text="உள்ளடக்கங்கள்"/>
+<l:gentext key="tableofcontents" text="உள்ளடக்கங்கள்"/>
+<l:gentext key="unexpectedelementname" text="எதிர்பாராதஉறுப்புபெயர்"/>
+<l:gentext key="unsupported" text="ஆதரவற்ற"/>
+<l:gentext key="xrefto" text="xrefto"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="சமன்பாடுகளின்பட்டியல்"/>
+<l:gentext key="ListofEquations" text="சமன்பாடுகளின்பட்டியல்"/>
+<l:gentext key="ListofExamples" text="உதாரணங்களின்பட்டியல்"/>
+<l:gentext key="listofexamples" text="உதாரணங்களின்பட்டியல்"/>
+<l:gentext key="ListofFigures" text="படங்களின்பட்டியல்"/>
+<l:gentext key="listoffigures" text="படங்களின்பட்டியல்"/>
+<l:gentext key="ListofProcedures" text="செய்முறைகளின்பட்டியல்"/>
+<l:gentext key="listofprocedures" text="செய்முறைகளின்பட்டியல்"/>
+<l:gentext key="listoftables" text="அட்டவணைகளின்பட்டியல்"/>
+<l:gentext key="ListofTables" text="அட்டவணைகளின்பட்டியல்"/>
+<l:gentext key="ListofUnknown" text="தெரியாதபட்டியல்"/>
+<l:gentext key="listofunknown" text="தெரியாதபட்டியல்"/>
+<l:gentext key="nav-home" text="இல்லம்"/>
+<l:gentext key="nav-next" text="அடுத்து"/>
+<l:gentext key="nav-next-sibling" text="வேகமாகமுன்செல்"/>
+<l:gentext key="nav-prev" text="முன்"/>
+<l:gentext key="nav-prev-sibling" text="வேகமாகபின்செல்"/>
+<l:gentext key="nav-up" text="மேல்"/>
+<l:gentext key="nav-toc" text="ToC"/>
+<l:gentext key="Draft" text="ஆவணம்"/>
+<l:gentext key="above" text="மேல்"/>
+<l:gentext key="below" text="கீழ்"/>
+<l:gentext key="sectioncalled" text="அழைக்கபட்டபகுதி"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="இணைப்பு %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="பாடம் %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="சமன்பாடு %n. %t"/>
+<l:template name="example" text="உதாரணம் %n. %t"/>
+<l:template name="figure" text="படம் %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="பகுதி %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="முறை %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="உற்பத்தி %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="அட்டவணை %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="இணைப்பு %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="பாடம் %n. %t"/>
+<l:template name="part" text="பகுதி %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="bridgehead" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsection" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect1" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect2" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect3" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect1" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect2" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect3" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect4" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect5" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="section" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="simplesect" text="அழைக்கபட்டபகுதி “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="இணைப்பு %n"/>
+<l:template name="bridgehead" text="பகுதி %n"/>
+<l:template name="chapter" text="பாடம் %n"/>
+<l:template name="equation" text="சமன்பாடு %n"/>
+<l:template name="example" text="உதாரணம் %n"/>
+<l:template name="figure" text="படம் %n"/>
+<l:template name="part" text="பகுதி %n"/>
+<l:template name="procedure" text="முறை %n"/>
+<l:template name="productionset" text="உற்பத்தி %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="பகுதி %n"/>
+<l:template name="sect2" text="பகுதி %n"/>
+<l:template name="sect3" text="பகுதி %n"/>
+<l:template name="sect4" text="பகுதி %n"/>
+<l:template name="sect5" text="பகுதி %n"/>
+<l:template name="section" text="பகுதி %n"/>
+<l:template name="table" text="அட்டவணை %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="இணைப்பு %n, %t"/>
+<l:template name="bridgehead" text="பகுதி %n, “%t”"/>
+<l:template name="chapter" text="பாடம் %n, %t"/>
+<l:template name="equation" text="சமன்பாடு %n, “%t”"/>
+<l:template name="example" text="உதாரணம் %n, “%t”"/>
+<l:template name="figure" text="படம் %n, “%t”"/>
+<l:template name="part" text="பகுதி %n, “%t”"/>
+<l:template name="procedure" text="முறை %n, “%t”"/>
+<l:template name="productionset" text="உற்பத்தி %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect2" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect3" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsection" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect1" text="பகுதி %n, “%t”"/>
+<l:template name="sect2" text="பகுதி %n, “%t”"/>
+<l:template name="sect3" text="பகுதி %n, “%t”"/>
+<l:template name="sect4" text="பகுதி %n, “%t”"/>
+<l:template name="sect5" text="பகுதி %n, “%t”"/>
+<l:template name="section" text="பகுதி %n, “%t”"/>
+<l:template name="simplesect" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="table" text="அட்டவணை %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" மற்றும் "/>
+<l:template name="seplast" text=", மற்றும் "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="பார் %t"/>
+<l:template name="seealso" text="இதையும்பார்க்கவும் %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="பார்வையாளர்கள்: "/>
+<l:template name="MsgLevel" text="மட்டம்: "/>
+<l:template name="MsgOrig" text="மூலம்: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January"/>
+<l:template name="February" text="February"/>
+<l:template name="March" text="March"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="June"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="October"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Monday"/>
+<l:template name="Tuesday" text="Tuesday"/>
+<l:template name="Wednesday" text="Wednesday"/>
+<l:template name="Thursday" text="Thursday"/>
+<l:template name="Friday" text="Friday"/>
+<l:template name="Saturday" text="Saturday"/>
+<l:template name="Sunday" text="Sunday"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tue"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Thu"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Sat"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0049 Tamil"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/table.xsl b/docs/xsl-generic/common/table.xsl
new file mode 100644
index 00000000..72d50d38
--- /dev/null
+++ b/docs/xsl-generic/common/table.xsl
@@ -0,0 +1,514 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: table.xsl 7056 2007-07-17 13:56:09Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="blank.spans">
+ <xsl:param name="cols" select="1"/>
+ <xsl:if test="$cols &gt; 0">
+ <xsl:text>0:</xsl:text>
+ <xsl:call-template name="blank.spans">
+ <xsl:with-param name="cols" select="$cols - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="calculate.following.spans">
+ <xsl:param name="colspan" select="1"/>
+ <xsl:param name="spans" select="''"/>
+
+ <xsl:choose>
+ <xsl:when test="$colspan &gt; 0">
+ <xsl:call-template name="calculate.following.spans">
+ <xsl:with-param name="colspan" select="$colspan - 1"/>
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$spans"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="finaltd">
+ <xsl:param name="spans"/>
+ <xsl:param name="col" select="0"/>
+
+ <xsl:if test="$spans != ''">
+ <xsl:choose>
+ <xsl:when test="starts-with($spans,'0:')">
+ <xsl:call-template name="empty.table.cell">
+ <xsl:with-param name="colnum" select="$col"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:call-template name="finaltd">
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ <xsl:with-param name="col" select="$col+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="sfinaltd">
+ <xsl:param name="spans"/>
+
+ <xsl:if test="$spans != ''">
+ <xsl:choose>
+ <xsl:when test="starts-with($spans,'0:')">0:</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($spans,':')-1"/>
+ <xsl:text>:</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:call-template name="sfinaltd">
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="entry.colnum">
+ <xsl:param name="entry" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$entry/@spanname">
+ <xsl:variable name="spanname" select="$entry/@spanname"/>
+ <xsl:variable name="spanspec"
+ select="($entry/ancestor::tgroup/spanspec[@spanname=$spanname]
+ |$entry/ancestor::entrytbl/spanspec[@spanname=$spanname])[last()]"/>
+ <xsl:variable name="colspec"
+ select="($entry/ancestor::tgroup/colspec[@colname=$spanspec/@namest]
+ |$entry/ancestor::entrytbl/colspec[@colname=$spanspec/@namest])[last()]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$entry/@colname">
+ <xsl:variable name="colname" select="$entry/@colname"/>
+ <xsl:variable name="colspec"
+ select="($entry/ancestor::tgroup/colspec[@colname=$colname]
+ |$entry/ancestor::entrytbl/colspec[@colname=$colname])[last()]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$entry/@namest">
+ <xsl:variable name="namest" select="$entry/@namest"/>
+ <xsl:variable name="colspec"
+ select="($entry/ancestor::tgroup/colspec[@colname=$namest]
+ |$entry/ancestor::entrytbl/colspec[@colname=$namest])[last()]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- no idea, return 0 -->
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<doc:template name="entry.colnum" xmlns="">
+<refpurpose>Determine the column number in which a given entry occurs</refpurpose>
+<refdescription id="entry.colnum-desc">
+<para>If an <tag>entry</tag> has a
+<tag class="attribute">colname</tag> or
+<tag class="attribute">namest</tag> attribute, this template
+will determine the number of the column in which the entry should occur.
+For other <tag>entry</tag>s, nothing is returned.</para>
+</refdescription>
+<refparameter id="entry.colnum-params">
+<variablelist>
+<varlistentry><term>entry</term>
+<listitem>
+<para>The <tag>entry</tag>-element which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="entry.colnum-returns">
+<para>This template returns the column number if it can be determined,
+or 0 (the empty string)</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="colspec.colnum">
+ <xsl:param name="colspec" select="."/>
+ <xsl:choose>
+ <xsl:when test="$colspec/@colnum">
+ <xsl:value-of select="$colspec/@colnum"/>
+ </xsl:when>
+ <xsl:when test="$colspec/preceding-sibling::colspec">
+ <xsl:variable name="prec.colspec.colnum">
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec"
+ select="$colspec/preceding-sibling::colspec[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$prec.colspec.colnum + 1"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.colspan">
+ <xsl:param name="entry" select="."/>
+ <xsl:variable name="spanname" select="$entry/@spanname"/>
+ <xsl:variable name="spanspec"
+ select="($entry/ancestor::tgroup/spanspec[@spanname=$spanname]
+ |$entry/ancestor::entrytbl/spanspec[@spanname=$spanname])[last()]"/>
+
+ <xsl:variable name="namest">
+ <xsl:choose>
+ <xsl:when test="@spanname">
+ <xsl:value-of select="$spanspec/@namest"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$entry/@namest"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="nameend">
+ <xsl:choose>
+ <xsl:when test="@spanname">
+ <xsl:value-of select="$spanspec/@nameend"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$entry/@nameend"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="scol">
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec"
+ select="($entry/ancestor::tgroup/colspec[@colname=$namest]
+ |$entry/ancestor::entrytbl/colspec[@colname=$namest])[last()]"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ecol">
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec"
+ select="($entry/ancestor::tgroup/colspec[@colname=$nameend]
+ |$entry/ancestor::entrytbl/colspec[@colname=$nameend])[last()]"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$namest != '' and $nameend != ''">
+ <xsl:choose>
+ <xsl:when test="number($ecol) &gt;= number($scol)">
+ <xsl:value-of select="number($ecol) - number($scol) + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number($scol) - number($ecol) + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.rowsep">
+ <xsl:param name="entry" select="."/>
+ <xsl:param name="colnum" select="0"/>
+
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="$entry"/>
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="'rowsep'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="calculate.colsep">
+ <xsl:param name="entry" select="."/>
+ <xsl:param name="colnum" select="0"/>
+
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="$entry"/>
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="'colsep'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="inherited.table.attribute">
+ <xsl:param name="entry" select="."/>
+ <xsl:param name="row" select="$entry/ancestor-or-self::row[1]"/>
+ <xsl:param name="colnum" select="0"/>
+ <xsl:param name="attribute" select="'colsep'"/>
+
+ <xsl:variable name="tgroup" select="$row/parent::*/parent::tgroup[1]"/>
+ <xsl:variable name="tbody" select="$row/parent::*[1]"/>
+
+ <xsl:variable name="table" select="($tgroup/ancestor::table
+ |$tgroup/ancestor::informaltable
+ |$entry/ancestor::entrytbl)[last()]"/>
+
+ <xsl:variable name="entry.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$entry"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="row.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$row"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="span.value">
+ <xsl:if test="$entry/@spanname">
+ <xsl:variable name="spanname" select="$entry/@spanname"/>
+ <xsl:variable name="spanspec"
+ select="$tgroup/spanspec[@spanname=$spanname]"/>
+ <xsl:variable name="span.colspec"
+ select="$tgroup/colspec[@colname=$spanspec/@namest]"/>
+
+ <xsl:variable name="spanspec.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$spanspec"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="scolspec.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$span.colspec"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$spanspec.value != ''">
+ <xsl:value-of select="$spanspec.value"/>
+ </xsl:when>
+ <xsl:when test="$scolspec.value != ''">
+ <xsl:value-of select="$scolspec.value"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="namest.value">
+ <xsl:if test="$entry/@namest">
+ <xsl:variable name="namest" select="$entry/@namest"/>
+ <xsl:variable name="colspec"
+ select="$tgroup/colspec[@colname=$namest]"/>
+
+ <xsl:variable name="inner.namest.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$colspec"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$inner.namest.value">
+ <xsl:value-of select="$inner.namest.value"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="tgroup.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$tgroup"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="tbody.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$tbody"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="table.value">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$table"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="default.value">
+ <!-- This section used to say that rowsep and colsep have defaults based -->
+ <!-- on the frame setting. Further reflection and closer examination of the -->
+ <!-- CALS spec reveals I was mistaken. The default is "1" for rowsep and colsep. -->
+ <!-- For everything else, the default is the tgroup value -->
+ <xsl:choose>
+ <xsl:when test="$tgroup.value != ''">
+ <xsl:value-of select="$tgroup.value"/>
+ </xsl:when>
+ <xsl:when test="$attribute = 'rowsep'">1</xsl:when>
+ <xsl:when test="$attribute = 'colsep'">1</xsl:when>
+ <xsl:otherwise><!-- empty --></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="calc.colvalue">
+ <xsl:if test="$colnum &gt; 0">
+ <xsl:call-template name="colnum.colspec">
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$entry.value != ''">
+ <xsl:value-of select="$entry.value"/>
+ </xsl:when>
+ <xsl:when test="$row.value != ''">
+ <xsl:value-of select="$row.value"/>
+ </xsl:when>
+ <xsl:when test="$span.value != ''">
+ <xsl:value-of select="$span.value"/>
+ </xsl:when>
+ <xsl:when test="$namest.value != ''">
+ <xsl:value-of select="$namest.value"/>
+ </xsl:when>
+ <xsl:when test="$calc.colvalue != ''">
+ <xsl:value-of select="$calc.colvalue"/>
+ </xsl:when>
+ <xsl:when test="$tbody.value != ''">
+ <xsl:value-of select="$tbody.value"/>
+ </xsl:when>
+ <xsl:when test="$tgroup.value != ''">
+ <xsl:value-of select="$tgroup.value"/>
+ </xsl:when>
+ <xsl:when test="$table.value != ''">
+ <xsl:value-of select="$table.value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default.value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colnum.colspec">
+ <xsl:param name="colnum" select="0"/>
+ <xsl:param name="attribute" select="'colname'"/>
+ <xsl:param name="colspec.ancestor"
+ select="(ancestor::tgroup|ancestor::entrytbl)
+ [position() = last()]"/>
+ <xsl:param name="colspecs" select="$colspec.ancestor/colspec"/>
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="not($colspecs) or $count &gt; $colnum">
+ <!-- nop -->
+ </xsl:when>
+ <xsl:when test="$colspecs[1]/@colnum">
+ <xsl:choose>
+ <xsl:when test="$colspecs[1]/@colnum = $colnum">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$colspecs[1]"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="colnum.colspec">
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ <xsl:with-param name="colspecs"
+ select="$colspecs[position()&gt;1]"/>
+ <xsl:with-param name="count"
+ select="$colspecs[1]/@colnum+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$count = $colnum">
+ <xsl:call-template name="get-attribute">
+ <xsl:with-param name="element" select="$colspecs[1]"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="colnum.colspec">
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ <xsl:with-param name="colspecs"
+ select="$colspecs[position()&gt;1]"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="get-attribute">
+ <xsl:param name="element" select="."/>
+ <xsl:param name="attribute" select="''"/>
+
+ <xsl:for-each select="$element/@*">
+ <xsl:if test="local-name(.) = $attribute">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="consume-row">
+ <xsl:param name="spans"/>
+
+ <xsl:if test="contains($spans,':')">
+ <xsl:value-of select="substring-before($spans,':') - 1"/>
+ <xsl:text>:</xsl:text>
+ <xsl:call-template name="consume-row">
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- Returns the table style for the context element -->
+<xsl:template name="tabstyle">
+ <xsl:param name="node" select="."/>
+
+ <xsl:variable name="tgroup" select="$node/tgroup[1] |
+ $node/ancestor-or-self::tgroup[1]"/>
+
+ <xsl:variable name="table"
+ select="($node/ancestor-or-self::table |
+ $node/ancestor-or-self::informaltable)[1]"/>
+
+ <xsl:variable name="tabstyle">
+ <xsl:choose>
+ <xsl:when test="$table/@tabstyle != ''">
+ <xsl:value-of select="normalize-space($table/@tabstyle)"/>
+ </xsl:when>
+ <xsl:when test="$tgroup/@tgroupstyle != ''">
+ <xsl:value-of select="normalize-space($tgroup/@tgroupstyle)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:value-of select="$tabstyle"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/targetdatabase.dtd b/docs/xsl-generic/common/targetdatabase.dtd
new file mode 100644
index 00000000..2ace1e00
--- /dev/null
+++ b/docs/xsl-generic/common/targetdatabase.dtd
@@ -0,0 +1,49 @@
+<!-- targetdatabase.dtd -->
+<!-- A DTD for managing cross reference target information -->
+
+<!ELEMENT targetset (targetsetinfo?, sitemap*, document*) >
+
+<!ELEMENT targetsetinfo ANY >
+
+<!ELEMENT sitemap (dir) >
+
+<!ELEMENT dir ((dir|document)*) >
+<!ATTLIST dir
+ name CDATA #REQUIRED
+>
+
+<!ELEMENT document (div*) >
+<!ATTLIST document
+ targetdoc CDATA #REQUIRED
+ uri CDATA #IMPLIED
+ baseuri CDATA #IMPLIED
+ href CDATA #IMPLIED
+ dir CDATA #IMPLIED
+>
+
+<!ELEMENT div (ttl?, objttl?, xreftext?, (div|obj)*)>
+<!ATTLIST div
+ targetptr CDATA #IMPLIED
+ element CDATA #IMPLIED
+ name CDATA #IMPLIED
+ number CDATA #IMPLIED
+ href CDATA #IMPLIED
+ lang CDATA #IMPLIED
+ page CDATA #IMPLIED
+>
+
+
+<!ELEMENT ttl ANY >
+<!ELEMENT objttl ANY >
+<!ELEMENT xreftext ANY >
+
+<!ELEMENT obj (ttl?, objttl?, xreftext?)>
+<!ATTLIST obj
+ targetptr CDATA #IMPLIED
+ element CDATA #IMPLIED
+ name CDATA #IMPLIED
+ number CDATA #IMPLIED
+ href CDATA #IMPLIED
+ lang CDATA #IMPLIED
+ page CDATA #IMPLIED
+>
diff --git a/docs/xsl-generic/common/targets.xsl b/docs/xsl-generic/common/targets.xsl
new file mode 100644
index 00000000..8098d9ba
--- /dev/null
+++ b/docs/xsl-generic/common/targets.xsl
@@ -0,0 +1,272 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: targets.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- cross reference target collection -->
+
+<doc:mode mode="collect.targets" xmlns="">
+<refpurpose>Collects information for potential cross reference targets</refpurpose>
+<refdescription id="collect.targets-desc">
+<para>Processing the root element in the
+<literal role="mode">collect.targets</literal> mode produces
+a set of target database elements that can be used by
+the olink mechanism to resolve external cross references.
+The collection process is controlled by the <literal>
+collect.xref.targets</literal> parameter, which can be
+<literal>yes</literal> to collect targets and process
+the document for output, <literal>only</literal> to
+only collect the targets, and <literal>no</literal>
+(default) to not collect the targets and only process the document.
+</para>
+<para>
+A <literal>targets.filename</literal> parameter must be
+specified to receive the output if
+<literal>collect.xref.targets</literal> is
+set to <literal>yes</literal> so as to
+redirect the target data to a file separate from the
+document output.
+</para>
+</refdescription>
+</doc:mode>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="collect.targets">
+ <xsl:choose>
+ <xsl:when test="$collect.xref.targets = 'yes' and $targets.filename = ''">
+ <xsl:message>
+ Must specify a $targets.filename parameter when
+ $collect.xref.targets is set to 'yes'.
+ The xref targets were not collected.
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$targets.filename">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$targets.filename"/>
+ <xsl:with-param name="method" select="'xml'"/>
+ <xsl:with-param name="encoding" select="'utf-8'"/>
+ <xsl:with-param name="omit-xml-declaration" select="'yes'"/>
+ <xsl:with-param name="doctype-public" select="''"/>
+ <xsl:with-param name="doctype-system" select="''"/>
+ <xsl:with-param name="indent" select="'no'"/>
+ <xsl:with-param name="quiet" select="0"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates select="." mode="olink.mode"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Else write to standard output -->
+ <xsl:apply-templates select="." mode="olink.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink.href.target">
+ <xsl:param name="nd" select="."/>
+
+ <xsl:value-of select="$olink.base.uri"/>
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$nd"/>
+ <xsl:with-param name="context" select="NOTANODE"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- Templates for extracting cross reference information
+ from a document for use in an xref database.
+-->
+
+<xsl:template name="attrs">
+ <xsl:param name="nd" select="."/>
+
+ <xsl:attribute name="element">
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:attribute>
+
+ <xsl:attribute name="href">
+ <xsl:call-template name="olink.href.target">
+ <xsl:with-param name="nd" select="$nd"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:variable name="num">
+ <xsl:apply-templates select="$nd" mode="label.markup">
+ <xsl:with-param name="verbose" select="0"/>
+ </xsl:apply-templates>
+ </xsl:variable>
+
+ <xsl:if test="$num">
+ <xsl:attribute name="number">
+ <xsl:value-of select="$num"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$nd/@id">
+ <xsl:attribute name="targetptr">
+ <xsl:value-of select="$nd/@id"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nd/@xml:id">
+ <xsl:attribute name="targetptr">
+ <xsl:value-of select="$nd/@xml:id"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$nd/@lang">
+ <xsl:attribute name="lang">
+ <xsl:value-of select="$nd/@lang"/>
+ </xsl:attribute>
+ </xsl:if>
+
+</xsl:template>
+
+<xsl:template name="div">
+ <xsl:param name="nd" select="."/>
+
+ <div>
+ <xsl:call-template name="attrs">
+ <xsl:with-param name="nd" select="$nd"/>
+ </xsl:call-template>
+ <ttl>
+ <xsl:apply-templates select="$nd" mode="title.markup">
+ <xsl:with-param name="verbose" select="0"/>
+ </xsl:apply-templates>
+ </ttl>
+ <xreftext>
+ <xsl:choose>
+ <xsl:when test="$nd/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$nd"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nd" mode="xref-to">
+ <xsl:with-param name="verbose" select="0"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xreftext>
+ <xsl:apply-templates mode="olink.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="obj">
+ <xsl:param name="nd" select="."/>
+
+ <obj>
+ <xsl:call-template name="attrs">
+ <xsl:with-param name="nd" select="$nd"/>
+ </xsl:call-template>
+ <ttl>
+ <xsl:apply-templates select="$nd" mode="title.markup">
+ <xsl:with-param name="verbose" select="0"/>
+ </xsl:apply-templates>
+ </ttl>
+ <xreftext>
+ <xsl:choose>
+ <xsl:when test="$nd/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$nd"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nd" mode="xref-to">
+ <xsl:with-param name="verbose" select="0"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xreftext>
+ </obj>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()"
+ mode="olink.mode">
+ <!-- nop -->
+</xsl:template>
+
+<!--
+<xsl:template match="*" mode="olink.mode">
+</xsl:template>
+-->
+
+<xsl:template match="set" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="book" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="article" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="bibliography|bibliodiv" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="olink.mode">
+ <xsl:call-template name="obj"/>
+</xsl:template>
+
+<xsl:template match="refentry" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="refsection|refsect1|refsect2|refsect3" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table" mode="olink.mode">
+ <xsl:call-template name="obj"/>
+ <xsl:apply-templates mode="olink.mode"/>
+</xsl:template>
+
+<xsl:template match="equation[title or info/title]" mode="olink.mode">
+ <xsl:call-template name="obj"/>
+</xsl:template>
+
+<xsl:template match="qandaset|qandaentry" mode="olink.mode">
+ <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="*" mode="olink.mode">
+ <xsl:if test="@id or @xml:id">
+ <xsl:call-template name="obj"/>
+ </xsl:if>
+ <xsl:apply-templates mode="olink.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/th.xml b/docs/xsl-generic/common/th.xml
new file mode 100644
index 00000000..9728900a
--- /dev/null
+++ b/docs/xsl-generic/common/th.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="th" english-language-name="Thai">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/th.xml -->
+<!-- * -->
+<!-- * E-mail the edited th.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="บทคัดย่อ"/>
+<l:gentext key="abstract" text="บทคัดย่อ"/>
+<l:gentext key="Answer" text="ตอบ:"/>
+<l:gentext key="answer" text="ตอบ:"/>
+<l:gentext key="Appendix" text="ภาคผนวก"/>
+<l:gentext key="appendix" text="ภาคผนวก"/>
+<l:gentext key="Article" text="บทความ"/>
+<l:gentext key="article" text="บทความ"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="บรรณานุกรม"/>
+<l:gentext key="bibliography" text="บรรณานุกรม"/>
+<l:gentext key="Book" text="หนังสือ"/>
+<l:gentext key="book" text="หนังสือ"/>
+<l:gentext key="CAUTION" text="คำเตือน"/>
+<l:gentext key="Caution" text="คำเตือน"/>
+<l:gentext key="caution" text="คำเตือน"/>
+<l:gentext key="Chapter" text="บทที่"/>
+<l:gentext key="chapter" text="บทที่"/>
+<l:gentext key="Colophon" text="เบื้องหลัง"/>
+<l:gentext key="colophon" text="เบื้องหลัง"/>
+<l:gentext key="Copyright" text="สงวนสิขสิทธิ์"/>
+<l:gentext key="copyright" text="สงวนสิขสิทธิ์"/>
+<l:gentext key="Dedication" text="คำอุทิศ"/>
+<l:gentext key="dedication" text="คำอุทิศ"/>
+<l:gentext key="Edition" text="ฉบับ"/>
+<l:gentext key="edition" text="ฉบับ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="สมการ"/>
+<l:gentext key="equation" text="สมการ"/>
+<l:gentext key="Example" text="ตัวอย่าง"/>
+<l:gentext key="example" text="ตัวอย่าง"/>
+<l:gentext key="Figure" text="รูป"/>
+<l:gentext key="figure" text="รูป"/>
+<l:gentext key="Glossary" text="อภิธานศัพท์"/>
+<l:gentext key="glossary" text="อภิธานศัพท์"/>
+<l:gentext key="GlossSee" text="ดู"/>
+<l:gentext key="glosssee" text="ดู"/>
+<l:gentext key="GlossSeeAlso" text="ดูเพิ่มเติม"/>
+<l:gentext key="glossseealso" text="ดูเพิ่มเติม"/>
+<l:gentext key="IMPORTANT" text="ข้อควรจำ"/>
+<l:gentext key="important" text="ข้อควรจำ"/>
+<l:gentext key="Important" text="ข้อควรจำ"/>
+<l:gentext key="Index" text="ดรรชนี"/>
+<l:gentext key="index" text="ดรรชนี"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ข้อผูกพันตามกฎหมาย"/>
+<l:gentext key="legalnotice" text="ข้อผูกพันตามกฎหมาย"/>
+<l:gentext key="MsgAud" text="ผู้อ่าน"/>
+<l:gentext key="msgaud" text="ผู้อ่าน"/>
+<l:gentext key="MsgLevel" text="ระดับ"/>
+<l:gentext key="msglevel" text="ระดับ"/>
+<l:gentext key="MsgOrig" text="ที่มา"/>
+<l:gentext key="msgorig" text="ที่มา"/>
+<l:gentext key="NOTE" text="หมายเหตุ"/>
+<l:gentext key="Note" text="หมายเหตุ"/>
+<l:gentext key="note" text="หมายเหตุ"/>
+<l:gentext key="Part" text="ภาค"/>
+<l:gentext key="part" text="ภาค"/>
+<l:gentext key="Preface" text="คำนำ"/>
+<l:gentext key="preface" text="คำนำ"/>
+<l:gentext key="Procedure" text="ระเบียบการ"/>
+<l:gentext key="procedure" text="ระเบียบการ"/>
+<l:gentext key="ProductionSet" text="ผลิต"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="ตีพิมพ์"/>
+<l:gentext key="published" text="ตีพิมพ์"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ถาม-ตอบ"/>
+<l:gentext key="qandadiv" text="ถาม-ตอบ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ถาม:"/>
+<l:gentext key="question" text="ถาม:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="หนังสืออ้างอิง"/>
+<l:gentext key="reference" text="หนังสืออ้างอิง"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ชื่อ"/>
+<l:gentext key="refname" text="ชื่อ"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="สาระสำคัญ"/>
+<l:gentext key="refsynopsisdiv" text="สาระสำคัญ"/>
+<l:gentext key="RevHistory" text="บันทึกรุ่น"/>
+<l:gentext key="revhistory" text="บันทึกรุ่น"/>
+<l:gentext key="revision" text="รุ่นที่"/>
+<l:gentext key="Revision" text="รุ่นที่"/>
+<l:gentext key="sect1" text="ตอนที่"/>
+<l:gentext key="sect2" text="ตอนที่"/>
+<l:gentext key="sect3" text="ตอนที่"/>
+<l:gentext key="sect4" text="ตอนที่"/>
+<l:gentext key="sect5" text="ตอนที่"/>
+<l:gentext key="section" text="ตอนที่"/>
+<l:gentext key="Section" text="ตอนที่"/>
+<l:gentext key="see" text="ดู"/>
+<l:gentext key="See" text="ดู"/>
+<l:gentext key="seealso" text="ดูเพิ่มเติม"/>
+<l:gentext key="Seealso" text="ดูเพิ่มเติม"/>
+<l:gentext key="SeeAlso" text="ดูเพิ่มเติม"/>
+<l:gentext key="set" text="ชุด"/>
+<l:gentext key="Set" text="ชุด"/>
+<l:gentext key="setindex" text="สารบัญชุด"/>
+<l:gentext key="SetIndex" text="สารบัญชุด"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="ลำดับ"/>
+<l:gentext key="Step" text="ลำดับ"/>
+<l:gentext key="table" text="ตาราง"/>
+<l:gentext key="Table" text="ตาราง"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="คำแนะนำ"/>
+<l:gentext key="TIP" text="คำแนะนำ"/>
+<l:gentext key="Tip" text="คำแนะนำ"/>
+<l:gentext key="Warning" text="คำเตือน"/>
+<l:gentext key="warning" text="คำเตือน"/>
+<l:gentext key="WARNING" text="คำเตือน"/>
+<l:gentext key="and" text="และ"/>
+<l:gentext key="by" text="โดย"/>
+<l:gentext key="Edited" text="เรียบเรียง"/>
+<l:gentext key="edited" text="เรียบเรียง"/>
+<l:gentext key="Editedby" text="เรียบเรียงโดย"/>
+<l:gentext key="editedby" text="เรียบเรียงโดย"/>
+<l:gentext key="in" text="ใน"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="ไม่พบส่วนที่ต้องการ"/>
+<l:gentext key="notes" text="หมายเหตุ"/>
+<l:gentext key="Notes" text="หมายเหตุ"/>
+<l:gentext key="Pgs" text="หน้า"/>
+<l:gentext key="pgs" text="หน้า"/>
+<l:gentext key="Revisedby" text="แก้ไขปรับปรุงโดย: "/>
+<l:gentext key="revisedby" text="แก้ไขปรับปรุงโดย: "/>
+<l:gentext key="TableNotes" text="หมายเหตุ"/>
+<l:gentext key="tablenotes" text="หมายเหตุ"/>
+<l:gentext key="TableofContents" text="สารบัญ"/>
+<l:gentext key="tableofcontents" text="สารบัญ"/>
+<l:gentext key="unexpectedelementname" text="พบส่วนที่ไม่ต้องการ"/>
+<l:gentext key="unsupported" text="ไม่สนับสนุน"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="สารบัญสมการ"/>
+<l:gentext key="ListofEquations" text="สารบัญสมการ"/>
+<l:gentext key="ListofExamples" text="สารบัญตัวอย่าง"/>
+<l:gentext key="listofexamples" text="สารบัญตัวอย่าง"/>
+<l:gentext key="ListofFigures" text="สารบัญรูป"/>
+<l:gentext key="listoffigures" text="สารบัญรูป"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="สารบัญตาราง"/>
+<l:gentext key="ListofTables" text="สารบัญตาราง"/>
+<l:gentext key="ListofUnknown" text="สารบัญอื่น ๆ"/>
+<l:gentext key="listofunknown" text="สารบัญอื่น ๆ"/>
+<l:gentext key="nav-home" text="หน้าแรก"/>
+<l:gentext key="nav-next" text="ต่อไป"/>
+<l:gentext key="nav-next-sibling" text="ต่อไป"/>
+<l:gentext key="nav-prev" text="ก่อนหน้า"/>
+<l:gentext key="nav-prev-sibling" text="ก่อนหน้า"/>
+<l:gentext key="nav-up" text="กลับ"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="หัวข้อ"/>
+<l:gentext key="index symbols" text="สัญลักษณ์"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ภาคผนวก %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="บทที่ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="สมการ %n. %t"/>
+<l:template name="example" text="ตัวอย่าง %n. %t"/>
+<l:template name="figure" text="รูป %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ภาค %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ระเบียบการ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ผลิต %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ตาราง %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ภาคผนวก %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="บทที่ %n. %t"/>
+<l:template name="part" text="ภาค %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="ตอบ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ถาม: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ถาม: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="หัวข้อ “%t”"/>
+<l:template name="refsection" text="หัวข้อ “%t”"/>
+<l:template name="refsect1" text="หัวข้อ “%t”"/>
+<l:template name="refsect2" text="หัวข้อ “%t”"/>
+<l:template name="refsect3" text="หัวข้อ “%t”"/>
+<l:template name="sect1" text="หัวข้อ “%t”"/>
+<l:template name="sect2" text="หัวข้อ “%t”"/>
+<l:template name="sect3" text="หัวข้อ “%t”"/>
+<l:template name="sect4" text="หัวข้อ “%t”"/>
+<l:template name="sect5" text="หัวข้อ “%t”"/>
+<l:template name="section" text="หัวข้อ “%t”"/>
+<l:template name="simplesect" text="หัวข้อ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ตอบ: %n"/>
+<l:template name="appendix" text="ภาคผนวก %n"/>
+<l:template name="bridgehead" text="ตอนที่ %n"/>
+<l:template name="chapter" text="บทที่ %n"/>
+<l:template name="equation" text="สมการ %n"/>
+<l:template name="example" text="ตัวอย่าง %n"/>
+<l:template name="figure" text="รูป %n"/>
+<l:template name="part" text="ภาค %n"/>
+<l:template name="procedure" text="ระเบียบการ %n"/>
+<l:template name="productionset" text="ผลิต %n"/>
+<l:template name="qandadiv" text="ถาม-ตอบ %n"/>
+<l:template name="qandaentry" text="ถาม: %n"/>
+<l:template name="question" text="ถาม: %n"/>
+<l:template name="sect1" text="ตอนที่ %n"/>
+<l:template name="sect2" text="ตอนที่ %n"/>
+<l:template name="sect3" text="ตอนที่ %n"/>
+<l:template name="sect4" text="ตอนที่ %n"/>
+<l:template name="sect5" text="ตอนที่ %n"/>
+<l:template name="section" text="ตอนที่ %n"/>
+<l:template name="table" text="ตาราง %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ภาคผนวก %n, %t"/>
+<l:template name="bridgehead" text="ตอนที่ %n, “%t”"/>
+<l:template name="chapter" text="บทที่ %n, %t"/>
+<l:template name="equation" text="สมการ %n, “%t”"/>
+<l:template name="example" text="ตัวอย่าง %n, “%t”"/>
+<l:template name="figure" text="รูป %n, “%t”"/>
+<l:template name="part" text="ภาค %n, “%t”"/>
+<l:template name="procedure" text="ระเบียบการ %n, “%t”"/>
+<l:template name="productionset" text="ผลิต %n, “%t”"/>
+<l:template name="qandadiv" text="ถาม-ตอบ %n, “%t”"/>
+<l:template name="refsect1" text="หัวข้อ “%t”"/>
+<l:template name="refsect2" text="หัวข้อ “%t”"/>
+<l:template name="refsect3" text="หัวข้อ “%t”"/>
+<l:template name="refsection" text="หัวข้อ “%t”"/>
+<l:template name="sect1" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect2" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect3" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect4" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect5" text="ตอนที่ %n, “%t”"/>
+<l:template name="section" text="ตอนที่ %n, “%t”"/>
+<l:template name="simplesect" text="หัวข้อ “%t”"/>
+<l:template name="table" text="ตาราง %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" และ "/>
+<l:template name="seplast" text=", และ "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ดู %t"/>
+<l:template name="seealso" text="ดูเพิ่มเติม %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ผู้อ่าน: "/>
+<l:template name="MsgLevel" text="ระดับ: "/>
+<l:template name="MsgOrig" text="ที่มา: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041e Thai"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/titles.xsl b/docs/xsl-generic/common/titles.xsl
new file mode 100644
index 00000000..62e1db56
--- /dev/null
+++ b/docs/xsl-generic/common/titles.xsl
@@ -0,0 +1,740 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: titles.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- title markup -->
+
+<doc:mode mode="title.markup" xmlns="">
+<refpurpose>Provides access to element titles</refpurpose>
+<refdescription id="title.markup-desc">
+<para>Processing an element in the
+<literal role="mode">title.markup</literal> mode produces the
+title of the element. This does not include the label.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:param name="verbose" select="1"/>
+ <xsl:choose>
+ <!-- * FIXME: this should handle other *info elements as well -->
+ <!-- * but this is good enough for now. -->
+ <xsl:when test="title|info/title">
+ <xsl:apply-templates select="title[1]|info/title[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'partintro'">
+ <!-- partintro's don't have titles, use the parent (part or reference)
+ title instead. -->
+ <xsl:apply-templates select="parent::*" mode="title.markup"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$verbose != 0">
+ <xsl:message>
+ <xsl:text>Request for title of element with no title: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:text> (id="</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>")</xsl:text>
+ </xsl:when>
+ <xsl:when test="@xml:id">
+ <xsl:text> (xml:id="</xsl:text>
+ <xsl:value-of select="@xml:id"/>
+ <xsl:text>")</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text>???TITLE???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="title" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- only occurs in HTML Tables! -->
+<xsl:template match="caption" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(setinfo/title|info/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(bookinfo/title|info/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(partinfo/title|info/title|docinfo/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+
+<!--
+ <xsl:message>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$allow-anchors"/>
+ </xsl:message>
+-->
+
+ <xsl:variable name="title" select="(docinfo/title
+ |info/title
+ |prefaceinfo/title
+ |chapterinfo/title
+ |appendixinfo/title
+ |title)[1]"/>
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Dedication'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="colophon" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Colophon'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(artheader/title
+ |articleinfo/title
+ |info/title
+ |title)[1]"/>
+
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(referenceinfo/title|docinfo/title|info/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="refmeta" select=".//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select=".//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+ <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]" mode="title.markup"/>
+ </xsl:when>
+ <xsl:when test="$refdesc">
+ <xsl:apply-templates select="$refdesc" mode="title.markup"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]" mode="title.markup"/>
+ </xsl:when>
+ <xsl:otherwise>REFENTRY WITHOUT TITLE???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:copy-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="refentrytitle|refname|refdescriptor" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3|refsection
+ |simplesect"
+ mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(info/title
+ |sectioninfo/title
+ |sect1info/title
+ |sect2info/title
+ |sect3info/title
+ |sect4info/title
+ |sect5info/title
+ |refsect1info/title
+ |refsect2info/title
+ |refsect3info/title
+ |refsectioninfo/title
+ |title)[1]"/>
+
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="title.markup">
+ <xsl:apply-templates mode="title.markup"/>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(bibliographyinfo/title|info/title|title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Bibliography'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(glossaryinfo/title|info/title|title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="local-name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(info/title|title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>ERROR: glossdiv missing its required title</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="glossterm" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossterm" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="index" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(indexinfo/title|info/title|title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Index'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(setindexinfo/title|info/title|title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'SetIndex'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|example|equation" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="title|info/title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="table" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(title|caption)[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="sidebar" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:apply-templates select="(info/title|sidebarinfo/title|title)[1]"
+ mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="abstract" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:choose>
+ <xsl:when test="title|info/title">
+ <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Abstract'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="caution|tip|warning|important|note" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(title|info/title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">
+ <xsl:choose>
+ <xsl:when test="local-name(.)='note'">Note</xsl:when>
+ <xsl:when test="local-name(.)='important'">Important</xsl:when>
+ <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+ <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+ <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="title.markup">
+ <!-- questions don't have titles -->
+ <xsl:text>Question</xsl:text>
+</xsl:template>
+
+<xsl:template match="answer" mode="title.markup">
+ <!-- answers don't have titles -->
+ <xsl:text>Answer</xsl:text>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="title.markup">
+ <!-- qandaentrys are represented by the first question in them -->
+ <xsl:text>Question</xsl:text>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:variable name="title" select="(info/title|
+ blockinfo/title|
+ title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'QandASet'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'LegalNotice'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="titleabbrev.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="titleabbrev">
+ <xsl:apply-templates select="titleabbrev[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="book|preface|chapter|appendix" mode="titleabbrev.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:variable name="titleabbrev" select="(docinfo/titleabbrev
+ |bookinfo/titleabbrev
+ |info/titleabbrev
+ |prefaceinfo/titleabbrev
+ |chapterinfo/titleabbrev
+ |appendixinfo/titleabbrev
+ |titleabbrev)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$titleabbrev">
+ <xsl:apply-templates select="$titleabbrev" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="titleabbrev.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:variable name="titleabbrev" select="(artheader/titleabbrev
+ |articleinfo/titleabbrev
+ |info/titleabbrev
+ |titleabbrev)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$titleabbrev">
+ <xsl:apply-templates select="$titleabbrev" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"
+ mode="titleabbrev.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:variable name="titleabbrev" select="(info/titleabbrev
+ |sectioninfo/titleabbrev
+ |sect1info/titleabbrev
+ |sect2info/titleabbrev
+ |sect3info/titleabbrev
+ |sect4info/titleabbrev
+ |sect5info/titleabbrev
+ |refsect1info/titleabbrev
+ |refsect2info/titleabbrev
+ |refsect3info/titleabbrev
+ |titleabbrev)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$titleabbrev">
+ <xsl:apply-templates select="$titleabbrev" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="no.anchor.mode">
+ <!-- Switch to normal mode if no links -->
+ <xsl:choose>
+ <xsl:when test="descendant-or-self::footnote or
+ descendant-or-self::anchor or
+ descendant-or-self::ulink or
+ descendant-or-self::link or
+ descendant-or-self::olink or
+ descendant-or-self::xref or
+ descendant-or-self::indexterm">
+
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnote" mode="no.anchor.mode">
+ <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="anchor" mode="no.anchor.mode">
+ <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="ulink" mode="no.anchor.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="link" mode="no.anchor.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="olink" mode="no.anchor.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="no.anchor.mode">
+ <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="xref" mode="no.anchor.mode">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:variable name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="count($target) = 0">
+ <xsl:message>
+ <xsl:text>XRef to nonexistent id: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+
+ <xsl:when test="@endterm">
+ <xsl:variable name="etargets" select="key('id',@endterm)"/>
+ <xsl:variable name="etarget" select="$etargets[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($etarget) = 0">
+ <xsl:message>
+ <xsl:value-of select="count($etargets)"/>
+ <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+ <xsl:value-of select="@endterm"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$etarget" mode="endterm"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$target/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+
+ <xsl:apply-templates select="$target" mode="xref-to">
+ <xsl:with-param name="referrer" select="."/>
+ <xsl:with-param name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/common/tl.xml b/docs/xsl-generic/common/tl.xml
new file mode 100644
index 00000000..b4894f23
--- /dev/null
+++ b/docs/xsl-generic/common/tl.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="tl" english-language-name="Tagalog">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/tl.xml -->
+<!-- * -->
+<!-- * E-mail the edited tl.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrak"/>
+<l:gentext key="abstract" text="Abstrak"/>
+<l:gentext key="Answer" text="Sagot:"/>
+<l:gentext key="answer" text="Sagot:"/>
+<l:gentext key="Appendix" text="Apendiks"/>
+<l:gentext key="appendix" text="Apendiks"/>
+<l:gentext key="Article" text="Artikulo"/>
+<l:gentext key="article" text="Artikulo"/>
+<l:gentext key="Author" text="May Akda"/>
+<l:gentext key="Bibliography" text="Bibliograpiya"/>
+<l:gentext key="bibliography" text="Bibliograpiya"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="BABALA"/>
+<l:gentext key="Caution" text="Babala"/>
+<l:gentext key="caution" text="Babala"/>
+<l:gentext key="Chapter" text="Kabanata"/>
+<l:gentext key="chapter" text="Kabanata"/>
+<l:gentext key="Colophon" text="Kolopon"/>
+<l:gentext key="colophon" text="Kolopon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Pag-aalay"/>
+<l:gentext key="dedication" text="Pag-aalay"/>
+<l:gentext key="Edition" text="Edisyon"/>
+<l:gentext key="edition" text="Ediisyon"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equation"/>
+<l:gentext key="equation" text="Equation"/>
+<l:gentext key="Example" text="Halimbawa"/>
+<l:gentext key="example" text="Halimbawa"/>
+<l:gentext key="Figure" text="Pigyur"/>
+<l:gentext key="figure" text="Pigyur"/>
+<l:gentext key="Glossary" text="Talahuguhanan"/>
+<l:gentext key="glossary" text="Talahuguhanan"/>
+<l:gentext key="GlossSee" text="Tingnan Ang"/>
+<l:gentext key="glosssee" text="Tingnan Ang"/>
+<l:gentext key="GlossSeeAlso" text="Tingnan Din Ang"/>
+<l:gentext key="glossseealso" text="Tingnan din ang"/>
+<l:gentext key="IMPORTANT" text="MAHALAGA"/>
+<l:gentext key="important" text="Mahalaga"/>
+<l:gentext key="Important" text="Mahalaga"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Paunawang Legal"/>
+<l:gentext key="legalnotice" text="Paunawang Legal"/>
+<l:gentext key="MsgAud" text="Awdiyens"/>
+<l:gentext key="msgaud" text="Awdiyens"/>
+<l:gentext key="MsgLevel" text="Lebel"/>
+<l:gentext key="msglevel" text="Lebel"/>
+<l:gentext key="MsgOrig" text="Pinagmulan"/>
+<l:gentext key="msgorig" text="Pinagmulan"/>
+<l:gentext key="NOTE" text="TALA"/>
+<l:gentext key="Note" text="Tala"/>
+<l:gentext key="note" text="Tala"/>
+<l:gentext key="Part" text="Bahagi"/>
+<l:gentext key="part" text="Bahagi"/>
+<l:gentext key="Preface" text="Panimula"/>
+<l:gentext key="preface" text="Panimula"/>
+<l:gentext key="Procedure" text="Mga Hakbang"/>
+<l:gentext key="procedure" text="Mga Hakbang"/>
+<l:gentext key="ProductionSet" text="Produksiyon"/>
+<l:gentext key="PubDate" text="Petsa ng Paglimbag"/>
+<l:gentext key="pubdate" text="Petsa ng Paglimbag"/>
+<l:gentext key="Published" text="Nalimbag"/>
+<l:gentext key="published" text="Nalimbag"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Tanong at Sagot"/>
+<l:gentext key="qandadiv" text="Tanong at Sagot"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Tanong:"/>
+<l:gentext key="question" text="Tanong:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Reperens"/>
+<l:gentext key="reference" text="Reperens"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Pangalan"/>
+<l:gentext key="refname" text="Pangalan"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Buod"/>
+<l:gentext key="refsynopsisdiv" text="Buod"/>
+<l:gentext key="RevHistory" text="Talaan Ng Mga Rebisyon"/>
+<l:gentext key="revhistory" text="Talaan ng mga Rebisyon"/>
+<l:gentext key="revision" text="Rebisyon"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Bahagi"/>
+<l:gentext key="sect2" text="Bahagi"/>
+<l:gentext key="sect3" text="Bahagi"/>
+<l:gentext key="sect4" text="Bahagi"/>
+<l:gentext key="sect5" text="Bahagi"/>
+<l:gentext key="section" text="Bahagi"/>
+<l:gentext key="Section" text="Bahagi"/>
+<l:gentext key="see" text="tingnan"/>
+<l:gentext key="See" text="Tingnan"/>
+<l:gentext key="seealso" text="tingnan din ang"/>
+<l:gentext key="Seealso" text="Tingnan din ang"/>
+<l:gentext key="SeeAlso" text="Tingnan Din Ang"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks ng Set"/>
+<l:gentext key="SetIndex" text="Indeks ng Set"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="hakbang"/>
+<l:gentext key="Step" text="Hakbang"/>
+<l:gentext key="table" text="Talaan"/>
+<l:gentext key="Table" text="Talaan"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Babala"/>
+<l:gentext key="warning" text="Babala"/>
+<l:gentext key="WARNING" text="BABALA"/>
+<l:gentext key="and" text="at"/>
+<l:gentext key="by" text="ni"/>
+<l:gentext key="Edited" text="In-edit"/>
+<l:gentext key="edited" text="In-edit"/>
+<l:gentext key="Editedby" text="In-edit ni"/>
+<l:gentext key="editedby" text="In-edit ni"/>
+<l:gentext key="in" text="sa"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="hindi kilalang element"/>
+<l:gentext key="notes" text="Mga tala"/>
+<l:gentext key="Notes" text="Mga Tala"/>
+<l:gentext key="Pgs" text="p."/>
+<l:gentext key="pgs" text="p."/>
+<l:gentext key="Revisedby" text="Nirebisa ni: "/>
+<l:gentext key="revisedby" text="Nirebisa ni: "/>
+<l:gentext key="TableNotes" text="Mga Tala"/>
+<l:gentext key="tablenotes" text="Mga Tala"/>
+<l:gentext key="TableofContents" text="Talaan ng Nilalaman"/>
+<l:gentext key="tableofcontents" text="Talaan ng Nilalaman"/>
+<l:gentext key="unexpectedelementname" text="hindi inaasahang element"/>
+<l:gentext key="unsupported" text="hindi sinusuportahan"/>
+<l:gentext key="xrefto" text="xref sa"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Listahan ng mga Ekwasyon"/>
+<l:gentext key="ListofEquations" text="Listahan Ng Mga Ekwasyon"/>
+<l:gentext key="ListofExamples" text="Listahan Ng Mga Halimbawa"/>
+<l:gentext key="listofexamples" text="Listahan ng mga Halimbawa"/>
+<l:gentext key="ListofFigures" text="Listahan Ng Mga Pigyur "/>
+<l:gentext key="listoffigures" text="Listahan ng mga Pigyur"/>
+<l:gentext key="ListofProcedures" text="Listahan Ng Mga Prosidyur"/>
+<l:gentext key="listofprocedures" text="Listahan ng mga Prosidyur"/>
+<l:gentext key="listoftables" text="Listahan ng mga Talaan"/>
+<l:gentext key="ListofTables" text="Listahan Ng Mga Talaan"/>
+<l:gentext key="ListofUnknown" text="Listahan Ng Mga Di Alam"/>
+<l:gentext key="listofunknown" text="Listahan ng mga Di Alam"/>
+<l:gentext key="nav-home" text="Home"/>
+<l:gentext key="nav-next" text="Sulong"/>
+<l:gentext key="nav-next-sibling" text="Mabilis na pasulong"/>
+<l:gentext key="nav-prev" text="Balik"/>
+<l:gentext key="nav-prev-sibling" text="Mabilis na pabalik"/>
+<l:gentext key="nav-up" text="Taas"/>
+<l:gentext key="nav-toc" text="TnN"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="taas"/>
+<l:gentext key="below" text="baba"/>
+<l:gentext key="sectioncalled" text="ang bahaging tinatawag na"/>
+<l:gentext key="index symbols" text="Mga simbolo"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apendiks %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kabanata %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equation %n. %t"/>
+<l:template name="example" text="Halimbawa %n. %t"/>
+<l:template name="figure" text="Pigyur %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Bahagi %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Mga Hakbang %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produksiyon %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Talaan %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apendiks %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kabanata %n. %t"/>
+<l:template name="part" text="Bahagi %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Sagot: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Tanong: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Tanong: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" sa %o"/>
+<l:template name="olink.page.citation" text=" (pahina %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(pahina %p)"/>
+<l:template name="docname" text=" sa %o"/>
+<l:template name="docnamelong" text=" sa dokumento na %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Pahina %p"/>
+<l:template name="bridgehead" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsection" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect1" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect2" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect3" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect1" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect2" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect3" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect4" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect5" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="section" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="simplesect" text="ang bahaging tinatawag na “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Sagot: %n"/>
+<l:template name="appendix" text="Apendiks %n"/>
+<l:template name="bridgehead" text="Bahagi %n"/>
+<l:template name="chapter" text="Kabanata %n"/>
+<l:template name="equation" text="Equation %n"/>
+<l:template name="example" text="Halimbawa %n"/>
+<l:template name="figure" text="Pigyur %n"/>
+<l:template name="part" text="Bahagi %n"/>
+<l:template name="procedure" text="Mga Hakbang %n"/>
+<l:template name="productionset" text="Produksiyon %n"/>
+<l:template name="qandadiv" text="Tanong at Sagot %n"/>
+<l:template name="qandaentry" text="Tanong: %n"/>
+<l:template name="question" text="Tanong: %n"/>
+<l:template name="sect1" text="Bahagi %n"/>
+<l:template name="sect2" text="Bahagi %n"/>
+<l:template name="sect3" text="Bahagi %n"/>
+<l:template name="sect4" text="Bahagi %n"/>
+<l:template name="sect5" text="Bahagi %n"/>
+<l:template name="section" text="Bahagi %n"/>
+<l:template name="table" text="Talaan %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apendiks %n, %t"/>
+<l:template name="bridgehead" text="Bahagi %n, “%t”"/>
+<l:template name="chapter" text="Kabanata %n, %t"/>
+<l:template name="equation" text="Equation %n, “%t”"/>
+<l:template name="example" text="Halimbawa %n, “%t”"/>
+<l:template name="figure" text="Pigyur %n, “%t”"/>
+<l:template name="part" text="Bahagi %n, “%t”"/>
+<l:template name="procedure" text="Mga Hakbang %n, “%t”"/>
+<l:template name="productionset" text="Produksiyon %n, “%t”"/>
+<l:template name="qandadiv" text="Tanong at Sagot %n, “%t”"/>
+<l:template name="refsect1" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect2" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect3" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsection" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect1" text="Bahagi %n, “%t”"/>
+<l:template name="sect2" text="Bahagi %n, “%t”"/>
+<l:template name="sect3" text="Bahagi %n, “%t”"/>
+<l:template name="sect4" text="Bahagi %n, “%t”"/>
+<l:template name="sect5" text="Bahagi %n, “%t”"/>
+<l:template name="section" text="Bahagi %n, “%t”"/>
+<l:template name="simplesect" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="table" text="Talaan %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" at "/>
+<l:template name="seplast" text=", at "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Tingnan Ang %t"/>
+<l:template name="seealso" text="Tingnan Din Ang %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Awdiyens: "/>
+<l:template name="MsgLevel" text="Lebel: "/>
+<l:template name="MsgOrig" text="Pinagmulan: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Depinisyon: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Enero"/>
+<l:template name="February" text="Pebrero"/>
+<l:template name="March" text="Marso"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Mayo"/>
+<l:template name="June" text="Hunyo"/>
+<l:template name="July" text="Hulyo"/>
+<l:template name="August" text="Agosto"/>
+<l:template name="September" text="Setyembre"/>
+<l:template name="October" text="Oktubre"/>
+<l:template name="November" text="Nobyembre"/>
+<l:template name="December" text="Disyembre"/>
+<l:template name="Monday" text="Lunes"/>
+<l:template name="Tuesday" text="Martes"/>
+<l:template name="Wednesday" text="Miyeskules"/>
+<l:template name="Thursday" text="Huwebes"/>
+<l:template name="Friday" text="Biyernes"/>
+<l:template name="Saturday" text="Sabado"/>
+<l:template name="Sunday" text="Linggo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ene"/>
+<l:template name="Feb" text="Peb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="Mayo"/>
+<l:template name="Jun" text="Hun"/>
+<l:template name="Jul" text="Hul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Set"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nob"/>
+<l:template name="Dec" text="Dis"/>
+<l:template name="Mon" text="Lun"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Miy"/>
+<l:template name="Thu" text="Huw"/>
+<l:template name="Fri" text="Biy"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Lin"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 Tagalog (PHILIPPINES)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/tr.xml b/docs/xsl-generic/common/tr.xml
new file mode 100644
index 00000000..b17b9408
--- /dev/null
+++ b/docs/xsl-generic/common/tr.xml
@@ -0,0 +1,660 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="tr" english-language-name="Turkish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/tr.xml -->
+<!-- * -->
+<!-- * E-mail the edited tr.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Özet"/>
+<l:gentext key="abstract" text="Özet"/>
+<l:gentext key="Answer" text="Cevap:"/>
+<l:gentext key="answer" text="Cevap:"/>
+<l:gentext key="Appendix" text="Ek"/>
+<l:gentext key="appendix" text="Ek"/>
+<l:gentext key="Article" text="Makale"/>
+<l:gentext key="article" text="Makale"/>
+<l:gentext key="Author" text="Yazar"/>
+<l:gentext key="Bibliography" text="Kaynakça"/>
+<l:gentext key="bibliography" text="Kaynakça"/>
+<l:gentext key="Book" text="Kitap"/>
+<l:gentext key="book" text="Kitap"/>
+<l:gentext key="CAUTION" text="DİKKAT"/>
+<l:gentext key="Caution" text="Dikkat"/>
+<l:gentext key="caution" text="Dikkat"/>
+<l:gentext key="Chapter" text="Bölüm"/>
+<l:gentext key="chapter" text="Bölüm"/>
+<l:gentext key="Colophon" text="Kitap hakkında"/>
+<l:gentext key="colophon" text="Kitap hakkında"/>
+<l:gentext key="Copyright" text="Telif Hakkı"/>
+<l:gentext key="copyright" text="Telif Hakkı"/>
+<l:gentext key="Dedication" text="İthaf"/>
+<l:gentext key="dedication" text="İthaf"/>
+<l:gentext key="Edition" text="Baskı"/>
+<l:gentext key="edition" text="Baskı"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Denklem"/>
+<l:gentext key="equation" text="Denklem"/>
+<l:gentext key="Example" text="Örnek"/>
+<l:gentext key="example" text="Örnek"/>
+<l:gentext key="Figure" text="Şekil"/>
+<l:gentext key="figure" text="Şekil"/>
+<l:gentext key="Glossary" text="Sözlük"/>
+<l:gentext key="glossary" text="Sözlük"/>
+<l:gentext key="GlossSee" text="Bkz."/>
+<l:gentext key="glosssee" text="Bkz."/>
+<l:gentext key="GlossSeeAlso" text="Bkz."/>
+<l:gentext key="glossseealso" text="Bkz."/>
+<l:gentext key="IMPORTANT" text="ÖNEMLİ"/>
+<l:gentext key="important" text="Önemli"/>
+<l:gentext key="Important" text="Önemli"/>
+<l:gentext key="Index" text="Dizin"/>
+<l:gentext key="index" text="Dizin"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Yasal Uyarı"/>
+<l:gentext key="legalnotice" text="Yasal Uyarı"/>
+<l:gentext key="MsgAud" text="Hedef Okuyucu"/>
+<l:gentext key="msgaud" text="Hedef Okuyucu"/>
+<l:gentext key="MsgLevel" text="Düzey"/>
+<l:gentext key="msglevel" text="Düzey"/>
+<l:gentext key="MsgOrig" text="Kaynak"/>
+<l:gentext key="msgorig" text="Kaynak"/>
+<l:gentext key="NOTE" text="NOT"/>
+<l:gentext key="Note" text="Not"/>
+<l:gentext key="note" text="Not"/>
+<l:gentext key="Part" text="Kısım"/>
+<l:gentext key="part" text="Kısım"/>
+<l:gentext key="Preface" text="Önsöz"/>
+<l:gentext key="preface" text="Önsöz"/>
+<l:gentext key="Procedure" text="Yönerge"/>
+<l:gentext key="procedure" text="Yönerge"/>
+<l:gentext key="ProductionSet" text="Prodüksiyon"/>
+<l:gentext key="PubDate" text="Yayımlanma Tarihi"/>
+<l:gentext key="pubdate" text="Yayımlanma Tarihi"/>
+<l:gentext key="Published" text="Yayımlanma"/>
+<l:gentext key="published" text="Yayımlanma"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="S ve C"/>
+<l:gentext key="qandadiv" text="S ve C"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Soru:"/>
+<l:gentext key="question" text="Soru:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referans"/>
+<l:gentext key="reference" text="Referans"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Referans Adı"/>
+<l:gentext key="refname" text="Referans Adı"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Özet"/>
+<l:gentext key="refsynopsisdiv" text="Özet"/>
+<l:gentext key="RevHistory" text="Baskı Tarihçesi"/>
+<l:gentext key="revhistory" text="Baskı Tarihçesi"/>
+<l:gentext key="revision" text="Baskı"/>
+<l:gentext key="Revision" text="Baskı"/>
+<l:gentext key="sect1" text="Kısım"/>
+<l:gentext key="sect2" text="Kısım"/>
+<l:gentext key="sect3" text="Kısım"/>
+<l:gentext key="sect4" text="Kısım"/>
+<l:gentext key="sect5" text="Kısım"/>
+<l:gentext key="section" text="Kısım"/>
+<l:gentext key="Section" text="Kısım"/>
+<l:gentext key="see" text="bkz."/>
+<l:gentext key="See" text="Bkz."/>
+<l:gentext key="seealso" text="Bkz."/>
+<l:gentext key="Seealso" text="Bakınız"/>
+<l:gentext key="SeeAlso" text="Bakınız"/>
+<l:gentext key="set" text="Takım"/>
+<l:gentext key="Set" text="Takım"/>
+<l:gentext key="setindex" text="Takım Dizini"/>
+<l:gentext key="SetIndex" text="Takım Dizini"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="kenar çubuğu"/>
+<l:gentext key="step" text="adım"/>
+<l:gentext key="Step" text="Adım"/>
+<l:gentext key="table" text="Tablo"/>
+<l:gentext key="Table" text="Tablo"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="İpucu"/>
+<l:gentext key="TIP" text="İPUCU"/>
+<l:gentext key="Tip" text="İpucu"/>
+<l:gentext key="Warning" text="Uyarı"/>
+<l:gentext key="warning" text="Uyarı"/>
+<l:gentext key="WARNING" text="UYARI"/>
+<l:gentext key="and" text="ve"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Yayına hazırlayan"/>
+<l:gentext key="edited" text="yayına hazırlayan"/>
+<l:gentext key="Editedby" text="Yayına hazırlayan"/>
+<l:gentext key="editedby" text="yayına hazırlayan"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="varolmayan eleman"/>
+<l:gentext key="notes" text="Notlar"/>
+<l:gentext key="Notes" text="Notlar"/>
+<l:gentext key="Pgs" text="Sayfa"/>
+<l:gentext key="pgs" text="Sayfa"/>
+<l:gentext key="Revisedby" text="Düzeltmeler: "/>
+<l:gentext key="revisedby" text="Düzeltmeler: "/>
+<l:gentext key="TableNotes" text="Notlar"/>
+<l:gentext key="tablenotes" text="Notlar"/>
+<l:gentext key="TableofContents" text="İçindekiler"/>
+<l:gentext key="tableofcontents" text="İçindekiler"/>
+<l:gentext key="unexpectedelementname" text="Beklenmeyen eleman adı"/>
+<l:gentext key="unsupported" text="desteklenmiyor"/>
+<l:gentext key="xrefto" text=""/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Denklemler"/>
+<l:gentext key="ListofEquations" text="Denklemler"/>
+<l:gentext key="ListofExamples" text="Örnekler"/>
+<l:gentext key="listofexamples" text="Örnekler"/>
+<l:gentext key="ListofFigures" text="Şekiller"/>
+<l:gentext key="listoffigures" text="Şekiller"/>
+<l:gentext key="ListofProcedures" text="Yönergeler"/>
+<l:gentext key="listofprocedures" text="Yönergeler"/>
+<l:gentext key="listoftables" text="Tablolar"/>
+<l:gentext key="ListofTables" text="Tablolar"/>
+<l:gentext key="ListofUnknown" text="Bilinmeyenler"/>
+<l:gentext key="listofunknown" text="Bilinmeyenler"/>
+<l:gentext key="nav-home" text="Başlangıç"/>
+<l:gentext key="nav-next" text="Sonraki"/>
+<l:gentext key="nav-next-sibling" text="Sonraki Bölüm"/>
+<l:gentext key="nav-prev" text="Önceki"/>
+<l:gentext key="nav-prev-sibling" text="Önceki Bölüm"/>
+<l:gentext key="nav-up" text="Yukarı"/>
+<l:gentext key="nav-toc" text="İçindekiler"/>
+<l:gentext key="Draft" text="Taslak"/>
+<l:gentext key="above" text="üstünde"/>
+<l:gentext key="below" text="altında"/>
+<l:gentext key="sectioncalled" text=""/>
+<l:gentext key="index symbols" text="Semboller"/>
+<l:gentext key="lowercase.alpha" text="abcçdefgğhıijklmnoöprsştuüvyz"/>
+<l:gentext key="uppercase.alpha" text="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="3"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Ek %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Denklem %n. %t"/>
+<l:template name="example" text="Örnek %n. %t"/>
+<l:template name="figure" text="Şekil %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Kısım %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Yönerge %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Prodüksiyon %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tablo %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Ek %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="part" text="Kısım %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Cevap: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Soru: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Soru: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(sayfa %p)"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(shf. %p)"/>
+<l:template name="Page" text="Sayfa %p"/>
+<l:template name="bridgehead" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="sect1" text=" “%t”"/>
+<l:template name="sect2" text=" “%t”"/>
+<l:template name="sect3" text=" “%t”"/>
+<l:template name="sect4" text=" “%t”"/>
+<l:template name="sect5" text=" “%t”"/>
+<l:template name="section" text=" “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Cevap: %n"/>
+<l:template name="appendix" text="Ek %n"/>
+<l:template name="bridgehead" text="Kısım %n"/>
+<l:template name="chapter" text="Bölüm %n"/>
+<l:template name="equation" text="Denklem %n"/>
+<l:template name="example" text="Örnek %n"/>
+<l:template name="figure" text="Şekil %n"/>
+<l:template name="part" text="Kısım %n"/>
+<l:template name="procedure" text="Yönerge %n"/>
+<l:template name="productionset" text="Prodüksiyon %n"/>
+<l:template name="qandadiv" text="S ve C %n"/>
+<l:template name="qandaentry" text="Soru: %n"/>
+<l:template name="question" text="Soru: %n"/>
+<l:template name="sect1" text="Kısım %n"/>
+<l:template name="sect2" text="Kısım %n"/>
+<l:template name="sect3" text="Kısım %n"/>
+<l:template name="sect4" text="Kısım %n"/>
+<l:template name="sect5" text="Kısım %n"/>
+<l:template name="section" text="Kısım %n"/>
+<l:template name="table" text="Tablo %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Ek %n, %t"/>
+<l:template name="bridgehead" text="Kısım %n, “%t”"/>
+<l:template name="chapter" text="Bölüm %n, %t"/>
+<l:template name="equation" text="Denklem %n, “%t”"/>
+<l:template name="example" text="Örnek %n, “%t”"/>
+<l:template name="figure" text="Şekil %n, “%t”"/>
+<l:template name="part" text="Kısım %n, “%t”"/>
+<l:template name="procedure" text="Yönerge %n, “%t”"/>
+<l:template name="productionset" text="Prodüksiyon %n, “%t”"/>
+<l:template name="qandadiv" text="S ve C %n, “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="sect1" text="Kısım %n, “%t”"/>
+<l:template name="sect2" text="Kısım %n, “%t”"/>
+<l:template name="sect3" text="Kısım %n, “%t”"/>
+<l:template name="sect4" text="Kısım %n, “%t”"/>
+<l:template name="sect5" text="Kısım %n, “%t”"/>
+<l:template name="section" text="Kısım %n, “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+<l:template name="table" text="Tablo %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ve "/>
+<l:template name="seplast" text=", ve "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Bkz. %t"/>
+<l:template name="seealso" text="Bkz. %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Hedef Okuyucu: "/>
+<l:template name="MsgLevel" text="Düzey: "/>
+<l:template name="MsgOrig" text="Kaynak: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ocak"/>
+<l:template name="February" text="Şubat"/>
+<l:template name="March" text="Mart"/>
+<l:template name="April" text="Nisan"/>
+<l:template name="May" text="Mayıs"/>
+<l:template name="June" text="Haziran"/>
+<l:template name="July" text="Temmuz"/>
+<l:template name="August" text="Ağustos"/>
+<l:template name="September" text="Eylül"/>
+<l:template name="October" text="Ekim"/>
+<l:template name="November" text="Kasım"/>
+<l:template name="December" text="Aralık"/>
+<l:template name="Monday" text="Pazartesi"/>
+<l:template name="Tuesday" text="Salı"/>
+<l:template name="Wednesday" text="Çarşamba"/>
+<l:template name="Thursday" text="Perşembe"/>
+<l:template name="Friday" text="Cuma"/>
+<l:template name="Saturday" text="Cumartesi"/>
+<l:template name="Sunday" text="Pazar"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Oca"/>
+<l:template name="Feb" text="Şub"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Nis"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Haz"/>
+<l:template name="Jul" text="Tem"/>
+<l:template name="Aug" text="Ağu"/>
+<l:template name="Sep" text="Eyl"/>
+<l:template name="Oct" text="Eki"/>
+<l:template name="Nov" text="Kas"/>
+<l:template name="Dec" text="Ara"/>
+<l:template name="Mon" text="Pzt"/>
+<l:template name="Tue" text="Sal"/>
+<l:template name="Wed" text="Çar"/>
+<l:template name="Thu" text="Per"/>
+<l:template name="Fri" text="Cum"/>
+<l:template name="Sat" text="Cts"/>
+<l:template name="Sun" text="Paz"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041f Turkish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Semboller</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Ç</l:l>
+<l:l i="4">ç</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="6">E</l:l>
+<l:l i="6">e</l:l>
+<l:l i="7">F</l:l>
+<l:l i="7">f</l:l>
+<l:l i="8">G</l:l>
+<l:l i="8">g</l:l>
+<l:l i="9">Ğ</l:l>
+<l:l i="9">ğ</l:l>
+<l:l i="10">H</l:l>
+<l:l i="10">h</l:l>
+<l:l i="11">I</l:l>
+<l:l i="11">ı</l:l>
+<l:l i="12">İ</l:l>
+<l:l i="12">i</l:l>
+<l:l i="13">J</l:l>
+<l:l i="13">j</l:l>
+<l:l i="14">K</l:l>
+<l:l i="14">k</l:l>
+<l:l i="15">L</l:l>
+<l:l i="15">l</l:l>
+<l:l i="16">M</l:l>
+<l:l i="16">m</l:l>
+<l:l i="17">N</l:l>
+<l:l i="17">n</l:l>
+<l:l i="18">O</l:l>
+<l:l i="18">o</l:l>
+<l:l i="19">Ö</l:l>
+<l:l i="19">ö</l:l>
+<l:l i="20">P</l:l>
+<l:l i="20">p</l:l>
+<l:l i="21">R</l:l>
+<l:l i="21">r</l:l>
+<l:l i="22">S</l:l>
+<l:l i="22">s</l:l>
+<l:l i="23">Ş</l:l>
+<l:l i="23">ş</l:l>
+<l:l i="24">T</l:l>
+<l:l i="24">t</l:l>
+<l:l i="25">U</l:l>
+<l:l i="25">u</l:l>
+<l:l i="26">Ü</l:l>
+<l:l i="26">ü</l:l>
+<l:l i="27">V</l:l>
+<l:l i="27">v</l:l>
+<l:l i="28">Y</l:l>
+<l:l i="28">y</l:l>
+<l:l i="29">Z</l:l>
+<l:l i="29">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/uk.xml b/docs/xsl-generic/common/uk.xml
new file mode 100644
index 00000000..17678e55
--- /dev/null
+++ b/docs/xsl-generic/common/uk.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="uk" english-language-name="Ukrainian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/uk.xml -->
+<!-- * -->
+<!-- * E-mail the edited uk.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Анотація"/>
+<l:gentext key="abstract" text="Анотація"/>
+<l:gentext key="Answer" text="В:"/>
+<l:gentext key="answer" text="в:"/>
+<l:gentext key="Appendix" text="Додаток"/>
+<l:gentext key="appendix" text="додаток"/>
+<l:gentext key="Article" text="Стаття"/>
+<l:gentext key="article" text="стаття"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Литература"/>
+<l:gentext key="bibliography" text="литература"/>
+<l:gentext key="Book" text="Книга"/>
+<l:gentext key="book" text="книга"/>
+<l:gentext key="CAUTION" text="ЗАСТЕРЕЖЕННЯ"/>
+<l:gentext key="Caution" text="Застереження"/>
+<l:gentext key="caution" text="застереження"/>
+<l:gentext key="Chapter" text="Розділ"/>
+<l:gentext key="chapter" text="розділ"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Авторське право"/>
+<l:gentext key="copyright" text="авторське право"/>
+<l:gentext key="Dedication" text="Присвячення"/>
+<l:gentext key="dedication" text="присвячення"/>
+<l:gentext key="Edition" text="Видання"/>
+<l:gentext key="edition" text="видання"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="Формула"/>
+<l:gentext key="Example" text="Приклад"/>
+<l:gentext key="example" text="приклад"/>
+<l:gentext key="Figure" text="Рисунок"/>
+<l:gentext key="figure" text="Рисунок"/>
+<l:gentext key="Glossary" text="Глосарій"/>
+<l:gentext key="glossary" text="глосарій"/>
+<l:gentext key="GlossSee" text="Див."/>
+<l:gentext key="glosssee" text="див."/>
+<l:gentext key="GlossSeeAlso" text="Див. також"/>
+<l:gentext key="glossseealso" text="див. також"/>
+<l:gentext key="IMPORTANT" text="ВАЖЛИВО"/>
+<l:gentext key="important" text="важливо"/>
+<l:gentext key="Important" text="Важливо"/>
+<l:gentext key="Index" text="Предметный покажchcy;ик"/>
+<l:gentext key="index" text="предметный покажchcy;ик"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Правова примітка"/>
+<l:gentext key="legalnotice" text="правова примітка"/>
+<l:gentext key="MsgAud" text="Аудиторія"/>
+<l:gentext key="msgaud" text="аудиторія"/>
+<l:gentext key="MsgLevel" text="Рівень"/>
+<l:gentext key="msglevel" text="рівень"/>
+<l:gentext key="MsgOrig" text="Джерело"/>
+<l:gentext key="msgorig" text="джерело"/>
+<l:gentext key="NOTE" text="ПРИМІТКА"/>
+<l:gentext key="Note" text="Примітка"/>
+<l:gentext key="note" text="примітка"/>
+<l:gentext key="Part" text="Частина"/>
+<l:gentext key="part" text="частина"/>
+<l:gentext key="Preface" text="Передмова"/>
+<l:gentext key="preface" text="передмова"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="Процедура"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Опубліковано"/>
+<l:gentext key="published" text="опубліковано"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="П и В"/>
+<l:gentext key="qandadiv" text="П и В"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="П"/>
+<l:gentext key="question" text="п"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Посилання"/>
+<l:gentext key="reference" text="посилання"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Name"/>
+<l:gentext key="refname" text="Name"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Короткий огляд"/>
+<l:gentext key="refsynopsisdiv" text="короткий огляд"/>
+<l:gentext key="RevHistory" text="Опис змін"/>
+<l:gentext key="revhistory" text="опис змін"/>
+<l:gentext key="revision" text="перегляд"/>
+<l:gentext key="Revision" text="Перегляд"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="параграф"/>
+<l:gentext key="Section" text="Параграф"/>
+<l:gentext key="see" text="див."/>
+<l:gentext key="See" text="Див."/>
+<l:gentext key="seealso" text="сив. також"/>
+<l:gentext key="Seealso" text="Див. також"/>
+<l:gentext key="SeeAlso" text="Див. також"/>
+<l:gentext key="set" text="вибірка"/>
+<l:gentext key="Set" text="Вибірка"/>
+<l:gentext key="setindex" text="индекс вибірки"/>
+<l:gentext key="SetIndex" text="Индекс вибірки"/>
+<l:gentext key="Sidebar" text="Выділення"/>
+<l:gentext key="sidebar" text="выділення"/>
+<l:gentext key="step" text="крок"/>
+<l:gentext key="Step" text="Крок"/>
+<l:gentext key="table" text="таблиця"/>
+<l:gentext key="Table" text="Таблиця"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="підказка"/>
+<l:gentext key="TIP" text="ПІДКАЗКА"/>
+<l:gentext key="Tip" text="Підказка"/>
+<l:gentext key="Warning" text="Застереження"/>
+<l:gentext key="warning" text="застереження"/>
+<l:gentext key="WARNING" text="ЗАСТЕРЕЖЕННЯ"/>
+<l:gentext key="and" text=""/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Пид редакцією"/>
+<l:gentext key="edited" text="пид редакцією"/>
+<l:gentext key="Editedby" text="Пид редакцією"/>
+<l:gentext key="editedby" text="пид редакцією"/>
+<l:gentext key="in" text="в"/>
+<l:gentext key="lastlistcomma" text="."/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="non-existant element"/>
+<l:gentext key="notes" text="примітки"/>
+<l:gentext key="Notes" text="Примітки"/>
+<l:gentext key="Pgs" text="Стор."/>
+<l:gentext key="pgs" text="стор."/>
+<l:gentext key="Revisedby" text="Коректура:;"/>
+<l:gentext key="revisedby" text="коректура:;"/>
+<l:gentext key="TableNotes" text="Примітки"/>
+<l:gentext key="tablenotes" text="примітки"/>
+<l:gentext key="TableofContents" text="Зміст"/>
+<l:gentext key="tableofcontents" text="зміст"/>
+<l:gentext key="unexpectedelementname" text="unexpected element name"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="список формул"/>
+<l:gentext key="ListofEquations" text="Список формул"/>
+<l:gentext key="ListofExamples" text="Список прикладів"/>
+<l:gentext key="listofexamples" text="список прикладів"/>
+<l:gentext key="ListofFigures" text="Список ілюстрацій"/>
+<l:gentext key="listoffigures" text="Список ілюстрацій"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="список таблиць"/>
+<l:gentext key="ListofTables" text="Список таблиц;ь"/>
+<l:gentext key="ListofUnknown" text="Невизначений список"/>
+<l:gentext key="listofunknown" text="невизначений список"/>
+<l:gentext key="nav-home" text="Початок"/>
+<l:gentext key="nav-next" text="далі"/>
+<l:gentext key="nav-next-sibling" text="далі по рівню"/>
+<l:gentext key="nav-prev" text="назад"/>
+<l:gentext key="nav-prev-sibling" text="назад по рівню"/>
+<l:gentext key="nav-up" text="Догори"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Додаток %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Розділ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Приклад %n. %t"/>
+<l:template name="figure" text="Рисунок %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Частина %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблиця %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Додаток %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Розділ %n. %t"/>
+<l:template name="part" text="Частина %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="В: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="П %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="П %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="В: %n"/>
+<l:template name="appendix" text="Додаток %n"/>
+<l:template name="bridgehead" text="Параграф %n"/>
+<l:template name="chapter" text="Розділ %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Приклад %n"/>
+<l:template name="figure" text="Рисунок %n"/>
+<l:template name="part" text="Частина %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="П и В %n"/>
+<l:template name="qandaentry" text="П %n"/>
+<l:template name="question" text="П %n"/>
+<l:template name="sect1" text="Параграф %n"/>
+<l:template name="sect2" text="Параграф %n"/>
+<l:template name="sect3" text="Параграф %n"/>
+<l:template name="sect4" text="Параграф %n"/>
+<l:template name="sect5" text="Параграф %n"/>
+<l:template name="section" text="Параграф %n"/>
+<l:template name="table" text="Таблиця %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Додаток %n, %t"/>
+<l:template name="bridgehead" text="Параграф %n, “%t”"/>
+<l:template name="chapter" text="Розділ %n, %t"/>
+<l:template name="equation" text="Формула %n, “%t”"/>
+<l:template name="example" text="Приклад %n, “%t”"/>
+<l:template name="figure" text="Рисунок %n, “%t”"/>
+<l:template name="part" text="Частина %n, “%t”"/>
+<l:template name="procedure" text="Процедура %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="П и В %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Параграф %n, “%t”"/>
+<l:template name="sect2" text="Параграф %n, “%t”"/>
+<l:template name="sect3" text="Параграф %n, “%t”"/>
+<l:template name="sect4" text="Параграф %n, “%t”"/>
+<l:template name="sect5" text="Параграф %n, “%t”"/>
+<l:template name="section" text="Параграф %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Таблиця %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" "/>
+<l:template name="seplast" text=". "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Див. %t"/>
+<l:template name="seealso" text="Див. також %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Аудиторія: "/>
+<l:template name="MsgLevel" text="Рівень: "/>
+<l:template name="MsgOrig" text="Джерело: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0422 Ukrainian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/utility.xml b/docs/xsl-generic/common/utility.xml
new file mode 100644
index 00000000..ead9419e
--- /dev/null
+++ b/docs/xsl-generic/common/utility.xml
@@ -0,0 +1,259 @@
+<?xml version="1.0"?>
+
+<reference xml:id="utility">
+ <info>
+ <title>Common » Utility Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: utility.xsl 7101 2007-07-20 15:32:12Z xmldoc $
+ </releaseinfo>
+ </info>
+
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+
+<para>This is technical reference documentation for the
+ miscellaneous utility templates in the DocBook XSL
+ Stylesheets.</para>
+
+ <note>
+
+<para>These templates are defined in a separate file from the set
+ of “common” templates because some of the common templates
+ reference DocBook XSL stylesheet parameters, requiring the
+ entire set of parameters to be imported/included in any
+ stylesheet that imports/includes the common templates.</para>
+
+
+<para>The utility templates don’t import or include any DocBook
+ XSL stylesheet parameters, so the utility templates can be used
+ without importing the whole set of parameters.</para>
+
+ </note>
+
+<para>This is not intended to be user documentation. It is
+ provided for developers writing customization layers for the
+ stylesheets.</para>
+
+ </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.log.message">
+<refnamediv>
+<refname>log.message</refname>
+<refpurpose>Logs/emits formatted notes and warnings</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="log.message"&gt;
+&lt;xsl:param name="level"/&gt;
+&lt;xsl:param name="source"/&gt;
+&lt;xsl:param name="context-desc"/&gt;
+&lt;xsl:param name="context-desc-field-length"&gt;12&lt;/xsl:param&gt;
+&lt;xsl:param name="context-desc-padded"&gt;
+ &lt;xsl:if test="not($context-desc = '')"&gt;
+ &lt;xsl:call-template name="pad-string"&gt;
+ &lt;xsl:with-param name="leftRight"&gt;right&lt;/xsl:with-param&gt;
+ &lt;xsl:with-param name="padVar" select="substring($context-desc, 1, $context-desc-field-length)"/&gt;
+ &lt;xsl:with-param name="length" select="$context-desc-field-length"/&gt;
+ &lt;/xsl:call-template&gt;
+ &lt;/xsl:if&gt;
+ &lt;/xsl:param&gt;
+&lt;xsl:param name="message"/&gt;
+&lt;xsl:param name="message-field-length" select="45"/&gt;
+&lt;xsl:param name="message-padded"&gt;
+ &lt;xsl:variable name="spaces-for-blank-level"&gt;
+ &lt;!-- * if the level field is blank, we'll need to pad out --&gt;
+ &lt;!-- * the message field with spaces to compensate --&gt;
+ &lt;xsl:choose&gt;
+ &lt;xsl:when test="$level = ''"&gt;
+ &lt;xsl:value-of select="4 + 2"/&gt;
+ &lt;!-- * 4 = hard-coded length of comment text ("Note" or "Warn") --&gt;
+ &lt;!-- * + 2 = length of colon-plus-space separator ": " --&gt;
+ &lt;/xsl:when&gt;
+ &lt;xsl:otherwise&gt;
+ &lt;xsl:value-of select="0"/&gt;
+ &lt;/xsl:otherwise&gt;
+ &lt;/xsl:choose&gt;
+ &lt;/xsl:variable&gt;
+ &lt;xsl:variable name="spaces-for-blank-context-desc"&gt;
+ &lt;!-- * if the context-description field is blank, we'll need --&gt;
+ &lt;!-- * to pad out the message field with spaces to compensate --&gt;
+ &lt;xsl:choose&gt;
+ &lt;xsl:when test="$context-desc = ''"&gt;
+ &lt;xsl:value-of select="$context-desc-field-length + 2"/&gt;
+ &lt;!-- * + 2 = length of colon-plus-space separator ": " --&gt;
+ &lt;/xsl:when&gt;
+ &lt;xsl:otherwise&gt;
+ &lt;xsl:value-of select="0"/&gt;
+ &lt;/xsl:otherwise&gt;
+ &lt;/xsl:choose&gt;
+ &lt;/xsl:variable&gt;
+ &lt;xsl:variable name="extra-spaces" select="$spaces-for-blank-level + $spaces-for-blank-context-desc"/&gt;
+ &lt;xsl:call-template name="pad-string"&gt;
+ &lt;xsl:with-param name="leftRight"&gt;right&lt;/xsl:with-param&gt;
+ &lt;xsl:with-param name="padVar" select="substring($message, 1, ($message-field-length + $extra-spaces))"/&gt;
+ &lt;xsl:with-param name="length" select="$message-field-length + $extra-spaces"/&gt;
+ &lt;/xsl:call-template&gt;
+ &lt;/xsl:param&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <function>log.message</function> template is a utility
+ template for logging/emitting formatted messages – that is,
+ notes and warnings, along with a given log “level” and an
+ identifier for the “source” that the message relates to.</para>
+
+ </refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+ <varlistentry><term>level</term>
+ <listitem>
+
+<para>Text to log/emit in the message-level field to
+ indicate the message level
+ (<literal>Note</literal> or
+ <literal>Warning</literal>)</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>source</term>
+ <listitem>
+
+<para>Text to log/emit in the source field to identify the
+ “source” to which the notification/warning relates.
+ This can be any arbitrary string, but because the
+ message lacks line and column numbers to identify the
+ exact part of the source document to which it
+ relates, the intention is that the value you pass
+ into the <literal>source</literal> parameter should
+ give the user some way to identify the portion of
+ their source document on which to take potentially
+ take action in response to the log message (for
+ example, to edit, change, or add content).</para>
+
+
+<para>So the <literal>source</literal> value should be,
+ for example, an ID, book/chapter/article title, title
+ of some formal object, or even a string giving an
+ XPath expression.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>context-desc</term>
+ <listitem>
+
+<para>Text to log/emit in the context-description field to
+ describe the context for the message.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>context-desc-field-length</term>
+ <listitem>
+
+<para>Specifies length of the context-description field
+ (in characters); default is 12</para>
+
+
+<para>If the text specified by the
+ <literal>context-desc</literal> parameter is longer
+ than the number of characters specified in
+ <literal>context-desc-field-length</literal>, it is
+ truncated to <literal>context-desc-field-length</literal>
+ (12 characters by default).</para>
+
+
+<para>If the specified text is shorter than
+ <literal>context-desc-field-length</literal>,
+ it is right-padded out to
+ <literal>context-desc-field-length</literal> (12 by
+ default).</para>
+
+
+<para>If no value has been specified for the
+ <literal>context-desc</literal> parameter, the field is
+ left empty and the text of the log message begins with
+ the value of the <literal>message</literal>
+ parameter.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>message</term>
+ <listitem>
+
+<para>Text to log/emit in the actual message field</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>message-field-length</term>
+ <listitem>
+
+<para>Specifies length of the message
+ field (in characters); default is 45</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Outputs a message (generally, to standard error).</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.doc.title">
+<refnamediv>
+<refname>get.doc.title</refname>
+<refpurpose>Gets a title from the current document</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.doc.title"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>The <function>get.doc.title</function> template is a
+ utility template for returning the first title found in the
+ current document.</para>
+
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a string containing some identifying title for the
+ current document .</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.pad-string">
+<refnamediv>
+<refname>pad-string</refname>
+<refpurpose>Right-pads or left-pads a string out to a certain length</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="pad-string"&gt;
+&lt;xsl:param name="padChar" select="' '"/&gt;
+&lt;xsl:param name="leftRight"&gt;left&lt;/xsl:param&gt;
+&lt;xsl:param name="padVar"/&gt;
+&lt;xsl:param name="length"/&gt;
+ ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title/>
+
+<para>This function takes string <parameter>padVar</parameter> and
+ pads it out in the direction <parameter>rightLeft</parameter> to
+ the string-length <parameter>length</parameter>, using string
+ <parameter>padChar</parameter> (a space character by default) as
+ the padding string (note that <parameter>padChar</parameter> can
+ be a string; it is not limited to just being a single
+ character).</para>
+
+ <note>
+
+<para>This function began as a copy of Nate Austin's
+ <function>prepend-pad</function> function in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html">Padding
+ Content</link> section of Dave Pawson's <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT
+ FAQ</link>.</para>
+
+ </note>
+ </refsect1><refsect1><title>Returns</title>
+
+<para>Returns a (padded) string.</para>
+</refsect1></refentry>
+</reference>
+
diff --git a/docs/xsl-generic/common/utility.xsl b/docs/xsl-generic/common/utility.xsl
new file mode 100644
index 00000000..37092b7c
--- /dev/null
+++ b/docs/xsl-generic/common/utility.xsl
@@ -0,0 +1,290 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:dyn="http://exslt.org/dynamic"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ exclude-result-prefixes="doc dyn saxon"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: utility.xsl 7101 2007-07-20 15:32:12Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+<doc:reference xmlns="" xml:id="utility">
+ <info>
+ <title>Common » Utility Template Reference</title>
+ <releaseinfo role="meta">
+ $Id: utility.xsl 7101 2007-07-20 15:32:12Z xmldoc $
+ </releaseinfo>
+ </info>
+ <!-- * yes, partintro is a valid child of a reference... -->
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+ <para>This is technical reference documentation for the
+ miscellaneous utility templates in the DocBook XSL
+ Stylesheets.</para>
+ <note>
+ <para>These templates are defined in a separate file from the set
+ of “common” templates because some of the common templates
+ reference DocBook XSL stylesheet parameters, requiring the
+ entire set of parameters to be imported/included in any
+ stylesheet that imports/includes the common templates.</para>
+ <para>The utility templates don’t import or include any DocBook
+ XSL stylesheet parameters, so the utility templates can be used
+ without importing the whole set of parameters.</para>
+ </note>
+ <para>This is not intended to be user documentation. It is
+ provided for developers writing customization layers for the
+ stylesheets.</para>
+ </partintro>
+</doc:reference>
+
+<!-- ====================================================================== -->
+
+<doc:template name="log.message" xmlns="">
+ <refpurpose>Logs/emits formatted notes and warnings</refpurpose>
+
+ <refdescription id="log.message-desc">
+ <para>The <function>log.message</function> template is a utility
+ template for logging/emitting formatted messages&#xa0;– that is,
+ notes and warnings, along with a given log “level” and an
+ identifier for the “source” that the message relates to.</para>
+ </refdescription>
+
+ <refparameter id="log.message-params">
+ <variablelist>
+ <varlistentry><term>level</term>
+ <listitem>
+ <para>Text to log/emit in the message-level field to
+ indicate the message level
+ (<literal>Note</literal> or
+ <literal>Warning</literal>)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>source</term>
+ <listitem>
+ <para>Text to log/emit in the source field to identify the
+ “source” to which the notification/warning relates.
+ This can be any arbitrary string, but because the
+ message lacks line and column numbers to identify the
+ exact part of the source document to which it
+ relates, the intention is that the value you pass
+ into the <literal>source</literal> parameter should
+ give the user some way to identify the portion of
+ their source document on which to take potentially
+ take action in response to the log message (for
+ example, to edit, change, or add content).</para>
+ <para>So the <literal>source</literal> value should be,
+ for example, an ID, book/chapter/article title, title
+ of some formal object, or even a string giving an
+ XPath expression.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>context-desc</term>
+ <listitem>
+ <para>Text to log/emit in the context-description field to
+ describe the context for the message.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>context-desc-field-length</term>
+ <listitem>
+ <para>Specifies length of the context-description field
+ (in characters); default is 12</para>
+ <para>If the text specified by the
+ <literal>context-desc</literal> parameter is longer
+ than the number of characters specified in
+ <literal>context-desc-field-length</literal>, it is
+ truncated to <literal>context-desc-field-length</literal>
+ (12 characters by default).</para>
+ <para>If the specified text is shorter than
+ <literal>context-desc-field-length</literal>,
+ it is right-padded out to
+ <literal>context-desc-field-length</literal> (12 by
+ default).</para>
+ <para>If no value has been specified for the
+ <literal>context-desc</literal> parameter, the field is
+ left empty and the text of the log message begins with
+ the value of the <literal>message</literal>
+ parameter.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>message</term>
+ <listitem>
+ <para>Text to log/emit in the actual message field</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>message-field-length</term>
+ <listitem>
+ <para>Specifies length of the message
+ field (in characters); default is 45</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refreturn id="log.message-returns">
+ <para>Outputs a message (generally, to standard error).</para></refreturn>
+</doc:template>
+<xsl:template name="log.message">
+ <xsl:param name="level"/>
+ <xsl:param name="source"/>
+ <xsl:param name="context-desc"/>
+ <xsl:param name="context-desc-field-length">12</xsl:param>
+ <xsl:param name="context-desc-padded">
+ <xsl:if test="not($context-desc = '')">
+ <xsl:call-template name="pad-string">
+ <xsl:with-param name="leftRight">right</xsl:with-param>
+ <xsl:with-param name="padVar"
+ select="substring($context-desc, 1, $context-desc-field-length)"/>
+ <xsl:with-param name="length" select="$context-desc-field-length"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:param>
+ <xsl:param name="message"/>
+ <xsl:param name="message-field-length" select="45"/>
+ <xsl:param name="message-padded">
+ <xsl:variable name="spaces-for-blank-level">
+ <!-- * if the level field is blank, we'll need to pad out -->
+ <!-- * the message field with spaces to compensate -->
+ <xsl:choose>
+ <xsl:when test="$level = ''">
+ <xsl:value-of select="4 + 2"/>
+ <!-- * 4 = hard-coded length of comment text ("Note" or "Warn") -->
+ <!-- * + 2 = length of colon-plus-space separator ": " -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="spaces-for-blank-context-desc">
+ <!-- * if the context-description field is blank, we'll need -->
+ <!-- * to pad out the message field with spaces to compensate -->
+ <xsl:choose>
+ <xsl:when test="$context-desc = ''">
+ <xsl:value-of select="$context-desc-field-length + 2"/>
+ <!-- * + 2 = length of colon-plus-space separator ": " -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="extra-spaces"
+ select="$spaces-for-blank-level + $spaces-for-blank-context-desc"/>
+ <xsl:call-template name="pad-string">
+ <xsl:with-param name="leftRight">right</xsl:with-param>
+ <xsl:with-param name="padVar"
+ select="substring($message, 1, ($message-field-length + $extra-spaces))"/>
+ <xsl:with-param name="length"
+ select="$message-field-length + $extra-spaces"/>
+ </xsl:call-template>
+ </xsl:param>
+ <!-- * emit the actual log message -->
+ <xsl:message>
+ <xsl:if test="not($level = '')">
+ <xsl:value-of select="$level"/>
+ <xsl:text>: </xsl:text>
+ </xsl:if>
+ <xsl:if test="not($context-desc = '')">
+ <xsl:value-of select="$context-desc-padded"/>
+ <xsl:text>: </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$message-padded"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$source"/>
+ </xsl:message>
+</xsl:template>
+
+<!-- ===================================== -->
+<doc:template name="get.doc.title" xmlns="">
+ <refpurpose>Gets a title from the current document</refpurpose>
+ <refdescription id="get.doc.title-desc">
+ <para>The <function>get.doc.title</function> template is a
+ utility template for returning the first title found in the
+ current document.</para>
+ </refdescription>
+ <refreturn id="get.doc.title-returns">
+ <para>Returns a string containing some identifying title for the
+ current document .</para></refreturn>
+</doc:template>
+<xsl:template name="get.doc.title">
+ <xsl:choose>
+ <xsl:when test="//*[local-name() = 'title'
+ or local-name() = 'refname']">
+ <xsl:value-of select="//*[local-name() = 'title'
+ or local-name() = 'refname'][1]"/>
+ </xsl:when>
+ <xsl:when test="substring(local-name(*[1]),
+ string-length(local-name(*[1])-3) = 'info')
+ and *[1]/*[local-name() = 'title']">
+ <xsl:value-of select="*[1]/*[local-name() = 'title'][1]"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+<doc:template name="pad-string" xmlns="">
+ <refpurpose>Right-pads or left-pads a string out to a certain length</refpurpose>
+ <refdescription id="pad-string-desc">
+ <para>This function takes string <parameter>padVar</parameter> and
+ pads it out in the direction <parameter>rightLeft</parameter> to
+ the string-length <parameter>length</parameter>, using string
+ <parameter>padChar</parameter> (a space character by default) as
+ the padding string (note that <parameter>padChar</parameter> can
+ be a string; it is not limited to just being a single
+ character).</para>
+ <note>
+ <para>This function began as a copy of Nate Austin's
+ <function>prepend-pad</function> function in the <link
+ xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html" >Padding
+ Content</link> section of Dave Pawson's <link
+ xlink:href="http://www.dpawson.co.uk/xsl/index.html" >XSLT
+ FAQ</link>.</para>
+ </note>
+ </refdescription>
+ <refreturn id="pad-string-returns">
+ <para>Returns a (padded) string.</para></refreturn>
+</doc:template>
+<xsl:template name="pad-string">
+ <!-- * recursive template to right/left pad the value with -->
+ <!-- * whatever padChar is passed in -->
+ <xsl:param name="padChar" select="' '"/>
+ <xsl:param name="leftRight">left</xsl:param>
+ <xsl:param name="padVar"/>
+ <xsl:param name="length"/>
+ <xsl:choose>
+ <xsl:when test="string-length($padVar) &lt; $length">
+ <xsl:call-template name="pad-string">
+ <xsl:with-param name="padChar" select="$padChar"/>
+ <xsl:with-param name="leftRight" select="$leftRight"/>
+ <xsl:with-param name="padVar">
+ <xsl:choose>
+ <!-- * determine whether string should be -->
+ <!-- * right- or left-padded -->
+ <xsl:when test="$leftRight = 'left'">
+ <!-- * pad it to left -->
+ <xsl:value-of select="concat($padChar,$padVar)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, right-pad the string -->
+ <xsl:value-of select="concat($padVar,$padChar)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="length" select="$length"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of
+ select="substring($padVar,string-length($padVar) - $length + 1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/common/vi.xml b/docs/xsl-generic/common/vi.xml
new file mode 100644
index 00000000..9363b8d2
--- /dev/null
+++ b/docs/xsl-generic/common/vi.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="vi" english-language-name="Vietnamese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/vi.xml -->
+<!-- * -->
+<!-- * E-mail the edited vi.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Tổng quan"/>
+<l:gentext key="abstract" text="Tổng quan"/>
+<l:gentext key="Answer" text="Đ:"/>
+<l:gentext key="answer" text="Đ:"/>
+<l:gentext key="Appendix" text="Phụ lục"/>
+<l:gentext key="appendix" text="phụ lục"/>
+<l:gentext key="Article" text="Bài viết"/>
+<l:gentext key="article" text="Bài viết"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Thư mục"/>
+<l:gentext key="bibliography" text="Thư mục"/>
+<l:gentext key="Book" text="Sách"/>
+<l:gentext key="book" text="Sách"/>
+<l:gentext key="CAUTION" text="CẨN THẬN"/>
+<l:gentext key="Caution" text="Cẩn thận"/>
+<l:gentext key="caution" text="Cẩn thận"/>
+<l:gentext key="Chapter" text="Chương"/>
+<l:gentext key="chapter" text="chương"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Bản quyền"/>
+<l:gentext key="copyright" text="Bản quyền"/>
+<l:gentext key="Dedication" text="Tặng"/>
+<l:gentext key="dedication" text="Tặng"/>
+<l:gentext key="Edition" text="Edition"/>
+<l:gentext key="edition" text="Edition"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Phương trình"/>
+<l:gentext key="equation" text="Phương trình"/>
+<l:gentext key="Example" text="Ví dụ"/>
+<l:gentext key="example" text="Ví dụ"/>
+<l:gentext key="Figure" text="Hình"/>
+<l:gentext key="figure" text="Hình"/>
+<l:gentext key="Glossary" text="Thuật ngữ"/>
+<l:gentext key="glossary" text="Thuật ngữ"/>
+<l:gentext key="GlossSee" text="Xem"/>
+<l:gentext key="glosssee" text="Xem"/>
+<l:gentext key="GlossSeeAlso" text="Xem thêm"/>
+<l:gentext key="glossseealso" text="Xem thêm"/>
+<l:gentext key="IMPORTANT" text="QUAN TRỌNG"/>
+<l:gentext key="important" text="Quan trọng"/>
+<l:gentext key="Important" text="Quan trọng"/>
+<l:gentext key="Index" text="Chỉ mục"/>
+<l:gentext key="index" text="Chỉ mục"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legal Notice"/>
+<l:gentext key="legalnotice" text="Legal Notice"/>
+<l:gentext key="MsgAud" text="Đọc giả"/>
+<l:gentext key="msgaud" text="Đọc giả"/>
+<l:gentext key="MsgLevel" text="Cấp"/>
+<l:gentext key="msglevel" text="Cấp"/>
+<l:gentext key="MsgOrig" text="Gốc"/>
+<l:gentext key="msgorig" text="Gốc"/>
+<l:gentext key="NOTE" text="GHI CHÚ"/>
+<l:gentext key="Note" text="Ghi chú"/>
+<l:gentext key="note" text="Ghi chú"/>
+<l:gentext key="Part" text="Phần"/>
+<l:gentext key="part" text="Phần"/>
+<l:gentext key="Preface" text="Mở đầu"/>
+<l:gentext key="preface" text="Mở đầu"/>
+<l:gentext key="Procedure" text="Thủ tục"/>
+<l:gentext key="procedure" text="Thủ tục"/>
+<l:gentext key="ProductionSet" text="Sản phẩm"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Xuất bản"/>
+<l:gentext key="published" text="Xuất bản"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="H và Đ"/>
+<l:gentext key="qandadiv" text="H và Đ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="H:"/>
+<l:gentext key="question" text="H:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Tham khảo"/>
+<l:gentext key="reference" text="Tham khảo"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Tên"/>
+<l:gentext key="refname" text="Tên"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Tóm tắt"/>
+<l:gentext key="refsynopsisdiv" text="Tóm tắt"/>
+<l:gentext key="RevHistory" text="Revision History"/>
+<l:gentext key="revhistory" text="Revision History"/>
+<l:gentext key="revision" text="Bản hiệu chỉnh"/>
+<l:gentext key="Revision" text="Bản hiệu chỉnh"/>
+<l:gentext key="sect1" text="Phần"/>
+<l:gentext key="sect2" text="Phần"/>
+<l:gentext key="sect3" text="Phần"/>
+<l:gentext key="sect4" text="Phần"/>
+<l:gentext key="sect5" text="Phần"/>
+<l:gentext key="section" text="Phần"/>
+<l:gentext key="Section" text="Phần"/>
+<l:gentext key="see" text="xem"/>
+<l:gentext key="See" text="See" lang="en"/>
+<l:gentext key="seealso" text="xem thêm"/>
+<l:gentext key="Seealso" text="See also" lang="en"/>
+<l:gentext key="SeeAlso" text="See Also" lang="en"/>
+<l:gentext key="set" text="Đặt"/>
+<l:gentext key="Set" text="Đặt"/>
+<l:gentext key="setindex" text="Đặt chỉ mục"/>
+<l:gentext key="SetIndex" text="Đặt chỉ mục"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="thanh bên"/>
+<l:gentext key="step" text="bước"/>
+<l:gentext key="Step" text="Bước"/>
+<l:gentext key="table" text="Bảng"/>
+<l:gentext key="Table" text="Bảng"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Mẹo"/>
+<l:gentext key="TIP" text="MẸO"/>
+<l:gentext key="Tip" text="Mẹo"/>
+<l:gentext key="Warning" text="Cảnh báo"/>
+<l:gentext key="warning" text="Cảnh báo"/>
+<l:gentext key="WARNING" text="CẢNH BÁO"/>
+<l:gentext key="and" text="và"/>
+<l:gentext key="by" text="bởi"/>
+<l:gentext key="Edited" text="Được biên soạn"/>
+<l:gentext key="edited" text="Được biên soạn"/>
+<l:gentext key="Editedby" text="Được biên soạn bởi"/>
+<l:gentext key="editedby" text="Được biên soạn bởi"/>
+<l:gentext key="in" text="trong"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="phần tử không có"/>
+<l:gentext key="notes" text="Ghi chú"/>
+<l:gentext key="Notes" text="Ghi chú"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="Hiệu chỉnh bởi: "/>
+<l:gentext key="revisedby" text="Hiệu chỉnh bởi: "/>
+<l:gentext key="TableNotes" text="Ghi chú"/>
+<l:gentext key="tablenotes" text="Ghi chú"/>
+<l:gentext key="TableofContents" text="Mục lục"/>
+<l:gentext key="tableofcontents" text="Mục lục"/>
+<l:gentext key="unexpectedelementname" text="Tên phần tử không đúng"/>
+<l:gentext key="unsupported" text="không hỗ trợ"/>
+<l:gentext key="xrefto" text="xref tới"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Danh sách Phương trình"/>
+<l:gentext key="ListofEquations" text="Danh sách Phương trình"/>
+<l:gentext key="ListofExamples" text="Danh sách Ví dụ"/>
+<l:gentext key="listofexamples" text="Danh sách Ví dụ"/>
+<l:gentext key="ListofFigures" text="Danh sách Hình"/>
+<l:gentext key="listoffigures" text="Danh sách Hình"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Danh sách Bảng"/>
+<l:gentext key="ListofTables" text="Danh sách Bảng"/>
+<l:gentext key="ListofUnknown" text="Danh sách Lạ"/>
+<l:gentext key="listofunknown" text="Danh sách Lạ"/>
+<l:gentext key="nav-home" text="Đầu"/>
+<l:gentext key="nav-next" text="Kế tiếp"/>
+<l:gentext key="nav-next-sibling" text="Tới nhanh"/>
+<l:gentext key="nav-prev" text="Trước đó"/>
+<l:gentext key="nav-prev-sibling" text="Lùi nhanh"/>
+<l:gentext key="nav-up" text="Lên"/>
+<l:gentext key="nav-toc" text="Mục lục"/>
+<l:gentext key="Draft" text="Bản thảo"/>
+<l:gentext key="above" text="trên"/>
+<l:gentext key="below" text="dưới"/>
+<l:gentext key="sectioncalled" text="phần"/>
+<l:gentext key="index symbols" text="Ký hiệu"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="last-first"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Phụ lục %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Chương %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Phương trình %n. %t"/>
+<l:template name="example" text="Ví dụ %n. %t"/>
+<l:template name="figure" text="Hình %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Phần %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Thủ tục %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Sản phẩm %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Bảng %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Phụ lục %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Chương %n. %t"/>
+<l:template name="part" text="Phần %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="Đ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="H: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="H: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="phần “%t”"/>
+<l:template name="refsection" text="phần “%t”"/>
+<l:template name="refsect1" text="phần “%t”"/>
+<l:template name="refsect2" text="phần “%t”"/>
+<l:template name="refsect3" text="phần “%t”"/>
+<l:template name="sect1" text="phần “%t”"/>
+<l:template name="sect2" text="phần “%t”"/>
+<l:template name="sect3" text="phần “%t”"/>
+<l:template name="sect4" text="phần “%t”"/>
+<l:template name="sect5" text="phần “%t”"/>
+<l:template name="section" text="phần “%t”"/>
+<l:template name="simplesect" text="phần “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Đ: %n"/>
+<l:template name="appendix" text="Phụ lục %n"/>
+<l:template name="bridgehead" text="Phần %n"/>
+<l:template name="chapter" text="Chương %n"/>
+<l:template name="equation" text="Phương trình %n"/>
+<l:template name="example" text="Ví dụ %n"/>
+<l:template name="figure" text="Hình %n"/>
+<l:template name="part" text="Phần %n"/>
+<l:template name="procedure" text="Thủ tục %n"/>
+<l:template name="productionset" text="Sản phẩm %n"/>
+<l:template name="qandadiv" text="H và Đ %n"/>
+<l:template name="qandaentry" text="H: %n"/>
+<l:template name="question" text="H: %n"/>
+<l:template name="sect1" text="Phần %n"/>
+<l:template name="sect2" text="Phần %n"/>
+<l:template name="sect3" text="Phần %n"/>
+<l:template name="sect4" text="Phần %n"/>
+<l:template name="sect5" text="Phần %n"/>
+<l:template name="section" text="Phần %n"/>
+<l:template name="table" text="Bảng %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Phụ lục %n, %t"/>
+<l:template name="bridgehead" text="Phần %n, “%t”"/>
+<l:template name="chapter" text="Chương %n, %t"/>
+<l:template name="equation" text="Phương trình %n, “%t”"/>
+<l:template name="example" text="Ví dụ %n, “%t”"/>
+<l:template name="figure" text="Hình %n, “%t”"/>
+<l:template name="part" text="Phần %n, “%t”"/>
+<l:template name="procedure" text="Thủ tục %n, “%t”"/>
+<l:template name="productionset" text="Sản phẩm %n, “%t”"/>
+<l:template name="qandadiv" text="H và Đ %n, “%t”"/>
+<l:template name="refsect1" text="phần “%t”"/>
+<l:template name="refsect2" text="phần “%t”"/>
+<l:template name="refsect3" text="phần “%t”"/>
+<l:template name="refsection" text="phần “%t”"/>
+<l:template name="sect1" text="Phần %n, “%t”"/>
+<l:template name="sect2" text="Phần %n, “%t”"/>
+<l:template name="sect3" text="Phần %n, “%t”"/>
+<l:template name="sect4" text="Phần %n, “%t”"/>
+<l:template name="sect5" text="Phần %n, “%t”"/>
+<l:template name="section" text="Phần %n, “%t”"/>
+<l:template name="simplesect" text="phần “%t”"/>
+<l:template name="table" text="Bảng %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" và "/>
+<l:template name="seplast" text=", và "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Xem %t"/>
+<l:template name="seealso" text="Xem thêm %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Đọc giả: "/>
+<l:template name="MsgLevel" text="Cấp: "/>
+<l:template name="MsgOrig" text="Gốc: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x042a Vietnamese"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/xh.xml b/docs/xsl-generic/common/xh.xml
new file mode 100644
index 00000000..8d10e300
--- /dev/null
+++ b/docs/xsl-generic/common/xh.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="xh" english-language-name="Xhosa">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/xh.xml -->
+<!-- * -->
+<!-- * E-mail the edited xh.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Isiqalo"/>
+<l:gentext key="abstract" text="Isiqalo"/>
+<l:gentext key="Answer" text="I:"/>
+<l:gentext key="answer" text="I:"/>
+<l:gentext key="Appendix" text="Isivalo"/>
+<l:gentext key="appendix" text="isivalo"/>
+<l:gentext key="Article" text="Umba"/>
+<l:gentext key="article" text="Umba"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Ezobunzululwazi"/>
+<l:gentext key="bibliography" text="Ezobunzululwazi"/>
+<l:gentext key="Book" text="Incwadi"/>
+<l:gentext key="book" text="Incwadi"/>
+<l:gentext key="CAUTION" text="ISILUMKISO"/>
+<l:gentext key="Caution" text="Isilumkiso"/>
+<l:gentext key="caution" text="Isilumkiso"/>
+<l:gentext key="Chapter" text="Isiqendu"/>
+<l:gentext key="chapter" text="isiqendu"/>
+<l:gentext key="Colophon" text="Ikolophon"/>
+<l:gentext key="colophon" text="Ikolophon"/>
+<l:gentext key="Copyright" text="Ushicilelo olusemthethweni"/>
+<l:gentext key="copyright" text="Ushicilelo olusemthethweni"/>
+<l:gentext key="Dedication" text="Ulwaziso"/>
+<l:gentext key="dedication" text="Ulwaziso"/>
+<l:gentext key="Edition" text="Uhlelo"/>
+<l:gentext key="edition" text="Uhlelo"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ulinganiselo"/>
+<l:gentext key="equation" text="Ulinganiselo"/>
+<l:gentext key="Example" text="Umzekelo"/>
+<l:gentext key="example" text="Umzekelo"/>
+<l:gentext key="Figure" text="Ulungu"/>
+<l:gentext key="figure" text="Ulungu"/>
+<l:gentext key="Glossary" text="Inkcazelo yamagama"/>
+<l:gentext key="glossary" text="Inkcazelo yamagama"/>
+<l:gentext key="GlossSee" text="Bona"/>
+<l:gentext key="glosssee" text="Bona"/>
+<l:gentext key="GlossSeeAlso" text="Bona Kwakhona"/>
+<l:gentext key="glossseealso" text="Bona Kwakhona"/>
+<l:gentext key="IMPORTANT" text="IBALULEKILE"/>
+<l:gentext key="important" text="Ibalulekile"/>
+<l:gentext key="Important" text="Ibalulekile"/>
+<l:gentext key="Index" text="Isalathiso"/>
+<l:gentext key="index" text="Isalathiso"/>
+<l:gentext key="ISBN" text="iISBN"/>
+<l:gentext key="isbn" text="iISBN"/>
+<l:gentext key="LegalNotice" text="Isaziso Esesimthethweni"/>
+<l:gentext key="legalnotice" text="Isaziso Esesimthethweni"/>
+<l:gentext key="MsgAud" text="Ababhali"/>
+<l:gentext key="msgaud" text="Ababhali"/>
+<l:gentext key="MsgLevel" text="Umphakamo"/>
+<l:gentext key="msglevel" text="Umphakamo"/>
+<l:gentext key="MsgOrig" text="Uqobo"/>
+<l:gentext key="msgorig" text="Uqobo"/>
+<l:gentext key="NOTE" text="QAPHELA"/>
+<l:gentext key="Note" text="Qaphela"/>
+<l:gentext key="note" text="Qaphela"/>
+<l:gentext key="Part" text="Inxenye"/>
+<l:gentext key="part" text="Inxenye"/>
+<l:gentext key="Preface" text="Isihloko"/>
+<l:gentext key="preface" text="Isihloko"/>
+<l:gentext key="Procedure" text="Inkqubo"/>
+<l:gentext key="procedure" text="Inkqubo"/>
+<l:gentext key="ProductionSet" text="Imveliso"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Ipapashwe"/>
+<l:gentext key="published" text="Ipapashwe"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="U no I"/>
+<l:gentext key="qandadiv" text="U no I"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="U:"/>
+<l:gentext key="question" text="U:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Uthelekiso"/>
+<l:gentext key="reference" text="Uthelekiso"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Igama lothelekiso"/>
+<l:gentext key="refname" text="Igama lothelekiso"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Isinopsisi"/>
+<l:gentext key="refsynopsisdiv" text="Isinopsisi"/>
+<l:gentext key="RevHistory" text="Imbali yophindo"/>
+<l:gentext key="revhistory" text="Imbali yophindo"/>
+<l:gentext key="revision" text="Iphindo"/>
+<l:gentext key="Revision" text="Iphindo"/>
+<l:gentext key="sect1" text="Icandelo"/>
+<l:gentext key="sect2" text="Icandelo"/>
+<l:gentext key="sect3" text="Icandelo"/>
+<l:gentext key="sect4" text="Icandelo"/>
+<l:gentext key="sect5" text="Icandelo"/>
+<l:gentext key="section" text="Icandelo"/>
+<l:gentext key="Section" text="Icandelo"/>
+<l:gentext key="see" text="Bona"/>
+<l:gentext key="See" text="Bona"/>
+<l:gentext key="seealso" text="Bona Kwakhona"/>
+<l:gentext key="Seealso" text="Bona Kwakhona"/>
+<l:gentext key="SeeAlso" text="Bona Kwakhona"/>
+<l:gentext key="set" text="Cwangcisa"/>
+<l:gentext key="Set" text="Cwangcisa"/>
+<l:gentext key="setindex" text="Cwangcisa Isalathiso"/>
+<l:gentext key="SetIndex" text="Cwangcisa Isalathiso"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="ibar esecaleni"/>
+<l:gentext key="step" text="inqwanqwa"/>
+<l:gentext key="Step" text="Inqwanqwa"/>
+<l:gentext key="table" text="Indlela Yokwenza Imigca"/>
+<l:gentext key="Table" text="Indlela Yokwenza Imigca"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Incam"/>
+<l:gentext key="TIP" text="INCAM"/>
+<l:gentext key="Tip" text="Incam"/>
+<l:gentext key="Warning" text="Isilumkiso"/>
+<l:gentext key="warning" text="Isilumkiso"/>
+<l:gentext key="WARNING" text="ISILUMKISO"/>
+<l:gentext key="and" text="no"/>
+<l:gentext key="by" text="by"/>
+<l:gentext key="Edited" text="Ihleliwe"/>
+<l:gentext key="edited" text="Ihleliwe"/>
+<l:gentext key="Editedby" text="Ihlelwe"/>
+<l:gentext key="editedby" text="Ihlelwe"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=", "/>
+<l:gentext key="listcomma" text=", "/>
+<l:gentext key="nonexistantelement" text="isiqalelo esingekhayo"/>
+<l:gentext key="notes" text="Iziqaphelo"/>
+<l:gentext key="Notes" text="Iziqaphelo"/>
+<l:gentext key="Pgs" text="Amaphepha"/>
+<l:gentext key="pgs" text="Amaphepha"/>
+<l:gentext key="Revisedby" text="Iphindwe ngu: "/>
+<l:gentext key="revisedby" text="Iphindwe ngu:"/>
+<l:gentext key="TableNotes" text="Iziqaphelo"/>
+<l:gentext key="tablenotes" text="Iziqaphelo"/>
+<l:gentext key="TableofContents" text="Imigca Yemixholo"/>
+<l:gentext key="tableofcontents" text="Imigca Yemixholo"/>
+<l:gentext key="unexpectedelementname" text="Igama lesiqalelo esingalindelwanga"/>
+<l:gentext key="unsupported" text="ayixhaswanga"/>
+<l:gentext key="xrefto" text="thelekiso ku"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Uluhlu Lemilinganiselo"/>
+<l:gentext key="ListofEquations" text="Uluhlu Lemilinganiselo"/>
+<l:gentext key="ListofExamples" text="Uluhlu Lemizekelo"/>
+<l:gentext key="listofexamples" text="Uluhlu Lemizekelo"/>
+<l:gentext key="ListofFigures" text="Uluhlu Lamalungu"/>
+<l:gentext key="listoffigures" text="Uluhlu Lamalungu"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Uluhlu Lendlela Yokwenza Imigca"/>
+<l:gentext key="ListofTables" text="Uluhlu Lendlela Yokwenza Imigca"/>
+<l:gentext key="ListofUnknown" text="Uluhlu Lokungaziwayo"/>
+<l:gentext key="listofunknown" text="Uluhlu Lokungaziwayo"/>
+<l:gentext key="nav-home" text="Ikhaya"/>
+<l:gentext key="nav-next" text="Elandelayo"/>
+<l:gentext key="nav-next-sibling" text="Yisa Phambili"/>
+<l:gentext key="nav-prev" text="Edlulileyo"/>
+<l:gentext key="nav-prev-sibling" text="Yisa Emva"/>
+<l:gentext key="nav-up" text="Phezulu"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="icandelo libizwa ngokuba"/>
+<l:gentext key="index symbols" text="Iimpawu"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Isivalo %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Isiqendu %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ulinganiselo %n. %t"/>
+<l:template name="example" text="Umzekelo %n. %t"/>
+<l:template name="figure" text="Ulungu %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Inxenye %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Inkqubo %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Imveliso %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Indlela Yokwenza Imigca %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Isivalo %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Isiqendu %n. %t"/>
+<l:template name="part" text="Inxenye %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="I: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="U: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="U: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsection" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect1" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect2" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect3" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect1" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect2" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect3" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect4" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect5" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="section" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="simplesect" text="icandelo libizwa ngokuba “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="I: %n"/>
+<l:template name="appendix" text="Isivalo %n"/>
+<l:template name="bridgehead" text="Icandelo %n"/>
+<l:template name="chapter" text="Isiqendu %n"/>
+<l:template name="equation" text="Ulinganiselo %n"/>
+<l:template name="example" text="Umzekelo %n"/>
+<l:template name="figure" text="Ulungu %n"/>
+<l:template name="part" text="Inxenye %n"/>
+<l:template name="procedure" text="Inkqubo %n"/>
+<l:template name="productionset" text="Imveliso %n"/>
+<l:template name="qandadiv" text="U no I %n"/>
+<l:template name="qandaentry" text="U: %n"/>
+<l:template name="question" text="U: %n"/>
+<l:template name="sect1" text="Icandelo %n"/>
+<l:template name="sect2" text="Icandelo %n"/>
+<l:template name="sect3" text="Icandelo %n"/>
+<l:template name="sect4" text="Icandelo %n"/>
+<l:template name="sect5" text="Icandelo %n"/>
+<l:template name="section" text="Icandelo %n"/>
+<l:template name="table" text="Indlela Yokwenza Imigca %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Isivalo %n, %t"/>
+<l:template name="bridgehead" text="Icandelo %n, “%t”"/>
+<l:template name="chapter" text="Isiqendu %n, %t"/>
+<l:template name="equation" text="Ulinganiselo %n, “%t”"/>
+<l:template name="example" text="Umzekelo %n, “%t”"/>
+<l:template name="figure" text="Ulungu %n, “%t”"/>
+<l:template name="part" text="Inxenye %n, “%t”"/>
+<l:template name="procedure" text="Inkqubo %n, “%t”"/>
+<l:template name="productionset" text="Imveliso %n, “%t”"/>
+<l:template name="qandadiv" text="U no I %n, “%t”"/>
+<l:template name="refsect1" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect2" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect3" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsection" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect1" text="Icandelo %n, “%t”"/>
+<l:template name="sect2" text="Icandelo %n, “%t”"/>
+<l:template name="sect3" text="Icandelo %n, “%t”"/>
+<l:template name="sect4" text="Icandelo %n, “%t”"/>
+<l:template name="sect5" text="Icandelo %n, “%t”"/>
+<l:template name="section" text="Icandelo %n, “%t”"/>
+<l:template name="simplesect" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="table" text="Indlela Yokwenza Imigca %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=" no "/>
+<l:template name="sep2" text=" no "/>
+<l:template name="seplast" text=" no "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Bona %t"/>
+<l:template name="seealso" text="Bona Kwakhona %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Ababhali: "/>
+<l:template name="MsgLevel" text="Umphakamo: "/>
+<l:template name="MsgOrig" text="Uqobo: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0434 Xhosa"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/zh_cn.xml b/docs/xsl-generic/common/zh_cn.xml
new file mode 100644
index 00000000..6a782fca
--- /dev/null
+++ b/docs/xsl-generic/common/zh_cn.xml
@@ -0,0 +1,654 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="zh_cn" english-language-name="Chinese Simplified">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/zh_cn.xml -->
+<!-- * -->
+<!-- * E-mail the edited zh_cn.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="摘要"/>
+<l:gentext key="abstract" text="摘要"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="附录"/>
+<l:gentext key="appendix" text="附录"/>
+<l:gentext key="Article" text="文章"/>
+<l:gentext key="article" text="文章"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="参考书目"/>
+<l:gentext key="bibliography" text="参考书目"/>
+<l:gentext key="Book" text="书"/>
+<l:gentext key="book" text="书"/>
+<l:gentext key="CAUTION" text="小心"/>
+<l:gentext key="Caution" text="小心"/>
+<l:gentext key="caution" text="小心"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="版权"/>
+<l:gentext key="copyright" text="版权"/>
+<l:gentext key="Dedication" text="题词"/>
+<l:gentext key="dedication" text="题词"/>
+<l:gentext key="Edition" text="版"/>
+<l:gentext key="edition" text="版"/>
+<l:gentext key="Editor" text="编者"/>
+<l:gentext key="Equation" text="公式"/>
+<l:gentext key="equation" text="公式"/>
+<l:gentext key="Example" text="例"/>
+<l:gentext key="example" text="例"/>
+<l:gentext key="Figure" text="图"/>
+<l:gentext key="figure" text="图"/>
+<l:gentext key="Glossary" text="术语表"/>
+<l:gentext key="glossary" text="术语表"/>
+<l:gentext key="GlossSee" text="见"/>
+<l:gentext key="glosssee" text="见"/>
+<l:gentext key="GlossSeeAlso" text="参见"/>
+<l:gentext key="glossseealso" text="参见"/>
+<l:gentext key="IMPORTANT" text="重要"/>
+<l:gentext key="important" text="重要"/>
+<l:gentext key="Important" text="重要"/>
+<l:gentext key="Index" text="索引"/>
+<l:gentext key="index" text="索引"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="法律通告"/>
+<l:gentext key="legalnotice" text="法律通告"/>
+<l:gentext key="MsgAud" text="受众"/>
+<l:gentext key="msgaud" text="受众"/>
+<l:gentext key="MsgLevel" text="级别"/>
+<l:gentext key="msglevel" text="级别"/>
+<l:gentext key="MsgOrig" text="出处"/>
+<l:gentext key="msgorig" text="出处"/>
+<l:gentext key="NOTE" text="注意"/>
+<l:gentext key="Note" text="注意"/>
+<l:gentext key="note" text="注意"/>
+<l:gentext key="Part" text="部分"/>
+<l:gentext key="part" text="部分"/>
+<l:gentext key="Preface" text="前言"/>
+<l:gentext key="preface" text="前言"/>
+<l:gentext key="Procedure" text="过程"/>
+<l:gentext key="procedure" text="过程"/>
+<l:gentext key="ProductionSet" text="产品"/>
+<l:gentext key="PubDate" text="出版日期"/>
+<l:gentext key="pubdate" text="出版日期"/>
+<l:gentext key="Published" text="出版方"/>
+<l:gentext key="published" text="出版方"/>
+<l:gentext key="Publisher" text="出版者"/>
+<l:gentext key="Qandadiv" text="质保"/>
+<l:gentext key="qandadiv" text="质保"/>
+<l:gentext key="QandASet" text="常见问题"/>
+<l:gentext key="Question" text="问:"/>
+<l:gentext key="question" text="问:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="参考"/>
+<l:gentext key="reference" text="参考"/>
+<l:gentext key="References" text="参考"/>
+<l:gentext key="RefName" text="名称"/>
+<l:gentext key="refname" text="名称"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="大纲"/>
+<l:gentext key="refsynopsisdiv" text="大纲"/>
+<l:gentext key="RevHistory" text="修订历史"/>
+<l:gentext key="revhistory" text="修订历史"/>
+<l:gentext key="revision" text="修订"/>
+<l:gentext key="Revision" text="修订"/>
+<l:gentext key="sect1" text="节"/>
+<l:gentext key="sect2" text="节"/>
+<l:gentext key="sect3" text="节"/>
+<l:gentext key="sect4" text="节"/>
+<l:gentext key="sect5" text="节"/>
+<l:gentext key="section" text="节"/>
+<l:gentext key="Section" text="节"/>
+<l:gentext key="see" text="见"/>
+<l:gentext key="See" text="见"/>
+<l:gentext key="seealso" text="参见"/>
+<l:gentext key="Seealso" text="参见"/>
+<l:gentext key="SeeAlso" text="参见"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="步骤"/>
+<l:gentext key="Step" text="步骤"/>
+<l:gentext key="table" text="表"/>
+<l:gentext key="Table" text="表"/>
+<l:gentext key="task" text="任务"/>
+<l:gentext key="Task" text="任务"/>
+<l:gentext key="tip" text="提示"/>
+<l:gentext key="TIP" text="提示"/>
+<l:gentext key="Tip" text="提示"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="和"/>
+<l:gentext key="by" text="由"/>
+<l:gentext key="Edited" text="编辑时间"/>
+<l:gentext key="edited" text="编辑时间"/>
+<l:gentext key="Editedby" text="编辑者"/>
+<l:gentext key="editedby" text="编辑者"/>
+<l:gentext key="in" text="于"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text="、"/>
+<l:gentext key="nonexistantelement" text="不存在的元素"/>
+<l:gentext key="notes" text="备注"/>
+<l:gentext key="Notes" text="备注"/>
+<l:gentext key="Pgs" text="页"/>
+<l:gentext key="pgs" text="页"/>
+<l:gentext key="Revisedby" text="修订者:"/>
+<l:gentext key="revisedby" text="修订者:"/>
+<l:gentext key="TableNotes" text="表注"/>
+<l:gentext key="tablenotes" text="表注"/>
+<l:gentext key="TableofContents" text="目录"/>
+<l:gentext key="tableofcontents" text="目录"/>
+<l:gentext key="unexpectedelementname" text="未预期的名称"/>
+<l:gentext key="unsupported" text="不支持"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="作者"/>
+<l:gentext key="copyeditor" text="版权编辑"/>
+<l:gentext key="graphicdesigner" text="美术编辑"/>
+<l:gentext key="productioneditor" text="产品编辑"/>
+<l:gentext key="technicaleditor" text="技术编辑"/>
+<l:gentext key="translator" text="译者"/>
+<l:gentext key="listofequations" text="公式清单"/>
+<l:gentext key="ListofEquations" text="公式清单"/>
+<l:gentext key="ListofExamples" text="范例清单"/>
+<l:gentext key="listofexamples" text="范例清单"/>
+<l:gentext key="ListofFigures" text="插图清单"/>
+<l:gentext key="listoffigures" text="插图清单"/>
+<l:gentext key="ListofProcedures" text="过程清单"/>
+<l:gentext key="listofprocedures" text="过程清单"/>
+<l:gentext key="listoftables" text="表格清单"/>
+<l:gentext key="ListofTables" text="表格清单"/>
+<l:gentext key="ListofUnknown" text="未知清单"/>
+<l:gentext key="listofunknown" text="未知清单"/>
+<l:gentext key="nav-home" text="起始页"/>
+<l:gentext key="nav-next" text="下一页"/>
+<l:gentext key="nav-next-sibling" text="快进"/>
+<l:gentext key="nav-prev" text="上一页"/>
+<l:gentext key="nav-prev-sibling" text="快退"/>
+<l:gentext key="nav-up" text="上一级"/>
+<l:gentext key="nav-toc" text="目录"/>
+<l:gentext key="Draft" text="草稿"/>
+<l:gentext key="above" text="以上"/>
+<l:gentext key="below" text="以下"/>
+<l:gentext key="sectioncalled" text="一节"/>
+<l:gentext key="index symbols" text="符号"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="·"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="附录 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="公式 %n. %t"/>
+<l:template name="example" text="例 %n. %t"/>
+<l:template name="figure" text="图 %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="第 %n 部分 %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="过程 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="产品 %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表 %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="附录 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="part" text="部分 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="问: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="问: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(第 %p 页)"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(第 %p 页)"/>
+<l:template name="Page" text="第 %p 页"/>
+<l:template name="bridgehead" text="“%t”一节"/>
+<l:template name="refsection" text="“%t”一节"/>
+<l:template name="refsect1" text="“%t”一节"/>
+<l:template name="refsect2" text="“%t”一节"/>
+<l:template name="refsect3" text="“%t”一节"/>
+<l:template name="sect1" text="“%t”一节"/>
+<l:template name="sect2" text="“%t”一节"/>
+<l:template name="sect3" text="“%t”一节"/>
+<l:template name="sect4" text="“%t”一节"/>
+<l:template name="sect5" text="“%t”一节"/>
+<l:template name="section" text="“%t”一节"/>
+<l:template name="simplesect" text="“%t”一节"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="附录 %n"/>
+<l:template name="bridgehead" text="第 %n 节"/>
+<l:template name="chapter" text="第 %n 章"/>
+<l:template name="equation" text="公式 %n"/>
+<l:template name="example" text="例 %n"/>
+<l:template name="figure" text="图 %n"/>
+<l:template name="part" text="第 %n 部分"/>
+<l:template name="procedure" text="过程 %n"/>
+<l:template name="productionset" text="产品 %n"/>
+<l:template name="qandadiv" text="质保 %n"/>
+<l:template name="qandaentry" text="问: %n"/>
+<l:template name="question" text="问: %n"/>
+<l:template name="sect1" text="第 %n 节"/>
+<l:template name="sect2" text="第 %n 节"/>
+<l:template name="sect3" text="第 %n 节"/>
+<l:template name="sect4" text="第 %n 节"/>
+<l:template name="sect5" text="第 %n 节"/>
+<l:template name="section" text="第 %n 节"/>
+<l:template name="table" text="表 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="附录 %n, %t"/>
+<l:template name="bridgehead" text="第 %n 节 “%t”"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="equation" text="公式 %n “%t”"/>
+<l:template name="example" text="例 %n “%t”"/>
+<l:template name="figure" text="图 %n “%t”"/>
+<l:template name="part" text="第 %n 部分 “%t”"/>
+<l:template name="procedure" text="过程 %n, “%t”"/>
+<l:template name="productionset" text="产品 %n, “%t”"/>
+<l:template name="qandadiv" text="质保 %n, “%t”"/>
+<l:template name="refsect1" text="“%t”一节"/>
+<l:template name="refsect2" text="“%t”一节"/>
+<l:template name="refsect3" text="“%t”一节"/>
+<l:template name="refsection" text="“%t”一节"/>
+<l:template name="sect1" text="第 %n 节 “%t”"/>
+<l:template name="sect2" text="第 %n 节 “%t”"/>
+<l:template name="sect3" text="第 %n 节 “%t”"/>
+<l:template name="sect4" text="第 %n 节 “%t”"/>
+<l:template name="sect5" text="第 %n 节 “%t”"/>
+<l:template name="section" text="第 %n 节 “%t”"/>
+<l:template name="simplesect" text="“%t”一节"/>
+<l:template name="table" text="表 %n “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="、"/>
+<l:template name="sep2" text="和"/>
+<l:template name="seplast" text="和"/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="见%t"/>
+<l:template name="seealso" text="参见%t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="受众:"/>
+<l:template name="MsgLevel" text="级别:"/>
+<l:template name="MsgOrig" text="出处:"/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y-m-d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="一月"/>
+<l:template name="February" text="二月"/>
+<l:template name="March" text="三月"/>
+<l:template name="April" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="June" text="六月"/>
+<l:template name="July" text="七月"/>
+<l:template name="August" text="八月"/>
+<l:template name="September" text="九月"/>
+<l:template name="October" text="十月"/>
+<l:template name="November" text="十一月"/>
+<l:template name="December" text="十二月"/>
+<l:template name="Monday" text="星期一"/>
+<l:template name="Tuesday" text="星期二"/>
+<l:template name="Wednesday" text="星期三"/>
+<l:template name="Thursday" text="星期四"/>
+<l:template name="Friday" text="星期五"/>
+<l:template name="Saturday" text="星期六"/>
+<l:template name="Sunday" text="星期日"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="一月"/>
+<l:template name="Feb" text="二月"/>
+<l:template name="Mar" text="三月"/>
+<l:template name="Apr" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="Jun" text="六月"/>
+<l:template name="Jul" text="七月"/>
+<l:template name="Aug" text="八月"/>
+<l:template name="Sep" text="九月"/>
+<l:template name="Oct" text="十月"/>
+<l:template name="Nov" text="十一月"/>
+<l:template name="Dec" text="十二月"/>
+<l:template name="Mon" text="周一"/>
+<l:template name="Tue" text="周二"/>
+<l:template name="Wed" text="周三"/>
+<l:template name="Thu" text="周四"/>
+<l:template name="Fri" text="周五"/>
+<l:template name="Sat" text="周六"/>
+<l:template name="Sun" text="周日"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0804 Chinese (CHINA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">其它</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/common/zh_tw.xml b/docs/xsl-generic/common/zh_tw.xml
new file mode 100644
index 00000000..db63cdca
--- /dev/null
+++ b/docs/xsl-generic/common/zh_tw.xml
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="zh_tw" english-language-name="Chinese (Taiwan)">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- * https://svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/zh_tw.xml -->
+<!-- * -->
+<!-- * E-mail the edited zh_tw.xml source file to: -->
+<!-- * -->
+<!-- * docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!-- %t is the current element's title -->
+<!-- %s is the current element's subtitle (if applicable)-->
+<!-- %n is the current element's number label-->
+<!-- %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="摘要"/>
+<l:gentext key="abstract" text="摘要"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="附錄"/>
+<l:gentext key="appendix" text="附錄"/>
+<l:gentext key="Article" text="文章"/>
+<l:gentext key="article" text="文章"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="參考文獻"/>
+<l:gentext key="bibliography" text="參考文獻"/>
+<l:gentext key="Book" text="書目"/>
+<l:gentext key="book" text="書目"/>
+<l:gentext key="CAUTION" text="注意"/>
+<l:gentext key="Caution" text="注意"/>
+<l:gentext key="caution" text="注意"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="版本記錄"/>
+<l:gentext key="colophon" text="版本記錄"/>
+<l:gentext key="Copyright" text="版權"/>
+<l:gentext key="copyright" text="版權"/>
+<l:gentext key="Dedication" text="奉獻"/>
+<l:gentext key="dedication" text="奉獻"/>
+<l:gentext key="Edition" text="版"/>
+<l:gentext key="edition" text="版"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="方程式"/>
+<l:gentext key="equation" text="方程式"/>
+<l:gentext key="Example" text="範例"/>
+<l:gentext key="example" text="範例"/>
+<l:gentext key="Figure" text="圖形"/>
+<l:gentext key="figure" text="圖形"/>
+<l:gentext key="Glossary" text="小辭彙"/>
+<l:gentext key="glossary" text="小辭彙"/>
+<l:gentext key="GlossSee" text="參見"/>
+<l:gentext key="glosssee" text="參見"/>
+<l:gentext key="GlossSeeAlso" text="另參見"/>
+<l:gentext key="glossseealso" text="另參見"/>
+<l:gentext key="IMPORTANT" text="重要"/>
+<l:gentext key="important" text="重要"/>
+<l:gentext key="Important" text="重要"/>
+<l:gentext key="Index" text="索引"/>
+<l:gentext key="index" text="索引"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="法律聲明"/>
+<l:gentext key="legalnotice" text="法律聲明"/>
+<l:gentext key="MsgAud" text="讀者"/>
+<l:gentext key="msgaud" text="讀者"/>
+<l:gentext key="MsgLevel" text="程度"/>
+<l:gentext key="msglevel" text="程度"/>
+<l:gentext key="MsgOrig" text="出處"/>
+<l:gentext key="msgorig" text="出處"/>
+<l:gentext key="NOTE" text="注"/>
+<l:gentext key="Note" text="注"/>
+<l:gentext key="note" text="注"/>
+<l:gentext key="Part" text="部"/>
+<l:gentext key="part" text="部"/>
+<l:gentext key="Preface" text="序言"/>
+<l:gentext key="preface" text="序言"/>
+<l:gentext key="Procedure" text="過程"/>
+<l:gentext key="procedure" text="過程"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="出版"/>
+<l:gentext key="published" text="出版"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="問:且答:"/>
+<l:gentext key="qandadiv" text="問:且答:"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="問:"/>
+<l:gentext key="question" text="問:"/>
+<l:gentext key="RefEntry" text="參照項目"/>
+<l:gentext key="refentry" text="參照項目"/>
+<l:gentext key="Reference" text="參考"/>
+<l:gentext key="reference" text="參考"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="參考名"/>
+<l:gentext key="refname" text="參考名"/>
+<l:gentext key="RefSection" text="參照章節"/>
+<l:gentext key="refsection" text="參照章節"/>
+<l:gentext key="RefSynopsisDiv" text="大綱"/>
+<l:gentext key="refsynopsisdiv" text="大綱"/>
+<l:gentext key="RevHistory" text="修訂記錄"/>
+<l:gentext key="revhistory" text="修訂記錄"/>
+<l:gentext key="revision" text="修訂"/>
+<l:gentext key="Revision" text="修訂"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="節"/>
+<l:gentext key="Section" text="節"/>
+<l:gentext key="see" text="見"/>
+<l:gentext key="See" text="見"/>
+<l:gentext key="seealso" text="另見"/>
+<l:gentext key="Seealso" text="另見"/>
+<l:gentext key="SeeAlso" text="另見"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text=""/>
+<l:gentext key="step" text="步驟"/>
+<l:gentext key="Step" text="步驟"/>
+<l:gentext key="table" text="表格"/>
+<l:gentext key="Table" text="表格"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="提示"/>
+<l:gentext key="TIP" text="提示"/>
+<l:gentext key="Tip" text="提示"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="且"/>
+<l:gentext key="by" text="由"/>
+<l:gentext key="Edited" text="編輯"/>
+<l:gentext key="edited" text="編輯"/>
+<l:gentext key="Editedby" text="編輯"/>
+<l:gentext key="editedby" text="編輯"/>
+<l:gentext key="in" text="在"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="nonexistantelement" text="不存在的元素"/>
+<l:gentext key="notes" text="注"/>
+<l:gentext key="Notes" text="注"/>
+<l:gentext key="Pgs" text="頁"/>
+<l:gentext key="pgs" text="頁"/>
+<l:gentext key="Revisedby" text="修訂"/>
+<l:gentext key="revisedby" text="修訂"/>
+<l:gentext key="TableNotes" text="注釋"/>
+<l:gentext key="tablenotes" text="注釋"/>
+<l:gentext key="TableofContents" text="內容目錄"/>
+<l:gentext key="tableofcontents" text="內容目錄"/>
+<l:gentext key="unexpectedelementname" text="非預期的元素名"/>
+<l:gentext key="unsupported" text="未支援"/>
+<l:gentext key="xrefto" text="參照"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="公式目錄"/>
+<l:gentext key="ListofEquations" text="公式目錄"/>
+<l:gentext key="ListofExamples" text="範例目錄"/>
+<l:gentext key="listofexamples" text="範例目錄"/>
+<l:gentext key="ListofFigures" text="附圖目錄"/>
+<l:gentext key="listoffigures" text="附圖目錄"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="附表目錄"/>
+<l:gentext key="ListofTables" text="附表目錄"/>
+<l:gentext key="ListofUnknown" text="其它內容目錄"/>
+<l:gentext key="listofunknown" text="其它內容目錄"/>
+<l:gentext key="nav-home" text="內容"/>
+<l:gentext key="nav-next" text="下一頁"/>
+<l:gentext key="nav-next-sibling" text="快速向後"/>
+<l:gentext key="nav-prev" text="前一頁"/>
+<l:gentext key="nav-prev-sibling" text="快速向前"/>
+<l:gentext key="nav-up" text="上一層"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="附錄 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="章 %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="方程式 %n. %t"/>
+<l:template name="example" text="範例 %n. %t"/>
+<l:template name="figure" text="圖形 %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="部 %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="過程 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t" lang="en"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表格 %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="附錄 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="章 %n. %t"/>
+<l:template name="part" text="部 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s" lang="en"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="附錄 %n"/>
+<l:template name="bridgehead" text="節 %n"/>
+<l:template name="chapter" text="章 %n"/>
+<l:template name="equation" text="方程式 %n"/>
+<l:template name="example" text="範例 %n"/>
+<l:template name="figure" text="圖形 %n"/>
+<l:template name="part" text="部 %n"/>
+<l:template name="procedure" text="過程 %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="問:且答: %n"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="sect1" text="節 %n"/>
+<l:template name="sect2" text="節 %n"/>
+<l:template name="sect3" text="節 %n"/>
+<l:template name="sect4" text="節 %n"/>
+<l:template name="sect5" text="節 %n"/>
+<l:template name="section" text="節 %n"/>
+<l:template name="table" text="表格 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="附錄 %n, %t"/>
+<l:template name="bridgehead" text="節 %n, “%t”"/>
+<l:template name="chapter" text="章 %n, %t"/>
+<l:template name="equation" text="方程式 %n, “%t”"/>
+<l:template name="example" text="範例 %n, “%t”"/>
+<l:template name="figure" text="圖形 %n, “%t”"/>
+<l:template name="part" text="部 %n, “%t”"/>
+<l:template name="procedure" text="過程 %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="問:且答: %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="節 %n, “%t”"/>
+<l:template name="sect2" text="節 %n, “%t”"/>
+<l:template name="sect3" text="節 %n, “%t”"/>
+<l:template name="sect4" text="節 %n, “%t”"/>
+<l:template name="sect5" text="節 %n, “%t”"/>
+<l:template name="section" text="節 %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="表格 %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" 且 "/>
+<l:template name="seplast" text=", 且 "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="參見 %t"/>
+<l:template name="seealso" text="另參見 %t"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="讀者: "/>
+<l:template name="MsgLevel" text="程度: "/>
+<l:template name="MsgOrig" text="出處: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0404 Chinese (TAIWAN)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/docs/xsl-generic/highlighting/c-hl.xml b/docs/xsl-generic/highlighting/c-hl.xml
new file mode 100644
index 00000000..ad86bb3f
--- /dev/null
+++ b/docs/xsl-generic/highlighting/c-hl.xml
@@ -0,0 +1,105 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<highlighter type='multiline-comment'>
+ <start>/*</start>
+ <end>*/</end>
+</highlighter>
+
+<highlighter type='oneline-comment'>
+ //
+</highlighter>
+
+<highlighter type='oneline-comment'>
+ #
+</highlighter>
+
+<highlighter type='string'>
+ <string>"</string>
+ <escape>\</escape>
+</highlighter>
+
+<highlighter type='string'>
+ <string>'</string>
+ <escape>\</escape>
+</highlighter>
+
+<highlighter type='heredoc'>
+ <start>&lt;&lt;&lt;</start>
+</highlighter>
+
+<highlighter type='keywords'>
+ <keyword>and</keyword>
+ <keyword>auto</keyword>
+ <keyword>break</keyword>
+ <keyword>case</keyword>
+ <keyword>char</keyword>
+ <keyword>class</keyword>
+ <keyword>__CLASS__</keyword>
+ <keyword>const</keyword>
+ <keyword>continue</keyword>
+ <keyword>declare</keyword>
+ <keyword>default</keyword>
+ <keyword>do</keyword>
+ <keyword>double</keyword>
+ <keyword>else</keyword>
+ <keyword>enum</keyword>
+ <keyword>exit</keyword>
+ <keyword>extern</keyword>
+ <keyword>__FILE__</keyword>
+ <keyword>float</keyword>
+ <keyword>for</keyword>
+ <keyword>global</keyword>
+ <keyword>goto</keyword>
+ <keyword>if</keyword>
+ <keyword>include</keyword>
+ <keyword>int</keyword>
+ <keyword>__LINE__</keyword>
+ <keyword>long</keyword>
+ <keyword>new</keyword>
+ <keyword>or</keyword>
+ <keyword>private</keyword>
+ <keyword>protected</keyword>
+ <keyword>public</keyword>
+ <keyword>register</keyword>
+ <keyword>return</keyword>
+ <keyword>short</keyword>
+ <keyword>signed</keyword>
+ <keyword>sizeof</keyword>
+ <keyword>static</keyword>
+ <keyword>struct</keyword>
+ <keyword>switch</keyword>
+ <keyword>typedef</keyword>
+ <keyword>union</keyword>
+ <keyword>unsigned</keyword>
+ <keyword>void</keyword>
+ <keyword>volatile</keyword>
+ <keyword>while</keyword>
+ <ignoreCase/>
+</highlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+--> \ No newline at end of file
diff --git a/docs/xsl-generic/highlighting/common.xsl b/docs/xsl-generic/highlighting/common.xsl
new file mode 100644
index 00000000..32f1bbcf
--- /dev/null
+++ b/docs/xsl-generic/highlighting/common.xsl
@@ -0,0 +1,62 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:hl="java:net.sf.xslthl.ConnectorSaxon6"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="exsl hl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: common.xsl 7266 2007-08-22 11:58:42Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- You can override this template to do more complex mapping of
+ language attribute to highlighter language ID (see xslthl-config.xml) -->
+<xsl:template name="language.to.xslthl">
+ <xsl:param name="context"/>
+
+ <xsl:choose>
+ <xsl:when test="$context/@language != ''">
+ <xsl:value-of select="$context/@language"/>
+ </xsl:when>
+ <xsl:when test="$highlight.default.language != ''">
+ <xsl:value-of select="$highlight.default.language"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="apply-highlighting">
+ <xsl:choose>
+ <!-- Do we want syntax highlighting -->
+ <xsl:when test="$highlight.source != 0 and function-available('hl:highlight')">
+ <xsl:variable name="language">
+ <xsl:call-template name="language.to.xslthl">
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$language != ''">
+ <xsl:variable name="content">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:apply-templates select="hl:highlight($language, exsl:node-set($content))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- No syntax highlighting -->
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/highlighting/delphi-hl.xml b/docs/xsl-generic/highlighting/delphi-hl.xml
new file mode 100644
index 00000000..3fab5c2e
--- /dev/null
+++ b/docs/xsl-generic/highlighting/delphi-hl.xml
@@ -0,0 +1,174 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<highlighter type='multiline-comment'>
+ <start>{</start>
+ <end>}</end>
+</highlighter>
+
+<highlighter type='multiline-comment'>
+ <start>(*</start>
+ <end>*)</end>
+</highlighter>
+
+<highlighter type='oneline-comment'>
+ //
+</highlighter>
+
+<highlighter type='string'>
+ <string>'</string>
+ <doubleEscapes/>
+</highlighter>
+
+<highlighter type='keywords'>
+
+ <!-- Reserved words -->
+ <keyword>and</keyword>
+ <keyword>else</keyword>
+ <keyword>inherited</keyword>
+ <keyword>packed</keyword>
+ <keyword>then</keyword>
+ <keyword>array</keyword>
+ <keyword>end</keyword>
+ <keyword>initialization</keyword>
+ <keyword>procedure</keyword>
+ <keyword>threadvar</keyword>
+ <keyword>as</keyword>
+ <keyword>except</keyword>
+ <keyword>inline</keyword>
+ <keyword>program</keyword>
+ <keyword>to</keyword>
+ <keyword>asm</keyword>
+ <keyword>exports</keyword>
+ <keyword>interface</keyword>
+ <keyword>property</keyword>
+ <keyword>try</keyword>
+ <keyword>begin</keyword>
+ <keyword>file</keyword>
+ <keyword>is</keyword>
+ <keyword>raise</keyword>
+ <keyword>type</keyword>
+ <keyword>case</keyword>
+ <keyword>final</keyword>
+ <keyword>label</keyword>
+ <keyword>record</keyword>
+ <keyword>unit</keyword>
+ <keyword>class</keyword>
+ <keyword>finalization</keyword>
+ <keyword>library</keyword>
+ <keyword>repeat</keyword>
+ <keyword>unsafe</keyword>
+ <keyword>const</keyword>
+ <keyword>finally</keyword>
+ <keyword>mod</keyword>
+ <keyword>resourcestring</keyword>
+ <keyword>until</keyword>
+ <keyword>constructor</keyword>
+ <keyword>for</keyword>
+ <keyword>nil</keyword>
+ <keyword>sealed</keyword>
+ <keyword>uses</keyword>
+ <keyword>destructor</keyword>
+ <keyword>function</keyword>
+ <keyword>not</keyword>
+ <keyword>set</keyword>
+ <keyword>var</keyword>
+ <keyword>dispinterface</keyword>
+ <keyword>goto</keyword>
+ <keyword>object</keyword>
+ <keyword>shl</keyword>
+ <keyword>while</keyword>
+ <keyword>div</keyword>
+ <keyword>if</keyword>
+ <keyword>of</keyword>
+ <keyword>shr</keyword>
+ <keyword>with</keyword>
+ <keyword>do</keyword>
+ <keyword>implementation</keyword>
+ <keyword>or</keyword>
+ <keyword>static</keyword>
+ <keyword>xor</keyword>
+ <keyword>downto</keyword>
+ <keyword>in</keyword>
+ <keyword>out</keyword>
+ <keyword>string</keyword>
+
+ <!-- Special meaning -->
+ <keyword>at</keyword>
+ <keyword>on</keyword>
+
+ <!-- Directives -->
+ <keyword>absolute</keyword>
+ <keyword>dynamic</keyword>
+ <keyword>local</keyword>
+ <keyword>platform</keyword>
+ <keyword>requires</keyword>
+ <keyword>abstract</keyword>
+ <keyword>export</keyword>
+ <keyword>message</keyword>
+ <keyword>private</keyword>
+ <keyword>resident</keyword>
+ <keyword>assembler</keyword>
+ <keyword>external</keyword>
+ <keyword>name</keyword>
+ <keyword>protected</keyword>
+ <keyword>safecall</keyword>
+ <keyword>automated</keyword>
+ <keyword>far</keyword>
+ <keyword>near</keyword>
+ <keyword>public</keyword>
+ <keyword>stdcall</keyword>
+ <keyword>cdecl</keyword>
+ <keyword>forward</keyword>
+ <keyword>nodefault</keyword>
+ <keyword>published</keyword>
+ <keyword>stored</keyword>
+ <keyword>contains</keyword>
+ <keyword>implements</keyword>
+ <keyword>overload</keyword>
+ <keyword>read</keyword>
+ <keyword>varargs</keyword>
+ <keyword>default</keyword>
+ <keyword>index</keyword>
+ <keyword>override</keyword>
+ <keyword>readonly</keyword>
+ <keyword>virtual</keyword>
+ <keyword>deprecated</keyword>
+ <keyword>inline</keyword>
+ <keyword>package</keyword>
+ <keyword>register</keyword>
+ <keyword>write</keyword>
+ <keyword>dispid</keyword>
+ <keyword>library</keyword>
+ <keyword>pascal</keyword>
+ <keyword>reintroduce</keyword>
+ <keyword>writeonly</keyword>
+
+ <ignoreCase/>
+</highlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+-->
diff --git a/docs/xsl-generic/highlighting/ini-hl.xml b/docs/xsl-generic/highlighting/ini-hl.xml
new file mode 100644
index 00000000..dbebfa7d
--- /dev/null
+++ b/docs/xsl-generic/highlighting/ini-hl.xml
@@ -0,0 +1,43 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<wholehighlighter type='regex'>
+ <pattern>(?m)(;.*)$</pattern>
+ <style>comment</style>
+</wholehighlighter>
+
+<wholehighlighter type='regex'>
+ <pattern>(?m)^(\[.+\]\s*)$</pattern>
+ <style>section</style>
+</wholehighlighter>
+
+<wholehighlighter type='regex'>
+ <pattern>(?m)^(.+=)</pattern>
+ <style>keyword</style>
+</wholehighlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+-->
diff --git a/docs/xsl-generic/highlighting/java-hl.xml b/docs/xsl-generic/highlighting/java-hl.xml
new file mode 100644
index 00000000..419b7cb8
--- /dev/null
+++ b/docs/xsl-generic/highlighting/java-hl.xml
@@ -0,0 +1,98 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<highlighter type='multiline-comment'>
+ <start>/*</start>
+ <end>*/</end>
+</highlighter>
+
+<highlighter type='oneline-comment'>
+ //
+</highlighter>
+
+<highlighter type='string'>
+ <string>"</string>
+ <escape>\</escape>
+</highlighter>
+
+<highlighter type='string'>
+ <string>'</string>
+ <escape>\</escape>
+</highlighter>
+
+<highlighter type='keywords'>
+ <keyword>abstract</keyword>
+ <keyword>boolean</keyword>
+ <keyword>break</keyword>
+ <keyword>byte</keyword>
+ <keyword>case</keyword>
+ <keyword>catch</keyword>
+ <keyword>char</keyword>
+ <keyword>class</keyword>
+ <keyword>const</keyword>
+ <keyword>continue</keyword>
+ <keyword>default</keyword>
+ <keyword>do</keyword>
+ <keyword>double</keyword>
+ <keyword>else</keyword>
+ <keyword>extends</keyword>
+ <keyword>final</keyword>
+ <keyword>finally</keyword>
+ <keyword>float</keyword>
+ <keyword>for</keyword>
+ <keyword>goto</keyword>
+ <keyword>if</keyword>
+ <keyword>implements</keyword>
+ <keyword>import</keyword>
+ <keyword>instanceof</keyword>
+ <keyword>int</keyword>
+ <keyword>interface</keyword>
+ <keyword>long</keyword>
+ <keyword>native</keyword>
+ <keyword>new</keyword>
+ <keyword>package</keyword>
+ <keyword>private</keyword>
+ <keyword>protected</keyword>
+ <keyword>public</keyword>
+ <keyword>return</keyword>
+ <keyword>short</keyword>
+ <keyword>static</keyword>
+ <keyword>strictfp</keyword>
+ <keyword>super</keyword>
+ <keyword>switch</keyword>
+ <keyword>synchronized</keyword>
+ <keyword>this</keyword>
+ <keyword>throw</keyword>
+ <keyword>throws</keyword>
+ <keyword>transient</keyword>
+ <keyword>try</keyword>
+ <keyword>void</keyword>
+ <keyword>volatile</keyword>
+ <keyword>while</keyword>
+</highlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+-->
diff --git a/docs/xsl-generic/highlighting/m2-hl.xml b/docs/xsl-generic/highlighting/m2-hl.xml
new file mode 100644
index 00000000..2d2c7693
--- /dev/null
+++ b/docs/xsl-generic/highlighting/m2-hl.xml
@@ -0,0 +1,86 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<highlighter type='nested-multiline-comment'>
+ <start>(*</start>
+ <end>*)</end>
+</highlighter>
+
+<highlighter type='string'>
+ <string>"</string>
+</highlighter>
+
+<highlighter type='string'>
+ <string>'</string>
+</highlighter>
+
+<highlighter type='keywords'>
+ <keyword>and</keyword>
+ <keyword>array</keyword>
+ <keyword>begin</keyword>
+ <keyword>by</keyword>
+ <keyword>case</keyword>
+ <keyword>const</keyword>
+ <keyword>definition</keyword>
+ <keyword>div</keyword>
+ <keyword>do</keyword>
+ <keyword>else</keyword>
+ <keyword>elsif</keyword>
+ <keyword>end</keyword>
+ <keyword>exit</keyword>
+ <keyword>export</keyword>
+ <keyword>for</keyword>
+ <keyword>from</keyword>
+ <keyword>if</keyword>
+ <keyword>implementation</keyword>
+ <keyword>import</keyword>
+ <keyword>in</keyword>
+ <keyword>loop</keyword>
+ <keyword>mod</keyword>
+ <keyword>module</keyword>
+ <keyword>not</keyword>
+ <keyword>of</keyword>
+ <keyword>or</keyword>
+ <keyword>pointer</keyword>
+ <keyword>procedure</keyword>
+ <keyword>qualified</keyword>
+ <keyword>record</keyword>
+ <keyword>repeat</keyword>
+ <keyword>return</keyword>
+ <keyword>set</keyword>
+ <keyword>then</keyword>
+ <keyword>to</keyword>
+ <keyword>type</keyword>
+ <keyword>until</keyword>
+ <keyword>var</keyword>
+ <keyword>while</keyword>
+ <keyword>with</keyword>
+
+ <ignoreCase/>
+</highlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+-->
diff --git a/docs/xsl-generic/highlighting/myxml-hl.xml b/docs/xsl-generic/highlighting/myxml-hl.xml
new file mode 100644
index 00000000..495d4e87
--- /dev/null
+++ b/docs/xsl-generic/highlighting/myxml-hl.xml
@@ -0,0 +1,131 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<wholehighlighter type='xml'>
+ <elementSet>
+ <style>html</style>
+ <element>A</element>
+ <element>ABBR</element>
+ <element>ACRONYM</element>
+ <element>ADDRESS</element>
+ <element>APPLET</element>
+ <element>AREA</element>
+ <element>B</element>
+ <element>BASE</element>
+ <element>BASEFONT</element>
+ <element>BDO</element>
+ <element>BIG</element>
+ <element>BLOCKQUOTE</element>
+ <element>BODY</element>
+ <element>BR</element>
+ <element>BUTTON</element>
+ <element>CAPTION</element>
+ <element>CENTER</element>
+ <element>CITE</element>
+ <element>CODE</element>
+ <element>COL</element>
+ <element>COLGROUP</element>
+ <element>DD</element>
+ <element>DEL</element>
+ <element>DFN</element>
+ <element>DIR</element>
+ <element>DIV</element>
+ <element>DL</element>
+ <element>DT</element>
+ <element>EM</element>
+ <element>FIELDSET</element>
+ <element>FONT</element>
+ <element>FORM</element>
+ <element>FRAME</element>
+ <element>FRAMESET</element>
+ <element>H1</element>
+ <element>H2</element>
+ <element>H3</element>
+ <element>H4</element>
+ <element>H5</element>
+ <element>H6</element>
+ <element>HEAD</element>
+ <element>HR</element>
+ <element>HTML</element>
+ <element>I</element>
+ <element>IFRAME</element>
+ <element>IMG</element>
+ <element>INPUT</element>
+ <element>INS</element>
+ <element>ISINDEX</element>
+ <element>KBD</element>
+ <element>LABEL</element>
+ <element>LEGEND</element>
+ <element>LI</element>
+ <element>LINK</element>
+ <element>MAP</element>
+ <element>MENU</element>
+ <element>META</element>
+ <element>NOFRAMES</element>
+ <element>NOSCRIPT</element>
+ <element>OBJECT</element>
+ <element>OL</element>
+ <element>OPTGROUP</element>
+ <element>OPTION</element>
+ <element>P</element>
+ <element>PARAM</element>
+ <element>PRE</element>
+ <element>Q</element>
+ <element>S</element>
+ <element>SAMP</element>
+ <element>SCRIPT</element>
+ <element>SELECT</element>
+ <element>SMALL</element>
+ <element>SPAN</element>
+ <element>STRIKE</element>
+ <element>STRONG</element>
+ <element>STYLE</element>
+ <element>SUB</element>
+ <element>SUP</element>
+ <element>TABLE</element>
+ <element>TBODY</element>
+ <element>TD</element>
+ <element>TEXTAREA</element>
+ <element>TFOOT</element>
+ <element>TH</element>
+ <element>THEAD</element>
+ <element>TITLE</element>
+ <element>TR</element>
+ <element>TT</element>
+ <element>U</element>
+ <element>UL</element>
+ <element>VAR</element>
+ <element>XMP</element>
+ <ignoreCase/>
+ </elementSet>
+ <elementPrefix>
+ <style>xslt</style>
+ <prefix>xsl:</prefix>
+ </elementPrefix>
+</wholehighlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+-->
diff --git a/docs/xsl-generic/highlighting/php-hl.xml b/docs/xsl-generic/highlighting/php-hl.xml
new file mode 100644
index 00000000..7cd0d6a7
--- /dev/null
+++ b/docs/xsl-generic/highlighting/php-hl.xml
@@ -0,0 +1,127 @@
+<?xml version='1.0'?>
+<highlighters>
+
+<highlighter type='multiline-comment'>
+ <start>/*</start>
+ <end>*/</end>
+</highlighter>
+
+<highlighter type='oneline-comment'>
+ //
+</highlighter>
+
+<highlighter type='oneline-comment'>
+ #
+</highlighter>
+
+<highlighter type='string'>
+ <string>"</string>
+ <escape>\</escape>
+</highlighter>
+
+<highlighter type='string'>
+ <string>'</string>
+ <escape>\</escape>
+</highlighter>
+
+<highlighter type='heredoc'>
+ <start>&lt;&lt;&lt;</start>
+</highlighter>
+
+<highlighter type='keywords'>
+ <keyword>and</keyword>
+ <keyword>or</keyword>
+ <keyword>xor</keyword>
+ <keyword>__FILE__</keyword>
+ <keyword>exception</keyword>
+ <keyword>__LINE__</keyword>
+ <keyword>array</keyword>
+ <keyword>as</keyword>
+ <keyword>break</keyword>
+ <keyword>case</keyword>
+ <keyword>class</keyword>
+ <keyword>const</keyword>
+ <keyword>continue</keyword>
+ <keyword>declare</keyword>
+ <keyword>default</keyword>
+ <keyword>die</keyword>
+ <keyword>do</keyword>
+ <keyword>echo</keyword>
+ <keyword>else</keyword>
+ <keyword>elseif</keyword>
+ <keyword>empty</keyword>
+ <keyword>enddeclare</keyword>
+ <keyword>endfor</keyword>
+ <keyword>endforeach</keyword>
+ <keyword>endif</keyword>
+ <keyword>endswitch</keyword>
+ <keyword>endwhile</keyword>
+ <keyword>eval</keyword>
+ <keyword>exit</keyword>
+ <keyword>extends</keyword>
+ <keyword>for</keyword>
+ <keyword>foreach</keyword>
+ <keyword>function</keyword>
+ <keyword>global</keyword>
+ <keyword>if</keyword>
+ <keyword>include</keyword>
+ <keyword>include_once</keyword>
+ <keyword>isset</keyword>
+ <keyword>list</keyword>
+ <keyword>new</keyword>
+ <keyword>print</keyword>
+ <keyword>require</keyword>
+ <keyword>require_once</keyword>
+ <keyword>return</keyword>
+ <keyword>static</keyword>
+ <keyword>switch</keyword>
+ <keyword>unset</keyword>
+ <keyword>use</keyword>
+ <keyword>var</keyword>
+ <keyword>while</keyword>
+ <keyword>__FUNCTION__</keyword>
+ <keyword>__CLASS__</keyword>
+ <keyword>__METHOD__</keyword>
+ <keyword>final</keyword>
+ <keyword>php_user_filter</keyword>
+ <keyword>interface</keyword>
+ <keyword>implements</keyword>
+ <keyword>extends</keyword>
+ <keyword>public</keyword>
+ <keyword>private</keyword>
+ <keyword>protected</keyword>
+ <keyword>abstract</keyword>
+ <keyword>clone</keyword>
+ <keyword>try</keyword>
+ <keyword>catch</keyword>
+ <keyword>throw</keyword>
+ <keyword>cfunction</keyword>
+ <keyword>old_function</keyword>
+ <ignoreCase/>
+</highlighter>
+
+</highlighters>
+<!--
+
+Copyright (c) 2005 Michal Molhanec
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+
+-->
diff --git a/docs/xsl-generic/highlighting/xslthl-config.xml b/docs/xsl-generic/highlighting/xslthl-config.xml
new file mode 100644
index 00000000..7c77f6fc
--- /dev/null
+++ b/docs/xsl-generic/highlighting/xslthl-config.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<xslthl-config>
+ <highlighter id='java' file='./java-hl.xml' />
+ <highlighter id='delphi' file='./delphi-hl.xml'/>
+ <highlighter id='ini' file='./ini-hl.xml' />
+ <highlighter id='php' file='./php-hl.xml' />
+ <highlighter id='myxml' file='./myxml-hl.xml' />
+ <highlighter id='m2' file='./m2-hl.xml' />
+ <highlighter id='c' file='./c-hl.xml' />
+ <namespace prefix="xslthl" uri="http://xslthl.sf.net" />
+</xslthl-config>
diff --git a/docs/xsl-generic/html/admon.xsl b/docs/xsl-generic/html/admon.xsl
new file mode 100644
index 00000000..6a3e9f8e
--- /dev/null
+++ b/docs/xsl-generic/html/admon.xsl
@@ -0,0 +1,132 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: admon.xsl 7072 2007-07-17 16:14:37Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="*" mode="admon.graphic.width">
+ <xsl:param name="node" select="."/>
+ <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template match="note|important|warning|caution|tip">
+ <xsl:choose>
+ <xsl:when test="$admon.graphics != 0">
+ <xsl:call-template name="graphical.admonition"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="nongraphical.admonition"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+ <xsl:param name="node" select="."/>
+ <xsl:value-of select="$admon.graphics.path"/>
+ <xsl:choose>
+ <xsl:when test="local-name($node)='note'">note</xsl:when>
+ <xsl:when test="local-name($node)='warning'">warning</xsl:when>
+ <xsl:when test="local-name($node)='caution'">caution</xsl:when>
+ <xsl:when test="local-name($node)='tip'">tip</xsl:when>
+ <xsl:when test="local-name($node)='important'">important</xsl:when>
+ <xsl:otherwise>note</xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+ <xsl:variable name="admon.type">
+ <xsl:choose>
+ <xsl:when test="local-name(.)='note'">Note</xsl:when>
+ <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+ <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+ <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+ <xsl:when test="local-name(.)='important'">Important</xsl:when>
+ <xsl:otherwise>Note</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="alt">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="$admon.type"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$admon.style != ''">
+ <xsl:attribute name="style">
+ <xsl:value-of select="$admon.style"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <table border="0">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="$admon.type"/>
+ <xsl:if test="title|info/title">
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="(title|info/title)[1]"/>
+ </xsl:if>
+ </xsl:attribute>
+ <tr>
+ <td rowspan="2" align="center" valign="top">
+ <xsl:attribute name="width">
+ <xsl:apply-templates select="." mode="admon.graphic.width"/>
+ </xsl:attribute>
+ <img alt="[{$alt}]">
+ <xsl:attribute name="src">
+ <xsl:call-template name="admon.graphic"/>
+ </xsl:attribute>
+ </img>
+ </td>
+ <th align="left">
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="$admon.textlabel != 0 or title or info/title">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </xsl:if>
+ </th>
+ </tr>
+ <tr>
+ <td align="left" valign="top">
+ <xsl:apply-templates/>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$admon.style">
+ <xsl:attribute name="style">
+ <xsl:value-of select="$admon.style"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$admon.textlabel != 0 or title or info/title">
+ <h3 class="title">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </h3>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/annotations.xsl b/docs/xsl-generic/html/annotations.xsl
new file mode 100644
index 00000000..f0106320
--- /dev/null
+++ b/docs/xsl-generic/html/annotations.xsl
@@ -0,0 +1,169 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<xsl:template name="add.annotation.links">
+ <xsl:param name="scripts" select="normalize-space($annotation.js)"/>
+ <xsl:choose>
+ <xsl:when test="contains($scripts, ' ')">
+ <script type="text/javascript" src="{substring-before($scripts, ' ')}"/>
+ <xsl:call-template name="add.annotation.links">
+ <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <script type="text/javascript" src="{$scripts}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation"/>
+
+<xsl:template name="apply-annotations">
+ <xsl:if test="$annotation.support != 0">
+ <!-- do any annotations apply to the context node? -->
+ <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+
+ <xsl:variable name="aids">
+ <xsl:for-each select="//annotation">
+ <xsl:if test="@annotates=$id
+ or starts-with(@annotates, concat($id, ' '))
+ or contains(@annotates, concat(' ', $id, ' '))
+ or substring(@annotates, string-length(@annotates)-3)
+ = concat(' ', $id)">
+ <xsl:value-of select="generate-id()"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="normalize-space(@annotations) != ''">
+ <xsl:call-template name="annotations-pointed-to">
+ <xsl:with-param name="annotations"
+ select="normalize-space(@annotations)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:if test="$aids != ''">
+ <xsl:call-template name="apply-annotations-by-gid">
+ <xsl:with-param name="gids" select="normalize-space($aids)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="annotations-pointed-to">
+ <xsl:param name="annotations"/>
+ <xsl:choose>
+ <xsl:when test="contains($annotations, ' ')">
+ <xsl:variable name='a'
+ select="key('id', substring-before($annotations, ' '))"/>
+ <xsl:if test="$a">
+ <xsl:value-of select="generate-id($a)"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:call-template name="annotations-pointed-to">
+ <xsl:with-param name="annotations"
+ select="substring-after($annotations, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name='a'
+ select="key('id', $annotations)"/>
+ <xsl:if test="$a">
+ <xsl:value-of select="generate-id($a)"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="apply-annotations-by-gid">
+ <xsl:param name="gids"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($gids, ' ')">
+ <xsl:variable name="gid" select="substring-before($gids, ' ')"/>
+ <xsl:apply-templates select="key('gid', $gid)"
+ mode="annotation-inline"/>
+ <xsl:call-template name="apply-annotations-by-gid">
+ <xsl:with-param name="gids"
+ select="substring-after($gids, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="key('gid', $gids)"
+ mode="annotation-inline"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-inline">
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:value-of select="title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>[Annotation #</xsl:text>
+ <xsl:number count="annotation" level="any" format="1"/>
+ <xsl:text>]</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <a href="#annot-{generate-id(.)}" title="{$title}"
+ name="anch-{generate-id(.)}" id="anch-{generate-id(.)}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="onClick">
+ <xsl:text>popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>.showPopup('anch-</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>'); return false;</xsl:text>
+ </xsl:attribute>
+ <img src="{$annotation.graphic.open}" border="0" alt="{$title}"/>
+ </a>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-popup">
+ <div class="annotation-nocss">
+ <p>
+ <a name="annot-{generate-id(.)}"/>
+ <xsl:text>Annotation #</xsl:text>
+ <xsl:number count="annotation" level="any" format="1"/>
+ <xsl:text>:</xsl:text>
+ </p>
+ </div>
+
+ <div id="popup-{generate-id(.)}" class="annotation-popup">
+ <xsl:if test="string-length(.) &gt; 300">
+ <xsl:attribute name="style">width:400px</xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="annotation-title"/>
+ <div class="annotation-body">
+ <xsl:apply-templates select="*[local-name(.) != 'title']"/>
+ </div>
+ <div class="annotation-close">
+ <a href="#" onclick="popup_{generate-id(.)}.hidePopup();return false;">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <img src="{$annotation.graphic.close}" alt="X" border="0"/>
+ </a>
+ </div>
+ </div>
+</xsl:template>
+
+<xsl:template name="annotation-title">
+ <div class="annotation-title">
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title/node()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Annotation</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/autoidx-kimber.xsl b/docs/xsl-generic/html/autoidx-kimber.xsl
new file mode 100644
index 00000000..f8d9e3fd
--- /dev/null
+++ b/docs/xsl-generic/html/autoidx-kimber.xsl
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))'>
+<!ENTITY secondary 'normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""]))'>
+<!ENTITY tertiary 'normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""]))'>
+
+<!-- Documents using the kimber index method must have a lang attribute -->
+<!-- Only one of these should be present in the entity -->
+<!ENTITY lang 'concat(/*/@lang, /*/@xml:lang)'>
+
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService"
+ exclude-result-prefixes="k"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: autoidx-kimber.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. -->
+<!-- ==================================================================== -->
+<!-- *** THIS MODULE ONLY WORKS WITH SAXON 6 OR SAXON 8 *** -->
+<!-- ==================================================================== -->
+
+
+<xsl:include href="../common/autoidx-kimber.xsl"/>
+
+<!-- Java sort apparently works only on lang part, not country -->
+<xsl:param name="sort.lang">
+ <xsl:choose>
+ <xsl:when test="contains(&lang;, '-')">
+ <xsl:value-of select="substring-before(&lang;, '-')"/>
+ </xsl:when>
+ <xsl:when test="contains(&lang;, '_')">
+ <xsl:value-of select="substring-before(&lang;, '_')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="&lang;"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:param>
+
+<xsl:template name="generate-kimber-index">
+ <xsl:param name="scope" select="NOTANODE"/>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:if test="not(contains($vendor, 'SAXON '))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+ <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="not(function-available('k:getIndexGroupKey'))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+ <xsl:text>Innodata Isogen &#x0A;Java extensions for </xsl:text>
+ <xsl:text>internationalized indexes. &#x0A;Install those </xsl:text>
+ <xsl:text>extensions, or use a different index method.&#x0A;</xsl:text>
+ <xsl:text>For more information, see:&#x0A;</xsl:text>
+ <xsl:text>http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="role">
+ <xsl:if test="$index.on.role != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:if test="$index.on.type != 0">
+ <xsl:value-of select="@type"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="terms"
+ select="//indexterm[count(.|key('k-group', k:getIndexGroupKey(&lang;, &primary;))[&scope;][1]) = 1 and not(@class = 'endofrange')]"/>
+
+ <xsl:variable name="alphabetical"
+ select="$terms[not(starts-with(
+ k:getIndexGroupKey(&lang;, &primary;),
+ '#NUMERIC'
+ ))]"/>
+
+ <xsl:variable name="others"
+ select="$terms[starts-with(
+ k:getIndexGroupKey(&lang;, &primary;),
+ '#NUMERIC'
+ )]"/>
+
+ <div class="index">
+ <xsl:if test="$others">
+ <div class="indexdev">
+ <h3>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'index symbols'"/>
+ </xsl:call-template>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="$others"
+ mode="index-symbol-div">
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort lang="{$sort.lang}"
+ select="k:getIndexGroupSortKey(&lang;,
+ k:getIndexGroupKey(&lang;, &primary;))"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:if>
+
+ <xsl:apply-templates select="$alphabetical"
+ mode="index-div-kimber">
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort lang="{$sort.lang}"
+ select="k:getIndexGroupSortKey(&lang;,
+ k:getIndexGroupKey(&lang;, &primary;))"/>
+ </xsl:apply-templates>
+ </div>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kimber">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key"
+ select="k:getIndexGroupKey(&lang;, &primary;)"/>
+
+ <xsl:variable name="label"
+ select="k:getIndexGroupLabel(&lang;, $key)"/>
+
+ <xsl:if test="key('k-group', $label)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+ <div class="indexdiv">
+ <h3>
+ <xsl:value-of select="$label"/>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="key('k-group', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;]
+ [1])=1]"
+ mode="index-primary">
+ <xsl:sort select="&primary;" lang="{$sort.lang}"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/autoidx-kosek.xsl b/docs/xsl-generic/html/autoidx-kosek.xsl
new file mode 100644
index 00000000..a1309190
--- /dev/null
+++ b/docs/xsl-generic/html/autoidx-kosek.xsl
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))'>
+<!ENTITY secondary 'normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""]))'>
+<!ENTITY tertiary 'normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""]))'>
+
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="urn:cz-kosek:functions:index"
+ xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+ xmlns:func="http://exslt.org/functions"
+ xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService"
+ xmlns:exslt="http://exslt.org/common"
+ extension-element-prefixes="func exslt"
+ exclude-result-prefixes="func exslt i l k"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: autoidx-kosek.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+
+<xsl:include href="../common/autoidx-kosek.xsl"/>
+
+<xsl:template name="generate-kosek-index">
+ <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:if test="contains($vendor, 'libxslt')">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+ <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="contains($vendor, 'Saxonica')">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+ <xsl:text>work with the Saxon 8 XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="not(function-available('exslt:node-set') or
+ function-available('exslt:nodeSet'))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+ <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+ <xsl:text>has it, or use a different index method.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="not(function-available('i:group-index'))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method requires the&#xA;</xsl:text>
+ <xsl:text>index extension functions be imported:&#xA;</xsl:text>
+ <xsl:text> xsl:import href="common/autoidx-kosek.xsl"</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="role">
+ <xsl:if test="$index.on.role != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:if test="$index.on.type != 0">
+ <xsl:value-of select="@type"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="terms"
+ select="//indexterm[count(.|key('group-code', i:group-index(&primary;))[&scope;][1]) = 1 and not(@class = 'endofrange')]"/>
+
+ <div class="index">
+ <xsl:apply-templates select="$terms" mode="index-div-kosek">
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="i:group-index(&primary;)" data-type="number"/>
+ </xsl:apply-templates>
+ </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kosek">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key"
+ select="i:group-index(&primary;)"/>
+
+ <xsl:variable name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:variable>
+
+ <xsl:if test="key('group-code', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+ <div class="indexdiv">
+ <h3>
+ <xsl:value-of select="i:group-letter($key)"/>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="key('group-code', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1])=1]"
+ mode="index-primary">
+ <xsl:sort select="&primary;" lang="{$lang}"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/autoidx-ng.xsl b/docs/xsl-generic/html/autoidx-ng.xsl
new file mode 100644
index 00000000..9407b5cf
--- /dev/null
+++ b/docs/xsl-generic/html/autoidx-ng.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: autoidx-ng.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the DocBook XSL Stylesheet distribution.
+ See ../README or http://docbook.sf.net/ for copyright
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- You should have this directly in your customization file. -->
+<!-- This file is there only to retain backward compatibility. -->
+<xsl:import href="autoidx-kosek.xsl"/>
+<xsl:param name="index.method">kosek</xsl:param>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/autoidx.xsl b/docs/xsl-generic/html/autoidx.xsl
new file mode 100644
index 00000000..e01c0cd8
--- /dev/null
+++ b/docs/xsl-generic/html/autoidx.xsl
@@ -0,0 +1,645 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exslt="http://exslt.org/common"
+ extension-element-prefixes="exslt"
+ exclude-result-prefixes="exslt"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: autoidx.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "basic" method derived from Jeni Tennison's work. -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. -->
+
+<xsl:variable name="kimber.imported" select="0"/>
+<xsl:variable name="kosek.imported" select="0"/>
+
+<xsl:key name="letter"
+ match="indexterm"
+ use="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+<xsl:key name="primary"
+ match="indexterm"
+ use="&primary;"/>
+
+<xsl:key name="secondary"
+ match="indexterm"
+ use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+ match="indexterm"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="endofrange"
+ match="indexterm[@class='endofrange']"
+ use="@startref"/>
+
+<xsl:key name="primary-section"
+ match="indexterm[not(secondary) and not(see)]"
+ use="concat(&primary;, &sep;, &section.id;)"/>
+
+<xsl:key name="secondary-section"
+ match="indexterm[not(tertiary) and not(see)]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &section.id;)"/>
+
+<xsl:key name="tertiary-section"
+ match="indexterm[not(see)]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, &section.id;)"/>
+
+<xsl:key name="see-also"
+ match="indexterm[seealso]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+ match="indexterm[see]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/>
+
+<xsl:key name="sections" match="*[@id or @xml:id]" use="@id|@xml:id"/>
+
+
+<xsl:template name="generate-index">
+ <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+ <xsl:choose>
+ <xsl:when test="$index.method = 'kosek'">
+ <xsl:call-template name="generate-kosek-index">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$index.method = 'kimber'">
+ <xsl:call-template name="generate-kimber-index">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name="generate-basic-index">
+ <xsl:with-param name="scope" select="$scope"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate-basic-index">
+ <xsl:param name="scope" select="NOTANODE"/>
+
+ <xsl:variable name="role">
+ <xsl:if test="$index.on.role != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:if test="$index.on.type != 0">
+ <xsl:value-of select="@type"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="terms"
+ select="//indexterm
+ [count(.|key('letter',
+ translate(substring(&primary;, 1, 1),
+ &lowercase;,
+ &uppercase;))
+ [&scope;][1]) = 1
+ and not(@class = 'endofrange')]"/>
+
+ <xsl:variable name="alphabetical"
+ select="$terms[contains(concat(&lowercase;, &uppercase;),
+ substring(&primary;, 1, 1))]"/>
+
+ <xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;,
+ &uppercase;),
+ substring(&primary;, 1, 1)))]"/>
+ <div class="index">
+ <xsl:if test="$others">
+ <div class="indexdiv">
+ <h3>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'index symbols'"/>
+ </xsl:call-template>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="$others[count(.|key('primary',
+ &primary;)[&scope;][1]) = 1]"
+ mode="index-symbol-div">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:if>
+
+ <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+ translate(substring(&primary;, 1, 1),
+ &lowercase;,&uppercase;))[&scope;][1]) = 1]"
+ mode="index-div-basic">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </div>
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kosek.xsl is imported -->
+<xsl:template name="generate-kosek-index">
+ <xsl:param name="scope" select="NOTANODE"/>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:if test="contains($vendor, 'libxslt')">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+ <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+
+ <xsl:if test="not(function-available('exslt:node-set') or
+ function-available('exslt:nodeSet'))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+ <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+ <xsl:text>has it, or use a different index method.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="$kosek.imported = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kosek' index method requires the&#xA;</xsl:text>
+ <xsl:text>kosek index extensions be imported:&#xA;</xsl:text>
+ <xsl:text> xsl:import href="html/autoidx-kosek.xsl"</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kimber.xsl is imported -->
+<xsl:template name="generate-kimber-index">
+ <xsl:param name="scope" select="NOTANODE"/>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:if test="not(contains($vendor, 'SAXON '))">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+ <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="$kimber.imported = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ERROR: the 'kimber' index method requires the&#xA;</xsl:text>
+ <xsl:text>kimber index extensions be imported:&#xA;</xsl:text>
+ <xsl:text> xsl:import href="html/autoidx-kimber.xsl"</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-basic">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key"
+ select="translate(substring(&primary;, 1, 1),
+ &lowercase;,&uppercase;)"/>
+
+ <xsl:if test="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+ <div class="indexdiv">
+ <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+ <h3>
+ <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
+ </h3>
+ </xsl:if>
+ <dl>
+ <xsl:apply-templates select="key('letter', $key)[&scope;]
+ [count(.|key('primary', &primary;)
+ [&scope;][1])=1]"
+ mode="index-primary">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-symbol-div">
+ <xsl:param name="scope" select="/"/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),
+ &lowercase;,&uppercase;)"/>
+
+ <xsl:apply-templates select="key('letter', $key)
+ [&scope;][count(.|key('primary', &primary;)[1]) = 1]"
+ mode="index-primary">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key" select="&primary;"/>
+ <xsl:variable name="refs" select="key('primary', $key)[&scope;]"/>
+ <dt>
+ <xsl:value-of select="primary"/>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, &sep;, &section.id;))[&scope;][1])]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+
+ <xsl:if test="$refs[not(secondary)]/*[self::see]">
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[&scope;][1])]"
+ mode="index-see">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </dt>
+ <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::seealso]">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[&scope;][1])]"
+ mode="index-seealso">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[&scope;][1]) = 1]"
+ mode="index-secondary">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(&secondary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+ <xsl:variable name="refs" select="key('secondary', $key)[&scope;]"/>
+ <dt>
+ <xsl:value-of select="secondary"/>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, &sep;, &section.id;))[&scope;][1])]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+
+ <xsl:if test="$refs[not(tertiary)]/*[self::see]">
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[&scope;][1])]"
+ mode="index-see">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </dt>
+ <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::seealso]">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[&scope;][1])]"
+ mode="index-seealso">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[&scope;][1]) = 1]"
+ mode="index-tertiary">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(&tertiary;, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+ <xsl:variable name="refs" select="key('tertiary', $key)[&scope;]"/>
+ <dt>
+ <xsl:value-of select="tertiary"/>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, &section.id;))[&scope;][1])]">
+ <xsl:apply-templates select="." mode="reference">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+
+ <xsl:if test="$refs/see">
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[&scope;][1])]"
+ mode="index-see">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </dt>
+ <xsl:if test="$refs/seealso">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[&scope;][1])]"
+ mode="index-seealso">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+ </xsl:apply-templates>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+ <xsl:param name="position"/>
+
+ <xsl:variable name="term.separator">
+ <xsl:call-template name="index.separator">
+ <xsl:with-param name="key" select="'index.term.separator'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="number.separator">
+ <xsl:call-template name="index.separator">
+ <xsl:with-param name="key" select="'index.number.separator'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="range.separator">
+ <xsl:call-template name="index.separator">
+ <xsl:with-param name="key" select="'index.range.separator'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$position = 1">
+ <xsl:value-of select="$term.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$number.separator"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="@zone and string(@zone)">
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="&section;/titleabbrev and $index.prefer.titleabbrev != 0">
+ <xsl:apply-templates select="&section;" mode="titleabbrev.markup"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="&section;" mode="title.markup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="&section;"/>
+ <xsl:with-param name="context" select="//index[&scope;][1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:value-of select="$title"/> <!-- text only -->
+ </a>
+
+ <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+ <xsl:if test="key('endofrange', $id)[&scope;]">
+ <xsl:apply-templates select="key('endofrange', $id)[&scope;][last()]"
+ mode="reference">
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:with-param name="separator" select="$range.separator"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+ <xsl:param name="zones"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($zones, ' ')">
+ <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+ <xsl:variable name="target" select="key('sections', $zone)"/>
+
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target[1]"/>
+ <xsl:with-param name="context" select="//index[&scope;][1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+ </a>
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+ <xsl:with-param name="position" select="position()"/>
+ <xsl:with-param name="scope" select="$scope"/>
+ <xsl:with-param name="role" select="$role"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zone" select="$zones"/>
+ <xsl:variable name="target" select="key('sections', $zone)"/>
+
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target[1]"/>
+ <xsl:with-param name="context" select="//index[&scope;][1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:text> (</xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'see'"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="see"/>
+ <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+ <xsl:param name="scope" select="."/>
+ <xsl:param name="role" select="''"/>
+ <xsl:param name="type" select="''"/>
+
+ <xsl:for-each select="seealso">
+ <xsl:sort select="translate(., &lowercase;, &uppercase;)"/>
+ <dt>
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'seealso'"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>)</xsl:text>
+ </dt>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="&section;" mode="title.markup"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template name="index.separator">
+ <xsl:param name="key" select="''"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$key = 'index.term.separator'">
+ <xsl:choose>
+ <!-- Use the override if not blank -->
+ <xsl:when test="$index.term.separator != ''">
+ <xsl:copy-of select="$index.term.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="context">index</xsl:with-param>
+ <xsl:with-param name="name">term-separator</xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$key = 'index.number.separator'">
+ <xsl:choose>
+ <!-- Use the override if not blank -->
+ <xsl:when test="$index.number.separator != ''">
+ <xsl:copy-of select="$index.number.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="context">index</xsl:with-param>
+ <xsl:with-param name="name">number-separator</xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$key = 'index.range.separator'">
+ <xsl:choose>
+ <!-- Use the override if not blank -->
+ <xsl:when test="$index.range.separator != ''">
+ <xsl:copy-of select="$index.range.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="context">index</xsl:with-param>
+ <xsl:with-param name="name">range-separator</xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/autotoc.xsl b/docs/xsl-generic/html/autotoc.xsl
new file mode 100644
index 00000000..3a50227c
--- /dev/null
+++ b/docs/xsl-generic/html/autotoc.xsl
@@ -0,0 +1,675 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: autotoc.xsl 7084 2007-07-19 07:17:45Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:variable name="toc.listitem.type">
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+ <xsl:otherwise>li</xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="make.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="toc.title.p" select="true()"/>
+ <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+
+ <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+ <xsl:variable name="toc.title">
+ <xsl:if test="$toc.title.p">
+ <p>
+ <b>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$manual.toc != ''">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <xsl:variable name="toc" select="document($manual.toc, .)"/>
+ <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
+ <xsl:if test="$tocentry and $tocentry/*">
+ <div class="toc">
+ <xsl:copy-of select="$toc.title"/>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:call-template name="manual-toc">
+ <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+ </xsl:call-template>
+ </xsl:element>
+ </div>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$qanda.in.toc != 0">
+ <xsl:if test="$nodes.plus">
+ <div class="toc">
+ <xsl:copy-of select="$toc.title"/>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes.plus" mode="toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </div>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$nodes">
+ <div class="toc">
+ <xsl:copy-of select="$toc.title"/>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes" mode="toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </div>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make.lots">
+ <xsl:param name="toc.params" select="''"/>
+ <xsl:param name="toc"/>
+
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:copy-of select="$toc"/>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'figure')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'table')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'example')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'equation')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'procedure')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'procedure'"/>
+ <xsl:with-param name="nodes" select=".//procedure[title]"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="set.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="toc.title.p" select="true()"/>
+
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+ <xsl:with-param name="nodes" select="book|setindex"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="division.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="toc.title.p" select="true()"/>
+
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+ <xsl:with-param name="nodes" select="part|reference
+ |preface|chapter|appendix
+ |article
+ |bibliography|glossary|index
+ |refentry
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="toc.title.p" select="true()"/>
+
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+ <xsl:with-param name="nodes" select="section|sect1
+ |simplesect[$simplesect.in.toc != 0]
+ |refentry
+ |article|bibliography|glossary
+ |appendix|index
+ |bridgehead[not(@renderas)
+ and $bridgehead.in.toc != 0]
+ |.//bridgehead[@renderas='sect1'
+ and $bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc.separator">
+ <!-- Customize to output something between
+ component.toc and first output -->
+</xsl:template>
+
+<xsl:template name="section.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="toc.title.p" select="true()"/>
+
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+ <xsl:with-param name="nodes"
+ select="section|sect1|sect2|sect3|sect4|sect5|refentry
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="section.toc.separator">
+ <!-- Customize to output something between
+ section.toc and first output -->
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template name="subtoc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+
+ <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:choose>
+ <xsl:when test="$qanda.in.toc != 0">
+ <xsl:apply-templates mode="toc" select="$nodes.plus">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="toc" select="$nodes">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="depth">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'section'">
+ <xsl:value-of select="count(ancestor::section) + 1"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+ <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
+ <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
+ <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
+ <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
+ <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
+ <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
+ <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
+ <xsl:when test="local-name(.) = 'simplesect'">
+ <!-- sigh... -->
+ <xsl:choose>
+ <xsl:when test="local-name(..) = 'section'">
+ <xsl:value-of select="count(ancestor::section)"/>
+ </xsl:when>
+ <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
+ <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
+ <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
+ <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
+ <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
+ <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
+ <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
+ <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:call-template name="toc.line">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth > $depth and
+ ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or
+ ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )
+ and $toc.max.depth > $depth.from.context">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth > $depth and
+ ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or
+ ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )
+ and $toc.max.depth > $depth.from.context">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="toc.line">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="depth" select="1"/>
+ <xsl:param name="depth.from.context" select="8"/>
+
+ <span>
+ <xsl:attribute name="class"><xsl:value-of select="local-name(.)"/></xsl:attribute>
+
+ <!-- * if $autotoc.label.in.hyperlink is zero, then output the label -->
+ <!-- * before the hyperlinked title (as the DSSSL stylesheet does) -->
+ <xsl:if test="$autotoc.label.in.hyperlink = 0">
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ </xsl:if>
+
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$toc-context"/>
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <!-- * if $autotoc.label.in.hyperlink is non-zero, then output the label -->
+ <!-- * as part of the hyperlinked title -->
+ <xsl:if test="not($autotoc.label.in.hyperlink = 0)">
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </a>
+ </span>
+</xsl:template>
+
+<xsl:template match="book" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="part|reference
+ |preface|chapter|appendix
+ |article
+ |bibliography|glossary|index
+ |refentry
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="setindex" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <!-- If the setindex tag is not empty, it should be it in the TOC -->
+ <xsl:if test="* or $generate.index != 0">
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="appendix|chapter|article
+ |index|glossary|bibliography
+ |preface|reference|refentry
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="section|sect1
+ |simplesect[$simplesect.in.toc != 0]
+ |refentry
+ |glossary|bibliography|index
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="sect2
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="sect3
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="sect4
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="sect5
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="section
+ |bridgehead[$bridgehead.in.toc != 0]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:if test="$bridgehead.in.toc != 0">
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <!-- If the index tag is not empty, it should be it in the TOC -->
+ <xsl:if test="* or $generate.index != 0">
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:variable name="refmeta" select=".//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select=".//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+ <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]"
+ mode="titleabbrev.markup"/>
+ </xsl:when>
+ <xsl:when test="$refdesc">
+ <xsl:apply-templates select="$refdesc"
+ mode="titleabbrev.markup"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]"
+ mode="titleabbrev.markup"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <span class='refentrytitle'>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:copy-of select="$title"/>
+ </a>
+ </span>
+ <span class='refpurpose'>
+ <xsl:if test="$annotate.toc != 0">
+ <!-- * DocBook 5 says inlinemediaobject (among other things) -->
+ <!-- * is allowed in refpurpose; so we need to run -->
+ <!-- * apply-templates on refpurpose here, instead of value-of -->
+ <xsl:apply-templates select="refnamediv/refpurpose"/>
+ </xsl:if>
+ </span>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select=".."/>
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+
+<xsl:template name="manual-toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="tocentry"/>
+
+ <!-- be careful, we don't want to change the current document to the other tree! -->
+
+ <xsl:if test="$tocentry">
+ <xsl:variable name="node" select="key('id', $tocentry/@linkend)"/>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:variable name="label">
+ <xsl:apply-templates select="$node" mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$node"/>
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$node" mode="titleabbrev.markup"/>
+ </a>
+ </xsl:element>
+
+ <xsl:if test="$tocentry/*">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:call-template name="manual-toc">
+ <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+
+ <xsl:if test="$tocentry/following-sibling::*">
+ <xsl:call-template name="manual-toc">
+ <xsl:with-param name="tocentry" select="$tocentry/following-sibling::*[1]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="list.of.titles">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="titles" select="'table'"/>
+ <xsl:param name="nodes" select=".//table"/>
+
+ <xsl:if test="$nodes">
+ <div class="list-of-{$titles}s">
+ <p>
+ <b>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">
+ <xsl:choose>
+ <xsl:when test="$titles='table'">ListofTables</xsl:when>
+ <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+ <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+ <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+ <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+ <xsl:otherwise>ListofUnknown</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes" mode="toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation|procedure" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:copy-of select="$label"/>
+ <xsl:if test="$label != ''">
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </a>
+ </xsl:element>
+</xsl:template>
+
+<!-- Used only if qanda.in.toc parameter is non-zero -->
+<xsl:template match="qandaset" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="qandadiv | qandaentry"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandadiv|qandaentry" mode="toc">
+ <xsl:apply-templates select="." mode="qandatoc.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/biblio-iso690.xsl b/docs/xsl-generic/html/biblio-iso690.xsl
new file mode 100644
index 00000000..366212f5
--- /dev/null
+++ b/docs/xsl-generic/html/biblio-iso690.xsl
@@ -0,0 +1,1300 @@
+<?xml version="1.0" encoding="windows-1250"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+
+<!-- ********************************************************************
+ $Id: biblio.xsl 6402 2006-11-12 08:23:21Z bobstayton $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ The original code for processing bibliography in ISO690 style
+ was provided by Jana Dvorakova <jana4u@seznam.cz>
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- if biblioentry.alt.primary.seps is set to nonzero value then use alternative separators for primary responsibility - $alt.person.two.sep, $alt.person.last.sep, $alt.person.more.sep -->
+<xsl:param name="biblioentry.alt.primary.seps" select="0"/>
+
+<!-- how many authors will be printed if there is more than three authors - set to number 1 (default value), 2 or 3 -->
+<xsl:param name="biblioentry.primary.count" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="iso690.makecitation">
+<!-- Types of resources -->
+ <xsl:choose>
+
+ <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ENTIRE MESSAGE SYSTEM -->
+ <!-- same as Monographs -->
+ <xsl:when test="./@role='messagesystem'">
+ <xsl:call-template name="iso690.monogr"/>
+ </xsl:when>
+
+ <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ELECTRONIC MESSAGES -->
+ <!-- same as Contributions to Monographs -->
+ <xsl:when test="./@role='message'">
+ <xsl:call-template name="iso690.paper.mon"/>
+ </xsl:when>
+
+ <!-- SERIALS -->
+ <xsl:when test="./@role='serial' or ./biblioid/@class='issn' or ./issn">
+ <xsl:call-template name="iso690.serial"/>
+ </xsl:when>
+
+ <!-- PARTS OF MONOGRAPHS -->
+ <xsl:when test="./@role='part' or (./bibliomisc[@role='secnum']|./bibliomisc[@role='sectitle'])">
+ <xsl:call-template name="iso690.monogr.part"/>
+ </xsl:when>
+
+ <!-- CONTRIBUTIONS TO MONOGRAPHS -->
+ <xsl:when test="./@role='contribution' or (./biblioset/@relation='part' and ./biblioset/@relation='book')">
+ <xsl:call-template name="iso690.paper.mon"/>
+ </xsl:when>
+
+ <!-- ARTICLES, ETC., IN SERIALS -->
+ <xsl:when test="./@role='article' or (./biblioset/@relation='journal' and ./biblioset/@relation='article')">
+ <xsl:call-template name="iso690.article"/>
+ </xsl:when>
+
+ <!-- PATENT DOCUMENTS -->
+ <xsl:when test="./@role='patent' or (./bibliomisc[@role='patenttype'] and ./bibliomisc[@role='patentnum'])">
+ <xsl:call-template name="iso690.patent"/>
+ </xsl:when>
+
+ <!-- MONOGRAPHS -->
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.monogr"/>
+ </xsl:otherwise>
+
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- MONOGRAPHS -->
+<xsl:template name="iso690.monogr">
+ <!-- Primary responsibility -->
+ <xsl:call-template name="iso690.primary"/>
+ <!-- Title and Type of medium -->
+ <xsl:call-template name="iso690.title"/>
+ <!-- Subordinate responsibility -->
+ <xsl:call-template name="iso690.secondary"/>
+ <!-- Edition -->
+ <xsl:call-template name="iso690.edition"/>
+ <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+ <xsl:call-template name="iso690.pub"/>
+ <!-- Extent -->
+ <xsl:call-template name="iso690.extent"/>
+ <!-- Series -->
+ <xsl:call-template name="iso690.serie"/>
+ <!-- Notes -->
+ <xsl:call-template name="iso690.notice"/>
+ <!-- Avaibility and access -->
+ <xsl:call-template name="iso690.access"/>
+ <!-- Standard number -->
+ <xsl:call-template name="iso690.isbn"/>
+</xsl:template>
+
+<!-- SERIALS -->
+<xsl:template name="iso690.serial">
+ <!-- Title and Type of medium -->
+ <xsl:call-template name="iso690.title"/>
+ <!-- Responsibility [nonEL] -->
+ <xsl:if test="not(./bibliomisc[@role='medium'])">
+ <xsl:call-template name="iso690.secondary"/>
+ </xsl:if>
+ <!-- Edition -->
+ <xsl:call-template name="iso690.edition">
+ <xsl:with-param name="after" select="./bibliomisc[@role='issuing']"/>
+ </xsl:call-template>
+ <!-- Issue designation (date and/or num) [nonEL] -->
+ <xsl:if test="not(./bibliomisc[@role='medium'])">
+ <xsl:call-template name="iso690.issuing"/>
+ </xsl:if>
+ <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+ <xsl:call-template name="iso690.pub"/>
+ <!-- Series -->
+ <xsl:call-template name="iso690.serie"/>
+ <!-- Notes -->
+ <xsl:call-template name="iso690.notice"/>
+ <!-- Avaibility and access -->
+ <xsl:call-template name="iso690.access"/>
+ <!-- Standard number -->
+ <xsl:call-template name="iso690.issn"/>
+</xsl:template>
+
+<!-- PARTS OF MONOGRAPHS -->
+<xsl:template name="iso690.monogr.part">
+ <!-- Primary responsibility of host document -->
+ <xsl:call-template name="iso690.primary"/>
+ <!-- Title and Type of medium of host document -->
+ <xsl:call-template name="iso690.title"/>
+ <!-- Subordinate responsibility of host document [EL] -->
+ <xsl:if test="./bibliomisc[@role='medium']">
+ <xsl:call-template name="iso690.secondary"/>
+ </xsl:if>
+ <!-- Edition -->
+ <xsl:call-template name="iso690.edition">
+ <xsl:with-param name="after" select="./volumenum"/>
+ </xsl:call-template>
+ <!-- Numeration of the part [nonEL]-->
+ <xsl:if test="not(./bibliomisc[@role='medium'])">
+ <xsl:call-template name="iso690.partnr"/>
+ <!-- Subordinate responsibility [nonEL] -->
+ <xsl:call-template name="iso690.secondary"/>
+ </xsl:if>
+ <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+ <xsl:call-template name="iso690.pub"/>
+ <!-- Location within host -->
+ <xsl:call-template name="iso690.part.location"/>
+ <xsl:if test="./bibliomisc[@role='medium']">
+ <!-- Numeration within host document [EL] -->
+ <!-- Notes [EL] -->
+ <xsl:call-template name="iso690.notice"/>
+ <!-- Avaibility and access [EL] -->
+ <xsl:call-template name="iso690.access"/>
+ <!-- Standard number [EL] -->
+ <xsl:call-template name="iso690.isbn"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- CONTRIBUTIONS TO MONOGRAPHS -->
+<xsl:template name="iso690.paper.mon">
+<!-- Contribution -->
+ <xsl:apply-templates mode="iso690.paper.part" select="./biblioset[@relation='part']"/>
+<!-- In -->
+ <xsl:text>In </xsl:text>
+<!-- Host -->
+ <xsl:apply-templates mode="iso690.paper.book" select="./biblioset[@relation='book']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.part">
+<!-- Contribution -->
+ <!-- Primary responsibility -->
+ <xsl:call-template name="iso690.primary"/>
+ <!-- Title -->
+ <xsl:call-template name="iso690.title">
+ <xsl:with-param name="italic" select="0"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.book">
+<!-- Host -->
+ <!-- Primary responsibility -->
+ <xsl:call-template name="iso690.primary"/>
+ <!-- Title and Type of medium -->
+ <xsl:call-template name="iso690.title"/>
+ <!-- Subordinate responsibility [EL] -->
+ <xsl:if test="./bibliomisc[@role='medium']">
+ <xsl:call-template name="iso690.secondary"/>
+ </xsl:if>
+ <!-- Edition -->
+ <xsl:call-template name="iso690.edition"/>
+ <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+ <xsl:call-template name="iso690.paper.pub"/>
+ <!-- Numeration within host document [EL] -->
+ <!-- Location within host -->
+ <xsl:call-template name="iso690.location"/>
+ <xsl:if test="./bibliomisc[@role='medium']">
+ <!-- Notes [EL] -->
+ <xsl:call-template name="iso690.notice"/>
+ <!-- Avaibility and access [EL] -->
+ <xsl:call-template name="iso690.access"/>
+ <!-- Standard number [EL] -->
+ <xsl:call-template name="iso690.isbn"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ARTICLES, ETC., IN SERIALS -->
+<xsl:template name="iso690.article">
+<!-- Article -->
+ <xsl:apply-templates mode="iso690.article.art" select="./biblioset[@relation='article']"/>
+<!-- Serial -->
+ <xsl:apply-templates mode="iso690.article.jour" select="./biblioset[@relation='journal']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.art">
+<!-- Article -->
+ <!-- Primary responsibility -->
+ <xsl:call-template name="iso690.primary"/>
+ <!-- Title -->
+ <xsl:call-template name="iso690.title">
+ <xsl:with-param name="italic" select="0"/>
+ </xsl:call-template>
+ <!-- Subordinate responsibility [nonEL] -->
+ <xsl:if test="not(../*/bibliomisc[@role='medium'])">
+ <xsl:call-template name="iso690.secondary"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.jour">
+<!-- Serial -->
+ <!-- Title and Type of medium -->
+ <xsl:call-template name="iso690.title"/>
+ <!-- Edition -->
+ <xsl:call-template name="iso690.edition">
+ <xsl:with-param name="after" select="./pubdate[not(@role='issuing')]|./volumenum|./issuenum|./pagenums"/>
+ </xsl:call-template>
+ <!-- Number designation [EL] -->
+ <!-- Location within host -->
+ <xsl:call-template name="iso690.article.location"/>
+ <xsl:if test="./bibliomisc[@role='medium']">
+ <!-- Notes [EL] -->
+ <xsl:call-template name="iso690.notice"/>
+ <!-- Avaibility and access [EL] -->
+ <xsl:call-template name="iso690.access"/>
+ <!-- Standard number [EL] -->
+ <xsl:call-template name="iso690.issn"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- PATENT DOCUMENTS -->
+<xsl:template name="iso690.patent">
+ <!-- Primary responsibility (applicant) -->
+ <xsl:call-template name="iso690.primary"/>
+ <!-- Title of the invention -->
+ <xsl:call-template name="iso690.title"/>
+ <!-- Subordinate responsibility -->
+ <xsl:call-template name="iso690.secondary"/>
+ <!-- Notes -->
+ <xsl:call-template name="iso690.notice"/>
+ <!-- Identification -->
+ <xsl:call-template name="iso690.pat.ident"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Elements -->
+
+<!-- Primary responsibility -->
+<xsl:template name="iso690.primary">
+ <xsl:param name="primary.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="./authorgroup/author|./author">
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select=".//authorgroup/author|.//author"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="./authorgroup/editor|./editor">
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select=".//authorgroup/editor|.//editor"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="./authorgroup/corpauthor|./corpauthor">
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select=".//authorgroup/corpauthor|.//corpauthor"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="(./firstname)and(./surname)">
+ <xsl:call-template name="iso690.author"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(./firstname[1])"/>
+ <xsl:with-param name="sep" select="$primary.sep"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author.list">
+ <xsl:param name="person.list"
+ select="author|corpauthor|editor"/>
+ <xsl:param name="person.count" select="count($person.list)"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:param name="group" select="./authorgroup[@role='many']"/>
+ <xsl:param name="many" select="0"/>
+
+ <xsl:param name="primary.many">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.many'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="primary.editor">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.editor'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="primary.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count &gt; $person.count"></xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$person.count &lt; 4 and not($group)">
+ <xsl:call-template name="iso690.author">
+ <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="$person.count = 2 and $count = 1 and $biblioentry.alt.primary.seps != 0">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.two.sep'"/></xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$person.count = 2 and $count = 1">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'authorgroup'"/>
+ <xsl:with-param name="name" select="'sep2'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count and $biblioentry.alt.primary.seps != 0">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.last.sep'"/></xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'authorgroup'"/>
+ <xsl:with-param name="name" select="'seplast'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$count &lt; $person.count and $biblioentry.alt.primary.seps != 0">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.more.sep'"/></xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$count &lt; $person.count">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'authorgroup'"/>
+ <xsl:with-param name="name" select="'sep'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="($count = $person.count)">
+ <xsl:choose>
+ <xsl:when test="$many!=0">
+ <xsl:if test="name($person.list[position()=$count])='editor'">
+ <xsl:value-of select="$primary.editor"/>
+ </xsl:if>
+ <xsl:value-of select="$primary.many"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="$primary.many"/>
+ <xsl:with-param name="sep" select="$primary.sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name($person.list[position()=$count])='editor'">
+ <xsl:value-of select="$primary.editor"/>
+ <xsl:value-of select="$primary.sep"/>
+ </xsl:when>
+ <xsl:when test="name($person.list[position()=$count])='corpauthor'">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string($person.list[position()=$count])"/>
+ <xsl:with-param name="sep" select="$primary.sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string($person.list[position()=$count]//firstname[1])"/>
+ <xsl:with-param name="sep" select="$primary.sep"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select="$person.list"/>
+ <xsl:with-param name="person.count" select="$person.count"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ <xsl:with-param name="many" select="$many"/>
+ <xsl:with-param name="group"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="($biblioentry.primary.count&gt;=3) and ($person.count&gt;=3)">
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]|$person.list[3]"/>
+ <xsl:with-param name="person.count" select="3"/>
+ <xsl:with-param name="count" select="1"/>
+ <xsl:with-param name="many" select="1"/>
+ <xsl:with-param name="group"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="($biblioentry.primary.count&gt;1) and ($person.count&gt;1)">
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]"/>
+ <xsl:with-param name="person.count" select="2"/>
+ <xsl:with-param name="count" select="1"/>
+ <xsl:with-param name="many" select="1"/>
+ <xsl:with-param name="group"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.author.list">
+ <xsl:with-param name="person.list" select="$person.list[1]"/>
+ <xsl:with-param name="person.count" select="1"/>
+ <xsl:with-param name="count" select="1"/>
+ <xsl:with-param name="many" select="1"/>
+ <xsl:with-param name="group"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="lastfirst.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'lastfirst.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="name($node)!='corpauthor'">
+ <span style="text-transform:uppercase">
+ <xsl:apply-templates mode="iso690.mode" select="$node//surname[1]"/>
+ </span>
+ <xsl:if test="$node//surname and $node//firstname">
+ <xsl:value-of select="$lastfirst.sep"/>
+ </xsl:if>
+ <xsl:apply-templates mode="iso690.mode" select="$node//firstname[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <span style="text-transform:uppercase">
+ <xsl:apply-templates mode="iso690.mode" select="$node"/>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="corpauthor|firstname|surname" mode="iso690.mode">
+ <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Title and Type of medium -->
+<xsl:template name="iso690.title">
+ <xsl:param name="medium" select="./bibliomisc[@role='medium']"/>
+ <xsl:param name="italic" select="1"/>
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+ </xsl:param>
+
+ <xsl:apply-templates mode="iso690.mode" select="./title">
+ <xsl:with-param name="medium" select="$medium"/>
+ <xsl:with-param name="italic" select="$italic"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="title" mode="iso690.mode">
+ <xsl:param name="medium"/>
+ <xsl:param name="italic" select="1"/>
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="medium1">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium1'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="medium2">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium2'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="$italic=1">
+ <xsl:call-template name="iso690.italic.title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.make.title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$medium">
+ <xsl:value-of select="$medium1"/>
+ <xsl:apply-templates mode="iso690.mode" select="$medium"/>
+ <xsl:value-of select="$medium2"/>
+ </xsl:if>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="concat(string(.),string(../subtitle))"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="iso690.italic.title">
+ <i>
+ <xsl:call-template name="iso690.make.title"/>
+ </i>
+</xsl:template>
+
+<xsl:template name="iso690.make.title">
+ <xsl:param name="submaintitle.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'submaintitle.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:if test="../subtitle">
+ <xsl:value-of select="$submaintitle.sep"/>
+ <xsl:apply-templates mode="iso690.mode" select="../subtitle"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="iso690.mode">
+ <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='medium']" mode="iso690.mode">
+ <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Subordinate responsibility -->
+<xsl:template name="iso690.secondary">
+ <xsl:param name="secondary.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="secondary.person.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.person.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:for-each select="./bibliomisc[@role='secondary']">
+ <xsl:apply-templates mode="iso690.mode" select="."/>
+ <xsl:choose>
+ <xsl:when test="position()=count(../bibliomisc[@role='secondary'])">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$secondary.sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$secondary.person.sep"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secondary']" mode="iso690.mode">
+ <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Edition -->
+<xsl:template name="iso690.edition">
+ <xsl:param name="after"/>
+ <xsl:param name="edition.serial.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.serial.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="string($after)!=''">
+ <xsl:apply-templates mode="iso690.mode" select="./edition">
+ <xsl:with-param name="sep" select="$edition.serial.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./edition"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="edition" mode="iso690.mode">
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- Issue designation (date and/or num) -->
+<xsl:template name="iso690.issuing">
+ <xsl:param name="issuing.div">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="issuing.range">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="issuing.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2] and ./issuenum[2]">
+ <xsl:call-template name="iso690.issuedate"/>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+ <xsl:with-param name="sep" select="$issuing.div"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum[1]">
+ <xsl:with-param name="sep" select="$issuing.range"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+ <xsl:with-param name="sep" select="$issuing.div"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum[2]">
+ <xsl:with-param name="sep" select="$issuing.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2]">
+ <xsl:call-template name="iso690.issuedate"/>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+ <xsl:with-param name="sep" select="$issuing.range"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+ <xsl:with-param name="sep" select="$issuing.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./pubdate[@role='issuing'] and ./volumenum and ./issuenum">
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+ <xsl:with-param name="sep" select="$issuing.div"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+ <xsl:with-param name="sep" select="$issuing.div"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+ <xsl:with-param name="sep" select="$issuing.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./pubdate[@role='issuing']">
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+ <xsl:with-param name="sep" select="$issuing.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./volumenum">
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+ <xsl:with-param name="sep" select="$issuing.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./issuenum">
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+ <xsl:with-param name="sep" select="$issuing.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.issuedate">
+ <xsl:param name="issuing.div">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="issuing.range">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="issuing.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="./pubdate[@role='issuing'][2]">
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][1]">
+ <xsl:with-param name="sep" select="$issuing.range"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][2]">
+ <xsl:with-param name="sep" select="$issuing.div"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+ <xsl:with-param name="sep" select="$issuing.div"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="pubdate[@role='issuing']" mode="iso690.mode">
+ <xsl:param name="sep"/>
+ <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.space">
+ <xsl:with-param name="text" select="$substr"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="$substr='-'">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="' '"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- Numeration of the part -->
+<xsl:template name="iso690.partnr">
+ <xsl:param name="partnr.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'partnr.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+ <xsl:with-param name="sep" select="$partnr.sep"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+<xsl:template name="iso690.pub">
+ <xsl:param name="onlydate" select="0"/>
+ <xsl:param name="placesep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'placepubl.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="pubsep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'publyear.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="endsep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pubinfo.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="(./publisher/publishername|./publishername|./publisher/address/city)and($onlydate=0)and(./pubdate[not(@role='issuing')]|./copyright/year|./date[@role='upd']|./date[@role='upd'])">
+ <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+ <xsl:with-param name="sep" select="$placesep"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+ <xsl:with-param name="sep" select="$pubsep"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+ <xsl:with-param name="sep" select="$endsep"/>
+ </xsl:apply-templates>
+ <xsl:if test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+ <xsl:call-template name="iso690.data">
+ <xsl:with-param name="sep" select="$endsep"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="(./publisher/publishername|./publishername)and(./publisher/address/city)and($onlydate=0)">
+ <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+ <xsl:with-param name="sep" select="$placesep"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+ <xsl:with-param name="sep" select="$endsep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="($onlydate=1)or(./pubdate[not(@role='issuing')]|./copyright/year)">
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+ <xsl:with-param name="sep" select="$endsep"/>
+ </xsl:apply-templates>
+ <xsl:if test="$onlydate=1">
+ <xsl:call-template name="iso690.location">
+ <xsl:with-param name="onlypages" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+ <xsl:call-template name="iso690.data">
+ <xsl:with-param name="sep" select="$endsep"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.paper.pub">
+ <xsl:param name="spec.pubinfo.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'spec.pubinfo.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="./volumnum|./issuenum|./pagenums">
+ <xsl:call-template name="iso690.pub">
+ <xsl:with-param name="endsep" select="$spec.pubinfo.sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.pub"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.data">
+ <xsl:param name="sep"/>
+ <xsl:param name="datecit2">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode" select="./date[@role='upd']">
+ <xsl:with-param name="sep"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="iso690.mode" select="./date[@role='cit']"/>
+ <xsl:choose>
+ <xsl:when test="./date[@role='cit']">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="$datecit2"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="./date[@role='upd']">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(./date[@role='upd'])"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="publisher/address/city|publishername" mode="iso690.mode">
+ <xsl:param name="sep"/>
+ <xsl:param name="upd" select="0"/>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pubdate|copyright/year" mode="iso690.mode">
+ <xsl:param name="sep"/>
+ <xsl:param name="upd" select="1"/>
+ <xsl:param name="datecit2">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+ <xsl:if test="name(.)!='pubdate'">
+ <xsl:value-of select="'&#x00A9;'"/><!-- copyright -->
+ </xsl:if>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.space">
+ <xsl:with-param name="text" select="$substr"/>
+ </xsl:call-template>
+ <xsl:if test="$upd!=0">
+ <xsl:choose>
+ <xsl:when test="name(.)='pubdate'">
+ <xsl:apply-templates mode="iso690.mode" select="../date[@role='upd']"/>
+ <xsl:apply-templates mode="iso690.mode" select="../date[@role='cit']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="../../date[@role='upd']"/>
+ <xsl:apply-templates mode="iso690.mode" select="../../date[@role='cit']"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="../date[@role='cit']|../../date[@role='cit'] and $upd!=0">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="$datecit2"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="../date[@role='upd']|../../date[@role='upd'] and $upd!=0">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(../date[@role='upd'])"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$substr='-'">
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="' '"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.space">
+ <xsl:param name="text" select="substring(string(.),string-length(string(.)))"/>
+ <xsl:if test="$text='-'">
+ <xsl:value-of select="' '"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- Date of update/revision -->
+<xsl:template match="date[@role='upd']" mode="iso690.mode">
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'upd.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:value-of select="$sep"/>
+ <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Date of citation -->
+<xsl:template match="date[@role='cit']" mode="iso690.mode">
+ <xsl:param name="datecit1">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit1'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="datecit2">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:value-of select="$datecit1"/>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:value-of select="$datecit2"/>
+</xsl:template>
+
+<!-- Extent -->
+<xsl:template name="iso690.extent">
+ <xsl:param name="extent.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'extent.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode" select="./pagenums">
+ <xsl:with-param name="sep" select="$extent.sep"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- Location within host -->
+<xsl:template name="iso690.part.location">
+ <xsl:param name="location.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="./pagenums">
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"/>
+ <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+ </xsl:when>
+ <xsl:when test="./bibliomisc[@role='sectitle']">
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']">
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']">
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.article.location">
+ <xsl:param name="location.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="locs.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="not(./date[@role='upd']|./date[@role='cit'])">
+ <xsl:choose>
+ <xsl:when test="./volumenum|./issuenum|./pagenums">
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+ <xsl:with-param name="upd" select="0"/>
+ <xsl:with-param name="sep" select="$locs.sep"/>
+ </xsl:apply-templates>
+ <xsl:call-template name="iso690.location"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./volumenum|./issuenum|./pagenums">
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+ <xsl:with-param name="upd" select="0"/>
+ <xsl:with-param name="sep" select="$locs.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+ <xsl:with-param name="upd" select="0"/>
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./issuenum">
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+ <xsl:with-param name="sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+ <xsl:with-param name="sep"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./pagenums">
+ <xsl:call-template name="iso690.data">
+ <xsl:with-param name="sep" select="$locs.sep"/>
+ </xsl:call-template>
+ <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="iso690.data">
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.location">
+ <xsl:param name="location.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="./volumenum and not(./issuenum) and not(./pagenums)">
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./issuenum and not(./pagenums)">
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+ <xsl:with-param name="sep" select="$location.sep"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="./pagenums">
+ <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+ <xsl:apply-templates mode="iso690.mode" select="./issuenum"/>
+ <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secnum']|bibliomisc[@role='sectitle']" mode="iso690.mode">
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="volumenum|issuenum" mode="iso690.mode">
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="iso690.mode">
+ <xsl:param name="sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- Series -->
+<xsl:template name="iso690.serie">
+ <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[@role='serie']"/>
+</xsl:template>
+
+<!-- Notes -->
+<xsl:template name="iso690.notice">
+ <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[not(@role)]"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[not(@role)]|bibliomisc[@role='serie']" mode="iso690.mode">
+ <xsl:param name="notice.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'notice.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="string(.)"/>
+ <xsl:with-param name="sep" select="$notice.sep"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- Avaibility and access -->
+<xsl:template name="iso690.access">
+ <xsl:for-each select="./biblioid[@class='uri']|./bibliomisc[@role='access']">
+ <xsl:choose>
+ <xsl:when test="position()=1">
+ <xsl:apply-templates mode="iso690.mode" select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select=".">
+ <xsl:with-param name="firstacc" select="0"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']/ulink|bibliomisc[@role='access']/ulink" mode="iso690.mode">
+ <xsl:param name="link1">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link1'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="link2">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link2'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:value-of select="$link1"/>
+ <xsl:call-template name="ulink"/>
+ <xsl:value-of select="$link2"/>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']|bibliomisc[@role='access']" mode="iso690.mode">
+ <xsl:param name="firstacc" select="1"/>
+ <xsl:param name="access">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="acctoo">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'acctoo'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="onwww">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'onwww'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="oninet">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'oninet'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="access.end">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.end'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="access.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="$firstacc=1">
+ <xsl:value-of select="$access"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$acctoo"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="(./ulink)and(string(./ulink)=string(.))">
+ <xsl:choose>
+ <xsl:when test="(starts-with(./ulink/@url,'http://')or(starts-with(./ulink/@url,'https://')))">
+ <xsl:value-of select="$onwww"/>
+ <xsl:value-of select="$access.end"/>
+ <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$oninet"/>
+ <xsl:value-of select="$access.end"/>
+ <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="(./ulink)and(string(./ulink)!=string(.))">
+ <xsl:value-of select="text()[1]"/>
+ <xsl:call-template name="iso690.endsep">
+ <xsl:with-param name="text" select="text()[1]"/>
+ <xsl:with-param name="sep" select="$access.end"/>
+ </xsl:call-template>
+ <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$access.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISBN -->
+<xsl:template name="iso690.isbn">
+ <xsl:choose>
+ <xsl:when test="./biblioid/@class='isbn'">
+ <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='isbn']"/>
+ </xsl:when>
+ <xsl:when test="./isbn">
+ <xsl:apply-templates mode="iso690.mode" select="./isbn"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="isbn|biblioid[@class='isbn']" mode="iso690.mode">
+ <xsl:param name="isbn">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'isbn'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="stdnum.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:value-of select="$isbn"/>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISSN -->
+<xsl:template name="iso690.issn">
+ <xsl:choose>
+ <xsl:when test="./biblioid/@class='issn'">
+ <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='issn']"/>
+ </xsl:when>
+ <xsl:when test="./issn">
+ <xsl:apply-templates mode="iso690.mode" select="./issn"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="issn|biblioid[@class='issn']" mode="iso690.mode">
+ <xsl:param name="issn">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issn'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:param name="stdnum.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:value-of select="$issn"/>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Identification of patent document -->
+<xsl:template name="iso690.pat.ident">
+ <xsl:param name="patdate.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patdate.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode" select="./address/country"/>
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patenttype']"/>
+ <xsl:choose>
+ <xsl:when test="./biblioid[@class='other' and @otherclass='patentnum']">
+ <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='other' and @otherclass='patentnum']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patentnum']"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+ <xsl:with-param name="sep" select="$patdate.sep"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- Country or issuing office -->
+<xsl:template match="address/country" mode="iso690.mode">
+ <xsl:param name="patcountry.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patcountry.sep'"/></xsl:call-template>
+ </xsl:param>
+ <i>
+ <xsl:apply-templates mode="iso690.mode"/>
+ </i>
+ <xsl:value-of select="$patcountry.sep"/>
+</xsl:template>
+
+<!-- Kind of patent document -->
+<xsl:template match="bibliomisc[@role='patenttype']" mode="iso690.mode">
+ <xsl:param name="pattype.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pattype.sep'"/></xsl:call-template>
+ </xsl:param>
+ <i>
+ <xsl:apply-templates mode="iso690.mode"/>
+ </i>
+ <xsl:value-of select="$pattype.sep"/>
+</xsl:template>
+
+<!-- Number -->
+<xsl:template match="biblioid[@class='other' and @otherclass='patentnum']|bibliomisc[@role='patentnum']" mode="iso690.mode">
+ <xsl:param name="patnum.sep">
+ <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patnum.sep'"/></xsl:call-template>
+ </xsl:param>
+ <xsl:apply-templates mode="iso690.mode"/>
+ <xsl:value-of select="$patnum.sep"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Supplementary templates -->
+
+<xsl:template name="iso690.endsep">
+ <xsl:param name="text"/>
+ <xsl:param name="sep" select=". "/>
+ <xsl:choose>
+ <xsl:when test="substring($text,string-length($text))!=substring($sep,1,1)">
+ <xsl:value-of select="$sep"/>
+ </xsl:when>
+ <xsl:when test="substring($text,string-length($text))=' '">
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="' '"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="iso690.mode">
+ <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/biblio.xsl b/docs/xsl-generic/html/biblio.xsl
new file mode 100644
index 00000000..64369c6b
--- /dev/null
+++ b/docs/xsl-generic/html/biblio.xsl
@@ -0,0 +1,1228 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: biblio.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="bibliography.titlepage"/>
+
+ <xsl:apply-templates/>
+
+ <xsl:if test="not(parent::article)">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/info"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+ <h3>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliolist">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="blockinfo/title|info/title|title">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+ <xsl:apply-templates select="*[not(self::blockinfo)
+ and not(self::info)
+ and not(self::title)
+ and not(self::titleabbrev)
+ and not(self::biblioentry)
+ and not(self::bibliomixed)]"/>
+ <xsl:apply-templates select="biblioentry|bibliomixed"/>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+ <xsl:param name="label">
+ <xsl:call-template name="biblioentry.label"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string(.) = ''">
+ <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+ <xsl:variable name="entry" select="$bib/bibliography/
+ *[@id=$id or @xml:id=$id][1]"/>
+ <xsl:choose>
+ <xsl:when test="$entry">
+ <xsl:choose>
+ <xsl:when test="$bibliography.numbered != 0">
+ <xsl:apply-templates select="$entry">
+ <xsl:with-param name="label" select="$label"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$entry"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No bibliography entry: </xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> found in </xsl:text>
+ <xsl:value-of select="$bibliography.collection"/>
+ </xsl:message>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <p>
+ <xsl:copy-of select="$label"/>
+ <xsl:text>Error: no bibliography entry: </xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> found in </xsl:text>
+ <xsl:value-of select="$bibliography.collection"/>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <p>
+ <xsl:copy-of select="$label"/>
+ <xsl:choose>
+ <xsl:when test="$bibliography.style = 'iso690'">
+ <xsl:call-template name="iso690.makecitation"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+ <xsl:param name="label">
+ <xsl:call-template name="biblioentry.label"/>
+ </xsl:param>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string(.) = ''">
+ <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+ <xsl:variable name="entry" select="$bib/bibliography/
+ *[@id=$id or @xml:id=$id][1]"/>
+ <xsl:choose>
+ <xsl:when test="$entry">
+ <xsl:choose>
+ <xsl:when test="$bibliography.numbered != 0">
+ <xsl:apply-templates select="$entry">
+ <xsl:with-param name="label" select="$label"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$entry"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No bibliography entry: </xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> found in </xsl:text>
+ <xsl:value-of select="$bibliography.collection"/>
+ </xsl:message>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <p>
+ <xsl:copy-of select="$label"/>
+ <xsl:text>Error: no bibliography entry: </xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> found in </xsl:text>
+ <xsl:value-of select="$bibliography.collection"/>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <p>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$label"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="biblioentry.label">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$bibliography.numbered != 0">
+ <xsl:text>[</xsl:text>
+ <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+ level="any" format="1"/>
+ <xsl:text>] </xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates select="$node/abbrev[1]"/>
+ <xsl:text>] </xsl:text>
+ </xsl:when>
+ <xsl:when test="$node/@xreflabel">
+ <xsl:text>[</xsl:text>
+ <xsl:value-of select="$node/@xreflabel"/>
+ <xsl:text>] </xsl:text>
+ </xsl:when>
+ <xsl:when test="$node/@id">
+ <xsl:text>[</xsl:text>
+ <xsl:value-of select="$node/@id"/>
+ <xsl:text>] </xsl:text>
+ </xsl:when>
+ <xsl:when test="$node/@xml:id">
+ <xsl:text>[</xsl:text>
+ <xsl:value-of select="$node/@xml:id"/>
+ <xsl:text>] </xsl:text>
+ </xsl:when>
+ <xsl:otherwise><!-- nop --></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+ <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+ <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo|info" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="person.name"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
+ <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="person.name.list"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle"
+ mode="bibliography.mode">
+ <xsl:variable name="relation" select="../@relation"/>
+ <xsl:choose>
+ <xsl:when test="$relation='article' or @pubwork='article'">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:apply-templates/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <i><xsl:apply-templates/></i>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bookbiblio" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:choose>
+ <xsl:when test="@pubwork = 'article'">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Copyright'"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="year" mode="bibliography.mode"/>
+ <xsl:if test="holder">
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+ </xsl:if>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+ <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="person.name"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+ <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+ <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <i><xsl:apply-templates mode="bibliography.mode"/></i>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
+ mode="bibliography.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:copy-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+ <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle"
+ mode="bibliomixed.mode">
+ <xsl:variable name="relation" select="../@relation"/>
+ <xsl:choose>
+ <xsl:when test="$relation='article' or @pubwork='article'">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:apply-templates/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <i><xsl:apply-templates/></i>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:choose>
+ <xsl:when test="@pubwork = 'article'">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </span>
+</xsl:template>
+
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+ <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
+ mode="bibliomixed.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/block.xsl b/docs/xsl-generic/html/block.xsl
new file mode 100644
index 00000000..15487c84
--- /dev/null
+++ b/docs/xsl-generic/html/block.xsl
@@ -0,0 +1,434 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: block.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- What should we do about styling blockinfo? -->
+
+<xsl:template match="blockinfo|info">
+ <!-- suppress -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class">
+ <xsl:if test="@role and $para.propagates.style != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:if test="position() = 1 and parent::listitem">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="parent::listitem"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="paragraph">
+ <xsl:param name="class" select="''"/>
+ <xsl:param name="content"/>
+
+ <xsl:variable name="p">
+ <p>
+ <xsl:call-template name="dir"/>
+ <xsl:if test="$class != ''">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="$class"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </p>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$html.cleanup != 0">
+ <xsl:call-template name="unwrap.p">
+ <xsl:with-param name="p" select="$p"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$p"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simpara">
+ <!-- see also listitem/simpara in lists.xsl -->
+ <p>
+ <xsl:if test="@role and $para.propagates.style != 0">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class">
+ <xsl:if test="@role and $para.propagates.style != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- Only use title from info -->
+<xsl:template match="formalpara/info">
+ <xsl:apply-templates select="title"/>
+</xsl:template>
+
+<xsl:template match="formalpara/title|formalpara/info/title">
+ <xsl:variable name="titleStr">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:variable name="lastChar">
+ <xsl:if test="$titleStr != ''">
+ <xsl:value-of select="substring($titleStr,string-length($titleStr),1)"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <b>
+ <xsl:copy-of select="$titleStr"/>
+ <xsl:if test="$lastChar != ''
+ and not(contains($runinhead.title.end.punct, $lastChar))">
+ <xsl:value-of select="$runinhead.default.title.end.punct"/>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </b>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@lang or @xml:lang">
+ <xsl:call-template name="language.attribute"/>
+ </xsl:if>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:choose>
+ <xsl:when test="attribution">
+ <table border="0" width="100%"
+ cellspacing="0" cellpadding="0" class="blockquote"
+ summary="Block quote">
+ <tr>
+ <td width="10%" valign="top">&#160;</td>
+ <td width="80%" valign="top">
+ <xsl:apply-templates select="child::*[local-name(.)!='attribution']"/>
+ </td>
+ <td width="10%" valign="top">&#160;</td>
+ </tr>
+ <tr>
+ <td width="10%" valign="top">&#160;</td>
+ <td colspan="2" align="right" valign="top">
+ <xsl:text>--</xsl:text>
+ <xsl:apply-templates select="attribution"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <blockquote>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </blockquote>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+<xsl:template match="blockquote/title|blockquote/info/title">
+ <div class="blockquote-title">
+ <p>
+ <b>
+ <xsl:apply-templates/>
+ </b>
+ </p>
+ </div>
+</xsl:template>
+
+<xsl:template match="epigraph">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
+ <xsl:if test="attribution">
+ <div class="attribution">
+ <span>--<xsl:apply-templates select="attribution"/></span>
+ </div>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract|sidebar">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="abstract/title|sidebar/title">
+</xsl:template>
+
+<xsl:template match="sidebar/sidebarinfo|sidebar/info"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgsub">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgrel">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgtext">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'msgset'"/>
+ <xsl:with-param name="name" select="'MsgLevel'"/>
+ </xsl:call-template>
+ </b>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="msgorig">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'msgset'"/>
+ <xsl:with-param name="name" select="'MsgOrig'"/>
+ </xsl:call-template>
+ </b>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="msgaud">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'msgset'"/>
+ <xsl:with-param name="name" select="'MsgAud'"/>
+ </xsl:call-template>
+ </b>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <table border="0" width="100%" summary="Revision history">
+ <tr>
+ <th align="left" valign="top" colspan="3">
+ <b>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RevHistory'"/>
+ </xsl:call-template>
+ </b>
+ </th>
+ </tr>
+ <xsl:apply-templates/>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+ <xsl:variable name="revnumber" select="revnumber"/>
+ <xsl:variable name="revdate" select="date"/>
+ <xsl:variable name="revauthor" select="authorinitials|author"/>
+ <xsl:variable name="revremark" select="revremark|revdescription"/>
+ <tr>
+ <td align="left">
+ <xsl:if test="$revnumber">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Revision'"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="$revnumber"/>
+ </xsl:if>
+ </td>
+ <td align="left">
+ <xsl:apply-templates select="$revdate"/>
+ </td>
+ <xsl:choose>
+ <xsl:when test="count($revauthor)=0">
+ <td align="left">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+ </xsl:call-template>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td align="left">
+ <xsl:for-each select="$revauthor">
+ <xsl:apply-templates select="."/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ <xsl:if test="$revremark">
+ <tr>
+ <td align="left" colspan="3">
+ <xsl:apply-templates select="$revremark"/>
+ </td>
+ </tr>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno">
+ <p>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/callout.xsl b/docs/xsl-generic/html/callout.xsl
new file mode 100644
index 00000000..5052f42d
--- /dev/null
+++ b/docs/xsl-generic/html/callout.xsl
@@ -0,0 +1,201 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+ xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ exclude-result-prefixes="sverb xverb lxslt"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: callout.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+ functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+ <xsl:variable name="verbatim" select="programlisting|screen"/>
+
+ <xsl:choose>
+ <xsl:when test="$use.extensions != '0'
+ and $callouts.extension != '0'">
+ <xsl:variable name="rtf">
+ <xsl:apply-templates select="$verbatim">
+ <xsl:with-param name="suppress-numbers" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:variable>
+
+ <xsl:variable name="rtf-with-callouts">
+ <xsl:choose>
+ <xsl:when test="function-available('sverb:insertCallouts')">
+ <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+ </xsl:when>
+ <xsl:when test="function-available('xverb:insertCallouts')">
+ <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No insertCallouts function is available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$verbatim/@linenumbering = 'numbered'
+ and $linenumbering.extension != '0'">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+ <xsl:with-param name="pi.context"
+ select="programlisting|screen"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="calloutlist"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$rtf-with-callouts"/>
+ <xsl:apply-templates select="calloutlist"/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+ <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+ <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co" name="co">
+ <!-- Support a single linkend in HTML -->
+ <xsl:variable name="targets" select="key('id', @linkends)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:choose>
+ <xsl:when test="$target">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@id or @xml:id">
+ <xsl:attribute name="name">
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="callout-bug"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="." mode="callout-bug"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="coref">
+ <!-- tricky; this relies on the fact that we can process the "co" that's -->
+ <!-- "over there" as if it were "right here" -->
+
+ <xsl:variable name="co" select="key('id', @linkend)"/>
+ <xsl:choose>
+ <xsl:when test="not($co)">
+ <xsl:message>
+ <xsl:text>Error: coref link is broken: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ </xsl:message>
+ </xsl:when>
+ <xsl:when test="local-name($co) != 'co'">
+ <xsl:message>
+ <xsl:text>Error: coref doesn't point to a co: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$co"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:number count="co"
+ level="any"
+ from="programlisting|screen|literallayout|synopsis"
+ format="1"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+ <xsl:param name="conum" select='1'/>
+
+ <xsl:choose>
+ <xsl:when test="$callout.graphics != 0
+ and $conum &lt;= $callout.graphics.number.limit">
+ <img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}"
+ alt="{$conum}" border="0"/>
+ </xsl:when>
+ <xsl:when test="$callout.unicode != 0
+ and $conum &lt;= $callout.unicode.number.limit">
+ <xsl:choose>
+ <xsl:when test="$callout.unicode.start.character = 10102">
+ <xsl:choose>
+ <xsl:when test="$conum = 1">&#10102;</xsl:when>
+ <xsl:when test="$conum = 2">&#10103;</xsl:when>
+ <xsl:when test="$conum = 3">&#10104;</xsl:when>
+ <xsl:when test="$conum = 4">&#10105;</xsl:when>
+ <xsl:when test="$conum = 5">&#10106;</xsl:when>
+ <xsl:when test="$conum = 6">&#10107;</xsl:when>
+ <xsl:when test="$conum = 7">&#10108;</xsl:when>
+ <xsl:when test="$conum = 8">&#10109;</xsl:when>
+ <xsl:when test="$conum = 9">&#10110;</xsl:when>
+ <xsl:when test="$conum = 10">&#10111;</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+ <xsl:text>when $callout.unicode.start.character is </xsl:text>
+ <xsl:value-of select="$callout.unicode.start.character"/>
+ </xsl:message>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$conum"/>
+ <xsl:text>)</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$conum"/>
+ <xsl:text>)</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/changebars.xsl b/docs/xsl-generic/html/changebars.xsl
new file mode 100644
index 00000000..3a2ffe30
--- /dev/null
+++ b/docs/xsl-generic/html/changebars.xsl
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: changebars.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="system.head.content">
+<xsl:param name="node" select="."/>
+
+<style type="text/css">
+<xsl:text>
+div.added { background-color: #ffff99;
+ text-decoration: underline; }
+div.deleted { text-decoration: line-through;
+ background-color: #FF7F7F; }
+div.changed { background-color: #99ff99; }
+div.off { }
+
+span.added { background-color: #ffff99;
+ text-decoration: underline; }
+span.deleted { text-decoration: line-through;
+ background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off { }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[@revisionflag]">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'para'
+ or local-name(.) = 'simpara'
+ or local-name(.) = 'formalpara'
+ or local-name(.) = 'section'
+ or local-name(.) = 'sect1'
+ or local-name(.) = 'sect2'
+ or local-name(.) = 'sect3'
+ or local-name(.) = 'sect4'
+ or local-name(.) = 'sect5'
+ or local-name(.) = 'chapter'
+ or local-name(.) = 'preface'
+ or local-name(.) = 'itemizedlist'
+ or local-name(.) = 'varlistentry'
+ or local-name(.) = 'glossary'
+ or local-name(.) = 'bibliography'
+ or local-name(.) = 'index'
+ or local-name(.) = 'appendix'">
+ <div class='{@revisionflag}'>
+ <xsl:apply-imports/>
+ </div>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'phrase'
+ or local-name(.) = 'ulink'
+ or local-name(.) = 'link'
+ or local-name(.) = 'filename'
+ or local-name(.) = 'literal'
+ or local-name(.) = 'member'
+ or local-name(.) = 'glossterm'
+ or local-name(.) = 'sgmltag'
+ or local-name(.) = 'quote'
+ or local-name(.) = 'emphasis'
+ or local-name(.) = 'command'
+ or local-name(.) = 'xref'">
+ <span class='{@revisionflag}'>
+ <xsl:apply-imports/>
+ </span>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'listitem'
+ or local-name(.) = 'entry'
+ or local-name(.) = 'title'">
+ <!-- nop; these are handled directly in the stylesheet -->
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Revisionflag on unexpected element: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> (Assuming block)</xsl:text>
+ </xsl:message>
+ <div class='{@revisionflag}'>
+ <xsl:apply-imports/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/chunk-code.xsl b/docs/xsl-generic/html/chunk-code.xsl
new file mode 100644
index 00000000..8d59805e
--- /dev/null
+++ b/docs/xsl-generic/html/chunk-code.xsl
@@ -0,0 +1,670 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ exclude-result-prefixes="exsl cf ng db"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: chunk-code.xsl 6942 2007-07-04 04:42:17Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="fn">
+ <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+ </xsl:variable>
+
+ <!--
+ <xsl:message>
+ <xsl:value-of select="$ischunk"/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>) </xsl:text>
+ <xsl:value-of select="$fn"/>
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:message>
+ -->
+
+ <!-- 2003-11-25 by ndw:
+ The following test used to read test="$ischunk != 0 and $fn != ''"
+ I've removed the ischunk part of the test so that href.to.uri and
+ href.from.uri will be fully qualified even if the source or target
+ isn't a chunk. I *think* that if $fn != '' then it's appropriate
+ to put the directory on the front, even if the element isn't a
+ chunk. I could be wrong. -->
+
+ <xsl:if test="$fn != ''">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:if>
+
+ <xsl:value-of select="$fn"/>
+ <!-- You can't add the html.ext here because dbhtml filename= may already -->
+ <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+ <xsl:param name="recursive" select="false()"/>
+
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="dbhtml-filename">
+ <xsl:call-template name="pi.dbhtml_filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="$dbhtml-filename != ''">
+ <xsl:value-of select="$dbhtml-filename"/>
+ </xsl:when>
+ <!-- if this is the root element, use the root.filename -->
+ <xsl:when test="not(parent::*) and $root.filename != ''">
+ <xsl:value-of select="$root.filename"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <!-- Special case -->
+ <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+ <xsl:choose>
+ <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+ <!-- * if this legalnotice has an ID, then go ahead and use -->
+ <!-- * just the value of that ID as the basename for the file -->
+ <!-- * (that is, without prepending an "ln-" too it) -->
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, if this legalnotice does not have an ID, -->
+ <!-- * then we generate an ID... -->
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <!-- * ...and then we take that generated ID, prepend an -->
+ <!-- * "ln-" to it, and use that as the basename for the file -->
+ <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+ <!-- filenames, then use the ID to generate the filename. -->
+ <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk='0'">
+ <!-- if called on something that isn't a chunk, walk up... -->
+ <xsl:choose>
+ <xsl:when test="count(parent::*)>0">
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="$recursive"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- unless there is no up, in which case return "" -->
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not($recursive) and $filename != ''">
+ <!-- if this chunk has an explicit name, use it -->
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+
+ <xsl:when test="self::set">
+ <xsl:value-of select="$root.filename"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::book">
+ <xsl:text>bk</xsl:text>
+ <xsl:number level="any" format="01"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::article">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>ar</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::preface">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>pr</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::chapter">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>ch</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::appendix">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>ap</xsl:text>
+ <xsl:number level="any" format="a" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::part">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>pt</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::reference">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>rn</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::refentry">
+ <xsl:choose>
+ <xsl:when test="parent::reference">
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>re</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::colophon">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>co</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::sect1
+ or self::sect2
+ or self::sect3
+ or self::sect4
+ or self::sect5
+ or self::section">
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>s</xsl:text>
+ <xsl:number format="01"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::bibliography">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>bi</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::glossary">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>go</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::index">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>ix</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::setindex">
+ <xsl:text>si</xsl:text>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text>chunk-filename-error-</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+ <xsl:variable name="chunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$chunk != 0">
+ <cf:div id="{generate-id()}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="*" mode="find.chunks"/>
+ </cf:div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*" mode="find.chunks"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+ toss the namespace and continue. Use the docbook5 namespaced
+ stylesheets for DocBook5 if you don't want to use this feature.-->
+ <!-- include extra test for Xalan quirk -->
+ <xsl:when test="(function-available('exsl:node-set') or
+ contains(system-property('xsl:vendor'),
+ 'Apache Software Foundation'))
+ and (*/self::ng:* or */self::db:*)">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>stripped namespace before processing</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:variable name="nons">
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:variable>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>processing stripped document</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates select="exsl:node-set($nons)"/>
+ </xsl:when>
+ <!-- Can't process unless namespace removed -->
+ <xsl:when test="*/self::ng:* or */self::db:*">
+ <xsl:message terminate="yes">
+ <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+ <xsl:text> cannot proceed.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count(key('id',$rootid)) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or
+ $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="key('id', $rootid)"
+ mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="key('id',$rootid)"
+ mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="key('id',$rootid)"
+ mode="collect.tex.math"/>
+ </xsl:if>
+ <xsl:if test="$generate.manifest != 0">
+ <xsl:call-template name="generate.manifest">
+ <xsl:with-param name="node" select="key('id',$rootid)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or
+ $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="/" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="/" mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="/" mode="collect.tex.math"/>
+ </xsl:if>
+ <xsl:if test="$generate.manifest != 0">
+ <xsl:call-template name="generate.manifest">
+ <xsl:with-param name="node" select="/"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+ |article
+ |reference|refentry
+ |book/glossary|article/glossary|part/glossary
+ |book/bibliography|article/bibliography|part/bibliography
+ |colophon">
+ <xsl:choose>
+ <xsl:when test="$onechunk != 0 and parent::*">
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="not(parent::*)">
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:when>
+ <xsl:when test="$ischunk = 0">
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex
+ |book/index
+ |article/index
+ |part/index">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. -->
+ <xsl:if test="count(*)>0 or $generate.index != '0'">
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+ <!-- need a check for absolute urls -->
+ <xsl:choose>
+ <xsl:when test="contains(., ':')">
+ <!-- it has a uri scheme so it is an absolute uri -->
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:when test="$keep.relative.image.uris != 0">
+ <!-- leave it alone -->
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- its a relative uri -->
+ <xsl:call-template name="relative-uri">
+ <xsl:with-param name="destdir">
+ <xsl:call-template name="dbhtml-dir">
+ <xsl:with-param name="context" select=".."/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix
+ |article
+ |reference|refentry
+ |sect1|sect2|sect3|sect4|sect5
+ |section
+ |book/glossary|article/glossary|part/glossary
+ |book/bibliography|article/bibliography|part/bibliography
+ |colophon"
+ mode="enumerate-files">
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:if test="$ischunk='1'">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index"
+ mode="enumerate-files">
+ <xsl:if test="$htmlhelp.output != 1">
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:if test="$ischunk='1'">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="*" mode="enumerate-files"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:if test="$generate.legalnotice.link != 0">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+ <xsl:variable name="longdesc.uri">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject"
+ select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="mediaobject" select="."/>
+
+ <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject" select="$mediaobject"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/chunk-common.xsl b/docs/xsl-generic/html/chunk-common.xsl
new file mode 100644
index 00000000..4e88e1e4
--- /dev/null
+++ b/docs/xsl-generic/html/chunk-common.xsl
@@ -0,0 +1,1886 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ version="1.0"
+ exclude-result-prefixes="exsl cf ng db">
+
+<!-- ********************************************************************
+ $Id: chunk-common.xsl 7084 2007-07-19 07:17:45Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="onechunk" select="0"/>
+<xsl:param name="refentry.separator" select="0"/>
+<xsl:param name="chunk.fast" select="0"/>
+
+<xsl:key name="genid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="chunk.hierarchy">
+ <xsl:if test="$chunk.fast != 0">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')">
+ <xsl:message>Computing chunks...</xsl:message>
+ <xsl:apply-templates select="/*" mode="find.chunks"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Fast chunking requires exsl:node-set(). </xsl:text>
+ <xsl:text>Using "slow" chunking.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$chunk.fast != 0 and function-available('exsl:node-set')">
+ <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+ <xsl:variable name="genid" select="generate-id()"/>
+
+ <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+ <xsl:variable name="prevdiv"
+ select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+ <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+ <xsl:variable name="nextdiv"
+ select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+ <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+ <xsl:choose>
+ <xsl:when test="$onechunk != 0 and parent::*">
+ <xsl:copy-of select="$content"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-chunk">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$onechunk != 0 and not(parent::*)">
+ <xsl:call-template name="chunk-all-sections">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$onechunk != 0">
+ <xsl:copy-of select="$content"/>
+ </xsl:when>
+ <xsl:when test="$chunk.first.sections = 0">
+ <xsl:call-template name="chunk-first-section-with-parent">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="chunk-all-sections">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-chunk">
+ <xsl:param name="prev" select="."/>
+ <xsl:param name="next" select="."/>
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="chunkfn">
+ <xsl:if test="$ischunk='1'">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:if test="$ischunk='0'">
+ <xsl:message>
+ <xsl:text>Error </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> is not a chunk!</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name" select="$chunkfn"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-first-section-with-parent">
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <!-- These xpath expressions are really hairy. The trick is to pick sections -->
+ <!-- that are not first children and are not the children of first children -->
+
+ <!-- Break these variables into pieces to work around
+ http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6063 -->
+
+ <xsl:variable name="prev-v1"
+ select="(ancestor::sect1[$chunk.section.depth &gt; 0
+ and preceding-sibling::sect1][1]
+
+ |ancestor::sect2[$chunk.section.depth &gt; 1
+ and preceding-sibling::sect2
+ and parent::sect1[preceding-sibling::sect1]][1]
+
+ |ancestor::sect3[$chunk.section.depth &gt; 2
+ and preceding-sibling::sect3
+ and parent::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |ancestor::sect4[$chunk.section.depth &gt; 3
+ and preceding-sibling::sect4
+ and parent::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |ancestor::sect5[$chunk.section.depth &gt; 4
+ and preceding-sibling::sect5
+ and parent::sect4[preceding-sibling::sect4]
+ and ancestor::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |ancestor::section[$chunk.section.depth &gt; count(ancestor::section)
+ and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+ <xsl:variable name="prev-v2"
+ select="(preceding::sect1[$chunk.section.depth &gt; 0
+ and preceding-sibling::sect1][1]
+
+ |preceding::sect2[$chunk.section.depth &gt; 1
+ and preceding-sibling::sect2
+ and parent::sect1[preceding-sibling::sect1]][1]
+
+ |preceding::sect3[$chunk.section.depth &gt; 2
+ and preceding-sibling::sect3
+ and parent::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |preceding::sect4[$chunk.section.depth &gt; 3
+ and preceding-sibling::sect4
+ and parent::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |preceding::sect5[$chunk.section.depth &gt; 4
+ and preceding-sibling::sect5
+ and parent::sect4[preceding-sibling::sect4]
+ and ancestor::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |preceding::section[$chunk.section.depth &gt; count(ancestor::section)
+ and preceding-sibling::section
+ and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+ <xsl:variable name="prev"
+ select="(preceding::book[1]
+ |preceding::preface[1]
+ |preceding::chapter[1]
+ |preceding::appendix[1]
+ |preceding::part[1]
+ |preceding::reference[1]
+ |preceding::refentry[1]
+ |preceding::colophon[1]
+ |preceding::article[1]
+ |preceding::bibliography[parent::article or parent::book or parent::part][1]
+ |preceding::glossary[parent::article or parent::book or parent::part][1]
+ |preceding::index[$generate.index != 0]
+ [parent::article or parent::book or parent::part][1]
+ |preceding::setindex[$generate.index != 0][1]
+ |ancestor::set
+ |ancestor::book[1]
+ |ancestor::preface[1]
+ |ancestor::chapter[1]
+ |ancestor::appendix[1]
+ |ancestor::part[1]
+ |ancestor::reference[1]
+ |ancestor::article[1]
+ |$prev-v1
+ |$prev-v2)[last()]"/>
+
+ <xsl:variable name="next-v1"
+ select="(following::sect1[$chunk.section.depth &gt; 0
+ and preceding-sibling::sect1][1]
+
+ |following::sect2[$chunk.section.depth &gt; 1
+ and preceding-sibling::sect2
+ and parent::sect1[preceding-sibling::sect1]][1]
+
+ |following::sect3[$chunk.section.depth &gt; 2
+ and preceding-sibling::sect3
+ and parent::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |following::sect4[$chunk.section.depth &gt; 3
+ and preceding-sibling::sect4
+ and parent::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |following::sect5[$chunk.section.depth &gt; 4
+ and preceding-sibling::sect5
+ and parent::sect4[preceding-sibling::sect4]
+ and ancestor::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |following::section[$chunk.section.depth &gt; count(ancestor::section)
+ and preceding-sibling::section
+ and not(ancestor::section[not(preceding-sibling::section)])][1])[1]"/>
+
+ <xsl:variable name="next-v2"
+ select="(descendant::sect1[$chunk.section.depth &gt; 0
+ and preceding-sibling::sect1][1]
+
+ |descendant::sect2[$chunk.section.depth &gt; 1
+ and preceding-sibling::sect2
+ and parent::sect1[preceding-sibling::sect1]][1]
+
+ |descendant::sect3[$chunk.section.depth &gt; 2
+ and preceding-sibling::sect3
+ and parent::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |descendant::sect4[$chunk.section.depth &gt; 3
+ and preceding-sibling::sect4
+ and parent::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |descendant::sect5[$chunk.section.depth &gt; 4
+ and preceding-sibling::sect5
+ and parent::sect4[preceding-sibling::sect4]
+ and ancestor::sect3[preceding-sibling::sect3]
+ and ancestor::sect2[preceding-sibling::sect2]
+ and ancestor::sect1[preceding-sibling::sect1]][1]
+
+ |descendant::section[$chunk.section.depth &gt; count(ancestor::section)
+ and preceding-sibling::section
+ and not(ancestor::section[not(preceding-sibling::section)])])[1]"/>
+
+ <xsl:variable name="next"
+ select="(following::book[1]
+ |following::preface[1]
+ |following::chapter[1]
+ |following::appendix[1]
+ |following::part[1]
+ |following::reference[1]
+ |following::refentry[1]
+ |following::colophon[1]
+ |following::bibliography[parent::article or parent::book or parent::part][1]
+ |following::glossary[parent::article or parent::book or parent::part][1]
+ |following::index[$generate.index != 0]
+ [parent::article or parent::book or parent::part][1]
+ |following::article[1]
+ |following::setindex[$generate.index != 0][1]
+ |descendant::book[1]
+ |descendant::preface[1]
+ |descendant::chapter[1]
+ |descendant::appendix[1]
+ |descendant::article[1]
+ |descendant::bibliography[parent::article or parent::book or parent::part][1]
+ |descendant::glossary[parent::article or parent::book or parent::part][1]
+ |descendant::index[$generate.index != 0]
+ [parent::article or parent::book or parent::part][1]
+ |descendant::colophon[1]
+ |descendant::setindex[$generate.index != 0][1]
+ |descendant::part[1]
+ |descendant::reference[1]
+ |descendant::refentry[1]
+ |$next-v1
+ |$next-v2)[1]"/>
+
+ <xsl:call-template name="process-chunk">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-all-sections">
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <xsl:variable name="prev-v1"
+ select="(preceding::sect1[$chunk.section.depth &gt; 0][1]
+ |preceding::sect2[$chunk.section.depth &gt; 1][1]
+ |preceding::sect3[$chunk.section.depth &gt; 2][1]
+ |preceding::sect4[$chunk.section.depth &gt; 3][1]
+ |preceding::sect5[$chunk.section.depth &gt; 4][1]
+ |preceding::section[$chunk.section.depth &gt; count(ancestor::section)][1])[last()]"/>
+
+ <xsl:variable name="prev-v2"
+ select="(ancestor::sect1[$chunk.section.depth &gt; 0][1]
+ |ancestor::sect2[$chunk.section.depth &gt; 1][1]
+ |ancestor::sect3[$chunk.section.depth &gt; 2][1]
+ |ancestor::sect4[$chunk.section.depth &gt; 3][1]
+ |ancestor::sect5[$chunk.section.depth &gt; 4][1]
+ |ancestor::section[$chunk.section.depth &gt; count(ancestor::section)][1])[last()]"/>
+
+ <xsl:variable name="prev"
+ select="(preceding::book[1]
+ |preceding::preface[1]
+ |preceding::chapter[1]
+ |preceding::appendix[1]
+ |preceding::part[1]
+ |preceding::reference[1]
+ |preceding::refentry[1]
+ |preceding::colophon[1]
+ |preceding::article[1]
+ |preceding::bibliography[parent::article or parent::book or parent::part][1]
+ |preceding::glossary[parent::article or parent::book or parent::part][1]
+ |preceding::index[$generate.index != 0]
+ [parent::article or parent::book or parent::part][1]
+ |preceding::setindex[$generate.index != 0][1]
+ |ancestor::set
+ |ancestor::book[1]
+ |ancestor::preface[1]
+ |ancestor::chapter[1]
+ |ancestor::appendix[1]
+ |ancestor::part[1]
+ |ancestor::reference[1]
+ |ancestor::article[1]
+ |$prev-v1
+ |$prev-v2)[last()]"/>
+
+ <xsl:variable name="next-v1"
+ select="(following::sect1[$chunk.section.depth &gt; 0][1]
+ |following::sect2[$chunk.section.depth &gt; 1][1]
+ |following::sect3[$chunk.section.depth &gt; 2][1]
+ |following::sect4[$chunk.section.depth &gt; 3][1]
+ |following::sect5[$chunk.section.depth &gt; 4][1]
+ |following::section[$chunk.section.depth &gt; count(ancestor::section)][1])[1]"/>
+
+ <xsl:variable name="next-v2"
+ select="(descendant::sect1[$chunk.section.depth &gt; 0][1]
+ |descendant::sect2[$chunk.section.depth &gt; 1][1]
+ |descendant::sect3[$chunk.section.depth &gt; 2][1]
+ |descendant::sect4[$chunk.section.depth &gt; 3][1]
+ |descendant::sect5[$chunk.section.depth &gt; 4][1]
+ |descendant::section[$chunk.section.depth
+ &gt; count(ancestor::section)][1])[1]"/>
+
+ <xsl:variable name="next"
+ select="(following::book[1]
+ |following::preface[1]
+ |following::chapter[1]
+ |following::appendix[1]
+ |following::part[1]
+ |following::reference[1]
+ |following::refentry[1]
+ |following::colophon[1]
+ |following::bibliography[parent::article or parent::book or parent::part][1]
+ |following::glossary[parent::article or parent::book or parent::part][1]
+ |following::index[$generate.index != 0]
+ [parent::article or parent::book][1]
+ |following::article[1]
+ |following::setindex[$generate.index != 0][1]
+ |descendant::book[1]
+ |descendant::preface[1]
+ |descendant::chapter[1]
+ |descendant::appendix[1]
+ |descendant::article[1]
+ |descendant::bibliography[parent::article or parent::book][1]
+ |descendant::glossary[parent::article or parent::book or parent::part][1]
+ |descendant::index[$generate.index != 0]
+ [parent::article or parent::book][1]
+ |descendant::colophon[1]
+ |descendant::setindex[$generate.index != 0][1]
+ |descendant::part[1]
+ |descendant::reference[1]
+ |descendant::refentry[1]
+ |$next-v1
+ |$next-v2)[1]"/>
+
+ <xsl:call-template name="process-chunk">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make.lots">
+ <xsl:param name="toc.params" select="''"/>
+ <xsl:param name="toc"/>
+
+ <xsl:variable name="lots">
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:copy-of select="$toc"/>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'figure')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'figure'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'table')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'table'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'example')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'example'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'equation')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'equation'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'procedure')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'procedure'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'procedure'"/>
+ <xsl:with-param name="nodes" select=".//procedure[title]"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'procedure'"/>
+ <xsl:with-param name="nodes" select=".//procedure[title]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:if test="string($lots) != ''">
+ <xsl:choose>
+ <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="dbhtml-dir"/>
+ <xsl:apply-templates select="." mode="recursive-chunk-filename">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="/foo"/>
+ <xsl:with-param name="next" select="/foo"/>
+ <xsl:with-param name="nav.context" select="'toc'"/>
+ <xsl:with-param name="content">
+ <xsl:if test="$chunk.tocs.and.lots.has.title != 0">
+ <h1>
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </h1>
+ </xsl:if>
+ <xsl:copy-of select="$lots"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$lots"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+ <xsl:param name="type" select="''"/>
+ <xsl:param name="lot"/>
+
+ <xsl:if test="string($lot) != ''">
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="dbhtml-dir"/>
+ <xsl:value-of select="$type"/>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="href">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="dbhtml-dir"/>
+ <xsl:value-of select="$type"/>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="/foo"/>
+ <xsl:with-param name="next" select="/foo"/>
+ <xsl:with-param name="nav.context" select="'toc'"/>
+ <xsl:with-param name="content">
+ <xsl:copy-of select="$lot"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
+ <!-- And output a link to this file -->
+ <div>
+ <xsl:attribute name="class">
+ <xsl:text>ListofTitles</xsl:text>
+ </xsl:attribute>
+ <a href="{$href}">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">
+ <xsl:choose>
+ <xsl:when test="$type='table'">ListofTables</xsl:when>
+ <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+ <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+ <xsl:when test="$type='example'">ListofExamples</xsl:when>
+ <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+ <xsl:otherwise>ListofUnknown</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </a>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="in.other.chunk">
+ <xsl:param name="chunk" select="."/>
+ <xsl:param name="node" select="."/>
+
+ <xsl:variable name="is.chunk">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+<!--
+ <xsl:message>
+ <xsl:text>in.other.chunk: </xsl:text>
+ <xsl:value-of select="name($chunk)"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="name($node)"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$chunk = $node"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$is.chunk"/>
+ </xsl:message>
+-->
+
+ <xsl:choose>
+ <xsl:when test="$chunk = $node">0</xsl:when>
+ <xsl:when test="$is.chunk = 1">1</xsl:when>
+ <xsl:when test="count($node) = 0">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="in.other.chunk">
+ <xsl:with-param name="chunk" select="$chunk"/>
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="count.footnotes.in.this.chunk">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="footnotes" select="$node//footnote"/>
+ <xsl:param name="count" select="0"/>
+
+<!--
+ <xsl:message>
+ <xsl:text>count.footnotes.in.this.chunk: </xsl:text>
+ <xsl:value-of select="name($node)"/>
+ </xsl:message>
+-->
+
+ <xsl:variable name="in.other.chunk">
+ <xsl:call-template name="in.other.chunk">
+ <xsl:with-param name="chunk" select="$node"/>
+ <xsl:with-param name="node" select="$footnotes[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="count($footnotes) = 0">
+ <xsl:value-of select="$count"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$in.other.chunk != 0">
+ <xsl:call-template name="count.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="footnotes"
+ select="$footnotes[position() &gt; 1]"/>
+ <xsl:with-param name="count" select="$count"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$footnotes[1]/ancestor::table
+ |$footnotes[1]/ancestor::informaltable">
+ <xsl:call-template name="count.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="footnotes"
+ select="$footnotes[position() &gt; 1]"/>
+ <xsl:with-param name="count" select="$count"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="count.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="footnotes"
+ select="$footnotes[position() &gt; 1]"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes.in.this.chunk">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="footnotes" select="$node//footnote"/>
+
+<!--
+ <xsl:message>process.footnotes.in.this.chunk</xsl:message>
+-->
+
+ <xsl:variable name="in.other.chunk">
+ <xsl:call-template name="in.other.chunk">
+ <xsl:with-param name="chunk" select="$node"/>
+ <xsl:with-param name="node" select="$footnotes[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="count($footnotes) = 0">
+ <!-- nop -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$in.other.chunk != 0">
+ <xsl:call-template name="process.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="footnotes"
+ select="$footnotes[position() &gt; 1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$footnotes[1]/ancestor::table
+ |$footnotes[1]/ancestor::informaltable">
+ <xsl:call-template name="process.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="footnotes"
+ select="$footnotes[position() &gt; 1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$footnotes[1]"
+ mode="process.footnote.mode"/>
+ <xsl:call-template name="process.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="footnotes"
+ select="$footnotes[position() &gt; 1]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+ <xsl:variable name="footnotes" select=".//footnote"/>
+ <xsl:variable name="fcount">
+ <xsl:call-template name="count.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="footnotes" select="$footnotes"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+<!--
+ <xsl:message>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> fcount: </xsl:text>
+ <xsl:value-of select="$fcount"/>
+ </xsl:message>
+-->
+
+ <!-- Only bother to do this if there's at least one non-table footnote -->
+ <xsl:if test="$fcount &gt; 0">
+ <div class="footnotes">
+ <br/>
+ <hr width="100" align="left"/>
+ <xsl:call-template name="process.footnotes.in.this.chunk">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="footnotes" select="$footnotes"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+
+ <!-- FIXME: When chunking, only the annotations actually used
+ in this chunk should be referenced. I don't think it
+ does any harm to reference them all, but it adds
+ unnecessary bloat to each chunk. -->
+ <xsl:if test="$annotation.support != 0 and //annotation">
+ <div class="annotation-list">
+ <div class="annotation-nocss">
+ <p>The following annotations are from this essay. You are seeing
+ them here because your browser doesn’t support the user-interface
+ techniques used to make them appear as ‘popups’ on modern browsers.</p>
+ </div>
+
+ <xsl:apply-templates select="//annotation"
+ mode="annotation-popup"/>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+ <xsl:variable name="is.chunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+ <xsl:if test="$is.chunk = 1">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+ <!-- returns 1 if $node is a chunk -->
+
+ <!-- ==================================================================== -->
+ <!-- What's a chunk?
+
+ The root element
+ appendix
+ article
+ bibliography in article or part or book
+ book
+ chapter
+ colophon
+ glossary in article or part or book
+ index in article or part or book
+ part
+ preface
+ refentry
+ reference
+ sect{1,2,3,4,5} if position()>1 && depth < chunk.section.depth
+ section if position()>1 && depth < chunk.section.depth
+ set
+ setindex
+ -->
+ <!-- ==================================================================== -->
+
+<!--
+ <xsl:message>
+ <xsl:text>chunk: </xsl:text>
+ <xsl:value-of select="name($node)"/>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$node/@id"/>
+ <xsl:text>)</xsl:text>
+ <xsl:text> csd: </xsl:text>
+ <xsl:value-of select="$chunk.section.depth"/>
+ <xsl:text> cfs: </xsl:text>
+ <xsl:value-of select="$chunk.first.sections"/>
+ <xsl:text> ps: </xsl:text>
+ <xsl:value-of select="count($node/parent::section)"/>
+ <xsl:text> prs: </xsl:text>
+ <xsl:value-of select="count($node/preceding-sibling::section)"/>
+ </xsl:message>
+-->
+
+ <xsl:choose>
+ <xsl:when test="not($node/parent::*)">1</xsl:when>
+
+ <xsl:when test="local-name($node) = 'sect1'
+ and $chunk.section.depth &gt;= 1
+ and ($chunk.first.sections != 0
+ or count($node/preceding-sibling::sect1) &gt; 0)">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($node) = 'sect2'
+ and $chunk.section.depth &gt;= 2
+ and ($chunk.first.sections != 0
+ or count($node/preceding-sibling::sect2) &gt; 0)">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($node) = 'sect3'
+ and $chunk.section.depth &gt;= 3
+ and ($chunk.first.sections != 0
+ or count($node/preceding-sibling::sect3) &gt; 0)">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($node) = 'sect4'
+ and $chunk.section.depth &gt;= 4
+ and ($chunk.first.sections != 0
+ or count($node/preceding-sibling::sect4) &gt; 0)">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($node) = 'sect5'
+ and $chunk.section.depth &gt;= 5
+ and ($chunk.first.sections != 0
+ or count($node/preceding-sibling::sect5) &gt; 0)">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($node) = 'section'
+ and $chunk.section.depth &gt;= count($node/ancestor::section)+1
+ and ($chunk.first.sections != 0
+ or count($node/preceding-sibling::section) &gt; 0)">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="local-name($node)='preface'">1</xsl:when>
+ <xsl:when test="local-name($node)='chapter'">1</xsl:when>
+ <xsl:when test="local-name($node)='appendix'">1</xsl:when>
+ <xsl:when test="local-name($node)='article'">1</xsl:when>
+ <xsl:when test="local-name($node)='part'">1</xsl:when>
+ <xsl:when test="local-name($node)='reference'">1</xsl:when>
+ <xsl:when test="local-name($node)='refentry'">1</xsl:when>
+ <xsl:when test="local-name($node)='index' and ($generate.index != 0 or count($node/*) > 0)
+ and (local-name($node/parent::*) = 'article'
+ or local-name($node/parent::*) = 'book'
+ or local-name($node/parent::*) = 'part'
+ )">1</xsl:when>
+ <xsl:when test="local-name($node)='bibliography'
+ and (local-name($node/parent::*) = 'article'
+ or local-name($node/parent::*) = 'book'
+ or local-name($node/parent::*) = 'part'
+ )">1</xsl:when>
+ <xsl:when test="local-name($node)='glossary'
+ and (local-name($node/parent::*) = 'article'
+ or local-name($node/parent::*) = 'book'
+ or local-name($node/parent::*) = 'part'
+ )">1</xsl:when>
+ <xsl:when test="local-name($node)='colophon'">1</xsl:when>
+ <xsl:when test="local-name($node)='book'">1</xsl:when>
+ <xsl:when test="local-name($node)='set'">1</xsl:when>
+ <xsl:when test="local-name($node)='setindex'">1</xsl:when>
+ <xsl:when test="local-name($node)='legalnotice'
+ and $generate.legalnotice.link != 0">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="href.target.uri">
+ <xsl:param name="object" select="."/>
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+ <xsl:if test="$ischunk='0'">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="href.target">
+ <xsl:param name="context" select="."/>
+ <xsl:param name="object" select="."/>
+ <xsl:param name="toc-context" select="."/>
+ <!-- * If $toc-context contains some node other than the current node, -->
+ <!-- * it means we're processing a link in a TOC. In that case, to -->
+ <!-- * ensure the link will work correctly, we need to take a look at -->
+ <!-- * where the file containing the TOC will get written, and where -->
+ <!-- * the file that's being linked to will get written. -->
+ <xsl:variable name="toc-output-dir">
+ <xsl:if test="not($toc-context = .)">
+ <!-- * Get the $toc-context node and all its ancestors, look down -->
+ <!-- * through them to find the last/closest node to the -->
+ <!-- * toc-context node that has a "dbhtml dir" PI, and get the -->
+ <!-- * directory name from that. That's the name of the directory -->
+ <!-- * to which the current toc output file will get written. -->
+ <xsl:call-template name="dbhtml-dir">
+ <xsl:with-param name="context"
+ select="$toc-context/ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="linked-file-output-dir">
+ <xsl:if test="not($toc-context = .)">
+ <!-- * Get the current node and all its ancestors, look down -->
+ <!-- * through them to find the last/closest node to the current -->
+ <!-- * node that has a "dbhtml dir" PI, and get the directory name -->
+ <!-- * from that. That's the name of the directory to which the -->
+ <!-- * file that's being linked to will get written. -->
+ <xsl:call-template name="dbhtml-dir">
+ <xsl:with-param name="context"
+ select="ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="href.to.uri">
+ <xsl:call-template name="href.target.uri">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="href.from.uri">
+ <xsl:call-template name="href.target.uri">
+ <xsl:with-param name="object" select="$context"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- * <xsl:message>toc-context: <xsl:value-of select="local-name($toc-context)"/></xsl:message> -->
+ <!-- * <xsl:message>node: <xsl:value-of select="local-name(.)"/></xsl:message> -->
+ <!-- * <xsl:message>context: <xsl:value-of select="local-name($context)"/></xsl:message> -->
+ <!-- * <xsl:message>object: <xsl:value-of select="local-name($object)"/></xsl:message> -->
+ <!-- * <xsl:message>toc-output-dir: <xsl:value-of select="$toc-output-dir"/></xsl:message> -->
+ <!-- * <xsl:message>linked-file-output-dir: <xsl:value-of select="$linked-file-output-dir"/></xsl:message> -->
+ <!-- * <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message> -->
+ <!-- * <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message> -->
+ <xsl:variable name="href.to">
+ <xsl:choose>
+ <!-- * 2007-07-19, MikeSmith: Added the following conditional to -->
+ <!-- * deal with a problem case for links in TOCs. It checks to see -->
+ <!-- * if the output dir that a TOC will get written to is -->
+ <!-- * different from the output dir of the file being linked to. -->
+ <!-- * If it is different, we do not call trim.common.uri.paths. -->
+ <!-- * -->
+ <!-- * Reason why I added that conditional is: I ran into a bug for -->
+ <!-- * this case: -->
+ <!-- * -->
+ <!-- * 1. we are chunking into separate dirs -->
+ <!-- * -->
+ <!-- * 2. output for the TOC is written to current dir, but the file -->
+ <!-- * being linked to is written to some subdir "foo". -->
+ <!-- * -->
+ <!-- * For that case, links to that file in that TOC did not show -->
+ <!-- * the correct path - they omitted the "foo". -->
+ <!-- * -->
+ <!-- * The cause of that problem was that the trim.common.uri.paths -->
+ <!-- * template[1] was being called under all conditions. But it's -->
+ <!-- * apparent that we don't want to call trim.common.uri.paths in -->
+ <!-- * the case where a linked file is being written to a different -->
+ <!-- * directory than the TOC that contains the link, because doing -->
+ <!-- * so will cause a necessary (not redundant) directory-name -->
+ <!-- * part of the link to get inadvertently trimmed, resulting in -->
+ <!-- * a broken link to that file. Thus, added the conditional. -->
+ <!-- * -->
+ <!-- * [1] The purpose of the trim.common.uri.paths template is to -->
+ <!-- * prevent cases where, if we didn't call it, we end up with -->
+ <!-- * unnecessary, redundant directory names getting output; for -->
+ <!-- * example, "foo/foo/refname.html". -->
+ <xsl:when test="not($toc-output-dir = $linked-file-output-dir)">
+ <xsl:value-of select="$href.to.uri"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="trim.common.uri.paths">
+ <xsl:with-param name="uriA" select="$href.to.uri"/>
+ <xsl:with-param name="uriB" select="$href.from.uri"/>
+ <xsl:with-param name="return" select="'A'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="href.from">
+ <xsl:call-template name="trim.common.uri.paths">
+ <xsl:with-param name="uriA" select="$href.to.uri"/>
+ <xsl:with-param name="uriB" select="$href.from.uri"/>
+ <xsl:with-param name="return" select="'B'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="depth">
+ <xsl:call-template name="count.uri.path.depth">
+ <xsl:with-param name="filename" select="$href.from"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string" select="'../'"/>
+ <xsl:with-param name="count" select="$depth"/>
+ </xsl:call-template>
+ <xsl:value-of select="$href.to"/>
+ </xsl:variable>
+ <!--
+ <xsl:message>
+ <xsl:text>In </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="$href.from"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="$depth"/>
+ <xsl:text>) </xsl:text>
+ <xsl:value-of select="name($object)"/>
+ <xsl:text> href=</xsl:text>
+ <xsl:value-of select="$href"/>
+ </xsl:message>
+ -->
+ <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- Returns the complete olink href value if found -->
+<!-- Must take into account any dbhtml dir of the chunk containing the olink -->
+<xsl:template name="make.olink.href">
+ <xsl:param name="olink.key" select="''"/>
+ <xsl:param name="target.database"/>
+
+ <xsl:if test="$olink.key != ''">
+ <xsl:variable name="target.href" >
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetptr-key', $olink.key)/@href" />
+ </xsl:for-each>
+ </xsl:variable>
+
+ <!-- an olink starting point may be in a subdirectory, so need
+ the "from" reference point to compute a relative path -->
+
+ <xsl:variable name="from.href">
+ <xsl:call-template name="olink.from.uri">
+ <xsl:with-param name="target.database" select="$target.database"/>
+ <xsl:with-param name="object" select="."/>
+ <xsl:with-param name="object.targetdoc" select="$current.docid"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- If the from.href has directory path, then must "../" upward
+ to document level -->
+ <xsl:variable name="upward.from.path">
+ <xsl:call-template name="upward.path">
+ <xsl:with-param name="path" select="$from.href"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="targetdoc">
+ <xsl:value-of select="substring-before($olink.key, '/')"/>
+ </xsl:variable>
+
+ <!-- Does the target database use a sitemap? -->
+ <xsl:variable name="use.sitemap">
+ <xsl:choose>
+ <xsl:when test="$target.database//sitemap">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+
+ <!-- Get the baseuri for this targetptr -->
+ <xsl:variable name="baseuri" >
+ <xsl:choose>
+ <!-- Does the database use a sitemap? -->
+ <xsl:when test="$use.sitemap != 0" >
+ <xsl:choose>
+ <!-- Was current.docid parameter set? -->
+ <xsl:when test="$current.docid != ''">
+ <!-- Was it found in the database? -->
+ <xsl:variable name="currentdoc.key" >
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetdoc-key',
+ $current.docid)/@targetdoc" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$currentdoc.key != ''">
+ <xsl:for-each select="$target.database" >
+ <xsl:call-template name="targetpath" >
+ <xsl:with-param name="dirnode"
+ select="key('targetdoc-key', $current.docid)/parent::dir"/>
+ <xsl:with-param name="targetdoc" select="$targetdoc"/>
+ </xsl:call-template>
+ </xsl:for-each >
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Olink error: cannot compute relative </xsl:text>
+ <xsl:text>sitemap path because $current.docid '</xsl:text>
+ <xsl:value-of select="$current.docid"/>
+ <xsl:text>' not found in target database.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Olink warning: cannot compute relative </xsl:text>
+ <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- In either case, add baseuri from its document entry-->
+ <xsl:variable name="docbaseuri">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="$docbaseuri != ''" >
+ <xsl:value-of select="$docbaseuri"/>
+ </xsl:if>
+ </xsl:when>
+ <!-- No database sitemap in use -->
+ <xsl:otherwise>
+ <!-- Just use any baseuri from its document entry -->
+ <xsl:variable name="docbaseuri">
+ <xsl:for-each select="$target.database" >
+ <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="$docbaseuri != ''" >
+ <xsl:value-of select="$docbaseuri"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Form the href information -->
+ <xsl:if test="not(contains($baseuri, ':'))">
+ <!-- if not an absolute uri, add upward path from olink chunk -->
+ <xsl:value-of select="$upward.from.path"/>
+ </xsl:if>
+
+ <xsl:if test="$baseuri != ''">
+ <xsl:value-of select="$baseuri"/>
+ <xsl:if test="substring($target.href,1,1) != '#'">
+ <!--xsl:text>/</xsl:text-->
+ </xsl:if>
+ </xsl:if>
+ <!-- optionally turn off frag for PDF references -->
+ <xsl:if test="not($insert.olink.pdf.frag = 0 and
+ translate(substring($baseuri, string-length($baseuri) - 3),
+ 'PDF', 'pdf') = '.pdf'
+ and starts-with($target.href, '#') )">
+ <xsl:value-of select="$target.href"/>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<!-- Computes "../" to reach top -->
+<xsl:template name="upward.path">
+ <xsl:param name="path" select="''"/>
+ <xsl:choose>
+ <!-- Don't bother with absolute uris -->
+ <xsl:when test="contains($path, ':')"/>
+ <xsl:when test="starts-with($path, '/')"/>
+ <xsl:when test="contains($path, '/')">
+ <xsl:text>../</xsl:text>
+ <xsl:call-template name="upward.path">
+ <xsl:with-param name="path" select="substring-after($path, '/')"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:variable name="this" select="."/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content"/>
+
+ <xsl:if test="$home">
+ <link rel="start">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$home"
+ mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$up">
+ <link rel="up">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$up"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$prev">
+ <link rel="prev">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$next">
+ <link rel="next">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$html.extra.head.links != 0">
+ <xsl:for-each select="//part
+ |//reference
+ |//preface
+ |//chapter
+ |//article
+ |//refentry
+ |//appendix[not(parent::article)]|appendix
+ |//glossary[not(parent::article)]|glossary
+ |//index[not(parent::article)]|index">
+ <link rel="{local-name(.)}">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$this"/>
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+
+ <xsl:for-each select="section|sect1|refsection|refsect1">
+ <link>
+ <xsl:attribute name="rel">
+ <xsl:choose>
+ <xsl:when test="local-name($this) = 'section'
+ or local-name($this) = 'refsection'">
+ <xsl:value-of select="'subsection'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'section'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$this"/>
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+
+ <xsl:for-each select="sect2|sect3|sect4|sect5|refsect2|refsect3">
+ <link rel="subsection">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$this"/>
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ </xsl:for-each>
+ </xsl:if>
+
+ <!-- * if we have a legalnotice and user wants it output as a -->
+ <!-- * separate page and $html.head.legalnotice.link.types is -->
+ <!-- * non-empty, we generate a link or links for each value in -->
+ <!-- * $html.head.legalnotice.link.types -->
+ <xsl:if test="//legalnotice
+ and not($generate.legalnotice.link = 0)
+ and not($html.head.legalnotice.link.types = '')">
+ <xsl:call-template name="make.legalnotice.head.links"/>
+ </xsl:if>
+
+ <xsl:call-template name="user.head.content"/>
+ </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <xsl:variable name="row1" select="$navig.showtitles != 0"/>
+ <xsl:variable name="row2" select="count($prev) &gt; 0
+ or (count($up) &gt; 0
+ and generate-id($up) != generate-id($home)
+ and $navig.showtitles != 0)
+ or count($next) &gt; 0"/>
+
+ <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
+ <div class="navheader">
+ <xsl:if test="$row1 or $row2">
+ <table width="100%" summary="Navigation header">
+ <xsl:if test="$row1">
+ <tr>
+ <th colspan="3" align="center">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </th>
+ </tr>
+ </xsl:if>
+
+ <xsl:if test="$row2">
+ <tr>
+ <td width="20%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'prev'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <th width="60%" align="center">
+ <xsl:choose>
+ <xsl:when test="count($up) > 0
+ and generate-id($up) != generate-id($home)
+ and $navig.showtitles != 0">
+ <xsl:apply-templates select="$up" mode="object.title.markup"/>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+ </th>
+ <td width="20%" align="right">
+ <xsl:text>&#160;</xsl:text>
+ <xsl:if test="count($next)>0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'next'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
+ <xsl:if test="$header.rule != 0">
+ <hr/>
+ </xsl:if>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <xsl:variable name="row1" select="count($prev) &gt; 0
+ or count($up) &gt; 0
+ or count($next) &gt; 0"/>
+
+ <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
+ or (generate-id($home) != generate-id(.)
+ or $nav.context = 'toc')
+ or ($chunk.tocs.and.lots != 0
+ and $nav.context != 'toc')
+ or ($next and $navig.showtitles != 0)"/>
+
+ <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
+ <div class="navfooter">
+ <xsl:if test="$footer.rule != 0">
+ <hr/>
+ </xsl:if>
+
+ <xsl:if test="$row1 or $row2">
+ <table width="100%" summary="Navigation footer">
+ <xsl:if test="$row1">
+ <tr>
+ <td width="40%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'prev'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="count($up)&gt;0
+ and generate-id($up) != generate-id($home)">
+ <a accesskey="u">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$up"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'up'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td width="40%" align="right">
+ <xsl:text>&#160;</xsl:text>
+ <xsl:if test="count($next)>0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'next'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+
+ <xsl:if test="$row2">
+ <tr>
+ <td width="40%" align="left" valign="top">
+ <xsl:if test="$navig.showtitles != 0">
+ <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="$home != . or $nav.context = 'toc'">
+ <a accesskey="h">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'home'"/>
+ </xsl:call-template>
+ </a>
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <xsl:text>&#160;|&#160;</xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>&#160;</xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <a accesskey="t">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="/*[1]"
+ mode="recursive-chunk-filename">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-toc'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ <td width="40%" align="right" valign="top">
+ <xsl:text>&#160;</xsl:text>
+ <xsl:if test="$navig.showtitles != 0">
+ <xsl:apply-templates select="$next" mode="object.title.markup"/>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="navig.content">
+ <xsl:param name="direction" select="next"/>
+ <xsl:variable name="navtext">
+ <xsl:choose>
+ <xsl:when test="$direction = 'prev'">
+ <xsl:call-template name="gentext.nav.prev"/>
+ </xsl:when>
+ <xsl:when test="$direction = 'next'">
+ <xsl:call-template name="gentext.nav.next"/>
+ </xsl:when>
+ <xsl:when test="$direction = 'up'">
+ <xsl:call-template name="gentext.nav.up"/>
+ </xsl:when>
+ <xsl:when test="$direction = 'home'">
+ <xsl:call-template name="gentext.nav.home"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>xxx</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$navig.graphics != 0">
+ <img>
+ <xsl:attribute name="src">
+ <xsl:value-of select="$navig.graphics.path"/>
+ <xsl:value-of select="$direction"/>
+ <xsl:value-of select="$navig.graphics.extension"/>
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="$navtext"/>
+ </xsl:attribute>
+ </img>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$navtext"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * The following template assumes that the first legalnotice -->
+<!-- * instance found in a document applies to the contents of the -->
+<!-- * entire document. It generates an HTML link in each chunk, back -->
+<!-- * to the file containing the contents of the first legalnotice. -->
+<!-- * -->
+<!-- * Actually, it may generate multiple link instances in each chunk, -->
+<!-- * because it walks through the space-separated list of link -->
+<!-- * types specified in the $html.head.legalnotice.link.types param, -->
+<!-- * popping off link types and generating links for them until it -->
+<!-- * depletes the list. -->
+
+<xsl:template name="make.legalnotice.head.links">
+ <!-- * the following ID is used as part of the legalnotice filename; -->
+ <!-- * we need it in order to construct the filename for use in the -->
+ <!-- * value of the href attribute on the link -->
+
+ <xsl:param name="ln-node" select="(//legalnotice)[1]"/>
+
+ <xsl:param name="linktype">
+ <xsl:choose>
+ <xsl:when test="contains($html.head.legalnotice.link.types, ' ')">
+ <xsl:value-of
+ select="normalize-space(
+ substring-before($html.head.legalnotice.link.types, ' '))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$html.head.legalnotice.link.types"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param
+ name="remaining.linktypes"
+ select="concat(
+ normalize-space(
+ substring-after($html.head.legalnotice.link.types, ' ')),' ')"/>
+ <xsl:if test="not($linktype = '')">
+
+ <!-- Compute name of legalnotice file (see titlepage.xsl) -->
+ <xsl:variable name="file">
+ <xsl:call-template name="ln.or.rh.filename">
+ <xsl:with-param name="node" select="$ln-node"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <link rel="{$linktype}">
+ <xsl:attribute name="href">
+ <xsl:value-of select="$file"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="(//legalnotice)[1]"
+ mode="object.title.markup.textonly"/>
+ </xsl:attribute>
+ </link>
+ <xsl:call-template name="make.legalnotice.head.links">
+ <!-- * pop the next value off the list of link types -->
+ <xsl:with-param
+ name="linktype"
+ select="substring-before($remaining.linktypes, ' ')"/>
+ <!-- * remove the link type from the list of remaining link types -->
+ <xsl:with-param
+ name="remaining.linktypes"
+ select="substring-after($remaining.linktypes, ' ')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="chunk-element-content">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="nav.context"/>
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <xsl:call-template name="user.preroot"/>
+
+ <html>
+ <xsl:call-template name="html.head">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.navigation"/>
+
+ <xsl:call-template name="header.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.header.content"/>
+
+ <xsl:copy-of select="$content"/>
+
+ <xsl:call-template name="user.footer.content"/>
+
+ <xsl:call-template name="footer.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.footer.navigation"/>
+ </body>
+ </html>
+ <xsl:value-of select="$chunk.append"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.manifest">
+ <xsl:param name="node" select="/"/>
+ <xsl:call-template name="write.text.chunk">
+ <xsl:with-param name="filename">
+ <xsl:if test="$manifest.in.base.dir != 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ <xsl:value-of select="$manifest"/>
+ </xsl:with-param>
+ <xsl:with-param name="method" select="'text'"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates select="$node" mode="enumerate-files"/>
+ </xsl:with-param>
+ <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+ <xsl:param name="context" select="."/>
+ <!-- directories are now inherited from previous levels -->
+ <xsl:variable name="ppath">
+ <xsl:if test="$context/parent::*">
+ <xsl:call-template name="dbhtml-dir">
+ <xsl:with-param name="context" select="$context/parent::*"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="path">
+ <xsl:call-template name="pi.dbhtml_dir">
+ <xsl:with-param name="node" select="$context"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$path = ''">
+ <xsl:if test="$ppath != ''">
+ <xsl:value-of select="$ppath"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$ppath != ''">
+ <xsl:value-of select="$ppath"/>
+ <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:value-of select="$path"/>
+ <xsl:text>/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/chunk.xsl b/docs/xsl-generic/html/chunk.xsl
new file mode 100644
index 00000000..a89e2421
--- /dev/null
+++ b/docs/xsl-generic/html/chunk.xsl
@@ -0,0 +1,52 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ version="1.0"
+ exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+ $Id: chunk.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+ within each chunk file. In a customization, you should
+ create a separate non-chunking customization layer such
+ as mydocbook.xsl that imports the original docbook.xsl and
+ customizes any presentation templates. Then your chunking
+ customization should import mydocbook.xsl instead of
+ docbook.xsl. -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+ In a customization file, you import chunk-common.xsl, then
+ add any customized chunking templates of the same name.
+ They will have import precedence over the original
+ chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+ templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+ a match attribute. In a customization it should be referenced
+ using <xsl:include> instead of <xsl:import>, and then add
+ any customized chunking templates with match attributes. But be sure
+ to add a priority="1" to such customized templates to resolve
+ its conflict with the original, since they have the
+ same import precedence.
+
+ Using xsl:include prevents adding another layer
+ of import precedence, which would cause any
+ customizations that use xsl:apply-imports to wrongly
+ apply the chunking version instead of the original
+ non-chunking version to format an element. -->
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/chunker.xsl b/docs/xsl-generic/html/chunker.xsl
new file mode 100644
index 00000000..a66d1044
--- /dev/null
+++ b/docs/xsl-generic/html/chunker.xsl
@@ -0,0 +1,439 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc"
+ extension-element-prefixes="saxon redirect lxslt exsl">
+
+<!-- ********************************************************************
+ $Id: chunker.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with XSLT implementations that support -->
+<!-- exsl:document, saxon:output, or Xalan's redirect:write -->
+<!-- Note: Only Saxon 6.4.2 or later is supported. -->
+
+<xsl:param name="chunker.output.method" select="'html'"/>
+<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
+<xsl:param name="chunker.output.indent" select="'no'"/>
+<xsl:param name="chunker.output.omit-xml-declaration" select="'no'"/>
+<xsl:param name="chunker.output.standalone" select="'no'"/>
+<xsl:param name="chunker.output.doctype-public" select="''"/>
+<xsl:param name="chunker.output.doctype-system" select="''"/>
+<xsl:param name="chunker.output.media-type" select="''"/>
+<xsl:param name="chunker.output.cdata-section-elements" select="''"/>
+<xsl:param name="chunker.output.quiet" select="0"/>
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+ <xsl:param name="base.dir" select="'./'"/>
+ <xsl:param name="base.name" select="''"/>
+
+ <xsl:choose>
+ <!-- put Saxon first to work around a bug in libxslt -->
+ <xsl:when test="element-available('saxon:output')">
+ <!-- Saxon doesn't make the chunks relative -->
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:when test="element-available('exsl:document')">
+ <!-- EXSL document does make the chunks relative, I think -->
+ <xsl:choose>
+ <xsl:when test="count(parent::*) = 0">
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$base.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="element-available('redirect:write')">
+ <!-- Xalan doesn't make the chunks relative -->
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>Don't know how to chunk with </xsl:text>
+ <xsl:value-of select="system-property('xsl:vendor')"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="quiet" select="$chunker.output.quiet"/>
+ <xsl:param name="suppress-context-node-name" select="0"/>
+ <xsl:param name="message-prolog"/>
+ <xsl:param name="message-epilog"/>
+
+ <xsl:param name="method" select="$chunker.output.method"/>
+ <xsl:param name="encoding" select="$chunker.output.encoding"/>
+ <xsl:param name="indent" select="$chunker.output.indent"/>
+ <xsl:param name="omit-xml-declaration"
+ select="$chunker.output.omit-xml-declaration"/>
+ <xsl:param name="standalone" select="$chunker.output.standalone"/>
+ <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+ <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+ <xsl:param name="media-type" select="$chunker.output.media-type"/>
+ <xsl:param name="cdata-section-elements"
+ select="$chunker.output.cdata-section-elements"/>
+
+ <xsl:param name="content"/>
+
+ <xsl:if test="$quiet = 0">
+ <xsl:message>
+ <xsl:if test="not($message-prolog = '')">
+ <xsl:value-of select="$message-prolog"/>
+ </xsl:if>
+ <xsl:text>Writing </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:if test="name(.) != '' and $suppress-context-node-name = 0">
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:if test="@id or @xml:id">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="not($message-epilog = '')">
+ <xsl:value-of select="$message-epilog"/>
+ </xsl:if>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="element-available('exsl:document')">
+ <xsl:choose>
+ <!-- Handle the permutations ... -->
+ <xsl:when test="$media-type != ''">
+ <xsl:choose>
+ <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ doctype-public="{$doctype-public}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:when>
+ <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ doctype-public="{$doctype-public}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:when>
+ <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:when>
+ <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ doctype-public="{$doctype-public}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:when>
+ <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ doctype-public="{$doctype-public}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:when>
+ <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:when>
+ <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+ <exsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </exsl:document>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="element-available('saxon:output')">
+ <xsl:choose>
+ <!-- Handle the permutations ... -->
+ <xsl:when test="$media-type != ''">
+ <xsl:choose>
+ <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ doctype-public="{$doctype-public}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ doctype-public="{$doctype-public}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ media-type="{$media-type}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ doctype-public="{$doctype-public}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ doctype-public="{$doctype-public}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ doctype-system="{$doctype-system}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+ <saxon:output saxon:character-representation="{$saxon.character.representation}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ omit-xml-declaration="{$omit-xml-declaration}"
+ cdata-section-elements="{$cdata-section-elements}"
+ standalone="{$standalone}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="element-available('redirect:write')">
+ <!-- Xalan uses redirect -->
+ <redirect:write file="{$filename}">
+ <xsl:copy-of select="$content"/>
+ </redirect:write>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- it doesn't matter since we won't be making chunks... -->
+ <xsl:message terminate="yes">
+ <xsl:text>Can't make chunks with </xsl:text>
+ <xsl:value-of select="system-property('xsl:vendor')"/>
+ <xsl:text>'s processor.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="quiet" select="$chunker.output.quiet"/>
+
+ <xsl:param name="method" select="$chunker.output.method"/>
+ <xsl:param name="encoding" select="$chunker.output.encoding"/>
+ <xsl:param name="indent" select="$chunker.output.indent"/>
+ <xsl:param name="omit-xml-declaration"
+ select="$chunker.output.omit-xml-declaration"/>
+ <xsl:param name="standalone" select="$chunker.output.standalone"/>
+ <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+ <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+ <xsl:param name="media-type" select="$chunker.output.media-type"/>
+ <xsl:param name="cdata-section-elements"
+ select="$chunker.output.cdata-section-elements"/>
+
+ <xsl:param name="content"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="quiet" select="$quiet"/>
+ <xsl:with-param name="method" select="$method"/>
+ <xsl:with-param name="encoding" select="$encoding"/>
+ <xsl:with-param name="indent" select="$indent"/>
+ <xsl:with-param name="omit-xml-declaration" select="$omit-xml-declaration"/>
+ <xsl:with-param name="standalone" select="$standalone"/>
+ <xsl:with-param name="doctype-public" select="$doctype-public"/>
+ <xsl:with-param name="doctype-system" select="$doctype-system"/>
+ <xsl:with-param name="media-type" select="$media-type"/>
+ <xsl:with-param name="cdata-section-elements" select="$cdata-section-elements"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="write.text.chunk">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="quiet" select="$chunker.output.quiet"/>
+ <xsl:param name="suppress-context-node-name" select="0"/>
+ <xsl:param name="message-prolog"/>
+ <xsl:param name="message-epilog"/>
+ <xsl:param name="method" select="'text'"/>
+ <xsl:param name="encoding" select="$chunker.output.encoding"/>
+ <xsl:param name="media-type" select="$chunker.output.media-type"/>
+ <xsl:param name="content"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="quiet" select="$quiet"/>
+ <xsl:with-param name="suppress-context-node-name" select="$suppress-context-node-name"/>
+ <xsl:with-param name="message-prolog" select="$message-prolog"/>
+ <xsl:with-param name="message-epilog" select="$message-epilog"/>
+ <xsl:with-param name="method" select="$method"/>
+ <xsl:with-param name="encoding" select="$encoding"/>
+ <xsl:with-param name="indent" select="'no'"/>
+ <xsl:with-param name="omit-xml-declaration" select="'no'"/>
+ <xsl:with-param name="standalone" select="'no'"/>
+ <xsl:with-param name="doctype-public"/>
+ <xsl:with-param name="doctype-system"/>
+ <xsl:with-param name="media-type" select="$media-type"/>
+ <xsl:with-param name="cdata-section-elements"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/chunkfast.xsl b/docs/xsl-generic/html/chunkfast.xsl
new file mode 100644
index 00000000..da62af12
--- /dev/null
+++ b/docs/xsl-generic/html/chunkfast.xsl
@@ -0,0 +1,72 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+ version="1.0"
+ exclude-result-prefixes="cf exsl">
+
+<!-- ********************************************************************
+ $Id: chunkfast.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+<xsl:param name="chunk.fast" select="1"/>
+
+<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+ <xsl:choose>
+ <xsl:when test="$chunk.fast != 0 and function-available('exsl:node-set')">
+ <xsl:variable name="genid" select="generate-id()"/>
+
+ <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+ <xsl:variable name="prevdiv"
+ select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+ <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+ <xsl:variable name="nextdiv"
+ select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+ <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+ <xsl:choose>
+ <xsl:when test="$onechunk != 0 and parent::*">
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-chunk">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$onechunk != 0 and not(parent::*)">
+ <xsl:call-template name="chunk-all-sections"/>
+ </xsl:when>
+ <xsl:when test="$onechunk != 0">
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:when test="$chunk.first.sections = 0">
+ <xsl:call-template name="chunk-first-section-with-parent"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="chunk-all-sections"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/chunktoc.xsl b/docs/xsl-generic/html/chunktoc.xsl
new file mode 100644
index 00000000..fd49b111
--- /dev/null
+++ b/docs/xsl-generic/html/chunktoc.xsl
@@ -0,0 +1,468 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+ $Id: chunktoc.xsl 6942 2007-07-04 04:42:17Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+ <!-- returns 1 if $node is a chunk -->
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+ <xsl:choose>
+ <xsl:when test="$chunks//tocentry[@linkend=$id]">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+ <!-- returns the filename of a chunk -->
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+ <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+ <xsl:variable name="filename">
+ <xsl:call-template name="pi.dbhtml_filename">
+ <xsl:with-param name="node" select="$chunk"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$chunk">
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="parent::*" mode="chunk-filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+ <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+ <xsl:variable name="prev-id"
+ select="($chunk/preceding::tocentry
+ |$chunk/ancestor::tocentry)[last()]/@linkend"/>
+ <xsl:variable name="next-id"
+ select="($chunk/following::tocentry
+ |$chunk/child::tocentry)[1]/@linkend"/>
+
+ <xsl:variable name="prev" select="key('id',$prev-id)"/>
+ <xsl:variable name="next" select="key('id',$next-id)"/>
+
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="chunkfn">
+ <xsl:if test="$ischunk='1'">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name" select="$chunkfn"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk = 0">
+ <xsl:apply-imports/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/appendix">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/glossary">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/bibliography">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="dedication">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="part|reference">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="refentry">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="colophon">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/appendix">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/glossary">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/bibliography">
+ <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk != 0">
+ <xsl:call-template name="process-chunk"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-imports/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex
+ |book/index
+ |article/index">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. -->
+ <xsl:if test="count(*)>0 or $generate.index != '0'">
+ <xsl:call-template name="process-chunk"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+ <xsl:choose>
+ <xsl:when test="$chunk.toc = ''">
+ <xsl:message terminate="yes">
+ <xsl:text>The chunk.toc file is not set.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count(key('id',$rootid)) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="key('id',$rootid)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:apply-templates select="/" mode="process.root"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template name="make.lots">
+ <xsl:param name="toc.params" select="''"/>
+ <xsl:param name="toc"/>
+
+ <xsl:variable name="lots">
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:copy-of select="$toc"/>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'figure')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'figure'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'table')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'table'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'example')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'example'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'equation')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'equation'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'procedure')">
+ <xsl:choose>
+ <xsl:when test="$chunk.separate.lots != '0'">
+ <xsl:call-template name="make.lot.chunk">
+ <xsl:with-param name="type" select="'procedure'"/>
+ <xsl:with-param name="lot">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'procedure'"/>
+ <xsl:with-param name="nodes" select=".//procedure[title]"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'procedure'"/>
+ <xsl:with-param name="nodes" select=".//procedure[title]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:if test="string($lots) != ''">
+ <xsl:choose>
+ <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="dbhtml-dir"/>
+ <xsl:apply-templates select="." mode="recursive-chunk-filename">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="/foo"/>
+ <xsl:with-param name="next" select="/foo"/>
+ <xsl:with-param name="nav.context" select="'toc'"/>
+ <xsl:with-param name="content">
+ <h1>
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </h1>
+ <xsl:copy-of select="$lots"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$lots"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+ <xsl:param name="type" select="''"/>
+ <xsl:param name="lot"/>
+
+ <xsl:if test="string($lot) != ''">
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="dbhtml-dir"/>
+ <xsl:value-of select="$type"/>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="href">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="dbhtml-dir"/>
+ <xsl:value-of select="$type"/>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="/foo"/>
+ <xsl:with-param name="next" select="/foo"/>
+ <xsl:with-param name="nav.context" select="'toc'"/>
+ <xsl:with-param name="content">
+ <xsl:copy-of select="$lot"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
+ <!-- And output a link to this file -->
+ <div>
+ <xsl:attribute name="class">
+ <xsl:text>ListofTitles</xsl:text>
+ </xsl:attribute>
+ <a href="{$href}">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">
+ <xsl:choose>
+ <xsl:when test="$type='table'">ListofTables</xsl:when>
+ <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+ <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+ <xsl:when test="$type='example'">ListofExamples</xsl:when>
+ <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+ <xsl:otherwise>ListofUnknown</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </a>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/component.xsl b/docs/xsl-generic/html/component.xsl
new file mode 100644
index 00000000..e12eaeb6
--- /dev/null
+++ b/docs/xsl-generic/html/component.xsl
@@ -0,0 +1,401 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: component.xsl 7000 2007-07-10 20:41:35Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="component.title">
+ <xsl:param name="node" select="."/>
+
+ <xsl:variable name="level">
+ <xsl:choose>
+ <xsl:when test="ancestor::section">
+ <xsl:value-of select="count(ancestor::section)+1"/>
+ </xsl:when>
+ <xsl:when test="ancestor::sect5">6</xsl:when>
+ <xsl:when test="ancestor::sect4">5</xsl:when>
+ <xsl:when test="ancestor::sect3">4</xsl:when>
+ <xsl:when test="ancestor::sect2">3</xsl:when>
+ <xsl:when test="ancestor::sect1">2</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Let's handle the case where a component (bibliography, for example)
+ occurs inside a section; will we need parameters for this? -->
+
+ <xsl:element name="h{$level+1}">
+ <xsl:attribute name="class">title</xsl:attribute>
+ <xsl:if test="$generate.id.attributes = 0">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates select="$node" mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="subtitle"
+ select="($node/docinfo/subtitle
+ |$node/info/subtitle
+ |$node/prefaceinfo/subtitle
+ |$node/chapterinfo/subtitle
+ |$node/appendixinfo/subtitle
+ |$node/articleinfo/subtitle
+ |$node/artheader/subtitle
+ |$node/subtitle)[1]"/>
+
+ <xsl:if test="$subtitle">
+ <h3 class="subtitle">
+ <i>
+ <xsl:apply-templates select="$node" mode="object.subtitle.markup"/>
+ </i>
+ </h3>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:call-template name="dedication.titlepage"/>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="dedication/title|dedication/info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication/subtitle|dedication/info/subtitle"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.subtitle">
+ <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="component.title"/>
+ <xsl:call-template name="component.subtitle"/>
+
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"></xsl:template>
+<xsl:template match="colophon/subtitle"></xsl:template>
+<xsl:template match="colophon/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="preface.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:call-template name="component.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="component.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="preface/title" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::preface[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/subtitle
+ |preface/prefaceinfo/subtitle
+ |preface/info/subtitle
+ |preface/docinfo/subtitle"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.subtitle">
+ <xsl:with-param name="node" select="ancestor::preface[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"></xsl:template>
+<xsl:template match="preface/info"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="chapter.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:call-template name="component.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="component.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="chapter/title" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/subtitle
+ |chapter/chapterinfo/subtitle
+ |chapter/info/subtitle
+ |chapter/docinfo/subtitle"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.subtitle">
+ <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/info"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="parent::article and $ischunk = 0">
+ <xsl:call-template name="section.heading">
+ <xsl:with-param name="level" select="1"/>
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="appendix.titlepage"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:call-template name="component.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="component.toc.separator"/>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+
+ <xsl:if test="not(parent::article) or $ischunk != 0">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="appendix/title" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/subtitle
+ |appendix/appendixinfo/subtitle
+ |appendix/info/subtitle
+ |appendix/docinfo/subtitle"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.subtitle">
+ <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/info"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="article.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="make.lots">
+ <xsl:with-param name="toc.params" select="$toc.params"/>
+ <xsl:with-param name="toc">
+ <xsl:call-template name="component.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="article/title|article/articleinfo/title" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::article[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/subtitle
+ |article/articleinfo/subtitle
+ |article/info/subtitle
+ |article/artheader/subtitle"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="component.subtitle">
+ <xsl:with-param name="node" select="ancestor::article[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"></xsl:template>
+<xsl:template match="article/info"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/titleabbrev"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/division.xsl b/docs/xsl-generic/html/division.xsl
new file mode 100644
index 00000000..599fe495
--- /dev/null
+++ b/docs/xsl-generic/html/division.xsl
@@ -0,0 +1,228 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: division.xsl 7000 2007-07-10 20:41:35Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="set.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="make.lots">
+ <xsl:with-param name="toc.params" select="$toc.params"/>
+ <xsl:with-param name="toc">
+ <xsl:call-template name="set.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/titleabbrev"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="book.titlepage"/>
+
+ <xsl:apply-templates select="dedication" mode="dedication"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="make.lots">
+ <xsl:with-param name="toc.params" select="$toc.params"/>
+ <xsl:with-param name="toc">
+ <xsl:call-template name="division.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/info"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/titleabbrev"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="part.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+ <xsl:call-template name="division.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+ <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+ <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"></xsl:template>
+<xsl:template match="part/partinfo"></xsl:template>
+<xsl:template match="part/info"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/titleabbrev"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+
+<xsl:template match="partintro">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="partintro.titlepage"/>
+ <xsl:apply-templates/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="node" select="parent::*"/>
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="contains($toc.params, 'toc')">
+ <!-- not ancestor::part because partintro appears in reference -->
+ <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+ </xsl:if>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+ <h3>
+ <i><xsl:apply-templates/></i>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+ <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+ <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.title">
+ <xsl:param name="node" select="."/>
+
+ <h1>
+ <xsl:attribute name="class">title</xsl:attribute>
+ <xsl:if test="$generate.id.attributes = 0">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates select="$node" mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ </h1>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/docbook.xsl b/docs/xsl-generic/html/docbook.xsl
new file mode 100644
index 00000000..ad775c20
--- /dev/null
+++ b/docs/xsl-generic/html/docbook.xsl
@@ -0,0 +1,479 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="db ng exsl"
+ version='1.0'>
+
+<xsl:output method="html"
+ encoding="ISO-8859-1"
+ indent="no"/>
+
+<!-- ********************************************************************
+ $Id: docbook.xsl 7156 2007-07-26 21:42:04Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'html'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+ <xsl:message>
+ <xsl:text>Element </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> in namespace '</xsl:text>
+ <xsl:value-of select="namespace-uri(.)"/>
+ <xsl:text>' encountered</xsl:text>
+ <xsl:if test="parent::*">
+ <xsl:text> in </xsl:text>
+ <xsl:value-of select="name(parent::*)"/>
+ </xsl:if>
+ <xsl:text>, but no template matches.</xsl:text>
+ </xsl:message>
+
+ <span style="color: red">
+ <xsl:text>&lt;</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>&gt;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&lt;/</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>&gt;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="text()">
+ <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes">
+ <xsl:attribute name="bgcolor">white</xsl:attribute>
+ <xsl:attribute name="text">black</xsl:attribute>
+ <xsl:attribute name="link">#0000FF</xsl:attribute>
+ <xsl:attribute name="vlink">#840084</xsl:attribute>
+ <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:template>
+
+<xsl:template name="head.content">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="title">
+ <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+ </xsl:param>
+
+ <title>
+ <xsl:copy-of select="$title"/>
+ </title>
+
+ <xsl:if test="$html.stylesheet != ''">
+ <xsl:call-template name="output.html.stylesheets">
+ <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$link.mailto.url != ''">
+ <link rev="made"
+ href="{$link.mailto.url}"/>
+ </xsl:if>
+
+ <xsl:if test="$html.base != ''">
+ <base href="{$html.base}"/>
+ </xsl:if>
+
+ <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+ <xsl:if test="$generate.meta.abstract != 0">
+ <xsl:variable name="info" select="(articleinfo
+ |bookinfo
+ |prefaceinfo
+ |chapterinfo
+ |appendixinfo
+ |sectioninfo
+ |sect1info
+ |sect2info
+ |sect3info
+ |sect4info
+ |sect5info
+ |referenceinfo
+ |refentryinfo
+ |partinfo
+ |info
+ |docinfo)[1]"/>
+ <xsl:if test="$info and $info/abstract">
+ <meta name="description">
+ <xsl:attribute name="content">
+ <xsl:for-each select="$info/abstract[1]/*">
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:if test="position() &lt; last()">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:attribute>
+ </meta>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:if test="($draft.mode = 'yes' or
+ ($draft.mode = 'maybe' and
+ ancestor-or-self::*[@status][1]/@status = 'draft'))
+ and $draft.watermark.image != ''">
+ <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</xsl:text>
+ </style>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+ <xsl:param name="stylesheets" select="''"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($stylesheets, ' ')">
+ <link rel="stylesheet" href="{substring-before($stylesheets, ' ')}">
+ <xsl:if test="$html.stylesheet.type != ''">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$html.stylesheet.type"/>
+ </xsl:attribute>
+ </xsl:if>
+ </link>
+ <xsl:call-template name="output.html.stylesheets">
+ <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$stylesheets != ''">
+ <link rel="stylesheet" href="{$stylesheets}">
+ <xsl:if test="$html.stylesheet.type != ''">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$html.stylesheet.type"/>
+ </xsl:attribute>
+ </xsl:if>
+ </link>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+ <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+ <xsl:if test="$inherit.keywords != 0
+ and parent::*">
+ <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+ <xsl:param name="node" select="."/>
+
+ <!-- FIXME: When chunking, only the annotations actually used
+ in this chunk should be referenced. I don't think it
+ does any harm to reference them all, but it adds
+ unnecessary bloat to each chunk. -->
+ <xsl:if test="$annotation.support != 0 and //annotation">
+ <xsl:call-template name="add.annotation.links"/>
+ <script type="text/javascript">
+ <xsl:text>&#10;// Create PopupWindow objects</xsl:text>
+ <xsl:for-each select="//annotation">
+ <xsl:text>&#10;var popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text> = new PopupWindow("popup-</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>");&#10;</xsl:text>
+ <xsl:text>popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>.offsetY = 15;&#10;</xsl:text>
+ <xsl:text>popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>.autoHide();&#10;</xsl:text>
+ </xsl:for-each>
+ </script>
+
+ <style type="text/css">
+ <xsl:value-of select="$annotation.css"/>
+ </style>
+ </xsl:if>
+
+ <!-- system.head.content is like user.head.content, except that
+ it is called before head.content. This is important because it
+ means, for example, that <style> elements output by system.head.content
+ have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+ <!-- Pre-root output, can be used to output comments and PIs. -->
+ <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+ toss the namespace and continue. Use the docbook5 namespaced
+ stylesheets for DocBook5 if you don't want to use this feature.-->
+ <!-- include extra test for Xalan quirk -->
+ <xsl:when test="(function-available('exsl:node-set') or
+ contains(system-property('xsl:vendor'),
+ 'Apache Software Foundation'))
+ and (*/self::ng:* or */self::db:*)">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>stripped namespace before processing</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:variable name="nons">
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:variable>
+ <!--
+ <xsl:message>Saving stripped document.</xsl:message>
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+ <xsl:with-param name="method" select="'xml'"/>
+ <xsl:with-param name="content">
+ <xsl:copy-of select="exsl:node-set($nons)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ -->
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>processing stripped document</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates select="exsl:node-set($nons)"/>
+ </xsl:when>
+ <!-- Can't process unless namespace removed -->
+ <xsl:when test="*/self::ng:* or */self::db:*">
+ <xsl:message terminate="yes">
+ <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+ <xsl:text> cannot proceed.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count(key('id',$rootid)) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or
+ $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="key('id', $rootid)"
+ mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="key('id',$rootid)"
+ mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="key('id',$rootid)"
+ mode="collect.tex.math"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or
+ $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="/" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="/" mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="/" mode="collect.tex.math"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:variable name="doc" select="self::*"/>
+
+ <xsl:call-template name="user.preroot"/>
+ <xsl:call-template name="root.messages"/>
+
+ <html>
+ <head>
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="."/>
+ <xsl:call-template name="user.footer.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ <xsl:value-of select="$html.append"/>
+</xsl:template>
+
+<xsl:template name="root.messages">
+ <!-- redefine this any way you'd like to output messages -->
+ <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+
+ <!-- The default is that we are not chunking... -->
+ <xsl:text>0</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/ebnf.xsl b/docs/xsl-generic/html/ebnf.xsl
new file mode 100644
index 00000000..94a66c55
--- /dev/null
+++ b/docs/xsl-generic/html/ebnf.xsl
@@ -0,0 +1,329 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: ebnf.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: ebnf.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML EBNF Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+ <table width="100%" cellpadding="5">
+ <xsl:if test="$ebnf.table.bgcolor != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$ebnf.table.bgcolor"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$ebnf.table.border != 0">
+ <xsl:attribute name="border">1</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:attribute>
+ <xsl:attribute name="summary">
+ <xsl:text>EBNF</xsl:text>
+ <xsl:if test="title">
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="title"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:if test="title">
+ <tr>
+ <th align="left" valign="top">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="title"/>
+ </th>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td>
+ <table border="0" width="99%" cellpadding="0">
+ <xsl:if test="$ebnf.table.bgcolor != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$ebnf.table.bgcolor"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:attribute>
+ <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+ <xsl:apply-templates select="production|productionrecap"/>
+ </table>
+ </td>
+ </tr>
+ </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+ <xsl:param name="recap" select="false()"/>
+ <tr>
+ <td align="left" valign="top" width="3%">
+ <xsl:text>[</xsl:text>
+ <xsl:number count="production" level="any"/>
+ <xsl:text>]</xsl:text>
+ </td>
+ <td align="right" valign="top" width="10%">
+ <xsl:choose>
+ <xsl:when test="$recap">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="lhs"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="lhs"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td valign="top" width="5%" align="center">
+ <xsl:copy-of select="$ebnf.assignment"/>
+ </td>
+ <td valign="top" width="52%">
+ <xsl:apply-templates select="rhs"/>
+ <xsl:copy-of select="$ebnf.statement.terminator"/>
+ </td>
+ <td align="left" valign="top" width="30%">
+ <xsl:choose>
+ <xsl:when test="rhs/lineannotation|constraint">
+ <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+ <xsl:apply-templates select="constraint"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($targets)=0">
+ <xsl:message>
+ <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="count($targets)>1">
+ <xsl:message>
+ <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:apply-templates select="$target">
+ <xsl:with-param name="recap" select="true()"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::rhs">
+ <xsl:text> |</xsl:text>
+ <br/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+ <xsl:variable name="linkend">
+ <xsl:call-template name="xpointer.idref">
+ <xsl:with-param name="xpointer" select="@def"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="$linkend"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="check.idref.targets">
+ <xsl:with-param name="linkend" select="$linkend"/>
+ <xsl:with-param name="element-list">production</xsl:with-param>
+ </xsl:call-template>
+
+ <!-- If you don't provide content, you can't point outside this doc. -->
+ <xsl:choose>
+ <xsl:when test="*|text()"><!--nop--></xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$linkend = ''">
+ <xsl:message>
+ <xsl:text>Non-terminals with no content must point to </xsl:text>
+ <xsl:text>production elements in the current document.</xsl:text>
+ </xsl:message>
+ <xsl:message>
+ <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+ <xsl:value-of select="@def"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="href">
+ <xsl:choose>
+ <xsl:when test="$linkend != ''">
+ <xsl:variable name="targets" select="key('id',$linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@def"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <a href="{$href}">
+ <xsl:choose>
+ <xsl:when test="*|text()">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$linkend != ''">
+ <xsl:variable name="targets" select="key('id',$linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:apply-templates select="$target/lhs"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+ <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+ <xsl:text>/*&#160;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#160;*/</xsl:text>
+ <br/>
+</xsl:template>
+
+<xsl:template match="constraint">
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="check.idref.targets">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:variable name="href">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:text>[&#160;</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="@role">
+ <xsl:value-of select="@role"/>
+ <xsl:text>: </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:if test="$target/@role">
+ <xsl:value-of select="$target/@role"/>
+ <xsl:text>: </xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <a href="{$href}">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:apply-templates select="$target" mode="title.markup"/>
+ </a>
+ <xsl:text>&#160;]</xsl:text>
+ <xsl:if test="following-sibling::constraint">
+ <br/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/footnote.xsl b/docs/xsl-generic/html/footnote.xsl
new file mode 100644
index 00000000..ca996380
--- /dev/null
+++ b/docs/xsl-generic/html/footnote.xsl
@@ -0,0 +1,299 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: footnote.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="footnote">
+ <xsl:variable name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:text>#ftn.</xsl:text>
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="ancestor::tgroup">
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="." mode="footnote.number"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+ </xsl:when>
+ <xsl:otherwise>
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="." mode="footnote.number"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="footnote" select="$targets[1]"/>
+
+ <xsl:variable name="target.href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="href">
+ <xsl:value-of select="substring-before($target.href, '#')"/>
+ <xsl:text>#ftn.</xsl:text>
+ <xsl:value-of select="substring-after($target.href, '#')"/>
+ </xsl:variable>
+
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+ <xsl:choose>
+ <xsl:when test="string-length(@label) != 0">
+ <xsl:value-of select="@label"/>
+ </xsl:when>
+ <xsl:when test="ancestor::tgroup">
+ <xsl:variable name="tfnum">
+ <xsl:number level="any" from="table|informaltable" format="1"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($table.footnote.number.symbols) &gt;= $tfnum">
+ <xsl:value-of select="substring($table.footnote.number.symbols, $tfnum, 1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number level="any" from="tgroup"
+ format="{$table.footnote.number.format}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pfoot" select="preceding::footnote[not(@label)]"/>
+ <xsl:variable name="ptfoot" select="preceding::tgroup//footnote"/>
+ <xsl:variable name="fnum" select="count($pfoot) - count($ptfoot) + 1"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($footnote.number.symbols) &gt;= $fnum">
+ <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number value="$fnum" format="{$footnote.number.format}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]|footnote/simpara[1]" priority="2">
+ <!-- this only works if the first thing in a footnote is a para, -->
+ <!-- which is ok, because it usually is. -->
+ <xsl:variable name="name">
+ <xsl:text>ftn.</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <p>
+ <xsl:if test="@role and $para.propagates.style != 0">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="ancestor::footnote"
+ mode="footnote.number"/>
+ </a>
+ <xsl:text>] </xsl:text>
+ </sup>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="footnote.body.number">
+ <xsl:variable name="name">
+ <xsl:text>ftn.</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="footnote.mark">
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="ancestor::footnote"
+ mode="footnote.number"/>
+ </a>
+ <xsl:text>] </xsl:text>
+ </sup>
+ </xsl:variable>
+
+ <xsl:variable name="html">
+ <xsl:apply-templates select="."/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')">
+ <xsl:variable name="html-nodes" select="exsl:node-set($html)"/>
+ <xsl:choose>
+ <xsl:when test="$html-nodes//p">
+ <xsl:apply-templates select="$html-nodes" mode="insert.html.p">
+ <xsl:with-param name="mark" select="$footnote.mark"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$html-nodes" mode="insert.html.text">
+ <xsl:with-param name="mark" select="$footnote.mark"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$html"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+<xsl:template name="count-element-from">
+ <xsl:param name="from" select=".."/>
+ <xsl:param name="to" select="."/>
+ <xsl:param name="count" select="0"/>
+ <xsl:param name="list" select="$from/following::*[local-name(.)=local-name($to)]
+ |$from/descendant-or-self::*[local-name(.)=local-name($to)]"/>
+
+ <xsl:choose>
+ <xsl:when test="not($list)">
+ <xsl:text>-1</xsl:text>
+ </xsl:when>
+ <xsl:when test="$list[1] = $to">
+ <xsl:value-of select="$count + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+-->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+ <xsl:variable name="footnotes" select=".//footnote"/>
+ <xsl:variable name="table.footnotes"
+ select=".//tgroup//footnote"/>
+
+ <!-- Only bother to do this if there's at least one non-table footnote -->
+ <xsl:if test="count($footnotes)>count($table.footnotes)">
+ <div class="footnotes">
+ <br/>
+ <hr width="100" align="left"/>
+ <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+ </div>
+ </xsl:if>
+
+ <xsl:if test="$annotation.support != 0 and //annotation">
+ <div class="annotation-list">
+ <div class="annotation-nocss">
+ <p>The following annotations are from this essay. You are seeing
+ them here because your browser doesn’t support the user-interface
+ techniques used to make them appear as ‘popups’ on modern browsers.</p>
+ </div>
+
+ <xsl:apply-templates select="//annotation"
+ mode="annotation-popup"/>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="footnote" name="process.footnote" mode="process.footnote.mode">
+ <xsl:choose>
+ <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+
+ <xsl:when test="$html.cleanup != 0 and function-available('exsl:node-set')">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+ <xsl:apply-templates select="*[position() &gt; 1]"/>
+ </div>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Warning: footnote number may not be generated </xsl:text>
+ <xsl:text>correctly; </xsl:text>
+ <xsl:value-of select="local-name(*[1])"/>
+ <xsl:text> unexpected as first child of footnote.</xsl:text>
+ </xsl:message>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tgroup//footnote"
+ mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+ <xsl:call-template name="process.footnote"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/formal.xsl b/docs/xsl-generic/html/formal.xsl
new file mode 100644
index 00000000..b264fef9
--- /dev/null
+++ b/docs/xsl-generic/html/formal.xsl
@@ -0,0 +1,400 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: formal.xsl 7249 2007-08-18 09:34:34Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="formal.object.break.after">1</xsl:param>
+
+<xsl:template name="formal.object">
+ <xsl:param name="placement" select="'before'"/>
+ <xsl:param name="class">
+ <xsl:apply-templates select="." mode="class.value"/>
+ </xsl:param>
+
+ <xsl:call-template name="id.warning"/>
+
+ <xsl:variable name="content">
+ <div class="{$class}">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="$placement = 'before'">
+ <xsl:call-template name="formal.object.heading"/>
+ <div class="{$class}-contents">
+ <xsl:apply-templates/>
+ </div>
+ <!-- HACK: This doesn't belong inside formal.object; it
+ should be done by the table template, but I want
+ the link to be inside the DIV, so... -->
+ <xsl:if test="local-name(.) = 'table'">
+ <xsl:call-template name="table.longdesc"/>
+ </xsl:if>
+
+ <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+ <div class="{$class}-contents"><xsl:apply-templates/></div>
+ <!-- HACK: This doesn't belong inside formal.object; it
+ should be done by the table template, but I want
+ the link to be inside the DIV, so... -->
+ <xsl:if test="local-name(.) = 'table'">
+ <xsl:call-template name="table.longdesc"/>
+ </xsl:if>
+
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ <xsl:if test="not($formal.object.break.after = '0')">
+ <br class="{$class}-break"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="floatstyle">
+ <xsl:call-template name="floatstyle"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$floatstyle != ''">
+ <xsl:call-template name="floater">
+ <xsl:with-param name="class"><xsl:value-of
+ select="$class"/>-float</xsl:with-param>
+ <xsl:with-param name="floatstyle" select="$floatstyle"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+ <xsl:param name="object" select="."/>
+ <xsl:param name="title">
+ <xsl:apply-templates select="$object" mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ </xsl:param>
+
+ <p class="title">
+ <b>
+ <xsl:copy-of select="$title"/>
+ </b>
+ </p>
+</xsl:template>
+
+<xsl:template name="informal.object">
+ <xsl:param name="class" select="local-name(.)"/>
+
+ <xsl:variable name="content">
+ <div class="{$class}">
+ <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+
+ <!-- HACK: This doesn't belong inside formal.object; it
+ should be done by the table template, but I want
+ the link to be inside the DIV, so... -->
+ <xsl:if test="local-name(.) = 'informaltable'">
+ <xsl:call-template name="table.longdesc"/>
+ </xsl:if>
+
+ <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+ </div>
+ </xsl:variable>
+
+ <xsl:variable name="floatstyle">
+ <xsl:call-template name="floatstyle"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$floatstyle != ''">
+ <xsl:call-template name="floater">
+ <xsl:with-param name="class"><xsl:value-of
+ select="$class"/>-float</xsl:with-param>
+ <xsl:with-param name="floatstyle" select="$floatstyle"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+ <xsl:param name="placement" select="'before'"/>
+ <xsl:param name="class" select="local-name(.)"/>
+
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:call-template name="formal.object">
+ <xsl:with-param name="placement" select="$placement"/>
+ <xsl:with-param name="class" select="$class"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="informal.object">
+ <xsl:with-param name="class" select="$class"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure">
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="formal.object">
+ <xsl:with-param name="placement" select="$placement"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="table">
+ <xsl:choose>
+ <xsl:when test="tgroup|mediaobject|graphic">
+ <xsl:call-template name="calsTable"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:copy-of select="@*[not(local-name()='id')]"/>
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ <xsl:call-template name="htmlTable"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calsTable">
+ <xsl:if test="tgroup/tbody/tr
+ |tgroup/thead/tr
+ |tgroup/tfoot/tr">
+ <xsl:message terminate="yes">Broken table: tr descendent of CALS Table.</xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="formal.object">
+ <xsl:with-param name="placement" select="$placement"/>
+ <xsl:with-param name="class">
+ <xsl:choose>
+ <xsl:when test="@tabstyle">
+ <!-- hack, this will only ever occur on table, not example -->
+ <xsl:value-of select="@tabstyle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="htmlTable">
+ <xsl:if test="tgroup/tbody/row
+ |tgroup/thead/row
+ |tgroup/tfoot/row">
+ <xsl:message terminate="yes">Broken table: row descendent of HTML table.</xsl:message>
+ </xsl:if>
+
+ <xsl:apply-templates mode="htmlTable"/>
+</xsl:template>
+
+<xsl:template match="example">
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="formal.object">
+ <xsl:with-param name="placement" select="$placement"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="equation">
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="formal.object">
+ <xsl:with-param name="placement" select="$placement"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="figure/titleabbrev"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="table/titleabbrev"></xsl:template>
+<xsl:template match="table/textobject"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="example/titleabbrev"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+<xsl:template match="equation/titleabbrev"></xsl:template>
+
+<xsl:template match="informalfigure">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+ <xsl:choose>
+ <xsl:when test="tgroup|mediaobject|graphic">
+ <xsl:call-template name="informal.object">
+ <xsl:with-param name="class">
+ <xsl:choose>
+ <xsl:when test="@tabstyle">
+ <xsl:value-of select="@tabstyle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <table>
+ <xsl:copy-of select="@*"/>
+ <xsl:call-template name="htmlTable"/>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="informaltable/textobject"></xsl:template>
+
+<xsl:template name="table.longdesc">
+ <!-- HACK: This doesn't belong inside formal.objectt; it should be done by -->
+ <!-- the table template, but I want the link to be inside the DIV, so... -->
+ <xsl:variable name="longdesc.uri">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="irrelevant">
+ <!-- write.longdesc returns the filename ... -->
+ <xsl:call-template name="write.longdesc">
+ <xsl:with-param name="mediaobject" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0
+ and textobject[not(phrase)]">
+ <xsl:call-template name="longdesc.link">
+ <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="informalequation">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template name="floatstyle">
+ <xsl:if test="(@float and @float != '0') or @floatstyle != ''">
+ <xsl:choose>
+ <xsl:when test="@floatstyle != ''">
+ <xsl:value-of select="@floatstyle"/>
+ </xsl:when>
+ <xsl:when test="@float = '1'">
+ <xsl:value-of select="$default.float.class"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@float"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="floater">
+ <xsl:param name="content"/>
+ <xsl:param name="class" select="'float'"/>
+ <xsl:param name="floatstyle" select="'left'"/>
+
+ <div class="{$class}">
+ <xsl:if test="$floatstyle = 'left' or $floatstyle = 'right'">
+ <xsl:attribute name="style">
+ <xsl:text>float: </xsl:text>
+ <xsl:value-of select="$floatstyle"/>
+ <xsl:text>;</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/glossary.xsl b/docs/xsl-generic/html/glossary.xsl
new file mode 100644
index 00000000..92178067
--- /dev/null
+++ b/docs/xsl-generic/html/glossary.xsl
@@ -0,0 +1,482 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: glossary.xsl 7246 2007-08-16 20:58:06Z bobstayton $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+ &setup-language-variable;
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="glossary.titlepage"/>
+
+ <xsl:choose>
+ <xsl:when test="glossdiv">
+ <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
+ </xsl:when>
+ <xsl:when test="glossentry">
+ <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="glossdiv">
+ <xsl:apply-templates select="glossdiv"/>
+ </xsl:when>
+ <xsl:when test="glossentry">
+ <dl>
+ <xsl:choose>
+ <xsl:when test="$glossary.sort != 0">
+ <xsl:apply-templates select="glossentry">
+ <xsl:sort lang="{$language}"
+ select="translate(glossterm, $lowercase,
+ $uppercase)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="glossentry"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dl>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- empty glossary -->
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="not(parent::article)">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/info"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+ &setup-language-variable;
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="blockinfo/title|info/title|title">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+ <dl>
+ <xsl:choose>
+ <xsl:when test="$glossary.sort != 0">
+ <xsl:apply-templates select="glossentry">
+ <xsl:sort lang="{$language}"
+ select="translate(glossterm, $lowercase,
+ $uppercase)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="glossentry"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dl>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+ &setup-language-variable;
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+ <dl>
+ <xsl:choose>
+ <xsl:when test="$glossary.sort != 0">
+ <xsl:apply-templates select="glossentry">
+ <xsl:sort lang="{$language}"
+ select="translate(glossterm, $lowercase,
+ $uppercase)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="glossentry"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dl>
+ </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+ <h3>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+ GlossTerm, Acronym?, Abbrev?,
+ (IndexTerm)*,
+ RevHistory?,
+ (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+ <xsl:choose>
+ <xsl:when test="$glossentry.show.acronym = 'primary'">
+ <dt>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional">
+ <xsl:choose>
+ <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="acronym|abbrev">
+ <xsl:apply-templates select="acronym|abbrev"/>
+ <xsl:text> (</xsl:text>
+ <xsl:apply-templates select="glossterm"/>
+ <xsl:text>)</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="glossterm"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dt>
+ </xsl:when>
+ <xsl:when test="$glossentry.show.acronym = 'yes'">
+ <dt>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional">
+ <xsl:choose>
+ <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="glossterm"/>
+
+ <xsl:if test="acronym|abbrev">
+ <xsl:text> (</xsl:text>
+ <xsl:apply-templates select="acronym|abbrev"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </dt>
+ </xsl:when>
+ <xsl:otherwise>
+ <dt>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional">
+ <xsl:choose>
+ <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="glossterm"/>
+ </dt>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::glossterm">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+ <xsl:variable name="otherterm" select="@otherterm"/>
+ <xsl:variable name="targets" select="key('id', $otherterm)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <dd>
+ <p>
+ <xsl:variable name="template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'glossary'"/>
+ <xsl:with-param name="name" select="'see'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$target">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target" mode="xref-to"/>
+ </a>
+ </xsl:when>
+ <xsl:when test="$otherterm != '' and not($target)">
+ <xsl:message>
+ <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
+ <xsl:value-of select="$otherterm"/>
+ </xsl:message>
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$template"/>
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ <xsl:text>.</xsl:text>
+ </p>
+ </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+ <dd>
+ <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+ <xsl:if test="glossseealso">
+ <p>
+ <xsl:variable name="template">
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'glossary'"/>
+ <xsl:with-param name="name" select="'seealso'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="title">
+ <xsl:apply-templates select="glossseealso"/>
+ </xsl:variable>
+ <xsl:call-template name="substitute-markup">
+ <xsl:with-param name="template" select="$template"/>
+ <xsl:with-param name="title" select="$title"/>
+ </xsl:call-template>
+ </p>
+ </xsl:if>
+ </dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+ <xsl:variable name="otherterm" select="@otherterm"/>
+ <xsl:variable name="targets" select="key('id', $otherterm)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="$target">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target" mode="xref-to"/>
+ </a>
+ </xsl:when>
+ <xsl:when test="$otherterm != '' and not($target)">
+ <xsl:message>
+ <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
+ <xsl:value-of select="$otherterm"/>
+ </xsl:message>
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="position() = last()">
+ <xsl:text>.</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>, </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Glossary collection -->
+
+<xsl:template match="glossary[@role='auto']" priority="2">
+ &setup-language-variable;
+ <xsl:variable name="terms"
+ select="//glossterm[not(parent::glossdef)]|//firstterm"/>
+ <xsl:variable name="collection" select="document($glossary.collection, .)"/>
+
+ <xsl:call-template name="id.warning"/>
+
+ <xsl:if test="$glossary.collection = ''">
+ <xsl:message>
+ <xsl:text>Warning: processing automatic glossary </xsl:text>
+ <xsl:text>without a glossary.collection file.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="not($collection) and $glossary.collection != ''">
+ <xsl:message>
+ <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
+ <xsl:text>open glossary.collection file '</xsl:text>
+ <xsl:value-of select="$glossary.collection"/>
+ <xsl:text>'</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="glossary.titlepage"/>
+
+ <xsl:choose>
+ <xsl:when test="glossdiv and $collection//glossdiv">
+ <xsl:for-each select="$collection//glossdiv">
+ <!-- first see if there are any in this div -->
+ <xsl:variable name="exist.test">
+ <xsl:for-each select="glossentry">
+ <xsl:variable name="cterm" select="glossterm"/>
+ <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+ <xsl:value-of select="glossterm"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:if test="$exist.test != ''">
+ <xsl:apply-templates select="." mode="auto-glossary">
+ <xsl:with-param name="terms" select="$terms"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <dl>
+ <xsl:choose>
+ <xsl:when test="$glossary.sort != 0">
+ <xsl:for-each select="$collection//glossentry">
+ <xsl:sort lang="{$language}"
+ select="translate(glossterm, $lowercase,
+ $uppercase)"/>
+ <xsl:variable name="cterm" select="glossterm"/>
+ <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+ <xsl:apply-templates select="." mode="auto-glossary"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="$collection//glossentry">
+ <xsl:variable name="cterm" select="glossterm"/>
+ <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+ <xsl:apply-templates select="." mode="auto-glossary"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dl>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="not(parent::article)">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="auto-glossary">
+ <!-- pop back out to the default mode for most elements -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="auto-glossary">
+ <xsl:param name="terms" select="."/>
+
+ &setup-language-variable;
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+ <dl>
+ <xsl:choose>
+ <xsl:when test="$glossary.sort != 0">
+ <xsl:for-each select="glossentry">
+ <xsl:sort lang="{$language}"
+ select="translate(glossterm, $lowercase,
+ $uppercase)"/>
+ <xsl:variable name="cterm" select="glossterm"/>
+ <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+ <xsl:apply-templates select="." mode="auto-glossary"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="glossentry">
+ <xsl:variable name="cterm" select="glossterm"/>
+ <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+ <xsl:apply-templates select="." mode="auto-glossary"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dl>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/graphics.xsl b/docs/xsl-generic/html/graphics.xsl
new file mode 100644
index 00000000..3a03edb6
--- /dev/null
+++ b/docs/xsl-generic/html/graphics.xsl
@@ -0,0 +1,1489 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+ xmlns:simg="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.ImageIntrinsics"
+ xmlns:ximg="xalan://com.nwalsh.xalan.ImageIntrinsics"
+ xmlns:xtext="xalan://com.nwalsh.xalan.Text"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ exclude-result-prefixes="xlink stext xtext lxslt simg ximg"
+ extension-element-prefixes="stext xtext"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: graphics.xsl 7241 2007-08-14 15:59:17Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ Contributors:
+ Colin Paul Adams, <colin@colina.demon.co.uk>
+
+ ******************************************************************** -->
+
+<lxslt:component prefix="xtext" elements="insertfile"/>
+<lxslt:component prefix="ximg" functions="new getWidth getDepth"/>
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the HTML backend -->
+
+<xsl:template name="is.graphic.format">
+ <xsl:param name="format"></xsl:param>
+ <xsl:if test="$format = 'SVG'
+ or $format = 'PNG'
+ or $format = 'JPG'
+ or $format = 'JPEG'
+ or $format = 'linespecific'
+ or $format = 'GIF'
+ or $format = 'GIF87a'
+ or $format = 'GIF89a'
+ or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+ <xsl:param name="ext"></xsl:param>
+ <xsl:variable name="lcext" select="translate($ext,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+ 'abcdefghijklmnopqrstuvwxyz')"/>
+ <xsl:if test="$lcext = 'svg'
+ or $lcext = 'png'
+ or $lcext = 'jpeg'
+ or $lcext = 'jpg'
+ or $lcext = 'avi'
+ or $lcext = 'mpg'
+ or $lcext = 'mpeg'
+ or $lcext = 'qt'
+ or $lcext = 'gif'
+ or $lcext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+ <!-- When this template is called, the current node should be -->
+ <!-- a graphic, inlinegraphic, imagedata, or videodata. All -->
+ <!-- those elements have the same set of attributes, so we can -->
+ <!-- handle them all in one place. -->
+ <xsl:param name="tag" select="'img'"/>
+ <xsl:param name="alt"/>
+ <xsl:param name="longdesc"/>
+
+ <!-- The HTML img element only supports the notion of content-area
+ scaling; it doesn't support the distinction between a
+ content-area and a viewport-area, so we have to make some
+ compromises.
+
+ 1. If only the content-area is specified, everything is fine.
+ (If you ask for a three inch image, that's what you'll get.)
+
+ 2. If only the viewport-area is provided:
+ - If scalefit=1, treat it as both the content-area and
+ the viewport-area. (If you ask for an image in a five inch
+ area, we'll make the image five inches to fill that area.)
+ - If scalefit=0, ignore the viewport-area specification.
+
+ Note: this is not quite the right semantic and has the additional
+ problem that it can result in anamorphic scaling, which scalefit
+ should never cause.
+
+ 3. If both the content-area and the viewport-area is specified
+ on a graphic element, ignore the viewport-area.
+ (If you ask for a three inch image in a five inch area, we'll assume
+ it's better to give you a three inch image in an unspecified area
+ than a five inch image in a five inch area.
+
+ Relative units also cause problems. As a general rule, the stylesheets
+ are operating too early and too loosely coupled with the rendering engine
+ to know things like the current font size or the actual dimensions of
+ an image. Therefore:
+
+ 1. We use a fixed size for pixels, $pixels.per.inch
+
+ 2. We use a fixed size for "em"s, $points.per.em
+
+ Percentages are problematic. In the following discussion, we speak
+ of width and contentwidth, but the same issues apply to depth and
+ contentdepth
+
+ 1. A width of 50% means "half of the available space for the image."
+ That's fine. But note that in HTML, this is a dynamic property and
+ the image size will vary if the browser window is resized.
+
+ 2. A contentwidth of 50% means "half of the actual image width". But
+ the stylesheets have no way to assess the image's actual size. Treating
+ this as a width of 50% is one possibility, but it produces behavior
+ (dynamic scaling) that seems entirely out of character with the
+ meaning.
+
+ Instead, the stylesheets define a $nominal.image.width
+ and convert percentages to actual values based on that nominal size.
+
+ Scale can be problematic. Scale applies to the contentwidth, so
+ a scale of 50 when a contentwidth is not specified is analagous to a
+ width of 50%. (If a contentwidth is specified, the scaling factor can
+ be applied to that value and no problem exists.)
+
+ If scale is specified but contentwidth is not supplied, the
+ nominal.image.width is used to calculate a base size
+ for scaling.
+
+ Warning: as a consequence of these decisions, unless the aspect ratio
+ of your image happens to be exactly the same as (nominal width / nominal height),
+ specifying contentwidth="50%" and contentdepth="50%" is NOT going to
+ scale the way you expect (or really, the way it should).
+
+ Don't do that. In fact, a percentage value is not recommended for content
+ size at all. Use scale instead.
+
+ Finally, align and valign are troublesome. Horizontal alignment is now
+ supported by wrapping the image in a <div align="{@align}"> (in block
+ contexts!). I can't think of anything (practical) to do about vertical
+ alignment.
+ -->
+
+ <xsl:variable name="width-units">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+ <xsl:when test="@width">
+ <xsl:call-template name="length-units">
+ <xsl:with-param name="length" select="@width"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="not(@depth) and $default.image.width != ''">
+ <xsl:call-template name="length-units">
+ <xsl:with-param name="length" select="$default.image.width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="width">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+ <xsl:when test="@width">
+ <xsl:choose>
+ <xsl:when test="$width-units = '%'">
+ <xsl:value-of select="@width"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="length-spec">
+ <xsl:with-param name="length" select="@width"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="not(@depth) and $default.image.width != ''">
+ <xsl:value-of select="$default.image.width"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="scalefit">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+ <xsl:when test="@contentwidth or @contentdepth">0</xsl:when>
+ <xsl:when test="@scale">0</xsl:when>
+ <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when>
+ <xsl:when test="$width != '' or @depth">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="scale">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0">1.0</xsl:when>
+ <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
+ <xsl:when test="@scale">
+ <xsl:value-of select="@scale div 100.0"/>
+ </xsl:when>
+ <xsl:otherwise>1.0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'graphic'
+ or local-name(.) = 'inlinegraphic'">
+ <!-- handle legacy graphic and inlinegraphic by new template -->
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- imagedata, videodata, audiodata -->
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="output_filename">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+ <!--
+ Moved test for $keep.relative.image.uris to template below:
+ <xsl:template match="@fileref">
+ -->
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="img.src.path.pi">
+ <xsl:call-template name="pi.dbhtml_img.src.path">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="filename.for.graphicsize">
+ <xsl:choose>
+ <xsl:when test="$img.src.path.pi != ''">
+ <xsl:value-of select="concat($img.src.path.pi, $filename)"/>
+ </xsl:when>
+ <xsl:when test="$img.src.path != '' and
+ $graphicsize.use.img.src.path != 0 and
+ $tag = 'img' and
+ not(starts-with($filename, '/')) and
+ not(contains($filename, '://'))">
+ <xsl:value-of select="concat($img.src.path, $filename)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="realintrinsicwidth">
+ <!-- This funny compound test works around a bug in XSLTC -->
+ <xsl:choose>
+ <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0">
+ <xsl:choose>
+ <xsl:when test="function-available('simg:getWidth')">
+ <xsl:value-of select="simg:getWidth(simg:new($filename.for.graphicsize),
+ $nominal.image.width)"/>
+ </xsl:when>
+ <xsl:when test="function-available('ximg:getWidth')">
+ <xsl:value-of select="ximg:getWidth(ximg:new($filename.for.graphicsize),
+ $nominal.image.width)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="intrinsicwidth">
+ <xsl:choose>
+ <xsl:when test="$realintrinsicwidth = 0">
+ <xsl:value-of select="$nominal.image.width"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$realintrinsicwidth"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="intrinsicdepth">
+ <!-- This funny compound test works around a bug in XSLTC -->
+ <xsl:choose>
+ <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0">
+ <xsl:choose>
+ <xsl:when test="function-available('simg:getDepth')">
+ <xsl:value-of select="simg:getDepth(simg:new($filename.for.graphicsize),
+ $nominal.image.depth)"/>
+ </xsl:when>
+ <xsl:when test="function-available('ximg:getDepth')">
+ <xsl:value-of select="ximg:getDepth(ximg:new($filename.for.graphicsize),
+ $nominal.image.depth)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$nominal.image.depth"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$nominal.image.depth"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="contentwidth">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+ <xsl:when test="@contentwidth">
+ <xsl:variable name="units">
+ <xsl:call-template name="length-units">
+ <xsl:with-param name="length" select="@contentwidth"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$units = '%'">
+ <xsl:variable name="cmagnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="@contentwidth"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$intrinsicwidth * $cmagnitude div 100.0"/>
+ <xsl:text>px</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="length-spec">
+ <xsl:with-param name="length" select="@contentwidth"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$intrinsicwidth"/>
+ <xsl:text>px</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="scaled.contentwidth">
+ <xsl:if test="$contentwidth != ''">
+ <xsl:variable name="cwidth.in.points">
+ <xsl:call-template name="length-in-points">
+ <xsl:with-param name="length" select="$contentwidth"/>
+ <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+ <xsl:with-param name="em.size" select="$points.per.em"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$cwidth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="html.width">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+ <xsl:when test="$width-units = '%'">
+ <xsl:value-of select="$width"/>
+ </xsl:when>
+ <xsl:when test="$width != ''">
+ <xsl:variable name="width.in.points">
+ <xsl:call-template name="length-in-points">
+ <xsl:with-param name="length" select="$width"/>
+ <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+ <xsl:with-param name="em.size" select="$points.per.em"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="round($width.in.points div 72.0 * $pixels.per.inch)"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="contentdepth">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+ <xsl:when test="@contentdepth">
+ <xsl:variable name="units">
+ <xsl:call-template name="length-units">
+ <xsl:with-param name="length" select="@contentdepth"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$units = '%'">
+ <xsl:variable name="cmagnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="@contentdepth"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$intrinsicdepth * $cmagnitude div 100.0"/>
+ <xsl:text>px</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="length-spec">
+ <xsl:with-param name="length" select="@contentdepth"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$intrinsicdepth"/>
+ <xsl:text>px</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="scaled.contentdepth">
+ <xsl:if test="$contentdepth != ''">
+ <xsl:variable name="cdepth.in.points">
+ <xsl:call-template name="length-in-points">
+ <xsl:with-param name="length" select="$contentdepth"/>
+ <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+ <xsl:with-param name="em.size" select="$points.per.em"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$cdepth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="depth-units">
+ <xsl:if test="@depth">
+ <xsl:call-template name="length-units">
+ <xsl:with-param name="length" select="@depth"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="depth">
+ <xsl:if test="@depth">
+ <xsl:choose>
+ <xsl:when test="$depth-units = '%'">
+ <xsl:value-of select="@depth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="length-spec">
+ <xsl:with-param name="length" select="@depth"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="html.depth">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+ <xsl:when test="$depth-units = '%'">
+ <xsl:value-of select="$depth"/>
+ </xsl:when>
+ <xsl:when test="@depth and @depth != ''">
+ <xsl:variable name="depth.in.points">
+ <xsl:call-template name="length-in-points">
+ <xsl:with-param name="length" select="$depth"/>
+ <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+ <xsl:with-param name="em.size" select="$points.per.em"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="round($depth.in.points div 72.0 * $pixels.per.inch)"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="viewport">
+ <xsl:choose>
+ <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+ <xsl:when test="local-name(.) = 'inlinegraphic'
+ or ancestor::inlinemediaobject
+ or ancestor::inlineequation">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$make.graphic.viewport"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+<!--
+ <xsl:message>=====================================
+scale: <xsl:value-of select="$scale"/>, <xsl:value-of select="$scalefit"/>
+@contentwidth <xsl:value-of select="@contentwidth"/>
+$contentwidth <xsl:value-of select="$contentwidth"/>
+scaled.contentwidth: <xsl:value-of select="$scaled.contentwidth"/>
+@width: <xsl:value-of select="@width"/>
+width: <xsl:value-of select="$width"/>
+html.width: <xsl:value-of select="$html.width"/>
+@contentdepth <xsl:value-of select="@contentdepth"/>
+$contentdepth <xsl:value-of select="$contentdepth"/>
+scaled.contentdepth: <xsl:value-of select="$scaled.contentdepth"/>
+@depth: <xsl:value-of select="@depth"/>
+depth: <xsl:value-of select="$depth"/>
+html.depth: <xsl:value-of select="$html.depth"/>
+align: <xsl:value-of select="@align"/>
+valign: <xsl:value-of select="@valign"/></xsl:message>
+-->
+
+ <xsl:variable name="scaled"
+ select="@width|@depth|@contentwidth|@contentdepth
+ |@scale|@scalefit"/>
+
+ <xsl:variable name="img">
+ <xsl:choose>
+ <xsl:when test="@format = 'SVG'">
+ <object data="{$output_filename}" type="image/svg+xml">
+ <xsl:call-template name="process.image.attributes">
+ <!--xsl:with-param name="alt" select="$alt"/ there's no alt here-->
+ <xsl:with-param name="html.depth" select="$html.depth"/>
+ <xsl:with-param name="html.width" select="$html.width"/>
+ <xsl:with-param name="longdesc" select="$longdesc"/>
+ <xsl:with-param name="scale" select="$scale"/>
+ <xsl:with-param name="scalefit" select="$scalefit"/>
+ <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+ <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+ <xsl:with-param name="viewport" select="$viewport"/>
+ </xsl:call-template>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:choose>
+ <xsl:when test="@align = 'center'">middle</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@align"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$use.embed.for.svg != 0">
+ <embed src="{$output_filename}" type="image/svg+xml">
+ <xsl:call-template name="process.image.attributes">
+ <!--xsl:with-param name="alt" select="$alt"/ there's no alt here -->
+ <xsl:with-param name="html.depth" select="$html.depth"/>
+ <xsl:with-param name="html.width" select="$html.width"/>
+ <xsl:with-param name="longdesc" select="$longdesc"/>
+ <xsl:with-param name="scale" select="$scale"/>
+ <xsl:with-param name="scalefit" select="$scalefit"/>
+ <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+ <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+ <xsl:with-param name="viewport" select="$viewport"/>
+ </xsl:call-template>
+ </embed>
+ </xsl:if>
+ </object>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$tag}">
+ <xsl:if test="$tag = 'img' and ../../self::imageobjectco">
+ <xsl:variable name="mapname">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="../../areaspec"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$scaled">
+ <!-- It might be possible to handle some scaling; needs -->
+ <!-- more investigation -->
+ <xsl:message>
+ <xsl:text>Warning: imagemaps not supported </xsl:text>
+ <xsl:text>on scaled images</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="border">0</xsl:attribute>
+ <xsl:attribute name="usemap">
+ <xsl:value-of select="concat('#', $mapname)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:attribute name="src">
+ <xsl:choose>
+ <xsl:when test="$img.src.path != '' and
+ $tag = 'img' and
+ not(starts-with($output_filename, '/')) and
+ not(contains($output_filename, '://'))">
+ <xsl:value-of select="$img.src.path"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:value-of select="$output_filename"/>
+ </xsl:attribute>
+
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:choose>
+ <xsl:when test="@align = 'center'">middle</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@align"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="process.image.attributes">
+ <xsl:with-param name="alt">
+ <xsl:choose>
+ <xsl:when test="$alt != ''">
+ <xsl:copy-of select="$alt"/>
+ </xsl:when>
+ <xsl:when test="ancestor::figure">
+ <xsl:value-of select="normalize-space(ancestor::figure/title)"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="html.depth" select="$html.depth"/>
+ <xsl:with-param name="html.width" select="$html.width"/>
+ <xsl:with-param name="longdesc" select="$longdesc"/>
+ <xsl:with-param name="scale" select="$scale"/>
+ <xsl:with-param name="scalefit" select="$scalefit"/>
+ <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+ <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+ <xsl:with-param name="viewport" select="$viewport"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="bgcolor">
+ <xsl:call-template name="pi.dbhtml_background-color">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="use.viewport"
+ select="$viewport != 0
+ and ($html.width != ''
+ or ($html.depth != '' and $depth-units != '%')
+ or $bgcolor != ''
+ or @valign)"/>
+
+ <xsl:choose>
+ <xsl:when test="$use.viewport">
+ <table border="0" summary="manufactured viewport for HTML img"
+ cellspacing="0" cellpadding="0">
+ <xsl:if test="$html.width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$html.width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <tr>
+ <xsl:if test="$html.depth != '' and $depth-units != '%'">
+ <!-- don't do this for percentages because browsers get confused -->
+ <xsl:choose>
+ <xsl:when test="$css.decoration != 0">
+ <xsl:attribute name="style">
+ <xsl:text>height: </xsl:text>
+ <xsl:value-of select="$html.depth"/>
+ <xsl:text>px</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="height">
+ <xsl:value-of select="$html.depth"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <td>
+ <xsl:if test="$bgcolor != ''">
+ <xsl:choose>
+ <xsl:when test="$css.decoration != 0">
+ <xsl:attribute name="style">
+ <xsl:text>background-color: </xsl:text>
+ <xsl:value-of select="$bgcolor"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$bgcolor"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$img"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$img"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$tag = 'img' and ../../self::imageobjectco and not($scaled)">
+ <xsl:variable name="mapname">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="../../areaspec"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <map name="{$mapname}">
+ <xsl:for-each select="../../areaspec//area">
+ <xsl:variable name="units">
+ <xsl:choose>
+ <xsl:when test="@units = 'other' and @otherunits">
+ <xsl:value-of select="@otherunits"/>
+ </xsl:when>
+ <xsl:when test="@units">
+ <xsl:value-of select="@units"/>
+ </xsl:when>
+ <!-- areaspec|areaset/area -->
+ <xsl:when test="../@units = 'other' and ../@otherunits">
+ <xsl:value-of select="../@otherunits"/>
+ </xsl:when>
+ <xsl:when test="../@units">
+ <xsl:value-of select="../@units"/>
+ </xsl:when>
+ <!-- areaspec/areaset/area -->
+ <xsl:when test="../../@units = 'other' and ../../@otherunits">
+ <xsl:value-of select="../@otherunits"/>
+ </xsl:when>
+ <xsl:when test="../../@units">
+ <xsl:value-of select="../../@units"/>
+ </xsl:when>
+ <xsl:otherwise>calspair</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$units = 'calspair' or
+ $units = 'imagemap'">
+ <xsl:variable name="coords" select="normalize-space(@coords)"/>
+
+ <area shape="rect">
+ <xsl:variable name="linkends">
+ <xsl:choose>
+ <xsl:when test="@linkends">
+ <xsl:value-of select="normalize-space(@linkends)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space(../@linkends)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="href">
+ <xsl:choose>
+ <xsl:when test="@xlink:href">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="../@xlink:href"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$linkends != ''">
+ <xsl:variable name="linkend">
+ <xsl:choose>
+ <xsl:when test="contains($linkends, ' ')">
+ <xsl:value-of select="substring-before($linkends, ' ')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$linkends"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="target" select="key('id', $linkend)[1]"/>
+
+ <xsl:if test="$target">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$href != ''">
+ <xsl:attribute name="href">
+ <xsl:value-of select="$href"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="alt">
+ <xsl:attribute name="alt">
+ <xsl:value-of select="alt[1]"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:attribute name="coords">
+ <xsl:choose>
+ <xsl:when test="$units = 'calspair'">
+
+ <xsl:variable name="p1"
+ select="substring-before($coords, ' ')"/>
+ <xsl:variable name="p2"
+ select="substring-after($coords, ' ')"/>
+
+ <xsl:variable name="x1" select="substring-before($p1,',')"/>
+ <xsl:variable name="y1" select="substring-after($p1,',')"/>
+ <xsl:variable name="x2" select="substring-before($p2,',')"/>
+ <xsl:variable name="y2" select="substring-after($p2,',')"/>
+
+ <xsl:variable name="x1p" select="$x1 div 100.0"/>
+ <xsl:variable name="y1p" select="$y1 div 100.0"/>
+ <xsl:variable name="x2p" select="$x2 div 100.0"/>
+ <xsl:variable name="y2p" select="$y2 div 100.0"/>
+
+ <!--
+ <xsl:message>
+ <xsl:text>units: </xsl:text>
+ <xsl:value-of select="$units"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$x1p"/><xsl:text>, </xsl:text>
+ <xsl:value-of select="$y1p"/><xsl:text>, </xsl:text>
+ <xsl:value-of select="$x2p"/><xsl:text>, </xsl:text>
+ <xsl:value-of select="$y2p"/><xsl:text>, </xsl:text>
+ </xsl:message>
+
+ <xsl:message>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$intrinsicwidth"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$intrinsicdepth"/>
+ </xsl:message>
+
+ <xsl:message>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$units"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of
+ select="round($x1p * $intrinsicwidth div 100.0)"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="round($intrinsicdepth
+ - ($y2p * $intrinsicdepth div 100.0))"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="round($x2p *
+ $intrinsicwidth div 100.0)"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="round($intrinsicdepth
+ - ($y1p * $intrinsicdepth div 100.0))"/>
+ </xsl:message>
+ -->
+ <xsl:value-of
+ select="round($x1p * $intrinsicwidth div 100.0)"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="round($intrinsicdepth
+ - ($y2p * $intrinsicdepth div 100.0))"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of
+ select="round($x2p * $intrinsicwidth div 100.0)"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="round($intrinsicdepth
+ - ($y1p * $intrinsicdepth div 100.0))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$coords"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </area>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Warning: only calspair or </xsl:text>
+ <xsl:text>otherunits='imagemap' supported </xsl:text>
+ <xsl:text>in imageobjectco</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </map>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.image.attributes">
+ <xsl:param name="alt"/>
+ <xsl:param name="html.width"/>
+ <xsl:param name="html.depth"/>
+ <xsl:param name="longdesc"/>
+ <xsl:param name="scale"/>
+ <xsl:param name="scalefit"/>
+ <xsl:param name="scaled.contentdepth"/>
+ <xsl:param name="scaled.contentwidth"/>
+ <xsl:param name="viewport"/>
+
+ <xsl:choose>
+ <xsl:when test="@contentwidth or @contentdepth">
+ <!-- ignore @width/@depth, @scale, and @scalefit if specified -->
+ <xsl:if test="@contentwidth and $scaled.contentwidth != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$scaled.contentwidth"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@contentdepth and $scaled.contentdepth != ''">
+ <xsl:attribute name="height">
+ <xsl:value-of select="$scaled.contentdepth"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="number($scale) != 1.0">
+ <!-- scaling is always uniform, so we only have to specify one dimension -->
+ <!-- ignore @scalefit if specified -->
+ <xsl:attribute name="width">
+ <xsl:value-of select="$scaled.contentwidth"/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <xsl:when test="$scalefit != 0">
+ <xsl:choose>
+ <xsl:when test="contains($html.width, '%')">
+ <xsl:choose>
+ <xsl:when test="$viewport != 0">
+ <!-- The *viewport* will be scaled, so use 100% here! -->
+ <xsl:attribute name="width">
+ <xsl:value-of select="'100%'"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="width">
+ <xsl:value-of select="$html.width"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="contains($html.depth, '%')">
+ <!-- HTML doesn't deal with this case very well...do nothing -->
+ </xsl:when>
+
+ <xsl:when test="$scaled.contentwidth != '' and $html.width != ''
+ and $scaled.contentdepth != '' and $html.depth != ''">
+ <!-- scalefit should not be anamorphic; figure out which direction -->
+ <!-- has the limiting scale factor and scale in that direction -->
+ <xsl:choose>
+ <xsl:when test="$html.width div $scaled.contentwidth &gt;
+ $html.depth div $scaled.contentdepth">
+ <xsl:attribute name="height">
+ <xsl:value-of select="$html.depth"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="width">
+ <xsl:value-of select="$html.width"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$scaled.contentwidth != '' and $html.width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$html.width"/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''">
+ <xsl:attribute name="height">
+ <xsl:value-of select="$html.depth"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$alt != ''">
+ <xsl:attribute name="alt">
+ <xsl:value-of select="normalize-space($alt)"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$longdesc != ''">
+ <xsl:attribute name="longdesc">
+ <xsl:value-of select="$longdesc"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="@align and $viewport = 0">
+ <xsl:attribute name="align">
+ <xsl:choose>
+ <xsl:when test="@align = 'center'">middle</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@align"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+ <xsl:choose>
+ <xsl:when test="parent::inlineequation">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="process.image"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="process.image"/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="@fileref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="anchor"/>
+
+ <xsl:choose>
+ <xsl:when test="@format='linespecific'">
+ <xsl:choose>
+ <xsl:when test="$use.extensions != '0'
+ and $textinsert.extension != '0'">
+ <xsl:choose>
+ <xsl:when test="element-available('stext:insertfile')">
+ <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+ </xsl:when>
+ <xsl:when test="element-available('xtext:insertfile')">
+ <xtext:insertfile href="{$filename}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No insertfile extension available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+ href="{$filename}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process.image"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+
+ <xsl:variable name="olist" select="imageobject|imageobjectco
+ |videoobject|audioobject
+ |textobject"/>
+
+ <xsl:variable name="object.index">
+ <xsl:call-template name="select.mediaobject.index">
+ <xsl:with-param name="olist" select="$olist"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+ <xsl:variable name="align">
+ <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
+ </xsl:variable>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$align != '' ">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:apply-templates select="$object"/>
+ <xsl:apply-templates select="caption"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="select.mediaobject"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="programlisting/inlinemediaobject
+ |screen/inlinemediaobject" priority="2">
+ <!-- the additional span causes problems in some cases -->
+ <xsl:call-template name="select.mediaobject"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="imageobject"/>
+ <xsl:apply-templates select="calloutlist"/>
+</xsl:template>
+
+<xsl:template match="imageobject">
+ <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+ <xsl:variable name="filename">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <!-- Handle MathML and SVG markup in imagedata -->
+ <xsl:when test="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+ <xsl:apply-templates/>
+ </xsl:when>
+
+ <xsl:when test="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+ <xsl:apply-templates/>
+ </xsl:when>
+
+ <xsl:when test="@format='linespecific'">
+ <xsl:choose>
+ <xsl:when test="$use.extensions != '0'
+ and $textinsert.extension != '0'">
+ <xsl:choose>
+ <xsl:when test="element-available('stext:insertfile')">
+ <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+ </xsl:when>
+ <xsl:when test="element-available('xtext:insertfile')">
+ <xtext:insertfile href="{$filename}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No insertfile extension available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+ href="{$filename}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="longdesc.uri">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject"
+ select="ancestor::imageobject/parent::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="phrases"
+ select="ancestor::mediaobject/textobject[phrase]
+ |ancestor::inlinemediaobject/textobject[phrase]
+ |ancestor::mediaobjectco/textobject[phrase]"/>
+
+ <xsl:call-template name="process.image">
+ <xsl:with-param name="alt">
+ <xsl:apply-templates select="$phrases[not(@role) or @role!='tex'][1]"/>
+ </xsl:with-param>
+ <xsl:with-param name="longdesc">
+ <xsl:call-template name="write.longdesc">
+ <xsl:with-param name="mediaobject"
+ select="ancestor::imageobject/parent::*"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0
+ and ancestor::imageobject/parent::*/textobject[not(phrase)]">
+ <xsl:call-template name="longdesc.link">
+ <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="longdesc.uri">
+ <xsl:param name="mediaobject" select="."/>
+ <xsl:if test="$html.longdesc">
+ <xsl:if test="$mediaobject/textobject[not(phrase)]">
+ <xsl:variable name="dbhtml.dir">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:choose>
+ <xsl:when test="$dbhtml.dir != ''">
+ <xsl:value-of select="$dbhtml.dir"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$base.dir"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:choose>
+ <xsl:when test="
+ $mediaobject/@*[local-name() = 'id']
+ and not($use.id.as.filename = 0)">
+ <!-- * if this mediaobject has an ID, then we use the -->
+ <!-- * value of that ID as basename for the "longdesc" -->
+ <!-- * file (that is, without prepending an "ld-" too it) -->
+ <xsl:value-of select="$mediaobject/@*[local-name() = 'id']"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, if this mediaobject does not have an -->
+ <!-- * ID, then we generate an ID... -->
+ <xsl:variable name="image-id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$mediaobject"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- * ...and then we take that generated ID, prepend an -->
+ <!-- * "ld-" to it, and use that as the basename for the file -->
+ <xsl:value-of select="concat('ld-',$image-id,$html.ext)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select="$filename"/>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="write.longdesc">
+ <xsl:param name="mediaobject" select="."/>
+ <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+ <xsl:variable name="filename">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject" select="$mediaobject"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select="$filename"/>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="user.preroot"/>
+ <html>
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="title" select="'Long Description'"/>
+ </xsl:call-template>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:for-each select="$mediaobject/textobject[not(phrase)]">
+ <xsl:apply-templates select="./*"/>
+ </xsl:for-each>
+ </body>
+ </html>
+ <xsl:value-of select="$chunk.append"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="longdesc.link">
+ <xsl:param name="longdesc.uri" select="''"/>
+
+ <xsl:variable name="this.uri">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name">
+ <xsl:call-template name="href.target.uri"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="href.to">
+ <xsl:call-template name="trim.common.uri.paths">
+ <xsl:with-param name="uriA" select="$longdesc.uri"/>
+ <xsl:with-param name="uriB" select="$this.uri"/>
+ <xsl:with-param name="return" select="'A'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <div class="longdesc-link" align="right">
+ <br clear="all"/>
+ <span class="longdesc-link">
+ <xsl:text>[</xsl:text>
+ <a href="{$href.to}" target="longdesc">D</a>
+ <xsl:text>]</xsl:text>
+ </span>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+ <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+ <xsl:call-template name="process.image">
+ <xsl:with-param name="tag" select="'embed'"/>
+ <xsl:with-param name="alt">
+ <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+ <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+ <xsl:call-template name="process.image">
+ <xsl:with-param name="tag" select="'embed'"/>
+ <xsl:with-param name="alt">
+ <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="textdata">
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="@fileref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="encoding">
+ <xsl:choose>
+ <xsl:when test="@encoding">
+ <xsl:value-of select="@encoding"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$textdata.default.encoding"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$use.extensions != '0'
+ and $textinsert.extension != '0'">
+ <xsl:choose>
+ <xsl:when test="element-available('stext:insertfile')">
+ <stext:insertfile href="{$filename}" encoding="{$encoding}"/>
+ </xsl:when>
+ <xsl:when test="element-available('xtext:insertfile')">
+ <xtext:insertfile href="{$filename}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No insertfile extension available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+ href="{$filename}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
+ <xsl:attribute name="align"><xsl:value-of
+ select="@align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- "Support" for SVG -->
+
+<xsl:template match="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+
+<!-- The following works sometimes, but needs to take into account
+ 1. When there is no /*/@xml:base
+ 2. When the chunks are going somewhere else
+<xsl:variable name="relpath">
+ <xsl:call-template name="relative-uri">
+ <xsl:with-param name="filename" select="@fileref"/>
+ </xsl:call-template>
+</xsl:variable>
+
+<xsl:choose>
+ <xsl:when test="/*/@xml:base
+ and starts-with($relpath,/*/@xml:base)">
+ <xsl:value-of select="substring-after($relpath,/*/@xml:base)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@fileref"/>
+ </xsl:otherwise>
+</xsl:choose>
+<xsl:value-of select="@fileref"/>
+ </xsl:when>
+-->
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+ <!-- need a check for absolute urls -->
+ <xsl:choose>
+ <xsl:when test="contains(., ':')">
+ <!-- it has a uri scheme so it is an absolute uri -->
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:when test="$keep.relative.image.uris != 0">
+ <!-- leave it alone -->
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- its a relative uri that needs xml:base processing -->
+ <xsl:call-template name="relative-uri">
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/highlight.xsl b/docs/xsl-generic/html/highlight.xsl
new file mode 100644
index 00000000..30f2153e
--- /dev/null
+++ b/docs/xsl-generic/html/highlight.xsl
@@ -0,0 +1,54 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xslthl="http://xslthl.sf.net"
+ exclude-result-prefixes="xslthl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: highlight.xsl 7266 2007-08-22 11:58:42Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match='xslthl:keyword'>
+ <b class="hl-keyword"><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match='xslthl:string'>
+ <b class="hl-string"><i style="color:red"><xsl:apply-templates/></i></b>
+</xsl:template>
+
+<xsl:template match='xslthl:comment'>
+ <i class="hl-comment" style="color: silver"><xsl:apply-templates/></i>
+</xsl:template>
+
+<xsl:template match='xslthl:tag'>
+ <b class="hl-tag" style="color: blue"><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match='xslthl:attribute'>
+ <span class="hl-attribute" style="color: blue"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match='xslthl:value'>
+ <span class="hl-value" style="color: blue"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match='xslthl:html'>
+ <b><i style="color: red"><xsl:apply-templates/></i></b>
+</xsl:template>
+
+<xsl:template match='xslthl:xslt'>
+ <b style="color: blue"><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match='xslthl:section'>
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/html-rtf.xsl b/docs/xsl-generic/html/html-rtf.xsl
new file mode 100644
index 00000000..5855f64b
--- /dev/null
+++ b/docs/xsl-generic/html/html-rtf.xsl
@@ -0,0 +1,336 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:set="http://exslt.org/sets"
+ exclude-result-prefixes="exsl set"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: html-rtf.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This module contains templates that match against HTML nodes. It is used
+ to post-process result tree fragments for some sorts of cleanup.
+ These templates can only ever be fired by a processor that supports
+ exslt:node-set(). -->
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.p mode templates insert a particular RTF at the beginning
+ of the first paragraph in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.p">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:apply-templates mode="insert.html.p">
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.p">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="insert.html.p">
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml"
+ match="html:p|p" mode="insert.html.p">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:if test="not(preceding::p|preceding::html:p)">
+ <xsl:copy-of select="$mark"/>
+ </xsl:if>
+ <xsl:apply-templates mode="insert.html.p">
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.p">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.text mode templates insert a particular RTF at the beginning
+ of the first text-node in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.text">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:apply-templates mode="insert.html.text">
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.text">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="insert.html.text">
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.text">
+ <xsl:param name="mark" select="'?'"/>
+
+ <xsl:if test="not(preceding::text())">
+ <xsl:copy-of select="$mark"/>
+ </xsl:if>
+
+ <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="insert.html.text">
+ <xsl:param name="mark" select="'?'"/>
+ <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- unwrap.p mode templates remove blocks from HTML p elements (and
+ other places where blocks aren't allowed) -->
+
+<xsl:template name="unwrap.p">
+ <xsl:param name="p"/>
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')
+ and function-available('set:leading')
+ and function-available('set:trailing')">
+ <xsl:apply-templates select="exsl:node-set($p)" mode="unwrap.p"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$p"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml"
+ match="html:p|p" mode="unwrap.p">
+ <!-- xmlns:html is necessary for the xhtml stylesheet case -->
+ <xsl:variable name="blocks" xmlns:html="http://www.w3.org/1999/xhtml"
+ select="address|blockquote|div|hr|h1|h2|h3|h4|h5|h6
+ |layer|p|pre|table|dl|menu|ol|ul|form
+ |html:address|html:blockquote|html:div|html:hr
+ |html:h1|html:h2|html:h3|html:h4|html:h5|html:h6
+ |html:layer|html:p|html:pre|html:table|html:dl
+ |html:menu|html:ol|html:ul|html:form"/>
+ <xsl:choose>
+ <xsl:when test="$blocks">
+ <xsl:call-template name="unwrap.p.nodes">
+ <xsl:with-param name="wrap" select="."/>
+ <xsl:with-param name="first" select="1"/>
+ <xsl:with-param name="nodes" select="node()"/>
+ <xsl:with-param name="blocks" select="$blocks"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="unwrap.p"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="unwrap.p">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="unwrap.p"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="unwrap.p">
+ <xsl:copy/>
+</xsl:template>
+
+<xsl:template name="unwrap.p.nodes">
+ <xsl:param name="wrap" select="."/>
+ <xsl:param name="first" select="0"/>
+ <xsl:param name="nodes"/>
+ <xsl:param name="blocks"/>
+ <xsl:variable name="block" select="$blocks[1]"/>
+
+ <!-- This template should never get called if these functions aren't available -->
+ <!-- but this test is still necessary so that processors don't choke on the -->
+ <!-- function calls if they don't support the set: functions -->
+ <xsl:if test="function-available('set:leading')
+ and function-available('set:trailing')">
+ <xsl:choose>
+ <xsl:when test="$blocks">
+ <xsl:variable name="leading" select="set:leading($nodes,$block)"/>
+ <xsl:variable name="trailing" select="set:trailing($nodes,$block)"/>
+
+ <xsl:if test="(($wrap/@id or $wrap/@xml:id)
+ and $first = 1) or $leading">
+ <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
+ <xsl:for-each select="$wrap/@*">
+ <xsl:if test="$first != 0 or local-name(.) != 'id'">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates select="$leading" mode="unwrap.p"/>
+ </xsl:element>
+ </xsl:if>
+
+ <xsl:apply-templates select="$block" mode="unwrap.p"/>
+
+ <xsl:if test="$trailing">
+ <xsl:call-template name="unwrap.p.nodes">
+ <xsl:with-param name="wrap" select="$wrap"/>
+ <xsl:with-param name="nodes" select="$trailing"/>
+ <xsl:with-param name="blocks" select="$blocks[position() &gt; 1]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:if test="(($wrap/@id or $wrap/@xml:id) and $first = 1) or $nodes">
+ <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
+ <xsl:for-each select="$wrap/@*">
+ <xsl:if test="$first != 0 or local-name(.) != 'id'">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates select="$nodes" mode="unwrap.p"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- make.verbatim.mode replaces spaces and newlines -->
+
+<xsl:template match="/" mode="make.verbatim.mode">
+ <xsl:apply-templates mode="make.verbatim.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="make.verbatim.mode">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="make.verbatim.mode"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="make.verbatim.mode">
+ <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="text()" mode="make.verbatim.mode">
+ <xsl:variable name="text" select="translate(., ' ', '&#160;')"/>
+
+ <xsl:choose>
+ <xsl:when test="not(contains($text, '&#xA;'))">
+ <xsl:value-of select="$text"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="len" select="string-length($text)"/>
+
+ <xsl:choose>
+ <xsl:when test="$len = 1">
+ <br/><xsl:text>&#xA;</xsl:text>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="half" select="$len div 2"/>
+ <xsl:call-template name="make-verbatim-recursive">
+ <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+ </xsl:call-template>
+ <xsl:call-template name="make-verbatim-recursive">
+ <xsl:with-param name="text"
+ select="substring($text, ($half + 1), $len)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim-recursive">
+ <xsl:param name="text" select="''"/>
+
+ <xsl:choose>
+ <xsl:when test="not(contains($text, '&#xA;'))">
+ <xsl:value-of select="$text"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="len" select="string-length($text)"/>
+
+ <xsl:choose>
+ <xsl:when test="$len = 1">
+ <br/><xsl:text>&#xA;</xsl:text>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="half" select="$len div 2"/>
+ <xsl:call-template name="make-verbatim-recursive">
+ <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+ </xsl:call-template>
+ <xsl:call-template name="make-verbatim-recursive">
+ <xsl:with-param name="text"
+ select="substring($text, ($half + 1), $len)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- remove.empty.div mode templates remove empty blocks -->
+
+<xsl:template name="remove.empty.div">
+ <xsl:param name="div"/>
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')">
+ <xsl:apply-templates select="exsl:node-set($div)" mode="remove.empty.div"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$div"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml"
+ match="html:p|p|html:div|div" mode="remove.empty.div">
+ <xsl:if test="node()">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="remove.empty.div"/>
+ </xsl:copy>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="remove.empty.div">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="remove.empty.div"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="remove.empty.div">
+ <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/html.xsl b/docs/xsl-generic/html/html.xsl
new file mode 100644
index 00000000..79ce1555
--- /dev/null
+++ b/docs/xsl-generic/html/html.xsl
@@ -0,0 +1,241 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: html.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- The generate.html.title template is currently used for generating HTML -->
+<!-- "title" attributes for some inline elements only, but not for any -->
+<!-- block elements. It is called in eleven places in the inline.xsl -->
+<!-- file. But it's called by all the inline.* templates (e.g., -->
+<!-- inline.boldseq), which in turn are called by other (element) -->
+<!-- templates, so it results, currently, in supporting generation of the -->
+<!-- HTML "title" attribute for a total of about 92 elements. -->
+<!-- You can use mode="html.title.attribute" to get a title for -->
+<!-- an element specified by a param, including targets of cross references. -->
+<xsl:template name="generate.html.title">
+ <xsl:apply-templates select="." mode="html.title.attribute"/>
+</xsl:template>
+
+<!-- Generate a title attribute for the context node -->
+<xsl:template match="*" mode="html.title.attribute">
+ <xsl:variable name="is.title">
+ <xsl:call-template name="gentext.template.exists">
+ <xsl:with-param name="context" select="'title'"/>
+ <xsl:with-param name="name" select="local-name(.)"/>
+ <xsl:with-param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="is.title-numbered">
+ <xsl:call-template name="gentext.template.exists">
+ <xsl:with-param name="context" select="'title-numbered'"/>
+ <xsl:with-param name="name" select="local-name(.)"/>
+ <xsl:with-param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="is.title-unnumbered">
+ <xsl:call-template name="gentext.template.exists">
+ <xsl:with-param name="context" select="'title-unnumbered'"/>
+ <xsl:with-param name="name" select="local-name(.)"/>
+ <xsl:with-param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="gentext.title">
+ <xsl:if test="$is.title != 0 or
+ $is.title-numbered != 0 or
+ $is.title-unnumbered != 0">
+ <xsl:apply-templates select="."
+ mode="object.title.markup.textonly"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($gentext.title) != 0">
+ <xsl:attribute name="title">
+ <xsl:value-of select="$gentext.title"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- Fall back to alt if available -->
+ <xsl:when test="alt">
+ <xsl:attribute name="title">
+ <xsl:value-of select="normalize-space(alt)"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dir">
+ <xsl:param name="inherit" select="0"/>
+
+ <xsl:variable name="dir">
+ <xsl:choose>
+ <xsl:when test="@dir">
+ <xsl:value-of select="@dir"/>
+ </xsl:when>
+ <xsl:when test="$inherit != 0">
+ <xsl:value-of select="ancestor::*/@dir[1]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="$dir != ''">
+ <xsl:attribute name="dir">
+ <xsl:value-of select="$dir"/>
+ </xsl:attribute>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="anchor">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="conditional" select="1"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$conditional = 0 or $node/@id or $node/@xml:id">
+ <a name="{$id}"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="href.target.uri">
+ <xsl:param name="context" select="."/>
+ <xsl:param name="object" select="."/>
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target">
+ <xsl:param name="context" select="."/>
+ <xsl:param name="object" select="."/>
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target.with.base.dir">
+ <xsl:param name="context" select="."/>
+ <xsl:param name="object" select="."/>
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="context" select="$context"/>
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat">
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:call-template name="dingbat.characters">
+ <xsl:with-param name="dingbat" select="$dingbat"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+ <!-- now that I'm using the real serializer, all that dingbat malarky -->
+ <!-- isn't necessary anymore... -->
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:choose>
+ <xsl:when test="$dingbat='bullet'">&#x2022;</xsl:when>
+ <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+ <xsl:when test="$dingbat='trademark'">&#x2122;</xsl:when>
+ <xsl:when test="$dingbat='trade'">&#x2122;</xsl:when>
+ <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+ <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+ <xsl:when test="$dingbat='nbsp'">&#x00A0;</xsl:when>
+ <xsl:when test="$dingbat='ldquo'">&#x201C;</xsl:when>
+ <xsl:when test="$dingbat='rdquo'">&#x201D;</xsl:when>
+ <xsl:when test="$dingbat='lsquo'">&#x2018;</xsl:when>
+ <xsl:when test="$dingbat='rsquo'">&#x2019;</xsl:when>
+ <xsl:when test="$dingbat='em-dash'">&#x2014;</xsl:when>
+ <xsl:when test="$dingbat='mdash'">&#x2014;</xsl:when>
+ <xsl:when test="$dingbat='en-dash'">&#x2013;</xsl:when>
+ <xsl:when test="$dingbat='ndash'">&#x2013;</xsl:when>
+ <xsl:otherwise>
+ <xsl:text>&#x2022;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.warning">
+ <xsl:if test="$id.warnings != 0 and not(@id) and not(@xml:id) and parent::*">
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:value-of select="title[1]"/>
+ </xsl:when>
+ <xsl:when test="substring(local-name(*[1]),
+ string-length(local-name(*[1])-3) = 'info')
+ and *[1]/title">
+ <xsl:value-of select="*[1]/title[1]"/>
+ </xsl:when>
+ <xsl:when test="refmeta/refentrytitle">
+ <xsl:value-of select="refmeta/refentrytitle"/>
+ </xsl:when>
+ <xsl:when test="refnamediv/refname">
+ <xsl:value-of select="refnamediv/refname[1]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:message>
+ <xsl:text>ID recommended on </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:if test="$title != ''">
+ <xsl:text>: </xsl:text>
+ <xsl:choose>
+ <xsl:when test="string-length($title) &gt; 40">
+ <xsl:value-of select="substring($title,1,40)"/>
+ <xsl:text>...</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:message>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="class.attribute">
+ <xsl:param name="class" select="local-name(.)"/>
+ <!-- permit customization of class attributes -->
+ <!-- Use element name by default -->
+ <xsl:attribute name="class">
+ <xsl:apply-templates select="." mode="class.value">
+ <xsl:with-param name="class" select="$class"/>
+ </xsl:apply-templates>
+ </xsl:attribute>
+</xsl:template>
+
+<xsl:template match="*" mode="class.value">
+ <xsl:param name="class" select="local-name(.)"/>
+ <!-- permit customization of class value only -->
+ <!-- Use element name by default -->
+ <xsl:value-of select="$class"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/htmltbl.xsl b/docs/xsl-generic/html/htmltbl.xsl
new file mode 100644
index 00000000..5c7e3073
--- /dev/null
+++ b/docs/xsl-generic/html/htmltbl.xsl
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: htmltbl.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colgroup" mode="htmlTable">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="htmlTable"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="col" mode="htmlTable">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="caption" mode="htmlTable">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+
+ <xsl:apply-templates select=".." mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="thead|tbody|tgroup|tr" mode="htmlTable">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="htmlTable"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="th|td" mode="htmlTable">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/> <!-- *not* mode=htmlTable -->
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/index.xsl b/docs/xsl-generic/html/index.xsl
new file mode 100644
index 00000000..e8dfb93e
--- /dev/null
+++ b/docs/xsl-generic/html/index.xsl
@@ -0,0 +1,229 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: index.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. Unless generate.index -->
+ <!-- is non-zero, in which case, this is where the automatically -->
+ <!-- generated index should go. -->
+
+ <xsl:call-template name="id.warning"/>
+
+ <xsl:if test="count(*)>0 or $generate.index != '0'">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="index.titlepage"/>
+ <xsl:choose>
+ <xsl:when test="indexdiv">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*[not(self::indexentry)]"/>
+ <!-- Because it's actually valid for Index to have neither any -->
+ <!-- Indexdivs nor any Indexentries, we need to check and make -->
+ <!-- sure that at least one Indexentry exists, and generate a -->
+ <!-- wrapper dl if there is at least one; otherwise, do nothing. -->
+ <xsl:if test="indexentry">
+ <!-- The indexentry template assumes a parent dl wrapper has -->
+ <!-- been generated; for Indexes that have Indexdivs, the dl -->
+ <!-- wrapper is generated by the indexdiv template; however, -->
+ <!-- for Indexes that lack Indexdivs, if we don't generate a -->
+ <!-- dl here, HTML output will not be valid. -->
+ <dl>
+ <xsl:apply-templates select="indexentry"/>
+ </dl>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+ <xsl:call-template name="generate-index">
+ <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="not(parent::article)">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="setindex">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. Unless generate.index -->
+ <!-- is non-zero, in which case, this is where the automatically -->
+ <!-- generated index should go. -->
+
+ <xsl:call-template name="id.warning"/>
+
+ <xsl:if test="count(*)>0 or $generate.index != '0'">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="setindex.titlepage"/>
+ <xsl:apply-templates/>
+
+ <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+ <xsl:call-template name="generate-index">
+ <xsl:with-param name="scope" select="/"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="not(parent::article)">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/indexinfo"></xsl:template>
+<xsl:template match="index/info"></xsl:template>
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="*[not(self::indexentry)]"/>
+ <dl>
+ <xsl:apply-templates select="indexentry"/>
+ </dl>
+ </div>
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+ <h3>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+ <!-- this one must have a name, even if it doesn't have an ID -->
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <a class="indexterm" name="{$id}"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+ <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+ <xsl:choose>
+ <xsl:when test="following-sibling::secondaryie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::secondaryie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ <xsl:when test="following-sibling::seeie
+ |following-sibling::seealsoie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::seeie
+ |following-sibling::seealsoie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="secondaryie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+ <xsl:choose>
+ <xsl:when test="following-sibling::tertiaryie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::tertiaryie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ <xsl:when test="following-sibling::seeie
+ |following-sibling::seealsoie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::seeie
+ |following-sibling::seealsoie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tertiaryie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+ <xsl:if test="following-sibling::seeie
+ |following-sibling::seealsoie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::seeie
+ |following-sibling::seealsoie"/>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="seeie|seealsoie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/info.xsl b/docs/xsl-generic/html/info.xsl
new file mode 100644
index 00000000..61ade512
--- /dev/null
+++ b/docs/xsl-generic/html/info.xsl
@@ -0,0 +1,43 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: info.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+ elements. Even if you don't process the *info wrappers,
+ some of these elements are needed because the elements are
+ processed from named templates that are called with modes.
+ Since modes aren't sticky, these rules apply.
+ (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/inline.xsl b/docs/xsl-generic/html/inline.xsl
new file mode 100644
index 00000000..a3e10ded
--- /dev/null
+++ b/docs/xsl-generic/html/inline.xsl
@@ -0,0 +1,1439 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY comment.block.parents "parent::answer|parent::appendix|parent::article|parent::bibliodiv|parent::bibliography|parent::blockquote|parent::caution|parent::chapter|parent::glossary|parent::glossdiv|parent::important|parent::index|parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|parent::partintro|parent::preface|parent::procedure|parent::qandadiv|parent::qandaset|parent::question|parent::refentry|parent::refnamediv|parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|parent::sect5|parent::section|parent::setindex|parent::sidebar|parent::simplesect|parent::taskprerequisites|parent::taskrelated|parent::tasksummary|parent::warning">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xlink='http://www.w3.org/1999/xlink'
+ xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks"
+ exclude-result-prefixes="xlink suwl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: inline.xsl 7232 2007-08-11 16:10:40Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+<xsl:template name="simple.xlink">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="content">
+ <xsl:apply-templates/>
+ </xsl:param>
+ <xsl:param name="a.target"/>
+ <xsl:param name="linkend" select="$node/@linkend"/>
+ <xsl:param name="xhref" select="$node/@xlink:href"/>
+
+ <xsl:variable name="link">
+ <xsl:choose>
+ <xsl:when test="$xhref and
+ (not($node/@xlink:type) or
+ $node/@xlink:type='simple')">
+
+ <!-- Is it a local idref or a uri? -->
+ <xsl:variable name="is.idref">
+ <xsl:choose>
+ <!-- if the href starts with # and does not contain an "(" -->
+ <!-- or if the href starts with #xpointer(id(, it's just an ID -->
+ <xsl:when test="starts-with($xhref,'#')
+ and (not(contains($xhref,'&#40;'))
+ or starts-with($xhref,
+ '#xpointer&#40;id&#40;'))">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Is it an olink ? -->
+ <xsl:variable name="is.olink">
+ <xsl:choose>
+ <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
+ <!-- and if the href contains # -->
+ <xsl:when test="contains($xhref,'#') and
+ @xlink:role = $xolink.role">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$is.idref = 1">
+
+ <xsl:variable name="idref">
+ <xsl:call-template name="xpointer.idref">
+ <xsl:with-param name="xpointer" select="$xhref"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="targets" select="key('id',$idref)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="$idref"/>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="count($target) = 0">
+ <xsl:message>
+ <xsl:text>XLink to nonexistent id: </xsl:text>
+ <xsl:value-of select="$idref"/>
+ </xsl:message>
+ <xsl:copy-of select="$content"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$node/@xlink:title">
+ <xsl:attribute name="title">
+ <xsl:value-of select="$node/@xlink:title"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$target"
+ mode="html.title.attribute"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$a.target">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$a.target"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:copy-of select="$content"/>
+
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$is.olink = 1">
+ <xsl:call-template name="olink">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- otherwise it's a URI -->
+ <xsl:otherwise>
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:value-of select="$xhref"/>
+ </xsl:attribute>
+ <xsl:if test="$node/@xlink:title">
+ <xsl:attribute name="title">
+ <xsl:value-of select="$node/@xlink:title"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$linkend">
+ <xsl:variable name="targets" select="key('id',$linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="$linkend"/>
+ </xsl:call-template>
+
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:apply-templates select="$target" mode="html.title.attribute"/>
+
+ <xsl:copy-of select="$content"/>
+
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('suwl:unwrapLinks')">
+ <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$link"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.charseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <!-- * if you want output from the inline.charseq template wrapped in -->
+ <!-- * something other than a Span, call the template with some value -->
+ <!-- * for the 'wrapper-name' param -->
+ <xsl:param name="wrapper-name">span</xsl:param>
+ <xsl:element name="{$wrapper-name}">
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:attribute>
+ <xsl:call-template name="dir"/>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir"/>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </code>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+
+ <!-- don't put <strong> inside figure, example, or table titles -->
+ <xsl:choose>
+ <xsl:when test="local-name(..) = 'title'
+ and (local-name(../..) = 'figure'
+ or local-name(../..) = 'example'
+ or local-name(../..) = 'table')">
+ <xsl:copy-of select="$content"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <strong>
+ <xsl:copy-of select="$content"/>
+ </strong>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="apply-annotations"/>
+ </span>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <em>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </em>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <!-- don't put <strong> inside figure, example, or table titles -->
+ <!-- or other titles that may already be represented with <strong>'s. -->
+ <xsl:choose>
+ <xsl:when test="local-name(..) = 'title'
+ and (local-name(../..) = 'figure'
+ or local-name(../..) = 'example'
+ or local-name(../..) = 'table'
+ or local-name(../..) = 'formalpara')">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </code>
+ </xsl:when>
+ <xsl:otherwise>
+ <strong>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <code>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+ <xsl:copy-of select="$content"/>
+ </code>
+ <xsl:call-template name="apply-annotations"/>
+ </strong>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <em>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <code>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </code>
+ </em>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <sup>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <sub>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="dir"/>
+ <xsl:copy-of select="$content"/>
+ <xsl:call-template name="apply-annotations"/>
+ </sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="editor">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="date">
+ <!-- should this support locale-specific formatting? how? -->
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortext">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+ <xsl:choose>
+ <xsl:when test="$function.parens != '0'
+ and (parameter or function or replaceable)">
+ <xsl:variable name="nodes" select="text()|*"/>
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates select="$nodes[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="$nodes[position()>1]"/>
+ <xsl:text>)</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.monoseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+ <xsl:call-template name="inline.italicmonoseq"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+ <xsl:call-template name="inline.italicmonoseq"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="code">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="package">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+ <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+ <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+ <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+ <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+ <xsl:call-template name="inline.charseq">
+ <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acronym">
+ <xsl:call-template name="inline.charseq">
+ <xsl:with-param name="wrapper-name">acronym</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+ <xsl:choose>
+ <xsl:when test="$citerefentry.link != '0'">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="generate.citerefentry.link"/>
+ </xsl:attribute>
+ <xsl:call-template name="inline.charseq"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.charseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.citerefentry.link">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template name="x.generate.citerefentry.link">
+ <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
+ <xsl:value-of select="refentrytitle"/>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="manvolnum"/>
+ <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citetitle">
+ <xsl:choose>
+ <xsl:when test="@pubwork = 'article'">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="emphasis">
+ <span>
+ <xsl:choose>
+ <xsl:when test="@role and $emphasis.propagates.style != 0">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:choose>
+ <xsl:when test="@role = 'bold' or @role='strong'">
+ <!-- backwards compatibility: make bold into b elements, but -->
+ <!-- don't put bold inside figure, example, or table titles -->
+ <xsl:choose>
+ <xsl:when test="local-name(..) = 'title'
+ and (local-name(../..) = 'figure'
+ or local-name(../..) = 'example'
+ or local-name(../..) = 'table')">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <strong><xsl:apply-templates/></strong>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@role and $emphasis.propagates.style != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <em><xsl:apply-templates/></em>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </span>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@lang or @xml:lang">
+ <xsl:call-template name="language.attribute"/>
+ </xsl:if>
+ <xsl:call-template name="inline.italicseq"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="markup">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+ <span>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:if test="@lang or @xml:lang">
+ <xsl:call-template name="language.attribute"/>
+ </xsl:if>
+ <xsl:if test="@role and $phrase.propagates.style != 0">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:call-template name="dir"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="quote">
+ <xsl:variable name="depth">
+ <xsl:call-template name="dot.count">
+ <xsl:with-param name="string">
+ <xsl:number level="multiple"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$depth mod 2 = 0">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.nestedstartquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.nestedendquote"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+ <em>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="inline.charseq"/>
+ </em>
+</xsl:template>
+
+<xsl:template match="superscript">
+ <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+ <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:choose>
+ <xsl:when test="@class = 'copyright'
+ or @class = 'registered'">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat" select="@class"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="@class = 'service'">
+ <sup>SM</sup>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat" select="'trademark'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="firstterm">
+ <xsl:call-template name="glossterm">
+ <xsl:with-param name="firstterm" select="1"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="glossterm" name="glossterm">
+ <xsl:param name="firstterm" select="0"/>
+
+ <!-- To avoid extra <a name=""> anchor from inline.italicseq -->
+ <xsl:variable name="content">
+ <xsl:apply-templates/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="$target">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@id or @xml:id">
+ <xsl:attribute name="name">
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:call-template name="inline.italicseq">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.italicseq">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not(@linkend)
+ and ($firstterm.only.link = 0 or $firstterm = 1)
+ and ($glossterm.auto.link != 0)
+ and $glossary.collection != ''">
+ <xsl:variable name="term">
+ <xsl:choose>
+ <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="cterm"
+ select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
+
+ <!-- HACK HACK HACK! But it works... -->
+ <!-- You'd need to do more work if you wanted to chunk on glossdiv, though -->
+
+ <xsl:variable name="glossary" select="//glossary[@role='auto']"/>
+
+ <xsl:if test="count($glossary) != 1">
+ <xsl:message>
+ <xsl:text>Warning: glossary.collection specified, but there are </xsl:text>
+ <xsl:value-of select="count($glossary)"/>
+ <xsl:text> automatic glossaries</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="glosschunk">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$glossary"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="chunkbase">
+ <xsl:choose>
+ <xsl:when test="contains($glosschunk, '#')">
+ <xsl:value-of select="substring-before($glosschunk, '#')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$glosschunk"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="not($cterm)">
+ <xsl:message>
+ <xsl:text>There's no entry for </xsl:text>
+ <xsl:value-of select="$term"/>
+ <xsl:text> in </xsl:text>
+ <xsl:value-of select="$glossary.collection"/>
+ </xsl:message>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$cterm"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <a href="{$chunkbase}#{$id}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="inline.italicseq">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not(@linkend)
+ and ($firstterm.only.link = 0 or $firstterm = 1)
+ and $glossterm.auto.link != 0">
+ <xsl:variable name="term">
+ <xsl:choose>
+ <xsl:when test="@baseform">
+ <xsl:value-of select="normalize-space(@baseform)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="targets"
+ select="//glossentry[normalize-space(glossterm)=$term
+ or normalize-space(glossterm/@baseform)=$term]"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="count($targets)=0">
+ <xsl:message>
+ <xsl:text>Error: no glossentry for glossterm: </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@id or @xml:id">
+ <xsl:attribute name="name">
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:call-template name="inline.italicseq">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="termdef">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'termdef'"/>
+ <xsl:with-param name="name" select="'prefix'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ <xsl:call-template name="gentext.template">
+ <xsl:with-param name="context" select="'termdef'"/>
+ <xsl:with-param name="name" select="'suffix'"/>
+ </xsl:call-template>
+ </span>
+</xsl:template>
+
+<xsl:template match="sgmltag|tag">
+ <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+ <xsl:param name="class">
+ <xsl:choose>
+ <xsl:when test="@class">
+ <xsl:value-of select="@class"/>
+ </xsl:when>
+ <xsl:otherwise>element</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:variable name="content">
+ <xsl:choose>
+ <xsl:when test="$class='attribute'">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="$class='attvalue'">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="$class='element'">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="$class='endtag'">
+ <xsl:text>&lt;/</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='genentity'">
+ <xsl:text>&amp;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='numcharref'">
+ <xsl:text>&amp;#</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='paramentity'">
+ <xsl:text>%</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='pi'">
+ <xsl:text>&lt;?</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='xmlpi'">
+ <xsl:text>&lt;?</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>?&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='starttag'">
+ <xsl:text>&lt;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='emptytag'">
+ <xsl:text>&lt;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>/&gt;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$class='sgmlcomment' or $class='comment'">
+ <xsl:text>&lt;!--</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>--&gt;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="concat('sgmltag-', $class)"/>
+ </xsl:apply-templates>
+ <xsl:call-template name="generate.html.title"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </code>
+</xsl:template>
+
+<xsl:template match="email">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:if test="not($email.delimiters.enabled = 0)">
+ <xsl:text>&lt;</xsl:text>
+ </xsl:if>
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:text>mailto:</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ <xsl:if test="not($email.delimiters.enabled = 0)">
+ <xsl:text>&gt;</xsl:text>
+ </xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+ <xsl:variable name="action" select="@action"/>
+ <xsl:variable name="joinchar">
+ <xsl:choose>
+ <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+ <xsl:when test="$action='simul'">+</xsl:when>
+ <xsl:when test="$action='press'">-</xsl:when>
+ <xsl:when test="$action='click'">-</xsl:when>
+ <xsl:when test="$action='double-click'">-</xsl:when>
+ <xsl:when test="$action='other'"></xsl:when>
+ <xsl:otherwise>+</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:for-each select="*">
+ <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="uri">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+ <xsl:variable name="shortcut" select="./shortcut"/>
+ <xsl:call-template name="process.menuchoice"/>
+ <xsl:if test="$shortcut">
+ <xsl:text> (</xsl:text>
+ <xsl:apply-templates select="$shortcut"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+ <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($nodelist)"></xsl:when>
+ <xsl:when test="$count=1">
+ <xsl:apply-templates select="$nodelist[$count=position()]"/>
+ <xsl:call-template name="process.menuchoice">
+ <xsl:with-param name="nodelist" select="$nodelist"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+ <xsl:choose>
+ <xsl:when test="local-name($node)='guimenuitem'
+ or local-name($node)='guisubmenu'">
+ <xsl:value-of select="$menuchoice.menu.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$menuchoice.separator"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="$node"/>
+ <xsl:call-template name="process.menuchoice">
+ <xsl:with-param name="nodelist" select="$nodelist"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+ <!-- todo: integrate with bibliography collection -->
+ <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:choose>
+ <!-- try automatic linking based on match to abbrev -->
+ <xsl:when test="$target and not(xref) and not(link)">
+
+ <xsl:text>[</xsl:text>
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$bibliography.numbered != 0">
+ <xsl:apply-templates select="$target" mode="citation"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.charseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </a>
+ <xsl:text>]</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>[</xsl:text>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:text>]</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="citation">
+ <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+ level="any" format="1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment[&comment.block.parents;]|remark[&comment.block.parents;]">
+ <xsl:if test="$show.comments != 0">
+ <p class="remark"><i><xsl:call-template name="inline.charseq"/></i></p>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment|remark">
+ <xsl:if test="$show.comments != 0">
+ <em><xsl:call-template name="inline.charseq"/></em>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:if test="@class">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat" select="@class"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="person">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates select="personname"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="personname">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="org">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="affiliation">
+ <xsl:param name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="apply-annotations"/>
+ </xsl:param>
+
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$content"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="beginpage">
+ <!-- does nothing; this *is not* markup to force a page break. -->
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/keywords.xsl b/docs/xsl-generic/html/keywords.xsl
new file mode 100644
index 00000000..c12e39fc
--- /dev/null
+++ b/docs/xsl-generic/html/keywords.xsl
@@ -0,0 +1,35 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: keywords.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+ <meta name="keywords">
+ <xsl:attribute name="content">
+ <xsl:apply-templates select="keyword" mode="html.header"/>
+ </xsl:attribute>
+ </meta>
+</xsl:template>
+
+<xsl:template match="keyword" mode="html.header">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::keyword">, </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/lists.xsl b/docs/xsl-generic/html/lists.xsl
new file mode 100644
index 00000000..2ada156c
--- /dev/null
+++ b/docs/xsl-generic/html/lists.xsl
@@ -0,0 +1,1103 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: lists.xsl 6963 2007-07-07 08:15:38Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="title">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+
+ <!-- Preserve order of PIs and comments -->
+ <xsl:apply-templates
+ select="*[not(self::listitem
+ or self::title
+ or self::titleabbrev)]
+ |comment()[not(preceding-sibling::listitem)]
+ |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+ <ul>
+ <xsl:if test="$css.decoration != 0">
+ <xsl:attribute name="type">
+ <xsl:call-template name="list.itemsymbol"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="@spacing='compact'">
+ <xsl:attribute name="compact">
+ <xsl:value-of select="@spacing"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates
+ select="listitem
+ |comment()[preceding-sibling::listitem]
+ |processing-instruction()[preceding-sibling::listitem]"/>
+ </ul>
+ </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+ <xsl:variable name="mark" select="../@mark"/>
+ <xsl:variable name="override" select="@override"/>
+
+ <xsl:variable name="usemark">
+ <xsl:choose>
+ <xsl:when test="$override != ''">
+ <xsl:value-of select="$override"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$mark"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="cssmark">
+ <xsl:choose>
+ <xsl:when test="$usemark = 'opencircle'">circle</xsl:when>
+ <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+ <xsl:when test="$usemark = 'box'">square</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$usemark"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <li>
+ <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+ <xsl:attribute name="style">
+ <xsl:text>list-style-type: </xsl:text>
+ <xsl:value-of select="$cssmark"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <!-- we can't just drop the anchor in since some browsers (Opera)
+ get confused about line breaks if we do. So if the first child
+ is a para, assume the para will put in the anchor. Otherwise,
+ put the anchor in anyway. -->
+ <xsl:if test="local-name(child::*[1]) != 'para'">
+ <xsl:call-template name="anchor"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+ <div class="{@revisionflag}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+ <xsl:variable name="start">
+ <xsl:call-template name="orderedlist-starting-number"/>
+ </xsl:variable>
+
+ <xsl:variable name="numeration">
+ <xsl:call-template name="list.numeration"/>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$numeration='arabic'">1</xsl:when>
+ <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+ <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+ <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+ <xsl:when test="$numeration='upperroman'">I</xsl:when>
+ <!-- What!? This should never happen -->
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected numeration: </xsl:text>
+ <xsl:value-of select="$numeration"/>
+ </xsl:message>
+ <xsl:value-of select="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:if test="title">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+
+ <!-- Preserve order of PIs and comments -->
+ <xsl:apply-templates
+ select="*[not(self::listitem
+ or self::title
+ or self::titleabbrev)]
+ |comment()[not(preceding-sibling::listitem)]
+ |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+ <ol>
+ <xsl:if test="$start != '1'">
+ <xsl:attribute name="start">
+ <xsl:value-of select="$start"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$numeration != ''">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@spacing='compact'">
+ <xsl:attribute name="compact">
+ <xsl:value-of select="@spacing"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates
+ select="listitem
+ |comment()[preceding-sibling::listitem]
+ |processing-instruction()[preceding-sibling::listitem]"/>
+ </ol>
+ </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+ <li>
+ <xsl:if test="@override">
+ <xsl:attribute name="value">
+ <xsl:value-of select="@override"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <!-- we can't just drop the anchor in since some browsers (Opera)
+ get confused about line breaks if we do. So if the first child
+ is a para, assume the para will put in the anchor. Otherwise,
+ put the anchor in anyway. -->
+ <xsl:if test="local-name(child::*[1]) != 'para'">
+ <xsl:call-template name="anchor"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+ <div class="{@revisionflag}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+</xsl:template>
+
+<xsl:template match="variablelist">
+ <xsl:variable name="pi-presentation">
+ <xsl:call-template name="pi.dbhtml_list-presentation"/>
+ </xsl:variable>
+
+ <xsl:variable name="presentation">
+ <xsl:choose>
+ <xsl:when test="$pi-presentation != ''">
+ <xsl:value-of select="$pi-presentation"/>
+ </xsl:when>
+ <xsl:when test="$variablelist.as.table != 0">
+ <xsl:value-of select="'table'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'list'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="list-width">
+ <xsl:call-template name="pi.dbhtml_list-width"/>
+ </xsl:variable>
+
+ <xsl:variable name="term-width">
+ <xsl:call-template name="pi.dbhtml_term-width"/>
+ </xsl:variable>
+
+ <xsl:variable name="table-summary">
+ <xsl:call-template name="pi.dbhtml_table-summary"/>
+ </xsl:variable>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="title">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$presentation = 'table'">
+ <!-- Preserve order of PIs and comments -->
+ <xsl:apply-templates
+ select="*[not(self::varlistentry
+ or self::title
+ or self::titleabbrev)]
+ |comment()[not(preceding-sibling::varlistentry)]
+ |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+ <table border="0">
+ <xsl:if test="$list-width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$list-width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$table-summary != ''">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="$table-summary"/>
+ </xsl:attribute>
+ </xsl:if>
+ <col align="left" valign="top">
+ <xsl:if test="$term-width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$term-width"/>
+ </xsl:attribute>
+ </xsl:if>
+ </col>
+ <tbody>
+ <xsl:apply-templates mode="varlist-table"
+ select="varlistentry
+ |comment()[preceding-sibling::varlistentry]
+ |processing-instruction()[preceding-sibling::varlistentry]"/>
+ </tbody>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Preserve order of PIs and comments -->
+ <xsl:apply-templates
+ select="*[not(self::varlistentry
+ or self::title
+ or self::titleabbrev)]
+ |comment()[not(preceding-sibling::varlistentry)]
+ |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+ <dl>
+ <xsl:apply-templates
+ select="varlistentry
+ |comment()[preceding-sibling::varlistentry]
+ |processing-instruction()[preceding-sibling::varlistentry]"/>
+ </dl>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/titleabbrev|orderedlist/titleabbrev">
+ <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/titleabbrev">
+ <!--nop-->
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+ <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="listitem/simpara" priority="2">
+ <!-- If a listitem contains only a single simpara, don't output
+ the <p> wrapper; this has the effect of creating an li
+ with simple text content. -->
+ <xsl:choose>
+ <xsl:when test="not(preceding-sibling::*)
+ and not (following-sibling::*)">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p>
+ <xsl:if test="@role and $para.propagates.style != 0">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+ <dt>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="term"/>
+ </dt>
+ <dd>
+ <xsl:apply-templates select="listitem"/>
+ </dd>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="varlist-table">
+ <xsl:variable name="presentation">
+ <xsl:call-template name="pi.dbhtml_term-presentation">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="separator">
+ <xsl:call-template name="pi.dbhtml_term-separator">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <tr>
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="rownum">
+ <xsl:number from="variablelist" count="varlistentry"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <td>
+ <p>
+ <xsl:call-template name="anchor"/>
+ <xsl:choose>
+ <xsl:when test="$presentation = 'bold'">
+ <b>
+ <xsl:apply-templates select="term"/>
+ <xsl:value-of select="$separator"/>
+ </b>
+ </xsl:when>
+ <xsl:when test="$presentation = 'italic'">
+ <i>
+ <xsl:apply-templates select="term"/>
+ <xsl:value-of select="$separator"/>
+ </i>
+ </xsl:when>
+ <xsl:when test="$presentation = 'bold-italic'">
+ <b>
+ <i>
+ <xsl:apply-templates select="term"/>
+ <xsl:value-of select="$separator"/>
+ </i>
+ </b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="term"/>
+ <xsl:value-of select="$separator"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+ </td>
+ <td>
+ <xsl:apply-templates select="listitem"/>
+ </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+ <span class="term">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <!-- * if we have multiple terms in the same varlistentry, generate -->
+ <!-- * a separator (", " by default) and/or an additional line -->
+ <!-- * break after each one except the last -->
+ <xsl:value-of select="$variablelist.term.separator"/>
+ <xsl:if test="not($variablelist.term.break.after = '0')">
+ <br/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+ <!-- we can't just drop the anchor in since some browsers (Opera)
+ get confused about line breaks if we do. So if the first child
+ is a para, assume the para will put in the anchor. Otherwise,
+ put the anchor in anyway. -->
+ <xsl:if test="local-name(child::*[1]) != 'para'">
+ <xsl:call-template name="anchor"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+ <div class="{@revisionflag}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+ <!-- with no type specified, the default is 'vert' -->
+ <xsl:call-template name="anchor"/>
+ <table class="simplelist" border="0" summary="Simple list">
+ <xsl:call-template name="simplelist.vert">
+ <xsl:with-param name="cols">
+ <xsl:choose>
+ <xsl:when test="@columns">
+ <xsl:value-of select="@columns"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <!-- if dbchoice PI exists, use that to determine the choice separator -->
+ <!-- (that is, equivalent of "and" or "or" in current locale), or literal -->
+ <!-- value of "choice" otherwise -->
+ <xsl:variable name="localized-choice-separator">
+ <xsl:choose>
+ <xsl:when test="processing-instruction('dbchoice')">
+ <xsl:call-template name="select.choice.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- empty -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:for-each select="member">
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <xsl:text>, </xsl:text>
+ <xsl:if test="position() = last() - 1">
+ <xsl:if test="$localized-choice-separator != ''">
+ <xsl:value-of select="$localized-choice-separator"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </span>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+ <xsl:call-template name="anchor"/>
+ <table class="simplelist" border="0" summary="Simple list">
+ <xsl:call-template name="simplelist.horiz">
+ <xsl:with-param name="cols">
+ <xsl:choose>
+ <xsl:when test="@columns">
+ <xsl:value-of select="@columns"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='vert']">
+ <xsl:call-template name="anchor"/>
+ <table class="simplelist" border="0" summary="Simple list">
+ <xsl:call-template name="simplelist.vert">
+ <xsl:with-param name="cols">
+ <xsl:choose>
+ <xsl:when test="@columns">
+ <xsl:value-of select="@columns"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+
+ <xsl:if test="$cell &lt;= count($members)">
+ <tr>
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="row" select="$members[1]"/>
+ <xsl:with-param name="rownum" select="(($cell - 1) div $cols) + 1"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="simplelist.horiz.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell"/>
+ <xsl:with-param name="members" select="$members"/>
+ </xsl:call-template>
+ </tr>
+ <xsl:call-template name="simplelist.horiz">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell + $cols"/>
+ <xsl:with-param name="members" select="$members"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+ <xsl:param name="curcol">1</xsl:param>
+
+ <xsl:if test="$curcol &lt;= $cols">
+ <td>
+ <xsl:choose>
+ <xsl:when test="$members[position()=$cell]">
+ <xsl:apply-templates select="$members[position()=$cell]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <xsl:call-template name="simplelist.horiz.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell+1"/>
+ <xsl:with-param name="members" select="$members"/>
+ <xsl:with-param name="curcol" select="$curcol+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+ <xsl:param name="rows"
+ select="floor((count($members)+$cols - 1) div $cols)"/>
+
+ <xsl:if test="$cell &lt;= $rows">
+ <tr>
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="row" select="$members[1]"/>
+ <xsl:with-param name="rownum" select="$cell"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="simplelist.vert.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ <xsl:with-param name="cell" select="$cell"/>
+ <xsl:with-param name="members" select="$members"/>
+ </xsl:call-template>
+ </tr>
+ <xsl:call-template name="simplelist.vert">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell+1"/>
+ <xsl:with-param name="members" select="$members"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="rows">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+ <xsl:param name="curcol">1</xsl:param>
+
+ <xsl:if test="$curcol &lt;= $cols">
+ <td>
+ <xsl:choose>
+ <xsl:when test="$members[position()=$cell]">
+ <xsl:apply-templates select="$members[position()=$cell]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <xsl:call-template name="simplelist.vert.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ <xsl:with-param name="cell" select="$cell+$rows"/>
+ <xsl:with-param name="members" select="$members"/>
+ <xsl:with-param name="curcol" select="$curcol+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Preserve order of PIs and comments -->
+ <xsl:variable name="preamble"
+ select="*[not(self::step
+ or self::title
+ or self::titleabbrev)]
+ |comment()[not(preceding-sibling::step)]
+ |processing-instruction()[not(preceding-sibling::step)]"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional">
+ <xsl:choose>
+ <xsl:when test="title">0</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="title and $placement = 'before'">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="$preamble"/>
+
+ <xsl:choose>
+ <xsl:when test="count(step) = 1">
+ <ul>
+ <xsl:apply-templates
+ select="step
+ |comment()[preceding-sibling::step]
+ |processing-instruction()[preceding-sibling::step]"/>
+ </ul>
+ </xsl:when>
+ <xsl:otherwise>
+ <ol>
+ <xsl:attribute name="type">
+ <xsl:value-of select="substring($procedure.step.numeration.formats,1,1)"/>
+ </xsl:attribute>
+ <xsl:apply-templates
+ select="step
+ |comment()[preceding-sibling::step]
+ |processing-instruction()[preceding-sibling::step]"/>
+ </ol>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="title and $placement != 'before'">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="substeps">
+ <xsl:variable name="numeration">
+ <xsl:call-template name="procedure.step.numeration"/>
+ </xsl:variable>
+
+ <xsl:call-template name="anchor"/>
+
+ <ol type="{$numeration}">
+ <xsl:apply-templates/>
+ </ol>
+</xsl:template>
+
+<xsl:template match="step">
+ <li>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </li>
+</xsl:template>
+
+<xsl:template match="stepalternatives">
+ <xsl:call-template name="anchor"/>
+ <ul>
+ <xsl:apply-templates/>
+ </ul>
+</xsl:template>
+
+<xsl:template match="step/title">
+ <p class="title">
+ <b>
+ <xsl:apply-templates/>
+ </b>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+ <xsl:variable name="presentation">
+ <xsl:call-template name="pi.dbhtml_list-presentation"/>
+ </xsl:variable>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:choose>
+ <xsl:when test="$presentation = 'table'">
+ <xsl:apply-templates select="." mode="seglist-table"/>
+ </xsl:when>
+ <xsl:when test="$presentation = 'list'">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="$segmentedlist.as.table != 0">
+ <xsl:apply-templates select="." mode="seglist-table"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+ <div class="title">
+ <strong><span class="title"><xsl:apply-templates/></span></strong>
+ </div>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+ <div class="seglistitem">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="seg">
+ <xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/>
+ <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+ <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+ <!--
+ Note: segtitle is only going to be the right thing in a well formed
+ SegmentedList. If there are too many Segs or too few SegTitles,
+ you'll get something odd...maybe an error
+ -->
+
+ <div class="seg">
+ <strong>
+ <span class="segtitle">
+ <xsl:apply-templates select="$segtitles[$segnum=position()]"
+ mode="segtitle-in-seg"/>
+ <xsl:text>: </xsl:text>
+ </span>
+ </strong>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist" mode="seglist-table">
+ <xsl:variable name="table-summary">
+ <xsl:call-template name="pi.dbhtml_table-summary"/>
+ </xsl:variable>
+
+ <xsl:variable name="list-width">
+ <xsl:call-template name="pi.dbhtml_list-width"/>
+ </xsl:variable>
+
+ <xsl:apply-templates select="title"/>
+
+ <table border="0">
+ <xsl:if test="$list-width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$list-width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$table-summary != ''">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="$table-summary"/>
+ </xsl:attribute>
+ </xsl:if>
+ <thead>
+ <tr class="segtitle">
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="row" select="segtitle[1]"/>
+ <xsl:with-param name="rownum" select="1"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="segtitle" mode="seglist-table"/>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:apply-templates select="seglistitem" mode="seglist-table"/>
+ </tbody>
+ </table>
+</xsl:template>
+
+<xsl:template match="segtitle" mode="seglist-table">
+ <th><xsl:apply-templates/></th>
+</xsl:template>
+
+<xsl:template match="seglistitem" mode="seglist-table">
+ <xsl:variable name="seglinum">
+ <xsl:number from="segmentedlist" count="seglistitem"/>
+ </xsl:variable>
+
+ <tr class="seglistitem">
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="rownum" select="$seglinum + 1"/>
+ </xsl:call-template>
+ <xsl:apply-templates mode="seglist-table"/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="seg" mode="seglist-table">
+ <td class="seg"><xsl:apply-templates/></td>
+</xsl:template>
+
+<xsl:template match="seg[1]" mode="seglist-table">
+ <td class="seg">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="ancestor::seglistitem"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="title|info/title">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+
+ <!-- Preserve order of PIs and comments -->
+ <xsl:apply-templates
+ select="*[not(self::callout or self::title or self::titleabbrev)]
+ |comment()[not(preceding-sibling::callout)]
+ |processing-instruction()[not(preceding-sibling::callout)]"/>
+
+ <xsl:choose>
+ <xsl:when test="$callout.list.table != 0">
+ <table border="0" summary="Callout list">
+ <xsl:apply-templates select="callout
+ |comment()[preceding-sibling::callout]
+ |processing-instruction()[preceding-sibling::callout]"/>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <dl compact="compact">
+ <xsl:apply-templates select="callout
+ |comment()[preceding-sibling::callout]
+ |processing-instruction()[preceding-sibling::callout]"/>
+ </dl>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="callout">
+ <xsl:choose>
+ <xsl:when test="$callout.list.table != 0">
+ <tr>
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="rownum">
+ <xsl:number from="calloutlist" count="callout"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <td width="5%" valign="top" align="left">
+ <p>
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="callout.arearefs">
+ <xsl:with-param name="arearefs" select="@arearefs"/>
+ </xsl:call-template>
+ </p>
+ </td>
+ <td valign="top" align="left">
+ <xsl:apply-templates/>
+ </td>
+ </tr>
+ </xsl:when>
+ <xsl:otherwise>
+ <dt>
+ <xsl:call-template name="anchor"/>
+ <xsl:call-template name="callout.arearefs">
+ <xsl:with-param name="arearefs" select="@arearefs"/>
+ </xsl:call-template>
+ </dt>
+ <dd><xsl:apply-templates/></dd>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="callout/simpara" priority="2">
+ <!-- If a callout contains only a single simpara, don't output
+ the <p> wrapper; this has the effect of creating an li
+ with simple text content. -->
+ <xsl:choose>
+ <xsl:when test="not(preceding-sibling::*)
+ and not (following-sibling::*)">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p>
+ <xsl:if test="@role and $para.propagates.style != 0">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+ <xsl:param name="arearefs"></xsl:param>
+ <xsl:if test="$arearefs!=''">
+ <xsl:choose>
+ <xsl:when test="substring-before($arearefs,' ')=''">
+ <xsl:call-template name="callout.arearef">
+ <xsl:with-param name="arearef" select="$arearefs"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="callout.arearef">
+ <xsl:with-param name="arearef"
+ select="substring-before($arearefs,' ')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="callout.arearefs">
+ <xsl:with-param name="arearefs"
+ select="substring-after($arearefs,' ')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+ <xsl:param name="arearef"></xsl:param>
+ <xsl:variable name="targets" select="key('id',$arearef)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="$arearef"/>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="count($target)=0">
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($target)='co'">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:value-of select="$arearef"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target" mode="callout-bug"/>
+ </a>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($target)='areaset'">
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="$target" mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($target)='area'">
+ <xsl:choose>
+ <xsl:when test="$target/parent::areaset">
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="$target/parent::areaset"
+ mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="$target" mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="orderedlist-starting-number">
+ <xsl:param name="list" select="."/>
+ <xsl:variable name="pi-start">
+ <xsl:call-template name="pi.dbhtml_start">
+ <xsl:with-param name="node" select="$list"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="output-orderedlist-starting-number">
+ <xsl:with-param name="list" select="$list"/>
+ <xsl:with-param name="pi-start" select="$pi-start"/>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/maketoc.xsl b/docs/xsl-generic/html/maketoc.xsl
new file mode 100644
index 00000000..1ba3931e
--- /dev/null
+++ b/docs/xsl-generic/html/maketoc.xsl
@@ -0,0 +1,86 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+ $Id: maketoc.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk.xsl"/>
+
+<xsl:output method="xml" indent="no" encoding='utf-8'/>
+
+<xsl:param name="toc.list.type" select="'tocentry'"/>
+
+<!-- refentry in autotoc.xsl does not use subtoc, so must
+ handle it explicitly here. -->
+<xsl:template match="refentry" mode="toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="subtoc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ </xsl:call-template>
+</xsl:template>
+
+
+<xsl:template name="subtoc">
+ <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+ <xsl:variable name="filename">
+ <xsl:apply-templates select="." mode="chunk-filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="chunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:if test="$chunk != 0">
+ <xsl:call-template name="indent-spaces"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <tocentry linkend="{$id}">
+ <xsl:processing-instruction name="dbhtml">
+ <xsl:text>filename="</xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text>"</xsl:text>
+ </xsl:processing-instruction>
+ <xsl:text>&#xA;</xsl:text>
+ <xsl:apply-templates mode="toc" select="$nodes"/>
+ <xsl:call-template name="indent-spaces"/>
+ </tocentry>
+ <xsl:text>&#xA;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="indent-spaces">
+ <xsl:param name="node" select="."/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="$node/parent::*">
+ <xsl:call-template name="indent-spaces">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/" priority="-1">
+ <xsl:text>&#xA;</xsl:text>
+ <toc role="chunk-toc">
+ <xsl:text>&#xA;</xsl:text>
+ <xsl:apply-templates select="/" mode="toc"/>
+ </toc>
+ <xsl:text>&#xA;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/manifest.xsl b/docs/xsl-generic/html/manifest.xsl
new file mode 100644
index 00000000..01faaccf
--- /dev/null
+++ b/docs/xsl-generic/html/manifest.xsl
@@ -0,0 +1,22 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+ $Id: manifest.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- OBSOLETE. The templates from this file were moved to -->
+<!-- chunk-common.xsl and chunk-code.xsl. -->
+<!-- ==================================================================== -->
+
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/math.xsl b/docs/xsl-generic/html/math.xsl
new file mode 100644
index 00000000..5bb4377c
--- /dev/null
+++ b/docs/xsl-generic/html/math.xsl
@@ -0,0 +1,270 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ exclude-result-prefixes="mml"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: math.xsl 6961 2007-07-07 02:05:56Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+<xsl:template match="mathphrase">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<!-- "Support" for MathML -->
+
+<xsl:template match="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<!-- Support for TeX math in alt -->
+
+<xsl:template match="*" mode="collect.tex.math">
+ <xsl:call-template name="write.text.chunk">
+ <xsl:with-param name="filename" select="$tex.math.file"/>
+ <xsl:with-param name="method" select="'text'"/>
+ <xsl:with-param name="content">
+ <xsl:choose>
+ <xsl:when test="$tex.math.in.alt = 'plain'">
+ <xsl:call-template name="tex.math.plain.head"/>
+ <xsl:apply-templates select="." mode="collect.tex.math.plain"/>
+ <xsl:call-template name="tex.math.plain.tail"/>
+ </xsl:when>
+ <xsl:when test="$tex.math.in.alt = 'latex'">
+ <xsl:call-template name="tex.math.latex.head"/>
+ <xsl:apply-templates select="." mode="collect.tex.math.latex"/>
+ <xsl:call-template name="tex.math.latex.tail"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ Unsupported TeX math notation:
+ <xsl:value-of select="$tex.math.in.alt"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- PlainTeX -->
+
+<xsl:template name="tex.math.plain.head">
+ <xsl:text>\nopagenumbers &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.plain.tail">
+ <xsl:text>\bye &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.plain">
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="graphic">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="graphic"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject.filename">
+ <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="output.delims">
+ <xsl:call-template name="tex.math.output.delims"/>
+ </xsl:variable>
+ <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+ <xsl:if test="$tex">
+ <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text>} &#xA;</xsl:text>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$tex"/>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$ &#xA;</xsl:text>
+ </xsl:if>
+ <xsl:text>\vfill\eject &#xA;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.plain">
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="graphic">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="graphic"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject.filename">
+ <xsl:with-param name="olist" select="mediaobject/*"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="output.delims">
+ <xsl:call-template name="tex.math.output.delims"/>
+ </xsl:variable>
+ <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+ <xsl:if test="$tex">
+ <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text>} &#xA;</xsl:text>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$$</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$tex"/>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$$ &#xA;</xsl:text>
+ </xsl:if>
+ <xsl:text>\vfill\eject &#xA;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.plain"/>
+
+<!-- LaTeX -->
+
+<xsl:template name="tex.math.latex.head">
+ <xsl:text>\documentclass{article} &#xA;</xsl:text>
+ <xsl:text>\pagestyle{empty} &#xA;</xsl:text>
+ <xsl:text>\begin{document} &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.latex.tail">
+ <xsl:text>\end{document} &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.latex">
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="graphic">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="graphic"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject.filename">
+ <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="output.delims">
+ <xsl:call-template name="tex.math.output.delims"/>
+ </xsl:variable>
+ <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+ <xsl:if test="$tex">
+ <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text>} &#xA;</xsl:text>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$tex"/>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$ &#xA;</xsl:text>
+ </xsl:if>
+ <xsl:text>\newpage &#xA;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.latex">
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="graphic">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="graphic"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject.filename">
+ <xsl:with-param name="olist" select="mediaobject/*"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="output.delims">
+ <xsl:call-template name="tex.math.output.delims"/>
+ </xsl:variable>
+ <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+ <xsl:if test="$tex">
+ <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text>} &#xA;</xsl:text>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$$</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$tex"/>
+ <xsl:if test="$output.delims != 0">
+ <xsl:text>$$ &#xA;</xsl:text>
+ </xsl:if>
+ <xsl:text>\newpage &#xA;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.latex"/>
+
+<!-- Extracting image filename from mediaobject and graphic elements -->
+
+<xsl:template name="select.mediaobject.filename">
+ <xsl:param name="olist"
+ select="imageobject|imageobjectco
+ |videoobject|audioobject|textobject"/>
+
+ <xsl:variable name="mediaobject.index">
+ <xsl:call-template name="select.mediaobject.index">
+ <xsl:with-param name="olist" select="$olist"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$mediaobject.index != ''">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object"
+ select="$olist[position() = $mediaobject.index]"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="tex.math.output.delims">
+ <xsl:variable name="pi.delims">
+ <xsl:call-template name="pi.dbtex_delims">
+ <xsl:with-param name="node" select="descendant-or-self::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="result">
+ <xsl:choose>
+ <xsl:when test="$pi.delims = 'no'">0</xsl:when>
+ <xsl:when test="$pi.delims = '' and $tex.math.delims = 0">0</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$result"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/oldchunker.xsl b/docs/xsl-generic/html/oldchunker.xsl
new file mode 100644
index 00000000..fe6b17c3
--- /dev/null
+++ b/docs/xsl-generic/html/oldchunker.xsl
@@ -0,0 +1,202 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.1"
+ exclude-result-prefixes="doc"
+ extension-element-prefixes="saxon redirect lxslt">
+
+<!-- ********************************************************************
+ $Id: oldchunker.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type='string'/>
+
+<doc:param name="default.encoding" xmlns="">
+<refpurpose>Encoding used in generated HTML pages</refpurpose>
+<refdescription>
+<para>This encoding is used in files generated by chunking stylesheet. Currently
+only Saxon is able to change output encoding.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type='string'/>
+
+<doc:param name="saxon.character.representation" xmlns="">
+<refpurpose>Saxon character representation used in generated HTML pages</refpurpose>
+<refdescription>
+<para>This character representation is used in files generated by chunking stylesheet. If
+you want to suppress entity references for characters with direct representation
+in default.encoding, set this parameter to value <literal>native</literal>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+ <xsl:param name="base.dir" select="'./'"/>
+ <xsl:param name="base.name" select="''"/>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON')">
+ <!-- Saxon doesn't make the chunks relative -->
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:when test="contains($vendor, 'Apache')">
+ <!-- Xalan doesn't make the chunks relative -->
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>Chunking isn't supported with </xsl:text>
+ <xsl:value-of select="$vendor"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="method" select="'html'"/>
+ <xsl:param name="encoding" select="$default.encoding"/>
+ <xsl:param name="indent" select="'no'"/>
+ <xsl:param name="content" select="''"/>
+
+ <xsl:message>
+ <xsl:text>Writing </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:if test="name(.) != ''">
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:if test="@id">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:message>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6.2')">
+ <!-- Saxon 6.2.x uses xsl:document -->
+ <xsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ saxon:character-representation="{$saxon.character.representation}">
+ <xsl:copy-of select="$content"/>
+ </xsl:document>
+ </xsl:when>
+ <xsl:when test="contains($vendor, 'SAXON')">
+ <!-- Saxon uses saxon:output -->
+ <saxon:output file="{$filename}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ saxon:character-representation="{$saxon.character.representation}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:when test="contains($vendor, 'Apache')">
+ <!-- Xalan uses redirect -->
+ <redirect:write file="{$filename}">
+ <xsl:copy-of select="$content"/>
+ </redirect:write>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- it doesn't matter since we won't be making chunks... -->
+ <xsl:message terminate="yes">
+ <xsl:text>Can't make chunks with </xsl:text>
+ <xsl:value-of select="$vendor"/>
+ <xsl:text>'s processor.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="method" select="'html'"/>
+ <xsl:param name="encoding" select="$default.encoding"/>
+ <xsl:param name="indent" select="'no'"/>
+ <xsl:param name="doctype-public" select="''"/>
+ <xsl:param name="doctype-system" select="''"/>
+ <xsl:param name="content" select="''"/>
+
+ <xsl:message>
+ <xsl:text>Writing </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:if test="name(.) != ''">
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:if>
+ </xsl:message>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6.2')">
+ <!-- Saxon 6.2.x uses xsl:document -->
+ <xsl:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ doctype-public="{$doctype-public}"
+ doctype-system="{$doctype-system}"
+ saxon:character-representation="{$saxon.character.representation}">
+ <xsl:copy-of select="$content"/>
+ </xsl:document>
+ </xsl:when>
+ <xsl:when test="contains($vendor, 'SAXON')">
+ <!-- Saxon uses saxon:output -->
+ <saxon:output file="{$filename}"
+ href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}"
+ indent="{$indent}"
+ doctype-public="{$doctype-public}"
+ doctype-system="{$doctype-system}"
+ saxon:character-representation="{$saxon.character.representation}">
+ <xsl:copy-of select="$content"/>
+ </saxon:output>
+ </xsl:when>
+ <xsl:when test="contains($vendor, 'Apache')">
+ <!-- Xalan uses redirect -->
+ <redirect:write file="{$filename}">
+ <xsl:copy-of select="$content"/>
+ </redirect:write>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- it doesn't matter since we won't be making chunks... -->
+ <xsl:message terminate="yes">
+ <xsl:text>Can't make chunks with </xsl:text>
+ <xsl:value-of select="$vendor"/>
+ <xsl:text>'s processor.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/onechunk.xsl b/docs/xsl-generic/html/onechunk.xsl
new file mode 100644
index 00000000..527dccfd
--- /dev/null
+++ b/docs/xsl-generic/html/onechunk.xsl
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+ $Id: onechunk.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+ <xsl:param name="object" select="."/>
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/param.xsl b/docs/xsl-generic/html/param.xsl
new file mode 100644
index 00000000..389068fc
--- /dev/null
+++ b/docs/xsl-generic/html/param.xsl
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+ $Id: param.xweb 7098 2007-07-20 14:59:23Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="admon.graphics.extension">.png</xsl:param>
+<xsl:param name="admon.graphics" select="0"/>
+<xsl:param name="admon.graphics.path">images/</xsl:param>
+<xsl:param name="admon.style">
+ <xsl:text>margin-left: 0.5in; margin-right: 0.5in;</xsl:text>
+</xsl:param>
+<xsl:param name="admon.textlabel" select="1"/>
+<xsl:param name="annotate.toc" select="1"/>
+<xsl:param name="annotation.css">
+/* ======================================================================
+ Annotations
+*/
+
+div.annotation-list { visibility: hidden;
+ }
+
+div.annotation-nocss { position: absolute;
+ visibility: hidden;
+ }
+
+div.annotation-popup { position: absolute;
+ z-index: 4;
+ visibility: hidden;
+ padding: 0px;
+ margin: 2px;
+ border-style: solid;
+ border-width: 1px;
+ width: 200px;
+ background-color: white;
+ }
+
+div.annotation-title { padding: 1px;
+ font-weight: bold;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: white;
+ background-color: black;
+ }
+
+div.annotation-body { padding: 2px;
+ }
+
+div.annotation-body p { margin-top: 0px;
+ padding-top: 0px;
+ }
+
+div.annotation-close { position: absolute;
+ top: 2px;
+ right: 2px;
+ }
+</xsl:param>
+
+<xsl:param name="annotation.js">
+<xsl:text>http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js</xsl:text></xsl:param>
+
+<xsl:param name="annotation.graphic.open">http://docbook.sourceforge.net/release/images/annot-open.png</xsl:param>
+<xsl:param name="annotation.graphic.close">
+http://docbook.sourceforge.net/release/images/annot-close.png</xsl:param>
+<xsl:param name="annotation.support" select="0"/>
+<xsl:param name="appendix.autolabel">A</xsl:param>
+<xsl:param name="author.othername.in.middle" select="1"/>
+<xsl:param name="autotoc.label.separator">. </xsl:param>
+<xsl:param name="autotoc.label.in.hyperlink" select="1"/>
+<xsl:param name="base.dir"/>
+<xsl:param name="biblioentry.item.separator">. </xsl:param>
+<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param>
+
+<xsl:param name="bibliography.numbered" select="0"/>
+<xsl:param name="bibliography.style">normal</xsl:param>
+<xsl:param name="blurb.on.titlepage.enabled" select="0"/>
+<xsl:param name="bridgehead.in.toc" select="0"/>
+<xsl:param name="callout.defaultcolumn">60</xsl:param>
+<xsl:param name="callout.graphics.extension">.png</xsl:param>
+
+<xsl:param name="callout.graphics" select="1"/>
+<xsl:param name="callout.graphics.number.limit">15</xsl:param>
+
+<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
+<xsl:param name="callout.list.table" select="1"/>
+<xsl:param name="callout.unicode" select="0"/>
+<xsl:param name="callout.unicode.number.limit">10</xsl:param>
+<xsl:param name="callout.unicode.start.character">10102</xsl:param>
+<xsl:param name="callouts.extension" select="1"/>
+<xsl:param name="chapter.autolabel" select="1"/>
+<xsl:param name="chunk.append"/>
+<xsl:param name="chunk.first.sections" select="0"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="chunk.section.depth" select="1"/>
+<xsl:param name="chunk.toc"/>
+<xsl:param name="chunk.tocs.and.lots" select="0"/>
+<xsl:param name="chunk.tocs.and.lots.has.title" select="1"/>
+<xsl:param name="chunk.separate.lots" select="0"/>
+<xsl:param name="citerefentry.link" select="0"/>
+<xsl:param name="collect.xref.targets">no</xsl:param>
+<xsl:param name="component.label.includes.part.label" select="0"/>
+<xsl:param name="contrib.inline.enabled">1</xsl:param>
+<xsl:param name="css.decoration" select="1"/>
+<xsl:param name="current.docid"/>
+<xsl:param name="default.float.class">
+ <xsl:choose>
+ <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when>
+ <xsl:otherwise>before</xsl:otherwise>
+ </xsl:choose>
+</xsl:param>
+<xsl:param name="default.image.width"/>
+<xsl:param name="default.table.width"/>
+<xsl:param name="default.table.frame">all</xsl:param>
+<xsl:param name="draft.mode">maybe</xsl:param>
+<xsl:param name="draft.watermark.image">http://docbook.sourceforge.net/release/images/draft.png</xsl:param>
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+<xsl:param name="ebnf.table.border" select="1"/>
+<xsl:param name="ebnf.assignment">
+<code>::=</code>
+</xsl:param>
+
+<xsl:param name="ebnf.statement.terminator"/>
+
+<xsl:param name="eclipse.autolabel" select="0"/>
+<xsl:param name="eclipse.plugin.name">DocBook Online Help Sample</xsl:param>
+<xsl:param name="eclipse.plugin.id">com.example.help</xsl:param>
+<xsl:param name="eclipse.plugin.provider">Example provider</xsl:param>
+<xsl:param name="editedby.enabled">1</xsl:param>
+<xsl:param name="email.delimiters.enabled" select="1"/>
+<xsl:param name="emphasis.propagates.style" select="1"/>
+<xsl:param name="entry.propagates.style" select="1"/>
+<xsl:param name="firstterm.only.link" select="0"/>
+<xsl:param name="footer.rule" select="1"/>
+<xsl:param name="footnote.number.format">1</xsl:param>
+<xsl:param name="footnote.number.symbols"/>
+<xsl:param name="formal.procedures" select="1"/>
+<xsl:param name="formal.title.placement">
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+</xsl:param>
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+<xsl:param name="funcsynopsis.style">kr</xsl:param>
+<xsl:param name="funcsynopsis.tabular.threshold">40</xsl:param>
+<xsl:param name="function.parens" select="0"/>
+<xsl:param name="generate.id.attributes" select="0"/>
+<xsl:param name="generate.index" select="1"/>
+<xsl:param name="generate.legalnotice.link" select="0"/>
+<xsl:param name="generate.revhistory.link" select="0"/>
+<xsl:param name="generate.manifest" select="0"/>
+<xsl:param name="generate.meta.abstract" select="1"/>
+<xsl:param name="generate.section.toc.level" select="0"/>
+<xsl:param name="generate.toc">
+appendix toc,title
+article/appendix nop
+article toc,title
+book toc,title,figure,table,example,equation
+chapter toc,title
+part toc,title
+preface toc,title
+qandadiv toc
+qandaset toc
+reference toc,title
+sect1 toc
+sect2 toc
+sect3 toc
+sect4 toc
+sect5 toc
+section toc
+set toc,title
+</xsl:param>
+
+<xsl:param name="glossary.collection"/>
+<xsl:param name="glossary.sort" select="0"/>
+<xsl:param name="glossentry.show.acronym">no</xsl:param>
+<xsl:param name="glossterm.auto.link" select="0"/>
+<xsl:param name="graphic.default.extension"/>
+<xsl:param name="graphicsize.extension" select="1"/>
+<xsl:param name="graphicsize.use.img.src.path" select="0"/>
+<xsl:param name="header.rule" select="1"/>
+<xsl:param name="highlight.default.language"/>
+<xsl:param name="highlight.source" select="0"/>
+<xsl:param name="html.append"/>
+<xsl:param name="html.base"/>
+<xsl:param name="html.cellpadding"/>
+<xsl:param name="html.cellspacing"/>
+<xsl:param name="html.cleanup" select="1"/>
+<xsl:param name="html.ext">.html</xsl:param>
+<xsl:param name="html.extra.head.links" select="0"/>
+<xsl:param name="html.head.legalnotice.link.types">copyright</xsl:param>
+<xsl:param name="html.head.legalnotice.link.multiple" select="1"/>
+<xsl:param name="html.longdesc" select="1"/>
+<xsl:param name="html.longdesc.link" select="$html.longdesc"/>
+<xsl:param name="html.stylesheet"/>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="htmlhelp.alias.file">alias.h</xsl:param>
+<xsl:param name="htmlhelp.autolabel" select="0"/>
+<xsl:param name="htmlhelp.button.back" select="1"/>
+<xsl:param name="htmlhelp.button.forward" select="0"/>
+<xsl:param name="htmlhelp.button.hideshow" select="1"/>
+<xsl:param name="htmlhelp.button.home" select="0"/>
+<xsl:param name="htmlhelp.button.home.url"/>
+<xsl:param name="htmlhelp.button.jump1" select="0"/>
+<xsl:param name="htmlhelp.button.jump1.title">User1</xsl:param>
+<xsl:param name="htmlhelp.button.jump1.url"/>
+<xsl:param name="htmlhelp.button.jump2" select="0"/>
+<xsl:param name="htmlhelp.button.jump2.title">User2</xsl:param>
+<xsl:param name="htmlhelp.button.jump2.url"/>
+<xsl:param name="htmlhelp.button.locate" select="0"/>
+<xsl:param name="htmlhelp.button.next" select="1"/>
+<xsl:param name="htmlhelp.button.options" select="1"/>
+<xsl:param name="htmlhelp.button.prev" select="1"/>
+<xsl:param name="htmlhelp.button.print" select="1"/>
+<xsl:param name="htmlhelp.button.refresh" select="0"/>
+<xsl:param name="htmlhelp.button.stop" select="0"/>
+<xsl:param name="htmlhelp.button.zoom" select="0"/>
+<xsl:param name="htmlhelp.chm">htmlhelp.chm</xsl:param>
+<xsl:param name="htmlhelp.default.topic"/>
+<xsl:param name="htmlhelp.display.progress" select="1"/>
+<xsl:param name="htmlhelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="htmlhelp.enhanced.decompilation" select="0"/>
+<xsl:param name="htmlhelp.enumerate.images" select="0"/>
+<xsl:param name="htmlhelp.force.map.and.alias" select="0"/>
+<xsl:param name="htmlhelp.hhc.binary" select="1"/>
+<xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"/>
+<xsl:param name="htmlhelp.hhc">toc.hhc</xsl:param>
+<xsl:param name="htmlhelp.hhc.section.depth">5</xsl:param>
+<xsl:param name="htmlhelp.hhc.show.root" select="1"/>
+<xsl:param name="htmlhelp.hhc.width"/>
+<xsl:param name="htmlhelp.hhk">index.hhk</xsl:param>
+<xsl:param name="htmlhelp.hhp">htmlhelp.hhp</xsl:param>
+<xsl:param name="htmlhelp.hhp.tail"/>
+<xsl:param name="htmlhelp.hhp.window">Main</xsl:param>
+<xsl:param name="htmlhelp.hhp.windows"/>
+<xsl:param name="htmlhelp.map.file">context.h</xsl:param>
+<xsl:param name="htmlhelp.only" select="0"/>
+<xsl:param name="htmlhelp.remember.window.position" select="0"/>
+<xsl:param name="htmlhelp.show.advanced.search" select="0"/>
+<xsl:param name="htmlhelp.show.favorities" select="0"/>
+<xsl:param name="htmlhelp.show.menu" select="0"/>
+<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
+<xsl:param name="htmlhelp.title"/>
+<xsl:param name="htmlhelp.use.hhk" select="0"/>
+<xsl:param name="htmlhelp.window.geometry"/>
+<xsl:param name="img.src.path"/>
+<xsl:param name="id.warnings" select="0"/>
+<xsl:param name="index.method">basic</xsl:param>
+<xsl:param name="index.on.role" select="0"/>
+<xsl:param name="index.on.type" select="0"/>
+<xsl:param name="index.number.separator"/>
+<xsl:param name="index.term.separator"/>
+<xsl:param name="index.range.separator"/>
+<xsl:param name="index.prefer.titleabbrev" select="0"/>
+<xsl:param name="ignore.image.scaling" select="0"/>
+<xsl:param name="inherit.keywords" select="1"/>
+<xsl:param name="insert.xref.page.number">no</xsl:param>
+<xsl:param name="javahelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="keep.relative.image.uris" select="1"/>
+
+<xsl:param name="l10n.gentext.default.language">en</xsl:param>
+<xsl:param name="l10n.gentext.language"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="0"/>
+<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/>
+<xsl:param name="label.from.part" select="0"/>
+<xsl:param name="linenumbering.everyNth">5</xsl:param>
+<xsl:param name="linenumbering.extension" select="1"/>
+<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="linenumbering.width">3</xsl:param>
+<xsl:param name="link.mailto.url"/>
+<xsl:param name="make.graphic.viewport" select="1"/>
+<xsl:param name="make.single.year.ranges" select="0"/>
+<xsl:param name="make.valid.html" select="0"/>
+<xsl:param name="make.year.ranges" select="0"/>
+ <xsl:param name="manifest">HTML.manifest</xsl:param>
+
+<xsl:param name="manifest.in.base.dir" select="0"/>
+<xsl:param name="manual.toc"/>
+<xsl:param name="menuchoice.menu.separator"> &#8594; </xsl:param>
+<xsl:param name="menuchoice.separator">+</xsl:param>
+<xsl:param name="navig.graphics.extension">.gif</xsl:param>
+<xsl:param name="navig.graphics" select="0"/>
+<xsl:param name="navig.graphics.path">images/</xsl:param>
+<xsl:param name="navig.showtitles">1</xsl:param>
+<xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"/>
+<xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"/>
+<xsl:param name="nominal.table.width">6in</xsl:param>
+<xsl:param name="olink.base.uri"/>
+<xsl:param name="olink.debug" select="0"/>
+<xsl:attribute-set name="olink.properties">
+ <xsl:attribute name="show-destination">replace</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="insert.olink.page.number">no</xsl:param>
+<xsl:param name="insert.olink.pdf.frag" select="0"/>
+<xsl:param name="prefer.internal.olink" select="0"/>
+<xsl:param name="olink.lang.fallback.sequence"/>
+<xsl:param name="olink.doctitle">no</xsl:param>
+<xsl:param name="olink.fragid">fragid=</xsl:param>
+<xsl:param name="olink.outline.ext">.olink</xsl:param>
+<xsl:param name="olink.pubid">pubid</xsl:param>
+ <xsl:param name="olink.resolver">/cgi-bin/olink</xsl:param>
+<xsl:param name="olink.sysid">sysid</xsl:param>
+<xsl:param name="abstract.notitle.enabled" select="0"/>
+<xsl:param name="othercredit.like.author.enabled">0</xsl:param>
+<xsl:param name="para.propagates.style" select="1"/>
+<xsl:param name="part.autolabel">I</xsl:param>
+<xsl:param name="phrase.propagates.style" select="1"/>
+<xsl:param name="pixels.per.inch">90</xsl:param>
+<xsl:param name="points.per.em">10</xsl:param>
+<xsl:param name="preface.autolabel" select="0"/>
+<xsl:param name="preferred.mediaobject.role"/>
+<xsl:param name="process.empty.source.toc" select="0"/>
+<xsl:param name="process.source.toc" select="0"/>
+<xsl:param name="profile.arch"/>
+<xsl:param name="profile.audience"/>
+<xsl:param name="profile.attribute"/>
+<xsl:param name="profile.condition"/>
+<xsl:param name="profile.conformance"/>
+<xsl:param name="profile.lang"/>
+<xsl:param name="profile.os"/>
+<xsl:param name="profile.revision"/>
+<xsl:param name="profile.revisionflag"/>
+<xsl:param name="profile.role"/>
+<xsl:param name="profile.security"/>
+<xsl:param name="profile.separator">;</xsl:param>
+<xsl:param name="profile.status"/>
+<xsl:param name="profile.userlevel"/>
+<xsl:param name="profile.value"/>
+<xsl:param name="profile.vendor"/>
+<xsl:param name="profile.wordsize"/>
+<xsl:param name="punct.honorific">.</xsl:param>
+<xsl:param name="qanda.defaultlabel">number</xsl:param>
+<xsl:param name="qanda.inherit.numeration" select="1"/>
+<xsl:param name="qanda.in.toc" select="0"/>
+<xsl:param name="qanda.nested.in.toc" select="0"/>
+<xsl:param name="qandadiv.autolabel" select="1"/>
+<xsl:param name="refentry.generate.name" select="1"/>
+<xsl:param name="refentry.generate.title" select="0"/>
+<xsl:param name="refentry.separator" select="1"/>
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+ <xsl:param name="reference.autolabel">I</xsl:param>
+<xsl:param name="refclass.suppress" select="0"/>
+<xsl:param name="root.filename">index</xsl:param>
+<xsl:param name="rootid"/>
+<xsl:param name="runinhead.default.title.end.punct">.</xsl:param>
+<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param>
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="section.autolabel.max.depth">8</xsl:param>
+<xsl:param name="section.label.includes.component.label" select="0"/>
+<xsl:param name="segmentedlist.as.table" select="0"/>
+<xsl:param name="shade.verbatim" select="0"/>
+<xsl:attribute-set name="shade.verbatim.style">
+ <xsl:attribute name="border">0</xsl:attribute>
+ <xsl:attribute name="bgcolor">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="show.comments" select="1"/>
+<xsl:param name="show.revisionflag" select="0"/>
+<xsl:param name="simplesect.in.toc" select="0"/>
+<xsl:param name="spacing.paras" select="0"/>
+<xsl:param name="suppress.footer.navigation">0</xsl:param>
+<xsl:param name="suppress.header.navigation" select="0"/>
+<xsl:param name="suppress.navigation" select="0"/>
+<xsl:param name="table.borders.with.css" select="0"/>
+<xsl:param name="table.cell.border.color"/>
+
+<xsl:param name="table.cell.border.style">solid</xsl:param>
+<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param>
+<xsl:param name="table.footnote.number.format">a</xsl:param>
+<xsl:param name="table.footnote.number.symbols"/>
+<xsl:param name="table.frame.border.color"/>
+
+<xsl:param name="table.frame.border.style">solid</xsl:param>
+<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param>
+<xsl:param name="tablecolumns.extension" select="1"/>
+ <xsl:param name="target.database.document">olinkdb.xml</xsl:param>
+<xsl:param name="targets.filename">target.db</xsl:param>
+<xsl:param name="textdata.default.encoding"/>
+<xsl:param name="tex.math.delims" select="1"/>
+<xsl:param name="tex.math.file">tex-math-equations.tex</xsl:param>
+<xsl:param name="tex.math.in.alt"/>
+ <xsl:param name="textinsert.extension" select="1"/>
+<xsl:param name="toc.list.type">dl</xsl:param>
+<xsl:param name="toc.section.depth">2</xsl:param>
+<xsl:param name="toc.max.depth">8</xsl:param>
+<xsl:param name="ulink.target">_top</xsl:param>
+<xsl:param name="use.embed.for.svg" select="0"/>
+<xsl:param name="use.extensions" select="0"/>
+<xsl:param name="use.id.as.filename" select="0"/>
+<xsl:param name="use.local.olink.style" select="0"/>
+<xsl:param name="use.role.as.xrefstyle" select="1"/>
+<xsl:param name="use.role.for.mediaobject" select="1"/>
+<xsl:param name="use.svg" select="1"/>
+<xsl:param name="variablelist.as.table" select="0"/>
+<xsl:param name="variablelist.term.separator">, </xsl:param>
+<xsl:param name="variablelist.term.break.after">0</xsl:param>
+<xsl:param name="xref.with.number.and.title" select="1"/>
+<xsl:param name="xref.label-title.separator">: </xsl:param>
+<xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/pi.xsl b/docs/xsl-generic/html/pi.xsl
new file mode 100644
index 00000000..44e323b4
--- /dev/null
+++ b/docs/xsl-generic/html/pi.xsl
@@ -0,0 +1,1240 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: pi.xsl 7250 2007-08-18 10:19:00Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<doc:reference xmlns=""><info><title>HTML Processing Instruction Reference</title>
+ <releaseinfo role="meta">
+ $Id: pi.xsl 7250 2007-08-18 10:19:00Z xmldoc $
+ </releaseinfo>
+ </info>
+ <partintro xml:id="partintro">
+ <title>Introduction</title>
+ <para>This is generated reference documentation for all
+ user-specifiable processing instructions (PIs) in the DocBook
+ XSL stylesheets for HTML output.
+ <note>
+ <para>You add these PIs at particular points in a document to
+ cause specific “exceptions” to formatting/output behavior. To
+ make global changes in formatting/output behavior across an
+ entire document, it’s better to do it by setting an
+ appropriate stylesheet parameter (if there is one).</para>
+ </note>
+ </para>
+ </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<doc:pi name="dbhtml_background-color" xmlns="">
+ <refpurpose>Sets background color for an image</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or
+ after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+ <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+ sibling to the element, to set a background color for the
+ image.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+ <listitem>
+ <para>An HTML color value</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="BGcolor.html"
+ >Background color</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_background-color">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'background-color'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_bgcolor" xmlns="">
+ <refpurpose>Sets background color on a table row or table cell</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a table row
+ or cell to set a background color for that table row or cell.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+ <listitem>
+ <para>An HTML color value</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="BGtableColor.html#CellBGColor"
+ >Cell background color</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_bgcolor">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'bgcolor'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_cellpadding" xmlns="">
+ <refpurpose>Specifies cellpadding in table or qandaset output</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a
+ <tag>table</tag> or <tag>qandaset</tag> to specify the value
+ for the HTML <literal>cellpadding</literal> attribute in the
+ output HTML table.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+ <listitem>
+ <para>Specifies the cellpadding</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>html.cellpadding</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="CellSpacing.html"
+ >Cell spacing and cell padding</link>,
+ <link role="tcg" xlink:href="QandAformat.html"
+ >Q and A formatting</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellpadding">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'cellpadding'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_cellspacing" xmlns="">
+ <refpurpose>Specifies cellspacing in table or qandaset output</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a
+ <tag>table</tag> or <tag>qandaset</tag> to specify the value
+ for the HTML <literal>cellspacing</literal> attribute in the
+ output HTML table.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+ <listitem>
+ <para>Specifies the cellspacing</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>html.cellspacing</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="CellSpacing.html"
+ >Cell spacing and cell padding</link>,
+ <link role="tcg"
+ xlink:href="QandAformat.html"
+ >Q and A formatting</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellspacing">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'cellspacing'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_class" xmlns="">
+ <refpurpose>Set value of the class attribute for a table row</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a
+ <tag>row</tag> to specify a <literal>class</literal>
+ attribute and value in the HTML output for that row.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+ <listitem>
+ <para>Specifies the class name</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="CSSTableCells.html"
+ >Table styles in HTML output</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_class">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'class'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_dir" xmlns="">
+ <refpurpose>Specifies a directory name in which to write files</refpurpose>
+ <refdescription>
+ <para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI
+ as a child of a chunk source to cause the output of that
+ chunk to be written to the specified directory; also, use it
+ as a child of a <tag>mediaobject</tag> to specify a
+ directory into which any long-description files for that
+ <tag>mediaobject</tag> will be written.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+ <listitem>
+ <para>Specifies the pathname for the directory</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>base.dir</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Chunking.html#dbhtmlDirPI"
+ >dbhtml dir processing instruction</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_dir">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'dir'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_filename" xmlns="">
+ <refpurpose>Specifies a filename for a chunk</refpurpose>
+ <refdescription>
+ <para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag>
+ PI as a child of a chunk source to specify a filename for
+ the output file for that chunk.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+ <listitem>
+ <para>Specifies the filename for the file</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>use.id.as.filename</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Chunking.html#DbhtmlFilenames"
+ >dbhtml filenames</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_filename">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'filename'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_funcsynopsis-style" xmlns="">
+ <refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of
+ a <tag>funcprototype</tag> or anywhere within a funcprototype
+ control the presentation style for the <tag>funcsynopsis</tag>
+ in output.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>funcsynopsis-style="kr"</term>
+ <listitem>
+ <para>Displays the <tag>funcprototype</tag> in K&amp;R style</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>funcsynopsis-style="ansi"</term>
+ <listitem>
+ <para>Displays the <tag>funcprototype</tag> in ANSI style</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>funcsynopsis.style</parameter></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_funcsynopsis-style">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_img.src.path" xmlns="">
+ <refpurpose>Specifies a path to the location of an image file</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or
+ after an image (<tag>graphic</tag>,
+ <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+ <tag>videodata</tag> element) as a sibling to the element,
+ to specify a path to the location of the image; in HTML
+ output, the value specified for the
+ <code>img.src.path</code> attribute is prepended to the
+ filename.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+ <listitem>
+ <para>Specifies the pathname to prepend to the name of the image file</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>img.src.path</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="GraphicsLocations.html#UsingFileref"
+ >Using fileref</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_img.src.path">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'img.src.path'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_label-width" xmlns="">
+ <refpurpose>Specifies the label width for a qandaset</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a
+ <tag>qandaset</tag> to specify the width of labels.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+ <listitem>
+ <para>Specifies the label width (including units)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="QandAformat.html"
+ >Q and A formatting</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_label-width">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'label-width'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_linenumbering.everyNth" xmlns="">
+ <refpurpose>Specifies interval for lines numbers in verbatims</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child
+ of a “verbatim” element – <tag>programlisting</tag>,
+ <tag>screen</tag>, <tag>synopsis</tag> — to specify
+ the interval at which lines are numbered.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+ <listitem>
+ <para>Specifies numbering interval; a number is output
+ before every <replaceable>N</replaceable>th line</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>linenumbering.everyNth</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="AnnotateListing.html#LineNumbering"
+ >Line numbering</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.everyNth">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_linenumbering.separator" xmlns="">
+ <refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child
+ of a “verbatim” element – <tag>programlisting</tag>,
+ <tag>screen</tag>, <tag>synopsis</tag> — to specify
+ the separator text output between the line numbers and content.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+ <listitem>
+ <para>Specifies the text (zero or more characters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>linenumbering.separator</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="AnnotateListing.html#LineNumbering"
+ >Line numbering</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.separator">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_linenumbering.width" xmlns="">
+ <refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child
+ of a “verbatim” element – <tag>programlisting</tag>,
+ <tag>screen</tag>, <tag>synopsis</tag> — to specify
+ the width set aside for line numbers.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+ <listitem>
+ <para>Specifies the width (inluding units)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>linenumbering.width</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="AnnotateListing.html#LineNumbering"
+ >Line numbering</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.width">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_list-presentation" xmlns="">
+ <refpurpose>Specifies presentation style for a variablelist or
+ segmentedlist</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of
+ a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+ control the presentation style for the list (to cause it, for
+ example, to be displayed as a table).</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>list-presentation="list"</term>
+ <listitem>
+ <para>Displays the list as a list</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>list-presentation="table"</term>
+ <listitem>
+ <para>Displays the list as a table</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <itemizedlist>
+ <listitem>
+ <para><parameter>variablelist.as.table</parameter></para>
+ </listitem>
+ <listitem>
+ <para><parameter>segmentedlist.as.table</parameter></para>
+ </listitem>
+ </itemizedlist>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Variablelists.html#VarListFormatting"
+ >Variable list formatting in HTML</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-presentation">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'list-presentation'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_list-width" xmlns="">
+ <refpurpose>Specifies the width of a variablelist or simplelist</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a
+ <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+ as a table, to specify the output width.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+ <listitem>
+ <para>Specifies the output width (including units)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Variablelists.html#VarListFormatting"
+ >Variable list formatting in HTML</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-width">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'list-width'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_row-height" xmlns="">
+ <refpurpose>Specifies the height for a table row</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a
+ <tag>row</tag> to specify the height of the row.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+ <listitem>
+ <para>Specifies the label height (including units)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="RowHeight.html"
+ >Row height</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_row-height">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'row-height'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_start" xmlns="">
+ <refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+ <refdescription>
+ <para><emphasis>This PI is obsolete</emphasis>. The intent of
+ this PI was to provide a means for setting a specific starting
+ number for an ordered list. Instead of this PI, set a value
+ for the <literal>override</literal> attribute on the first
+ <tag>listitem</tag> in the list; that will have the same
+ effect as what this PI was intended for.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+ <listitem>
+ <para>Specifies the character to use as the starting
+ number; use 0-9, a-z, A-Z, or lowercase or uppercase
+ Roman numerals</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Orderedlists.html#ListStartNum"
+ >List starting number</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_start">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'start'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_table-summary" xmlns="">
+ <refpurpose>Specifies summary for table, variablelist, segmentedlist, or qandaset output</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of
+ a <tag>table</tag>, <tag>variablelist</tag>,
+ <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+ the text for the HTML <literal>summary</literal> attribute
+ in the output HTML table.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+ <listitem>
+ <para>Specifies the summary text (zero or more characters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Variablelists.html#VarListFormatting"
+ >Variable list formatting in HTML</link>,
+ <link role="tcg" xlink:href="TableSummary.html"
+ >Table summary text</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-summary">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'table-summary'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_table-width" xmlns="">
+ <refpurpose>Specifies the width for a table</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a
+ <tag>table</tag> to specify the width of the table in
+ output.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+ <listitem>
+ <para>Specifies the table width (including units or as a percentage)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>default.table.width</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Tables.html#TableWidth"
+ >Table width</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-width">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'table-width'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_term-presentation" xmlns="">
+ <refpurpose>Sets character formatting for terms in a variablelist</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child
+ of a <tag>variablelist</tag> to set character formatting for
+ the <tag>term</tag> output of the list.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+ <listitem>
+ <para>Specifies that terms are displayed in bold</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+ <listitem>
+ <para>Specifies that terms are displayed in italic</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+ <listitem>
+ <para>Specifies that terms are displayed in bold-italic</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Variablelists.html#VarListFormatting"
+ >Variable list formatting in HTML</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-presentation">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'term-presentation'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_term-separator" xmlns="">
+ <refpurpose>Specifies separator text among terms in a varlistentry</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child
+ of a <tag>variablelist</tag> to specify the separator text
+ among <tag>term</tag> instances.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+ <listitem>
+ <para>Specifies the text (zero or more characters)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>variablelist.term.separator</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Variablelists.html#VarListFormatting"
+ >Variable list formatting in HTML</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-separator">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'term-separator'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_term-width" xmlns="">
+ <refpurpose>Specifies the term width for a variablelist</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a
+ <tag>variablelist</tag> to specify the width for
+ <tag>term</tag> output.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+ <listitem>
+ <para>Specifies the term width (including units)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="Variablelists.html#VarListFormatting"
+ >Variable list formatting in HTML</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-width">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'term-width'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_toc" xmlns="">
+ <refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a
+ <tag>qandaset</tag> to specify whether a table of contents
+ (TOC) is generated for the <tag>qandaset</tag>.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>toc="0"</term>
+ <listitem>
+ <para>If zero, no TOC is generated</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>toc="1"</term>
+ <listitem>
+ <para>If <code>1</code> (or any non-zero value),
+ a TOC is generated</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="QandAtoc.html"
+ >Q and A list of questions</link>,
+ <link role="tcg"
+ xlink:href="QandAformat.html"
+ >Q and A formatting</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_toc">
+ <xsl:param name="node" select="."/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+ <xsl:with-param name="attribute" select="'toc'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbcmdlist" xmlns="">
+ <refpurpose>Generates a hyperlinked list of commands</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any
+ element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+ <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+ “command list” will be generated at the top of output for that
+ element, enabling users to quickly jump
+ to each command synopsis.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <para>[No parameters]</para>
+ </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbcmdlist">
+ <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+ <xsl:if test="count($cmdsynopses)&lt;1">
+ <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <dl>
+ <xsl:call-template name="process.cmdsynopsis.list">
+ <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+ </xsl:call-template>
+ </dl>
+</xsl:template>
+
+<doc:pi name="dbfunclist" xmlns="">
+ <refpurpose>Generates a hyperlinked list of functions</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any
+ element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+ <tag>funcsynopsis</tag> instances; a hyperlinked
+ navigational “function list” will be generated at the top of
+ output for that element, enabling users to quickly
+ jump to to each function synopsis.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <para>[No parameters]</para>
+ </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfunclist">
+ <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+ <xsl:if test="count($funcsynopses)&lt;1">
+ <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <dl>
+ <xsl:call-template name="process.funcsynopsis.list">
+ <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+ </xsl:call-template>
+ </dl>
+</xsl:template>
+
+<doc:pi name="dbhtml-include_href" xmlns="">
+ <refpurpose>Copies an external well-formed HTML/XML file into current doc</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a
+ document to cause the contents of the file referenced by the
+ <code>href</code> pseudo-attribute to be copied/inserted “as
+ is” into your HTML output at the point in document order
+ where the PI occurs in the source.</para>
+ <note>
+ <para>The referenced file may contain plain text (as long as
+ it is “wrapped” in an <tag>html</tag> element — see the
+ note below) or markup in any arbitrary vocabulary,
+ including HTML — but it must conform to XML
+ well-formedness constraints (because the feature in XSLT
+ 1.0 for opening external files, the
+ <function>document()</function> function, can only handle
+ files that meet XML well-formedness constraints).</para>
+ <para>Among other things, XML well-formedness constraints
+ require a document to have <emphasis>a single root
+ element</emphasis>. So if the content you want to
+ include is plain text or is markup that does
+ <emphasis>not</emphasis> have a single root element,
+ <emphasis role="strong">wrap the content in an
+ <tag>html</tag> element</emphasis>. The stylesheets will
+ strip out that surrounding <tag>html</tag> “wrapper” when
+ they find it, leaving just the content you want to
+ insert.</para>
+ </note>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+ <listitem>
+ <para>Specifies the URI for the file to include; the URI
+ can be, for example, a remote <literal>http:</literal>
+ URI, or a local filesystem <literal>file:</literal>
+ URI</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="params">
+ <para><parameter>textinsert.extension</parameter></para>
+ </refsee>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="InsertExtHtml.html"
+ >Inserting external HTML code</link>,
+ <link
+ xlink:href="ExternalCode.html"
+ >External code files</link></para>
+ </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml-include">
+ <xsl:param name="href">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="."/>
+ <xsl:with-param name="attribute">href</xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="$href != ''">
+ <xsl:variable name="content" select="document($href,/)"/>
+ <xsl:choose>
+ <xsl:when test="$content/*">
+ <xsl:choose>
+ <xsl:when test="$content/*[1][self::html]">
+ <!-- include just the children of html wrapper -->
+ <xsl:copy-of select="$content/*[1]/node()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>ERROR: dbhtml-include processing instruction </xsl:text>
+ <xsl:text>href has no content.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>ERROR: dbhtml-include processing instruction has </xsl:text>
+ <xsl:text>missing or empty href value.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+ <!-- * dbhtml-attribute is an interal utility template for retrieving -->
+ <!-- * pseudo-attributes/parameters from PIs -->
+ <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+ <xsl:param name="attribute">filename</xsl:param>
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="$pis"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+ <xsl:call-template name="pi.dbcmdlist"/>
+</xsl:template>
+<xsl:template name="process.cmdsynopsis.list">
+ <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+ <dt>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$cmdsyn/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </dt>
+
+ <xsl:call-template name="process.cmdsynopsis.list">
+ <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbfunclist')">
+ <xsl:call-template name="pi.dbfunclist"/>
+</xsl:template>
+<xsl:template name="process.funcsynopsis.list">
+ <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($funcsynopses)"></xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+ <dt>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$cmdsyn/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </dt>
+
+ <xsl:call-template name="process.funcsynopsis.list">
+ <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml-include')">
+ <xsl:call-template name="pi.dbhtml-include"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+ <xsl:param name="context" select="."/>
+ <!-- directories are now inherited from previous levels -->
+ <xsl:variable name="ppath">
+ <xsl:if test="$context/parent::*">
+ <xsl:call-template name="dbhtml-dir">
+ <xsl:with-param name="context" select="$context/parent::*"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="path">
+ <xsl:call-template name="pi.dbhtml_dir">
+ <xsl:with-param name="node" select="$context"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$path = ''">
+ <xsl:if test="$ppath != ''">
+ <xsl:value-of select="$ppath"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$ppath != ''">
+ <xsl:value-of select="$ppath"/>
+ <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:value-of select="$path"/>
+ <xsl:text>/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- There are two templates matching this PI in htmlhelp-common.xsl -->
+<doc:pi name="dbhh" xmlns="">
+ <refpurpose>Sets topic name and topic id for context-sensitive HTML Help</refpurpose>
+ <refdescription>
+ <para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components
+ that should be used as targets for context-sensitive help requests.</para>
+ </refdescription>
+ <refsynopsisdiv>
+ <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis>
+ </refsynopsisdiv>
+ <refparameter>
+ <variablelist>
+ <varlistentry><term>topicname="<replaceable>name</replaceable>"</term>
+ <listitem>
+ <para>Specifies a unique string constant that identifies a help topic</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>topicid="<replaceable>id</replaceable>"</term>
+ <listitem>
+ <para>Specifies a unique integer value for the <literal>topicname</literal> string</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refparameter>
+ <refsee role="tcg">
+ <para><link role="tcg"
+ xlink:href="HtmlHelp.html#HHContextHelp"
+ >Context-sensitive help</link></para>
+ </refsee>
+</doc:pi>
+
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/profile-chunk-code.xsl b/docs/xsl-generic/html/profile-chunk-code.xsl
new file mode 100644
index 00000000..364bcc95
--- /dev/null
+++ b/docs/xsl-generic/html/profile-chunk-code.xsl
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl cf ng db exslt" version="1.0">
+
+<!-- ********************************************************************
+ $Id: chunk-code.xsl 6942 2007-07-04 04:42:17Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="fn">
+ <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+ </xsl:variable>
+
+ <!--
+ <xsl:message>
+ <xsl:value-of select="$ischunk"/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>) </xsl:text>
+ <xsl:value-of select="$fn"/>
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:message>
+ -->
+
+ <!-- 2003-11-25 by ndw:
+ The following test used to read test="$ischunk != 0 and $fn != ''"
+ I've removed the ischunk part of the test so that href.to.uri and
+ href.from.uri will be fully qualified even if the source or target
+ isn't a chunk. I *think* that if $fn != '' then it's appropriate
+ to put the directory on the front, even if the element isn't a
+ chunk. I could be wrong. -->
+
+ <xsl:if test="$fn != ''">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:if>
+
+ <xsl:value-of select="$fn"/>
+ <!-- You can't add the html.ext here because dbhtml filename= may already -->
+ <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+ <xsl:param name="recursive" select="false()"/>
+
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="dbhtml-filename">
+ <xsl:call-template name="pi.dbhtml_filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="$dbhtml-filename != ''">
+ <xsl:value-of select="$dbhtml-filename"/>
+ </xsl:when>
+ <!-- if this is the root element, use the root.filename -->
+ <xsl:when test="not(parent::*) and $root.filename != ''">
+ <xsl:value-of select="$root.filename"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <!-- Special case -->
+ <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+ <xsl:choose>
+ <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+ <!-- * if this legalnotice has an ID, then go ahead and use -->
+ <!-- * just the value of that ID as the basename for the file -->
+ <!-- * (that is, without prepending an "ln-" too it) -->
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, if this legalnotice does not have an ID, -->
+ <!-- * then we generate an ID... -->
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <!-- * ...and then we take that generated ID, prepend an -->
+ <!-- * "ln-" to it, and use that as the basename for the file -->
+ <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+ <!-- filenames, then use the ID to generate the filename. -->
+ <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk='0'">
+ <!-- if called on something that isn't a chunk, walk up... -->
+ <xsl:choose>
+ <xsl:when test="count(parent::*)&gt;0">
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="$recursive"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- unless there is no up, in which case return "" -->
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not($recursive) and $filename != ''">
+ <!-- if this chunk has an explicit name, use it -->
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+
+ <xsl:when test="self::set">
+ <xsl:value-of select="$root.filename"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::book">
+ <xsl:text>bk</xsl:text>
+ <xsl:number level="any" format="01"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::article">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>ar</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::preface">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>pr</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::chapter">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>ch</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::appendix">
+ <xsl:if test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:text>ap</xsl:text>
+ <xsl:number level="any" format="a" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::part">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>pt</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::reference">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>rn</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::refentry">
+ <xsl:choose>
+ <xsl:when test="parent::reference">
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>re</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::colophon">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>co</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::sect1 or self::sect2 or self::sect3 or self::sect4 or self::sect5 or self::section">
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>s</xsl:text>
+ <xsl:number format="01"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::bibliography">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>bi</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::glossary">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>go</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::index">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text>ix</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="self::setindex">
+ <xsl:text>si</xsl:text>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text>chunk-filename-error-</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+ <xsl:variable name="chunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$chunk != 0">
+ <cf:div id="{generate-id()}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="*" mode="find.chunks"/>
+ </cf:div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*" mode="find.chunks"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+ toss the namespace and continue. Use the docbook5 namespaced
+ stylesheets for DocBook5 if you don't want to use this feature.-->
+ <!-- include extra test for Xalan quirk -->
+ <xsl:when test="false()"/>
+ <!-- Can't process unless namespace removed -->
+ <xsl:when test="false()"/>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+ </xsl:if>
+ <xsl:if test="$generate.manifest != 0">
+ <xsl:call-template name="generate.manifest">
+ <xsl:with-param name="node" select="key('id',$rootid)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+ </xsl:if>
+ <xsl:if test="$generate.manifest != 0">
+ <xsl:call-template name="generate.manifest">
+ <xsl:with-param name="node" select="$profiled-nodes"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix |article |reference|refentry |book/glossary|article/glossary|part/glossary |book/bibliography|article/bibliography|part/bibliography |colophon">
+ <xsl:choose>
+ <xsl:when test="$onechunk != 0 and parent::*">
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="not(parent::*)">
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:when>
+ <xsl:when test="$ischunk = 0">
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex |book/index |article/index |part/index">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. -->
+ <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+ <!-- need a check for absolute urls -->
+ <xsl:choose>
+ <xsl:when test="contains(., ':')">
+ <!-- it has a uri scheme so it is an absolute uri -->
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:when test="$keep.relative.image.uris != 0">
+ <!-- leave it alone -->
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- its a relative uri -->
+ <xsl:call-template name="relative-uri">
+ <xsl:with-param name="destdir">
+ <xsl:call-template name="dbhtml-dir">
+ <xsl:with-param name="context" select=".."/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix |article |reference|refentry |sect1|sect2|sect3|sect4|sect5 |section |book/glossary|article/glossary|part/glossary |book/bibliography|article/bibliography|part/bibliography |colophon" mode="enumerate-files">
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:if test="$ischunk='1'">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index" mode="enumerate-files">
+ <xsl:if test="$htmlhelp.output != 1">
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:if test="$ischunk='1'">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="*" mode="enumerate-files"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:if test="$generate.legalnotice.link != 0">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir">
+ <xsl:if test="$manifest.in.base.dir = 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+ <xsl:variable name="longdesc.uri">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="mediaobject" select="."/>
+
+ <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+ <xsl:call-template name="longdesc.uri">
+ <xsl:with-param name="mediaobject" select="$mediaobject"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/profile-chunk.xsl b/docs/xsl-generic/html/profile-chunk.xsl
new file mode 100644
index 00000000..02920b12
--- /dev/null
+++ b/docs/xsl-generic/html/profile-chunk.xsl
@@ -0,0 +1,52 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ version="1.0"
+ exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+ $Id: profile-chunk.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+ within each chunk file. In a customization, you should
+ create a separate non-chunking customization layer such
+ as mydocbook.xsl that imports the original docbook.xsl and
+ customizes any presentation templates. Then your chunking
+ customization should import mydocbook.xsl instead of
+ docbook.xsl. -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+ In a customization file, you import chunk-common.xsl, then
+ add any customized chunking templates of the same name.
+ They will have import precedence over the original
+ chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+ templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+ a match attribute. In a customization it should be referenced
+ using <xsl:include> instead of <xsl:import>, and then add
+ any customized chunking templates with match attributes. But be sure
+ to add a priority="1" to such customized templates to resolve
+ its conflict with the original, since they have the
+ same import precedence.
+
+ Using xsl:include prevents adding another layer
+ of import precedence, which would cause any
+ customizations that use xsl:apply-imports to wrongly
+ apply the chunking version instead of the original
+ non-chunking version to format an element. -->
+<xsl:include href="profile-chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/profile-docbook.xsl b/docs/xsl-generic/html/profile-docbook.xsl
new file mode 100644
index 00000000..e680eede
--- /dev/null
+++ b/docs/xsl-generic/html/profile-docbook.xsl
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt" version="1.0">
+
+<xsl:output method="html" encoding="ISO-8859-1" indent="no"/>
+
+<!-- ********************************************************************
+ $Id: docbook.xsl 7156 2007-07-26 21:42:04Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'html'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+ <xsl:message>
+ <xsl:text>Element </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> in namespace '</xsl:text>
+ <xsl:value-of select="namespace-uri(.)"/>
+ <xsl:text>' encountered</xsl:text>
+ <xsl:if test="parent::*">
+ <xsl:text> in </xsl:text>
+ <xsl:value-of select="name(parent::*)"/>
+ </xsl:if>
+ <xsl:text>, but no template matches.</xsl:text>
+ </xsl:message>
+
+ <span style="color: red">
+ <xsl:text>&lt;</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>&gt;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&lt;/</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>&gt;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="text()">
+ <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes">
+ <xsl:attribute name="bgcolor">white</xsl:attribute>
+ <xsl:attribute name="text">black</xsl:attribute>
+ <xsl:attribute name="link">#0000FF</xsl:attribute>
+ <xsl:attribute name="vlink">#840084</xsl:attribute>
+ <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:template>
+
+<xsl:template name="head.content">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="title">
+ <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+ </xsl:param>
+
+ <title>
+ <xsl:copy-of select="$title"/>
+ </title>
+
+ <xsl:if test="$html.stylesheet != ''">
+ <xsl:call-template name="output.html.stylesheets">
+ <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="$link.mailto.url != ''">
+ <link rev="made" href="{$link.mailto.url}"/>
+ </xsl:if>
+
+ <xsl:if test="$html.base != ''">
+ <base href="{$html.base}"/>
+ </xsl:if>
+
+ <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+ <xsl:if test="$generate.meta.abstract != 0">
+ <xsl:variable name="info" select="(articleinfo |bookinfo |prefaceinfo |chapterinfo |appendixinfo |sectioninfo |sect1info |sect2info |sect3info |sect4info |sect5info |referenceinfo |refentryinfo |partinfo |info |docinfo)[1]"/>
+ <xsl:if test="$info and $info/abstract">
+ <meta name="description">
+ <xsl:attribute name="content">
+ <xsl:for-each select="$info/abstract[1]/*">
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:if test="position() &lt; last()">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:attribute>
+ </meta>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:if test="($draft.mode = 'yes' or ($draft.mode = 'maybe' and ancestor-or-self::*[@status][1]/@status = 'draft')) and $draft.watermark.image != ''">
+ <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</xsl:text>
+ </style>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+ <xsl:param name="stylesheets" select="''"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($stylesheets, ' ')">
+ <link rel="stylesheet" href="{substring-before($stylesheets, ' ')}">
+ <xsl:if test="$html.stylesheet.type != ''">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$html.stylesheet.type"/>
+ </xsl:attribute>
+ </xsl:if>
+ </link>
+ <xsl:call-template name="output.html.stylesheets">
+ <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$stylesheets != ''">
+ <link rel="stylesheet" href="{$stylesheets}">
+ <xsl:if test="$html.stylesheet.type != ''">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$html.stylesheet.type"/>
+ </xsl:attribute>
+ </xsl:if>
+ </link>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+ <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+ <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+ <xsl:if test="$inherit.keywords != 0 and parent::*">
+ <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+ <xsl:param name="node" select="."/>
+
+ <!-- FIXME: When chunking, only the annotations actually used
+ in this chunk should be referenced. I don't think it
+ does any harm to reference them all, but it adds
+ unnecessary bloat to each chunk. -->
+ <xsl:if test="$annotation.support != 0 and //annotation">
+ <xsl:call-template name="add.annotation.links"/>
+ <script type="text/javascript">
+ <xsl:text>
+// Create PopupWindow objects</xsl:text>
+ <xsl:for-each select="//annotation">
+ <xsl:text>
+var popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text> = new PopupWindow("popup-</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>");
+</xsl:text>
+ <xsl:text>popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>.offsetY = 15;
+</xsl:text>
+ <xsl:text>popup_</xsl:text>
+ <xsl:value-of select="generate-id(.)"/>
+ <xsl:text>.autoHide();
+</xsl:text>
+ </xsl:for-each>
+ </script>
+
+ <style type="text/css">
+ <xsl:value-of select="$annotation.css"/>
+ </style>
+ </xsl:if>
+
+ <!-- system.head.content is like user.head.content, except that
+ it is called before head.content. This is important because it
+ means, for example, that <style> elements output by system.head.content
+ have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+ <!-- Pre-root output, can be used to output comments and PIs. -->
+ <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+ toss the namespace and continue. Use the docbook5 namespaced
+ stylesheets for DocBook5 if you don't want to use this feature.-->
+ <!-- include extra test for Xalan quirk -->
+ <xsl:when test="false()"/>
+ <!-- Can't process unless namespace removed -->
+ <xsl:when test="false()"/>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+ <xsl:if test="$tex.math.in.alt != ''">
+ <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:variable name="doc" select="self::*"/>
+
+ <xsl:call-template name="user.preroot"/>
+ <xsl:call-template name="root.messages"/>
+
+ <html>
+ <head>
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="."/>
+ <xsl:call-template name="user.footer.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </body>
+ </html>
+ <xsl:value-of select="$html.append"/>
+</xsl:template>
+
+<xsl:template name="root.messages">
+ <!-- redefine this any way you'd like to output messages -->
+ <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+
+ <!-- The default is that we are not chunking... -->
+ <xsl:text>0</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/profile-onechunk.xsl b/docs/xsl-generic/html/profile-onechunk.xsl
new file mode 100644
index 00000000..325b8b12
--- /dev/null
+++ b/docs/xsl-generic/html/profile-onechunk.xsl
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+ $Id: profile-onechunk.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="profile-chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+ <xsl:param name="object" select="."/>
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/qandaset.xsl b/docs/xsl-generic/html/qandaset.xsl
new file mode 100644
index 00000000..0bc45773
--- /dev/null
+++ b/docs/xsl-generic/html/qandaset.xsl
@@ -0,0 +1,389 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: qandaset.xsl 6944 2007-07-04 08:41:53Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+ <xsl:variable name="title" select="(blockinfo/title|info/title|title)[1]"/>
+ <xsl:variable name="preamble" select="*[local-name(.) != 'title'
+ and local-name(.) != 'titleabbrev'
+ and local-name(.) != 'qandadiv'
+ and local-name(.) != 'qandaentry']"/>
+ <xsl:variable name="toc">
+ <xsl:call-template name="pi.dbhtml_toc"/>
+ </xsl:variable>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="$title"/>
+ <xsl:if test="((contains($toc.params, 'toc') and $toc != '0') or $toc = '1')
+ and not(ancestor::answer and not($qanda.nested.in.toc=0))">
+ <xsl:call-template name="process.qanda.toc"/>
+ </xsl:if>
+ <xsl:apply-templates select="$preamble"/>
+ <xsl:call-template name="process.qandaset"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo/title|
+ qandaset/info/title|
+ qandaset/title">
+ <xsl:variable name="qalevel">
+ <xsl:call-template name="qanda.section.level"/>
+ </xsl:variable>
+ <xsl:element name="h{string(number($qalevel)+1)}">
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:attribute>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo|qandaset/info">
+ <!-- what should this template really do? -->
+ <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+ <xsl:variable name="preamble" select="*[local-name(.) != 'title'
+ and local-name(.) != 'titleabbrev'
+ and local-name(.) != 'qandadiv'
+ and local-name(.) != 'qandaentry']"/>
+
+ <xsl:if test="blockinfo/title|info/title|title">
+ <tr class="qandadiv">
+ <td align="left" valign="top" colspan="2">
+ <xsl:apply-templates select="(blockinfo/title|info/title|title)[1]"/>
+ </td>
+ </tr>
+ </xsl:if>
+
+ <xsl:variable name="toc">
+ <xsl:call-template name="pi.dbhtml_toc"/>
+ </xsl:variable>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="(contains($toc.params, 'toc') and $toc != '0') or $toc = '1'">
+ <tr class="toc">
+ <td align="left" valign="top" colspan="2">
+ <xsl:call-template name="process.qanda.toc"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="$preamble">
+ <tr class="toc">
+ <td align="left" valign="top" colspan="2">
+ <xsl:apply-templates select="$preamble"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:apply-templates select="qandadiv|qandaentry"/>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|
+ qandadiv/info/title|
+ qandadiv/title">
+ <xsl:variable name="qalevel">
+ <xsl:call-template name="qandadiv.section.level"/>
+ </xsl:variable>
+
+ <xsl:element name="h{string(number($qalevel)+1)}">
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:attribute>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+ <xsl:if test="$qandadiv.autolabel != 0">
+ <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="question">
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+ <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+ /@defaultlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <tr>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <td align="left" valign="top">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+
+ <xsl:variable name="label.content">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ <xsl:if test="$deflabel = 'number' and not(label)">
+ <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:if test="string-length($label.content) &gt; 0">
+ <p><b>
+ <xsl:copy-of select="$label.content"/>
+ </b></p>
+ </xsl:if>
+ </td>
+ <td align="left" valign="top">
+ <xsl:choose>
+ <xsl:when test="$deflabel = 'none' and not(label)">
+ <b><xsl:apply-templates select="*[local-name(.) != 'label']"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*[local-name(.) != 'label']"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="answer">
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+ <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+ /@defaultlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <tr class="{local-name(.)}">
+ <td align="left" valign="top">
+ <xsl:call-template name="anchor"/>
+ <xsl:variable name="answer.label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="string-length($answer.label) &gt; 0">
+ <p><b>
+ <xsl:copy-of select="$answer.label"/>
+ </b></p>
+ </xsl:if>
+ </td>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="*[local-name(.) != 'label'
+ and local-name(.) != 'qandaentry']"/>
+ <!-- * handle nested answer/qandaentry instances -->
+ <!-- * (bug 1509043 from Daniel Leidert) -->
+ <xsl:if test="descendant::question">
+ <xsl:call-template name="process.qandaset"/>
+ </xsl:if>
+ </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="label">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+ <!-- * if user wants nested qandaset and qandaentry in main Qandaset TOC, -->
+ <!-- * then don't also include the nested stuff in the sub TOCs -->
+ <dl>
+ <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+ <xsl:apply-templates select="qandaset|qandaentry" mode="qandatoc.mode"/>
+ </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+ <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+ <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|
+ qandadiv/info/title|
+ qandadiv/title" mode="qandatoc.mode">
+ <xsl:variable name="qalevel">
+ <xsl:call-template name="qandadiv.section.level"/>
+ </xsl:variable>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+ <xsl:value-of select="$autotoc.label.separator"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="qandatoc.mode">
+ <xsl:for-each select="qandaentry">
+ <xsl:apply-templates select="." mode="qandatoc.mode"/>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+ <xsl:apply-templates select="question" mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+ <xsl:variable name="firstch">
+ <xsl:apply-templates select="(*[local-name(.)!='label'])[1]"/>
+ </xsl:variable>
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+ <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+ /@defaultlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <dt>
+ <xsl:apply-templates select="." mode="label.markup"/>
+ <xsl:if test="$deflabel = 'number' and not(label)">
+ <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:value-of select="$firstch"/>
+ </a>
+ </dt>
+ <!-- * include nested qandaset/qandaentry in TOC if user wants it -->
+ <xsl:if test="not($qanda.nested.in.toc = 0)">
+ <xsl:apply-templates select="following-sibling::answer" mode="qandatoc.mode"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer" mode="qandatoc.mode">
+ <xsl:if test="descendant::question">
+ <dd>
+ <xsl:call-template name="process.qanda.toc"/>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qandaset">
+
+ <xsl:variable name="label-width">
+ <xsl:call-template name="pi.dbhtml_label-width"/>
+ </xsl:variable>
+
+ <xsl:variable name="table-summary">
+ <xsl:call-template name="pi.dbhtml_table-summary"/>
+ </xsl:variable>
+
+ <xsl:variable name="cellpadding">
+ <xsl:call-template name="pi.dbhtml_cellpadding"/>
+ </xsl:variable>
+
+ <xsl:variable name="cellspacing">
+ <xsl:call-template name="pi.dbhtml_cellspacing"/>
+ </xsl:variable>
+
+ <table border="0" summary="Q and A Set">
+ <xsl:if test="$table-summary != ''">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="$table-summary"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$cellpadding != ''">
+ <xsl:attribute name="cellpadding">
+ <xsl:value-of select="$cellpadding"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$cellspacing != ''">
+ <xsl:attribute name="cellspacing">
+ <xsl:value-of select="$cellspacing"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <col align="left">
+ <xsl:attribute name="width">
+ <xsl:choose>
+ <xsl:when test="$label-width != ''">
+ <xsl:value-of select="$label-width"/>
+ </xsl:when>
+ <xsl:otherwise>1%</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </col>
+ <tbody>
+ <xsl:apply-templates select="qandaentry|qandadiv"/>
+ </tbody>
+ </table>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/refentry.xsl b/docs/xsl-generic/html/refentry.xsl
new file mode 100644
index 00000000..bce630b9
--- /dev/null
+++ b/docs/xsl-generic/html/refentry.xsl
@@ -0,0 +1,309 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: refentry.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$generate.id.attributes != 0">
+ <xsl:attribute name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:call-template name="reference.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+ <xsl:call-template name="division.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+ <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"></xsl:template>
+<xsl:template match="reference/referenceinfo"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+<xsl:template match="reference/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="refentry.title">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="refmeta" select="$node//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select="$node//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+ <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+ </xsl:when>
+ <xsl:when test="$refdesc">
+ <xsl:apply-templates select="$refdesc[1]" mode="title"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]" mode="title"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <h1 class="title">
+ <xsl:copy-of select="$title"/>
+ </h1>
+</xsl:template>
+
+<xsl:template match="refentry">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry">
+ <div class="refentry.separator">
+ <hr/>
+ </div>
+ </xsl:if>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="refentry.titlepage"/>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"></xsl:template>
+<xsl:template match="refentry/info"></xsl:template>
+
+<xsl:template match="refentrytitle|refname|refdescriptor" mode="title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+ <xsl:if test="$refentry.xref.manvolnum != 0">
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::refnamediv">
+ <!-- no title on secondary refnamedivs! -->
+ </xsl:when>
+ <xsl:when test="$refentry.generate.name != 0">
+ <h2>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RefName'"/>
+ </xsl:call-template>
+ </h2>
+ </xsl:when>
+ <xsl:when test="$refentry.generate.title != 0">
+ <h2>
+ <xsl:choose>
+ <xsl:when test="../refmeta/refentrytitle">
+ <xsl:apply-templates select="../refmeta/refentrytitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="refname[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ </xsl:when>
+ </xsl:choose>
+
+ <p>
+ <xsl:apply-templates/>
+ </p>
+ </div>
+</xsl:template>
+
+<xsl:template match="refname">
+ <xsl:if test="not(preceding-sibling::refdescriptor)">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::refname">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+ <xsl:if test="node()">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refclass">
+ <xsl:if test="$refclass.suppress = 0">
+ <p>
+ <b>
+ <xsl:if test="@role">
+ <xsl:value-of select="@role"/>
+ <xsl:text>: </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </b>
+ </p>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor"/>
+ <h2>
+ <xsl:choose>
+ <xsl:when test="refsynopsisdiv/title|title">
+ <xsl:apply-templates select="(refsynopsisdiv/title|title)[1]"
+ mode="titlepage.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"></xsl:template>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv/title" mode="titlepage.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refsection|refsect1|refsect2|refsect3">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <!-- pick up info title -->
+ <xsl:apply-templates select="(title|info/title)[1]"/>
+ <xsl:apply-templates select="node()[not(self::title) and not(self::info)]"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="refsection/title|refsection/info/title">
+ <!-- the ID is output in the block.object call for refsect1 -->
+ <xsl:variable name="level" select="count(ancestor-or-self::refsection)"/>
+ <xsl:variable name="refsynopsisdiv">
+ <xsl:text>0</xsl:text>
+ <xsl:if test="ancestor::refsynopsisdiv">1</xsl:if>
+ </xsl:variable>
+ <xsl:variable name="hlevel">
+ <xsl:choose>
+ <xsl:when test="$level+$refsynopsisdiv &gt; 5">6</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$level+1+$refsynopsisdiv"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="h{$hlevel}">
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="refsect1/title|refsect1/info/title">
+ <!-- the ID is output in the block.object call for refsect1 -->
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title|refsect2/info/title">
+ <!-- the ID is output in the block.object call for refsect2 -->
+ <h3>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title|refsect3/info/title">
+ <!-- the ID is output in the block.object call for refsect3 -->
+ <h4>
+ <xsl:apply-templates/>
+ </h4>
+</xsl:template>
+
+<xsl:template match="refsectioninfo|refsection/info"></xsl:template>
+<xsl:template match="refsect1info|refsect1/info"></xsl:template>
+<xsl:template match="refsect2info|refsect2/info"></xsl:template>
+<xsl:template match="refsect3info|refsect3/info"></xsl:template>
+
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/sections.xsl b/docs/xsl-generic/html/sections.xsl
new file mode 100644
index 00000000..efa45298
--- /dev/null
+++ b/docs/xsl-generic/html/sections.xsl
@@ -0,0 +1,622 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: sections.xsl 7000 2007-07-10 20:41:35Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+ <xsl:variable name="depth" select="count(ancestor::section)+1"/>
+
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:call-template name="section.titlepage"/>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')
+ and $depth &lt;= $generate.section.toc.level">
+ <xsl:call-template name="section.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="section.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.chunk.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template name="section.title">
+ <!-- the context node should be the title of a section when called -->
+ <xsl:variable name="section" select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5)[last()]"/>
+
+ <xsl:variable name="renderas">
+ <xsl:choose>
+ <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
+ <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="level">
+ <xsl:choose>
+ <xsl:when test="$renderas != ''">
+ <xsl:value-of select="$renderas"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="section.heading">
+ <xsl:with-param name="section" select="$section"/>
+ <xsl:with-param name="level" select="$level"/>
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="$section" mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section/title
+ |section/info/title
+ |sectioninfo/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect1">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+
+ <xsl:choose>
+ <xsl:when test="@renderas = 'sect2'">
+ <xsl:call-template name="sect2.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect3'">
+ <xsl:call-template name="sect3.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect4'">
+ <xsl:call-template name="sect4.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect5'">
+ <xsl:call-template name="sect5.titlepage"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sect1.titlepage"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')
+ and $generate.section.toc.level &gt;= 1">
+ <xsl:call-template name="section.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="section.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.chunk.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="sect1/title
+ |sect1/info/title
+ |sect1info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+
+ <xsl:choose>
+ <xsl:when test="@renderas = 'sect1'">
+ <xsl:call-template name="sect1.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect3'">
+ <xsl:call-template name="sect3.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect4'">
+ <xsl:call-template name="sect4.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect5'">
+ <xsl:call-template name="sect5.titlepage"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sect2.titlepage"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')
+ and $generate.section.toc.level &gt;= 2">
+ <xsl:call-template name="section.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="section.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.chunk.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="sect2/title
+ |sect2/info/title
+ |sect2info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+
+ <xsl:choose>
+ <xsl:when test="@renderas = 'sect1'">
+ <xsl:call-template name="sect1.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect2'">
+ <xsl:call-template name="sect2.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect4'">
+ <xsl:call-template name="sect4.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect5'">
+ <xsl:call-template name="sect5.titlepage"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sect3.titlepage"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')
+ and $generate.section.toc.level &gt;= 3">
+ <xsl:call-template name="section.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="section.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.chunk.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="sect3/title
+ |sect3/info/title
+ |sect3info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+
+ <xsl:choose>
+ <xsl:when test="@renderas = 'sect1'">
+ <xsl:call-template name="sect1.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect2'">
+ <xsl:call-template name="sect2.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect3'">
+ <xsl:call-template name="sect3.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect5'">
+ <xsl:call-template name="sect5.titlepage"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sect4.titlepage"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')
+ and $generate.section.toc.level &gt;= 4">
+ <xsl:call-template name="section.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="section.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.chunk.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="sect4/title
+ |sect4/info/title
+ |sect4info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+
+ <xsl:choose>
+ <xsl:when test="@renderas = 'sect1'">
+ <xsl:call-template name="sect1.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect2'">
+ <xsl:call-template name="sect2.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect3'">
+ <xsl:call-template name="sect3.titlepage"/>
+ </xsl:when>
+ <xsl:when test="@renderas = 'sect4'">
+ <xsl:call-template name="sect4.titlepage"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sect5.titlepage"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="toc.params">
+ <xsl:call-template name="find.path.params">
+ <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="contains($toc.params, 'toc')
+ and $generate.section.toc.level &gt;= 5">
+ <xsl:call-template name="section.toc">
+ <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+ </xsl:call-template>
+ <xsl:call-template name="section.toc.separator"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.chunk.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="sect5/title
+ |sect5/info/title
+ |sect5info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+ <xsl:call-template name="id.warning"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="dir">
+ <xsl:with-param name="inherit" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="language.attribute"/>
+ <xsl:call-template name="simplesect.titlepage"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="simplesect/title|simplesect/info/title"
+ mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="section/titleabbrev"></xsl:template>
+<xsl:template match="section/subtitle"></xsl:template>
+<xsl:template match="sectioninfo"></xsl:template>
+<xsl:template match="section/info"></xsl:template>
+
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/titleabbrev"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+<xsl:template match="sect1info"></xsl:template>
+<xsl:template match="sect1/info"></xsl:template>
+
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+<xsl:template match="sect2/titleabbrev"></xsl:template>
+<xsl:template match="sect2info"></xsl:template>
+<xsl:template match="sect2/info"></xsl:template>
+
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+<xsl:template match="sect3/titleabbrev"></xsl:template>
+<xsl:template match="sect3info"></xsl:template>
+<xsl:template match="sect3/info"></xsl:template>
+
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+<xsl:template match="sect4/titleabbrev"></xsl:template>
+<xsl:template match="sect4info"></xsl:template>
+<xsl:template match="sect4/info"></xsl:template>
+
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+<xsl:template match="sect5/titleabbrev"></xsl:template>
+<xsl:template match="sect5info"></xsl:template>
+<xsl:template match="sect5/info"></xsl:template>
+
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+<xsl:template match="simplesect/titleabbrev"></xsl:template>
+<xsl:template match="simplesect/info"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+ <xsl:param name="section" select="."/>
+ <xsl:param name="level" select="1"/>
+ <xsl:param name="allow-anchors" select="1"/>
+ <xsl:param name="title"/>
+ <xsl:param name="class" select="'title'"/>
+
+ <xsl:variable name="id">
+ <xsl:choose>
+ <!-- if title is in an *info wrapper, get the grandparent -->
+ <xsl:when test="contains(local-name(..), 'info')">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="../.."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- HTML H level is one higher than section level -->
+ <xsl:variable name="hlevel">
+ <xsl:choose>
+ <!-- highest valid HTML H level is H6; so anything nested deeper
+ than 5 levels down just becomes H6 -->
+ <xsl:when test="$level &gt; 5">6</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$level + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="h{$hlevel}">
+ <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+ <xsl:if test="$css.decoration != '0'">
+ <xsl:if test="$hlevel&lt;3">
+ <xsl:attribute name="style">clear: both</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$allow-anchors != 0 and $generate.id.attributes = 0">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="$section"/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$generate.id.attributes != 0 and not(local-name(.) = 'appendix')">
+ <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$title"/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+ <xsl:variable name="container"
+ select="(ancestor::appendix
+ |ancestor::article
+ |ancestor::bibliography
+ |ancestor::chapter
+ |ancestor::glossary
+ |ancestor::glossdiv
+ |ancestor::index
+ |ancestor::partintro
+ |ancestor::preface
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::section
+ |ancestor::setindex
+ |ancestor::simplesect)[last()]"/>
+
+ <xsl:variable name="clevel">
+ <xsl:choose>
+ <xsl:when test="local-name($container) = 'appendix'
+ or local-name($container) = 'chapter'
+ or local-name($container) = 'article'
+ or local-name($container) = 'bibliography'
+ or local-name($container) = 'glossary'
+ or local-name($container) = 'index'
+ or local-name($container) = 'partintro'
+ or local-name($container) = 'preface'
+ or local-name($container) = 'setindex'">1</xsl:when>
+ <xsl:when test="local-name($container) = 'glossdiv'">
+ <xsl:value-of select="count(ancestor::glossdiv)+1"/>
+ </xsl:when>
+ <xsl:when test="local-name($container) = 'sect1'
+ or local-name($container) = 'sect2'
+ or local-name($container) = 'sect3'
+ or local-name($container) = 'sect4'
+ or local-name($container) = 'sect5'
+ or local-name($container) = 'refsect1'
+ or local-name($container) = 'refsect2'
+ or local-name($container) = 'refsect3'
+ or local-name($container) = 'section'
+ or local-name($container) = 'simplesect'">
+ <xsl:variable name="slevel">
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$container"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$slevel + 1"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- HTML H level is one higher than section level -->
+ <xsl:variable name="hlevel">
+ <xsl:choose>
+ <xsl:when test="@renderas = 'sect1'">2</xsl:when>
+ <xsl:when test="@renderas = 'sect2'">3</xsl:when>
+ <xsl:when test="@renderas = 'sect3'">4</xsl:when>
+ <xsl:when test="@renderas = 'sect4'">5</xsl:when>
+ <xsl:when test="@renderas = 'sect5'">6</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$clevel + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="h{$hlevel}">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="section/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="simplesect/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect1/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect2/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect3/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect4/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect5/subtitle" mode="titlepage.mode" priority="2">
+ <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template name="section.subtitle">
+ <!-- the context node should be the subtitle of a section when called -->
+ <xsl:variable name="section" select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5)[last()]"/>
+
+ <xsl:variable name="level">
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="section.heading">
+ <xsl:with-param name="section" select=".."/>
+ <xsl:with-param name="allow-anchors" select="0"/>
+ <!-- subtitle heading level one higher than section level -->
+ <xsl:with-param name="level" select="$level + 1"/>
+ <xsl:with-param name="class" select="'subtitle'"/>
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="$section" mode="object.subtitle.markup">
+ <xsl:with-param name="allow-anchors" select="0"/>
+ </xsl:apply-templates>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/synop.xsl b/docs/xsl-generic/html/synop.xsl
new file mode 100644
index 00000000..1d52c520
--- /dev/null
+++ b/docs/xsl-generic/html/synop.xsl
@@ -0,0 +1,1596 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY nbsp "&#160;">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: synop.xsl 7250 2007-08-18 10:19:00Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p>
+ <xsl:if test="..//processing-instruction('dbcmdlist')">
+ <!-- * Placing a dbcmdlist PI as a child of a particular element -->
+ <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
+ <!-- * that are descendants of that element; so for any -->
+ <!-- * cmdsynopsis that is a descendant of an element containing -->
+ <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
+ <!-- * we will have something to link to -->
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+ </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+ <br/>
+ <xsl:call-template name="inline.monoseq"/>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+ <xsl:call-template name="inline.monoseq"/>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:variable name="sepchar">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*/@sepchar">
+ <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="preceding-sibling::*">
+ <xsl:value-of select="$sepchar"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:value-of select="$arg.choice.plain.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.open.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates/>
+ <xsl:choose>
+ <xsl:when test="$rep='repeat'">
+ <xsl:value-of select="$arg.rep.repeat.str"/>
+ </xsl:when>
+ <xsl:when test="$rep='norepeat'">
+ <xsl:value-of select="$arg.rep.norepeat.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.rep.def.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:value-of select="$arg.choice.plain.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.close.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:if test="preceding-sibling::*">
+ <xsl:value-of select="$arg.or.sep"/>
+ </xsl:if>
+ <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+ <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+ <xsl:variable name="target" select="key('id',@linkend)"/>
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+ </xsl:variable>
+ <i>
+ <a href="#{@linkend}">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ </a>
+ <xsl:text>&#160;</xsl:text>
+ <xsl:apply-templates/>
+ </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+ <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="." mode="synopfragment.number"/>
+ </xsl:variable>
+ <p>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <a name="{$id}">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ </a>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+ <xsl:if test="..//processing-instruction('dbfunclist')">
+ <!-- * Placing a dbfunclist PI as a child of a particular element -->
+ <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
+ <!-- * are descendants of that element; so for any funcsynopsis that is -->
+ <!-- * a descendant of an element containing a dbfunclist PI, we need -->
+ <!-- * to output an a@id instance so that we will have something to -->
+ <!-- * link to -->
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </pre>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype -->
+<!--
+
+funcprototype ::= (funcdef,
+ (void|varargs|paramdef+))
+
+funcdef ::= (#PCDATA|type|replaceable|function)*
+
+paramdef ::= (#PCDATA|type|replaceable|parameter|funcparams)*
+-->
+
+<xsl:template match="funcprototype">
+ <xsl:variable name="html-style">
+ <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+ <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="style">
+ <xsl:choose>
+ <xsl:when test="$html-style != ''">
+ <xsl:value-of select="$html-style"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$funcsynopsis.style"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+<!--
+ <xsl:variable name="tabular-p"
+ select="$funcsynopsis.tabular.threshold &gt; 0
+ and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
+-->
+
+ <xsl:variable name="tabular-p" select="true()"/>
+
+ <xsl:choose>
+ <xsl:when test="$style = 'kr' and $tabular-p">
+ <xsl:apply-templates select="." mode="kr-tabular"/>
+ </xsl:when>
+ <xsl:when test="$style = 'kr'">
+ <xsl:apply-templates select="." mode="kr-nontabular"/>
+ </xsl:when>
+ <xsl:when test="$style = 'ansi' and $tabular-p">
+ <xsl:apply-templates select="." mode="ansi-tabular"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="ansi-nontabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, non-tabular -->
+
+<xsl:template match="funcprototype" mode="kr-nontabular">
+ <p>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ <xsl:if test="paramdef">
+ <br/>
+ <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+ </xsl:if>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-nontabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-nontabular">
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-nontabular">
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-nontabular">
+ <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-nontabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+ <xsl:if test="preceding-sibling::paramdef"><br/></xsl:if>
+ <code>
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ </code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
+ <code>(</code>
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, tabular -->
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+ <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"
+ style="padding-bottom: 1em">
+ <tr>
+ <td>
+ <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
+ </td>
+ <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
+ </tr>
+ <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+ <tr>
+ <td>&#160;</td>
+ <xsl:apply-templates select="." mode="kr-tabular"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <xsl:if test="paramdef">
+ <table border="0" summary="Function argument synopsis"
+ cellspacing="0" cellpadding="0">
+ <xsl:if test="following-sibling::funcprototype">
+ <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="paramdef" mode="kr-tabular-funcsynopsis-mode"/>
+ </table>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-tabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="kr-tabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="kr-tabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-tabular">
+ <td>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-tabular">
+ <td>
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular">
+ <td>
+ <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-tabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-tabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type"
+ mode="kr-tabular-funcsynopsis-mode"/>
+ </xsl:when>
+ <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+ <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <tr>
+ <xsl:choose>
+ <xsl:when test="$type != '' and funcparams">
+ <td>
+ <code>
+ <xsl:copy-of select="$type"/>
+ </code>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td>
+ <code>
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type/following-sibling::*"
+ mode="kr-tabular-funcsynopsis-mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*"
+ mode="kr-tabular-funcsynopsis-mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </code>
+ </td>
+ </xsl:when>
+
+ <xsl:when test="funcparams">
+ <td colspan="2">
+ <code>
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ </code>
+ </td>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <td>
+ <code>
+ <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]"
+ mode="kr-tabular-funcsynopsis-mode"/>
+ </code>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td>
+ <code>
+ <xsl:apply-templates select="parameter"
+ mode="kr-tabular"/>
+ <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]"
+ mode="kr-tabular-funcsynopsis-mode"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
+ <code>(</code>
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, non-tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-nontabular">
+ <p>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-nontabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-nontabular">
+ <code>void)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-nontabular">
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-nontabular">
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-nontabular">
+ <code>(</code>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+ <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <xsl:if test="following-sibling::funcprototype">
+ <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute>
+ </xsl:if>
+ <tr>
+ <td>
+ <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+ </td>
+ <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+ </tr>
+ <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+ <tr>
+ <td>&#160;</td>
+ <xsl:apply-templates select="." mode="ansi-tabular"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-tabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="ansi-tabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="kr-tabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-tabular">
+ <td>
+ <code>void)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-tabular">
+ <td>
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type"
+ mode="ansi-tabular"/>
+ </xsl:when>
+ <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+ <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$type != '' and funcparams">
+ <td>
+ <xsl:copy-of select="$type"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type/following-sibling::*"
+ mode="ansi-tabular"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*"
+ mode="ansi-tabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]"
+ mode="ansi-tabular"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td>
+ <xsl:apply-templates select="parameter"
+ mode="ansi-tabular"/>
+ <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]"
+ mode="ansi-tabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="ansi-tabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="ansi-tabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-tabular">
+ <code>(</code>
+ <xsl:apply-templates/>
+ <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |constructorsynopsis
+ |destructorsynopsis">
+ <xsl:param name="language">
+ <xsl:choose>
+ <xsl:when test="@language">
+ <xsl:value-of select="@language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-classsynopsis-language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$language='java' or $language='Java'">
+ <xsl:apply-templates select="." mode="java"/>
+ </xsl:when>
+ <xsl:when test="$language='perl' or $language='Perl'">
+ <xsl:apply-templates select="." mode="perl"/>
+ </xsl:when>
+ <xsl:when test="$language='idl' or $language='IDL'">
+ <xsl:apply-templates select="." mode="idl"/>
+ </xsl:when>
+ <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+ <xsl:apply-templates select="." mode="cpp"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized language on </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="$language"/>
+ </xsl:message>
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="language"
+ select="$default-classsynopsis-language"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+ <xsl:if test="parent::classsynopsis
+ or (following-sibling::fieldsynopsis
+ |following-sibling::methodsynopsis
+ |following-sibling::constructorsynopsis
+ |following-sibling::destructorsynopsis)">
+ <br/>
+ </xsl:if>
+</xsl:template>
+
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="ooclass[1]" mode="java"/>
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text> extends</xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+ <xsl:if test="oointerface|ooexception">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text>implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="java"/>
+ <xsl:if test="ooexception">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text>throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="java"/>
+ </xsl:if>
+ <xsl:text>&nbsp;{</xsl:text>
+ <br/>
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="java"/>
+ <xsl:text>}</xsl:text>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+ <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>&nbsp;</xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>=&nbsp;</xsl:text>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+ <xsl:param name="indent">0</xsl:param>
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>,</xsl:text>
+ <br/>
+ <xsl:if test="$indent &gt; 0">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string">&nbsp;</xsl:with-param>
+ <xsl:with-param name="count" select="$indent + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="java"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="decl">
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+ <!-- type -->
+ <xsl:if test="local-name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="java"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="java"/>
+ </xsl:variable>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$decl"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="java">
+ <xsl:with-param name="indent" select="string-length($decl)"/>
+ </xsl:apply-templates>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="java"/>
+ </xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="java"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+ <xsl:if test="oointerface|ooexception">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text> implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="cpp"/>
+ <xsl:if test="ooexception">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text> throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="cpp"/>
+ </xsl:if>
+ <xsl:text>&nbsp;{</xsl:text>
+ <br/>
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="cpp"/>
+ <xsl:text>}</xsl:text>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+ <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>&nbsp;</xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>=&nbsp;</xsl:text>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="cpp"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+ <!-- type -->
+ <xsl:if test="local-name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="cpp"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="cpp"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="cpp"/>
+ </xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>interface </xsl:text>
+ <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+ <xsl:if test="oointerface|ooexception">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text> implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="idl"/>
+ <xsl:if test="ooexception">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text> throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="idl"/>
+ </xsl:if>
+ <xsl:text>&nbsp;{</xsl:text>
+ <br/>
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="idl"/>
+ <xsl:text>}</xsl:text>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+ <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>&nbsp;</xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>=&nbsp;</xsl:text>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="idl"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+ <!-- type -->
+ <xsl:if test="local-name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="idl"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="idl"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <br/>
+ <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;raises(</xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="idl"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>package </xsl:text>
+ <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+ <xsl:text>;</xsl:text>
+ <br/>
+
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text>@ISA = (</xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+ <xsl:text>);</xsl:text>
+ <br/>
+ </xsl:if>
+
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="perl"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+ <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>&nbsp;</xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>&nbsp;&nbsp;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text>&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>=&nbsp;</xsl:text>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void&nbsp;</xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="perl"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>sub </xsl:text>
+
+ <xsl:apply-templates select="methodname" mode="perl"/>
+ <xsl:text> { ... };</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/table.xsl b/docs/xsl-generic/html/table.xsl
new file mode 100644
index 00000000..9e85d6d0
--- /dev/null
+++ b/docs/xsl-generic/html/table.xsl
@@ -0,0 +1,1120 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+ xmlns:xtbl="xalan://com.nwalsh.xalan.Table"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table"
+ exclude-result-prefixes="doc stbl xtbl lxslt ptbl"
+ version='1.0'>
+
+<xsl:include href="../common/table.xsl"/>
+
+<!-- ********************************************************************
+ $Id: table.xsl 7009 2007-07-11 09:42:54Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<lxslt:component prefix="xtbl"
+ functions="adjustColumnWidths"/>
+
+<xsl:template name="empty.table.cell">
+ <xsl:param name="colnum" select="0"/>
+
+ <xsl:variable name="rowsep">
+ <xsl:choose>
+ <!-- If this is the last row, rowsep never applies. -->
+ <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row
+ or ancestor-or-self::thead/following-sibling::tbody
+ or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+ <xsl:value-of select="0"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+ <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="'rowsep'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="colsep">
+ <xsl:choose>
+ <!-- If this is the last column, colsep never applies. -->
+ <xsl:when test="number($colnum) &gt;= ancestor::tgroup/@cols">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+ <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+ <xsl:with-param name="colnum" select="$colnum"/>
+ <xsl:with-param name="attribute" select="'colsep'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <td class="auto-generated">
+ <xsl:if test="$table.borders.with.css != 0">
+ <xsl:attribute name="style">
+ <xsl:if test="$colsep &gt; 0">
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'right'"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$rowsep &gt; 0">
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'bottom'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="border">
+ <xsl:param name="side" select="'left'"/>
+ <xsl:param name="padding" select="0"/>
+ <xsl:param name="style" select="$table.cell.border.style"/>
+ <xsl:param name="color" select="$table.cell.border.color"/>
+ <xsl:param name="thickness" select="$table.cell.border.thickness"/>
+
+ <!-- Note: Some browsers (mozilla) require at least a width and style. -->
+
+ <xsl:choose>
+ <xsl:when test="($thickness != ''
+ and $style != ''
+ and $color != '')
+ or ($thickness != ''
+ and $style != '')
+ or ($thickness != '')">
+ <!-- use the compound property if we can: -->
+ <!-- it saves space and probably works more reliably -->
+ <xsl:text>border-</xsl:text>
+ <xsl:value-of select="$side"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="$thickness"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$style"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$color"/>
+ <xsl:text>; </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- we need to specify the styles individually -->
+ <xsl:if test="$thickness != ''">
+ <xsl:text>border-</xsl:text>
+ <xsl:value-of select="$side"/>
+ <xsl:text>-width: </xsl:text>
+ <xsl:value-of select="$thickness"/>
+ <xsl:text>; </xsl:text>
+ </xsl:if>
+
+ <xsl:if test="$style != ''">
+ <xsl:text>border-</xsl:text>
+ <xsl:value-of select="$side"/>
+ <xsl:text>-style: </xsl:text>
+ <xsl:value-of select="$style"/>
+ <xsl:text>; </xsl:text>
+ </xsl:if>
+
+ <xsl:if test="$color != ''">
+ <xsl:text>border-</xsl:text>
+ <xsl:value-of select="$side"/>
+ <xsl:text>-color: </xsl:text>
+ <xsl:value-of select="$color"/>
+ <xsl:text>; </xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tgroup" name="tgroup">
+ <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'">
+ <xsl:message terminate="yes">
+ <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="summary">
+ <xsl:call-template name="pi.dbhtml_table-summary"/>
+ </xsl:variable>
+
+ <xsl:variable name="cellspacing">
+ <xsl:call-template name="pi.dbhtml_cellspacing"/>
+ </xsl:variable>
+
+ <xsl:variable name="cellpadding">
+ <xsl:call-template name="pi.dbhtml_cellpadding"/>
+ </xsl:variable>
+
+ <table>
+ <xsl:choose>
+ <!-- If there's a textobject/phrase for the table summary, use it -->
+ <xsl:when test="../textobject/phrase">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="../textobject/phrase"/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+ the HTML table summary attribute -->
+ <xsl:when test="$summary != ''">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="$summary"/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <!-- Otherwise, if there's a title, use that -->
+ <xsl:when test="../title">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="string(../title)"/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <!-- Otherwise, forget the whole idea -->
+ <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$cellspacing != '' or $html.cellspacing != ''">
+ <xsl:attribute name="cellspacing">
+ <xsl:choose>
+ <xsl:when test="$cellspacing != ''">
+ <xsl:value-of select="$cellspacing"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$html.cellspacing"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$cellpadding != '' or $html.cellpadding != ''">
+ <xsl:attribute name="cellpadding">
+ <xsl:choose>
+ <xsl:when test="$cellpadding != ''">
+ <xsl:value-of select="$cellpadding"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$html.cellpadding"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="../@pgwide=1 or local-name(.) = 'entrytbl'">
+ <xsl:attribute name="width">100%</xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$table.borders.with.css != 0">
+ <xsl:choose>
+ <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')">
+ <xsl:attribute name="style">
+ <xsl:text>border-collapse: collapse;</xsl:text>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'top'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'bottom'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'left'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'right'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../@frame='topbot' or (not(../@frame) and $default.table.frame='topbot')">
+ <xsl:attribute name="style">
+ <xsl:text>border-collapse: collapse;</xsl:text>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'top'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'bottom'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../@frame='top' or (not(../@frame) and $default.table.frame='top')">
+ <xsl:attribute name="style">
+ <xsl:text>border-collapse: collapse;</xsl:text>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'top'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../@frame='bottom' or (not(../@frame) and $default.table.frame='bottom')">
+ <xsl:attribute name="style">
+ <xsl:text>border-collapse: collapse;</xsl:text>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'bottom'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../@frame='sides' or (not(../@frame) and $default.table.frame='sides')">
+ <xsl:attribute name="style">
+ <xsl:text>border-collapse: collapse;</xsl:text>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'left'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'right'"/>
+ <xsl:with-param name="style" select="$table.frame.border.style"/>
+ <xsl:with-param name="color" select="$table.frame.border.color"/>
+ <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../@frame='none'">
+ <xsl:attribute name="style">
+ <xsl:text>border: none;</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style">
+ <xsl:text>border-collapse: collapse;</xsl:text>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:when>
+ <xsl:when test="../@frame='none' or (not(../@frame) and $default.table.frame='none') or local-name(.) = 'entrytbl'">
+ <xsl:attribute name="border">0</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="border">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="colgroup">
+ <colgroup>
+ <xsl:call-template name="generate.colgroup">
+ <xsl:with-param name="cols" select="@cols"/>
+ </xsl:call-template>
+ </colgroup>
+ </xsl:variable>
+
+ <xsl:variable name="explicit.table.width">
+ <xsl:call-template name="pi.dbhtml_table-width">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="table.width">
+ <xsl:choose>
+ <xsl:when test="$explicit.table.width != ''">
+ <xsl:value-of select="$explicit.table.width"/>
+ </xsl:when>
+ <xsl:when test="$default.table.width = ''">
+ <xsl:text>100%</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default.table.width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="$default.table.width != ''
+ or $explicit.table.width != ''">
+ <xsl:attribute name="width">
+ <xsl:choose>
+ <xsl:when test="contains($table.width, '%')">
+ <xsl:value-of select="$table.width"/>
+ </xsl:when>
+ <xsl:when test="$use.extensions != 0
+ and $tablecolumns.extension != 0">
+ <xsl:choose>
+ <xsl:when test="function-available('stbl:convertLength')">
+ <xsl:value-of select="stbl:convertLength($table.width)"/>
+ </xsl:when>
+ <xsl:when test="function-available('xtbl:convertLength')">
+ <xsl:value-of select="xtbl:convertLength($table.width)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No convertLength function available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$table.width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$use.extensions != 0
+ and $tablecolumns.extension != 0">
+ <xsl:choose>
+ <xsl:when test="function-available('stbl:adjustColumnWidths')">
+ <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/>
+ </xsl:when>
+ <xsl:when test="function-available('xtbl:adjustColumnWidths')">
+ <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/>
+ </xsl:when>
+ <xsl:when test="function-available('ptbl:adjustColumnWidths')">
+ <xsl:copy-of select="ptbl:adjustColumnWidths($colgroup)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No adjustColumnWidths function available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$colgroup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:apply-templates select="thead"/>
+ <xsl:apply-templates select="tfoot"/>
+ <xsl:apply-templates select="tbody"/>
+
+ <xsl:if test=".//footnote">
+ <tbody class="footnotes">
+ <tr>
+ <td colspan="{@cols}">
+ <xsl:apply-templates select=".//footnote" mode="table.footnote.mode"/>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:if>
+ </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+ <xsl:variable name="summary">
+ <xsl:call-template name="pi.dbhtml_table-summary"/>
+ </xsl:variable>
+
+ <!-- Suppress the table-summary PI -->
+ <xsl:if test="$summary = ''">
+ <xsl:processing-instruction name="dbhtml">
+ <xsl:value-of select="."/>
+ </xsl:processing-instruction>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead|tfoot">
+ <xsl:element name="{local-name(.)}">
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates select="row[1]">
+ <xsl:with-param name="spans">
+ <xsl:call-template name="blank.spans">
+ <xsl:with-param name="cols" select="../@cols"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:apply-templates>
+
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+ <tbody>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates select="row[1]">
+ <xsl:with-param name="spans">
+ <xsl:call-template name="blank.spans">
+ <xsl:with-param name="cols" select="../@cols"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:apply-templates>
+
+ </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+ <xsl:param name="spans"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($spans, '0')">
+ <xsl:call-template name="normal-row">
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--
+ <xsl:message>
+ <xsl:text>Ignoring row: </xsl:text>
+ <xsl:value-of select="$spans"/>
+ <xsl:text> = </xsl:text>
+ <xsl:call-template name="consume-row">
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:call-template>
+ </xsl:message>
+ -->
+
+ <xsl:if test="normalize-space(.//text()) != ''">
+ <xsl:message>Warning: overlapped row contains content!</xsl:message>
+ </xsl:if>
+
+ <tr><xsl:comment> This row intentionally left blank </xsl:comment></tr>
+
+ <xsl:apply-templates select="following-sibling::row[1]">
+ <xsl:with-param name="spans">
+ <xsl:call-template name="consume-row">
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="normal-row">
+ <xsl:param name="spans"/>
+
+ <xsl:variable name="row-height">
+ <xsl:if test="processing-instruction('dbhtml')">
+ <xsl:call-template name="pi.dbhtml_row-height"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="bgcolor">
+ <xsl:if test="processing-instruction('dbhtml')">
+ <xsl:call-template name="pi.dbhtml_bgcolor"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="class">
+ <xsl:if test="processing-instruction('dbhtml')">
+ <xsl:call-template name="pi.dbhtml_class"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <tr>
+ <xsl:call-template name="tr.attributes">
+ <xsl:with-param name="rownum">
+ <xsl:number from="tgroup" count="row"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="$row-height != ''">
+ <xsl:attribute name="height">
+ <xsl:value-of select="$row-height"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$bgcolor != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$bgcolor"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$class"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$table.borders.with.css != 0">
+ <xsl:if test="@rowsep = 1 and following-sibling::row">
+ <xsl:attribute name="style">
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'bottom'"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates select="(entry|entrytbl)[1]">
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:apply-templates>
+ </tr>
+
+ <xsl:if test="following-sibling::row">
+ <xsl:variable name="nextspans">
+ <xsl:apply-templates select="(entry|entrytbl)[1]" mode="span">
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:apply-templates>
+ </xsl:variable>
+
+ <xsl:apply-templates select="following-sibling::row[1]">
+ <xsl:with-param name="spans" select="$nextspans"/>
+ </xsl:apply-templates>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="entry">
+ <xsl:param name="col" select="1"/>
+ <xsl:param name="spans"/>
+
+ <xsl:variable name="cellgi">
+ <xsl:choose>
+ <xsl:when test="ancestor::thead">th</xsl:when>
+ <xsl:when test="ancestor::tfoot">th</xsl:when>
+ <xsl:otherwise>td</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+ <xsl:variable name="named.colnum">
+ <xsl:call-template name="entry.colnum"/>
+ </xsl:variable>
+
+ <xsl:variable name="entry.colnum">
+ <xsl:choose>
+ <xsl:when test="$named.colnum &gt; 0">
+ <xsl:value-of select="$named.colnum"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$col"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="entry.colspan">
+ <xsl:choose>
+ <xsl:when test="@spanname or @namest">
+ <xsl:call-template name="calculate.colspan"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="following.spans">
+ <xsl:call-template name="calculate.following.spans">
+ <xsl:with-param name="colspan" select="$entry.colspan"/>
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="rowsep">
+ <xsl:choose>
+ <!-- If this is the last row, rowsep never applies. -->
+ <xsl:when test="ancestor::entrytbl
+ and not (ancestor-or-self::row[1]/following-sibling::row)">
+ <xsl:value-of select="0"/>
+ </xsl:when>
+ <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row
+ or ancestor-or-self::thead/following-sibling::tbody
+ or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+ <xsl:value-of select="0"/>
+ </xsl:when>
+ <xsl:when test="@morerows and not(@morerows &lt;
+ count(ancestor-or-self::row[1]/following-sibling::row))">
+ <xsl:value-of select="0"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="."/>
+ <xsl:with-param name="colnum" select="$entry.colnum"/>
+ <xsl:with-param name="attribute" select="'rowsep'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="colsep">
+ <xsl:choose>
+ <!-- If this is the last column, colsep never applies. -->
+ <xsl:when test="$following.spans = ''">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="."/>
+ <xsl:with-param name="colnum" select="$entry.colnum"/>
+ <xsl:with-param name="attribute" select="'colsep'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="valign">
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="."/>
+ <xsl:with-param name="colnum" select="$entry.colnum"/>
+ <xsl:with-param name="attribute" select="'valign'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="align">
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="."/>
+ <xsl:with-param name="colnum" select="$entry.colnum"/>
+ <xsl:with-param name="attribute" select="'align'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="char">
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="."/>
+ <xsl:with-param name="colnum" select="$entry.colnum"/>
+ <xsl:with-param name="attribute" select="'char'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="charoff">
+ <xsl:call-template name="inherited.table.attribute">
+ <xsl:with-param name="entry" select="."/>
+ <xsl:with-param name="colnum" select="$entry.colnum"/>
+ <xsl:with-param name="attribute" select="'charoff'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+ <xsl:call-template name="entry">
+ <xsl:with-param name="col" select="$col+1"/>
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="number($entry.colnum) &gt; $col">
+ <xsl:call-template name="empty.table.cell"/>
+ <xsl:call-template name="entry">
+ <xsl:with-param name="col" select="$col+1"/>
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="bgcolor">
+ <xsl:if test="processing-instruction('dbhtml')">
+ <xsl:call-template name="pi.dbhtml_bgcolor"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:element name="{$cellgi}">
+ <xsl:if test="$bgcolor != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$bgcolor"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$entry.propagates.style != 0 and @role">
+ <xsl:apply-templates select="." mode="class.attribute">
+ <xsl:with-param name="class" select="@role"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:if test="$show.revisionflag and @revisionflag">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@revisionflag"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$table.borders.with.css != 0">
+ <xsl:attribute name="style">
+ <xsl:if test="$colsep &gt; 0">
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'right'"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$rowsep &gt; 0">
+ <xsl:call-template name="border">
+ <xsl:with-param name="side" select="'bottom'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="@morerows &gt; 0">
+ <xsl:attribute name="rowspan">
+ <xsl:value-of select="1+@morerows"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$entry.colspan &gt; 1">
+ <xsl:attribute name="colspan">
+ <xsl:value-of select="$entry.colspan"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$align != ''">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$align"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$valign != ''">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="$valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$char != ''">
+ <xsl:attribute name="char">
+ <xsl:value-of select="$char"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$charoff != ''">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="$charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="not(preceding-sibling::*) and
+ (ancestor::row[1]/@id or ancestor::row[1]/@xml:id)">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="ancestor::row[1]"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:call-template name="anchor"/>
+
+ <xsl:choose>
+ <xsl:when test="$empty.cell">
+ <xsl:text>&#160;</xsl:text>
+ </xsl:when>
+ <xsl:when test="self::entrytbl">
+ <xsl:call-template name="tgroup"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+
+ <xsl:choose>
+ <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+ <xsl:apply-templates select="(following-sibling::entry
+ |following-sibling::entrytbl)[1]">
+ <xsl:with-param name="col" select="$col+$entry.colspan"/>
+ <xsl:with-param name="spans" select="$following.spans"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="finaltd">
+ <xsl:with-param name="spans" select="$following.spans"/>
+ <xsl:with-param name="col" select="$col+$entry.colspan"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="sentry" mode="span">
+ <xsl:param name="col" select="1"/>
+ <xsl:param name="spans"/>
+
+ <xsl:variable name="entry.colnum">
+ <xsl:call-template name="entry.colnum"/>
+ </xsl:variable>
+
+ <xsl:variable name="entry.colspan">
+ <xsl:choose>
+ <xsl:when test="@spanname or @namest">
+ <xsl:call-template name="calculate.colspan"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="following.spans">
+ <xsl:call-template name="calculate.following.spans">
+ <xsl:with-param name="colspan" select="$entry.colspan"/>
+ <xsl:with-param name="spans" select="$spans"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+ <xsl:value-of select="substring-before($spans,':')-1"/>
+ <xsl:text>:</xsl:text>
+ <xsl:call-template name="sentry">
+ <xsl:with-param name="col" select="$col+1"/>
+ <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="number($entry.colnum) &gt; $col">
+ <xsl:text>0:</xsl:text>
+ <xsl:call-template name="sentry">
+ <xsl:with-param name="col" select="$col+$entry.colspan"/>
+ <xsl:with-param name="spans" select="$following.spans"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="count" select="$entry.colspan"/>
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="@morerows">
+ <xsl:value-of select="@morerows"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>:</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:choose>
+ <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+ <xsl:apply-templates select="(following-sibling::entry
+ |following-sibling::entrytbl)[1]"
+ mode="span">
+ <xsl:with-param name="col" select="$col+$entry.colspan"/>
+ <xsl:with-param name="spans" select="$following.spans"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sfinaltd">
+ <xsl:with-param name="spans" select="$following.spans"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+ <xsl:param name="cols" select="1"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$count &gt; $cols"></xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="generate.col">
+ <xsl:with-param name="countcol" select="$count"/>
+ </xsl:call-template>
+ <xsl:call-template name="generate.colgroup">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+ <xsl:param name="countcol">1</xsl:param>
+ <xsl:param name="colspecs" select="./colspec"/>
+ <xsl:param name="count">1</xsl:param>
+ <xsl:param name="colnum">1</xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($colspecs)">
+ <col/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+ <xsl:variable name="colspec.colnum">
+ <xsl:choose>
+ <xsl:when test="$colspec/@colnum">
+ <xsl:value-of select="$colspec/@colnum"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$colnum"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$colspec.colnum=$countcol">
+ <col>
+ <xsl:if test="$colspec/@colwidth
+ and $use.extensions != 0
+ and $tablecolumns.extension != 0">
+ <xsl:attribute name="width">
+ <xsl:choose>
+ <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+ <xsl:value-of select="'1*'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$colspec/@colwidth"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$colspec/@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$colspec/@align"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- Suggested by Pavel ZAMPACH <zampach@nemcb.cz> -->
+ <xsl:when test="$colspecs/ancestor::tgroup/@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$colspecs/ancestor::tgroup/@align"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$colspec/@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="$colspec/@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$colspec/@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="$colspec/@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ </col>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="generate.col">
+ <xsl:with-param name="countcol" select="$countcol"/>
+ <xsl:with-param name="colspecs" select="$colspecs"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ <xsl:with-param name="colnum">
+ <xsl:choose>
+ <xsl:when test="$colspec/@colnum">
+ <xsl:value-of select="$colspec/@colnum + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$colnum + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+ <!-- when this macro is called, the current context must be an entry -->
+ <xsl:param name="colname"></xsl:param>
+ <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+ <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+ <xsl:param name="count">1</xsl:param>
+ <xsl:choose>
+ <xsl:when test="$count>count($colspecs)"></xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+ <xsl:choose>
+ <xsl:when test="$colspec/@colname=$colname">
+ <xsl:value-of select="$colspec/@colwidth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="colspec.colwidth">
+ <xsl:with-param name="colname" select="$colname"/>
+ <xsl:with-param name="colspecs" select="$colspecs"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="tr.attributes">
+ <xsl:param name="row" select="."/>
+ <xsl:param name="rownum" select="0"/>
+
+ <!-- by default, do nothing. But you might want to say:
+
+ <xsl:if test="$rownum mod 2 = 0">
+ <xsl:attribute name="class">oddrow</xsl:attribute>
+ </xsl:if>
+
+ -->
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/task.xsl b/docs/xsl-generic/html/task.xsl
new file mode 100644
index 00000000..d4d22f60
--- /dev/null
+++ b/docs/xsl-generic/html/task.xsl
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!-- ********************************************************************
+ $Id: task.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="task">
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="preamble"
+ select="*[not(self::title
+ or self::titleabbrev)]"/>
+
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:if test="title and $placement = 'before'">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="$preamble"/>
+
+ <xsl:if test="title and $placement != 'before'">
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="task/title">
+ <!-- nop -->
+</xsl:template>
+
+<xsl:template match="tasksummary">
+ <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="tasksummary/title"/>
+
+<xsl:template match="taskprerequisites">
+ <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskprerequisites/title"/>
+
+<xsl:template match="taskrelated">
+ <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskrelated/title"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/titlepage.templates.xml b/docs/xsl-generic/html/titlepage.templates.xml
new file mode 100644
index 00000000..664dc14e
--- /dev/null
+++ b/docs/xsl-generic/html/titlepage.templates.xml
@@ -0,0 +1,662 @@
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+ xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="article" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <hr/>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="set" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <hr/>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="book" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <hr/>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="part" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="division.title"
+ param:node="ancestor-or-self::part[1]"/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="partintro" t:wrapper="div">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="reference" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <hr/>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refentry" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+<!-- uncomment this if you want refentry titlepages
+ <title t:force="1"
+ t:named-template="refentry.title"
+ param:node="ancestor-or-self::refentry[1]"/>
+-->
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator/>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+ <t:titlepage t:element="dedication" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::dedication[1]"/>
+ <subtitle/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="preface" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="chapter" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="appendix" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="section" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect1" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect2" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect3" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect4" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect5" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="simplesect" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title/>
+ <subtitle/>
+ <corpauthor/>
+ <authorgroup/>
+ <author/>
+ <othercredit/>
+ <releaseinfo/>
+ <copyright/>
+ <legalnotice/>
+ <pubdate/>
+ <revision/>
+ <revhistory/>
+ <abstract/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="bibliography" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::bibliography[1]"/>
+ <subtitle/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="glossary" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::glossary[1]"/>
+ <subtitle/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="index" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::index[1]"/>
+ <subtitle/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="setindex" t:wrapper="div" class="titlepage">
+ <t:titlepage-content t:side="recto">
+ <title
+ t:force="1"
+ t:named-template="component.title"
+ param:node="ancestor-or-self::setindex[1]"/>
+ <subtitle/>
+ </t:titlepage-content>
+
+ <t:titlepage-content t:side="verso">
+ </t:titlepage-content>
+
+ <t:titlepage-separator>
+ </t:titlepage-separator>
+
+ <t:titlepage-before t:side="recto">
+ </t:titlepage-before>
+
+ <t:titlepage-before t:side="verso">
+ </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+</t:templates>
diff --git a/docs/xsl-generic/html/titlepage.templates.xsl b/docs/xsl-generic/html/titlepage.templates.xsl
new file mode 100644
index 00000000..5fef8eca
--- /dev/null
+++ b/docs/xsl-generic/html/titlepage.templates.xsl
@@ -0,0 +1,3622 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- This stylesheet was created by template/titlepage.xsl-->
+
+<xsl:template name="article.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="articleinfo/title">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+ </xsl:when>
+ <xsl:when test="artheader/title">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="articleinfo/subtitle">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="artheader/subtitle">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="article.titlepage.before.recto"/>
+ <xsl:call-template name="article.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="article.titlepage.before.verso"/>
+ <xsl:call-template name="article.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="article.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="setinfo/title">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="setinfo/subtitle">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="set.titlepage.before.recto"/>
+ <xsl:call-template name="set.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="set.titlepage.before.verso"/>
+ <xsl:call-template name="set.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="set.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="bookinfo/title">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="bookinfo/subtitle">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="book.titlepage.before.recto"/>
+ <xsl:call-template name="book.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="book.titlepage.before.verso"/>
+ <xsl:call-template name="book.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="book.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+ <div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template></div>
+ <xsl:choose>
+ <xsl:when test="partinfo/subtitle">
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="part.titlepage.before.recto"/>
+ <xsl:call-template name="part.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="part.titlepage.before.verso"/>
+ <xsl:call-template name="part.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="part.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="partintroinfo/title">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="partintroinfo/subtitle">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+ <div>
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="partintro.titlepage.before.recto"/>
+ <xsl:call-template name="partintro.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="partintro.titlepage.before.verso"/>
+ <xsl:call-template name="partintro.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="partintro.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="referenceinfo/title">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="referenceinfo/subtitle">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="reference.titlepage.before.recto"/>
+ <xsl:call-template name="reference.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="reference.titlepage.before.verso"/>
+ <xsl:call-template name="reference.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="reference.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="refentry.titlepage.before.recto"/>
+ <xsl:call-template name="refentry.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="refentry.titlepage.before.verso"/>
+ <xsl:call-template name="refentry.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="refentry.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.recto">
+ <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+ <xsl:choose>
+ <xsl:when test="dedicationinfo/subtitle">
+ <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="dedication.titlepage.before.recto"/>
+ <xsl:call-template name="dedication.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="dedication.titlepage.before.verso"/>
+ <xsl:call-template name="dedication.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="dedication.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="prefaceinfo/title">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="prefaceinfo/subtitle">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="preface.titlepage.before.recto"/>
+ <xsl:call-template name="preface.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="preface.titlepage.before.verso"/>
+ <xsl:call-template name="preface.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="preface.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="chapterinfo/title">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="chapterinfo/subtitle">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="chapter.titlepage.before.recto"/>
+ <xsl:call-template name="chapter.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="chapter.titlepage.before.verso"/>
+ <xsl:call-template name="chapter.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="chapter.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="appendixinfo/title">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="appendixinfo/subtitle">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="appendix.titlepage.before.recto"/>
+ <xsl:call-template name="appendix.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="appendix.titlepage.before.verso"/>
+ <xsl:call-template name="appendix.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="appendix.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="sectioninfo/title">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="sectioninfo/subtitle">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="section.titlepage.before.recto"/>
+ <xsl:call-template name="section.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="section.titlepage.before.verso"/>
+ <xsl:call-template name="section.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="section.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="sect1info/title">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="sect1info/subtitle">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="sect1.titlepage.before.recto"/>
+ <xsl:call-template name="sect1.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="sect1.titlepage.before.verso"/>
+ <xsl:call-template name="sect1.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="sect1.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="sect2info/title">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="sect2info/subtitle">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="sect2.titlepage.before.recto"/>
+ <xsl:call-template name="sect2.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="sect2.titlepage.before.verso"/>
+ <xsl:call-template name="sect2.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="sect2.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="sect3info/title">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="sect3info/subtitle">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="sect3.titlepage.before.recto"/>
+ <xsl:call-template name="sect3.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="sect3.titlepage.before.verso"/>
+ <xsl:call-template name="sect3.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="sect3.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="sect4info/title">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="sect4info/subtitle">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="sect4.titlepage.before.recto"/>
+ <xsl:call-template name="sect4.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="sect4.titlepage.before.verso"/>
+ <xsl:call-template name="sect4.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="sect4.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="sect5info/title">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="sect5info/subtitle">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="sect5.titlepage.before.recto"/>
+ <xsl:call-template name="sect5.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="sect5.titlepage.before.verso"/>
+ <xsl:call-template name="sect5.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="sect5.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+ <xsl:choose>
+ <xsl:when test="simplesectinfo/title">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+ </xsl:when>
+ <xsl:when test="docinfo/title">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+ </xsl:when>
+ <xsl:when test="info/title">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+ </xsl:when>
+ <xsl:when test="title">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="simplesectinfo/subtitle">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="simplesect.titlepage.before.recto"/>
+ <xsl:call-template name="simplesect.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="simplesect.titlepage.before.verso"/>
+ <xsl:call-template name="simplesect.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="simplesect.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+ <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+ <xsl:choose>
+ <xsl:when test="bibliographyinfo/subtitle">
+ <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="bibliography.titlepage.before.recto"/>
+ <xsl:call-template name="bibliography.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="bibliography.titlepage.before.verso"/>
+ <xsl:call-template name="bibliography.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="bibliography.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+ <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+ <xsl:choose>
+ <xsl:when test="glossaryinfo/subtitle">
+ <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="glossary.titlepage.before.recto"/>
+ <xsl:call-template name="glossary.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="glossary.titlepage.before.verso"/>
+ <xsl:call-template name="glossary.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="glossary.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+ <div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+ <xsl:choose>
+ <xsl:when test="indexinfo/subtitle">
+ <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="index.titlepage.before.recto"/>
+ <xsl:call-template name="index.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="index.titlepage.before.verso"/>
+ <xsl:call-template name="index.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="index.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="index.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+ <div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+</xsl:call-template></div>
+ <xsl:choose>
+ <xsl:when test="setindexinfo/subtitle">
+ <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="docinfo/subtitle">
+ <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+ </xsl:when>
+ <xsl:when test="info/subtitle">
+ <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+ </xsl:when>
+ <xsl:when test="subtitle">
+ <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+ </xsl:when>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+ <div class="titlepage">
+ <xsl:variable name="recto.content">
+ <xsl:call-template name="setindex.titlepage.before.recto"/>
+ <xsl:call-template name="setindex.titlepage.recto"/>
+ </xsl:variable>
+ <xsl:variable name="recto.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$recto.content"/></div>
+ </xsl:if>
+ <xsl:variable name="verso.content">
+ <xsl:call-template name="setindex.titlepage.before.verso"/>
+ <xsl:call-template name="setindex.titlepage.verso"/>
+ </xsl:variable>
+ <xsl:variable name="verso.elements.count">
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
+ <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
+ <div><xsl:copy-of select="$verso.content"/></div>
+ </xsl:if>
+ <xsl:call-template name="setindex.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/html/titlepage.xsl b/docs/xsl-generic/html/titlepage.xsl
new file mode 100644
index 00000000..e2445516
--- /dev/null
+++ b/docs/xsl-generic/html/titlepage.xsl
@@ -0,0 +1,1031 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: titlepage.xsl 7253 2007-08-18 16:49:39Z mzjn $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refentry.titlepage.recto.style"/>
+<xsl:attribute-set name="refentry.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="setindex.titlepage.recto.style"/>
+<xsl:attribute-set name="setindex.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+ <!-- if an element isn't found in this mode, try the default mode -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:if test="$abstract.notitle.enabled = 0">
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+
+ <xsl:variable name="rtf">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $use.extensions != '0'
+ and $linenumbering.extension != '0'">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="content">
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="content">
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="author|editor" mode="titlepage.mode">
+ <xsl:call-template name="credits.div"/>
+</xsl:template>
+
+<xsl:template name="credits.div">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)">
+ <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+ </xsl:if>
+ <h3>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:choose>
+ <xsl:when test="orgname">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h3>
+ <xsl:if test="not($contrib.inline.enabled = 0)">
+ <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+ </xsl:if>
+ <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+ <xsl:apply-templates mode="titlepage.mode" select="email"/>
+ <xsl:if test="not($blurb.on.titlepage.enabled = 0)">
+ <xsl:choose>
+ <xsl:when test="$contrib.inline.enabled = 0">
+ <xsl:apply-templates mode="titlepage.mode"
+ select="contrib|authorblurb|personblurb"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="titlepage.mode"
+ select="authorblurb|personblurb"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="titlepage.mode">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+ <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+ <xsl:choose>
+ <xsl:when test="not($contrib.inline.enabled = 0)">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </span><xsl:text>&#160;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p><xsl:apply-templates mode="titlepage.mode"/></p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+ <p>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Copyright'"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="copyright.years">
+ <xsl:with-param name="years" select="year"/>
+ <xsl:with-param name="print.ranges" select="$make.year.ranges"/>
+ <xsl:with-param name="single.year.ranges"
+ select="$make.single.year.ranges"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+ <span class="{@revisionflag}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+ <span class="{@revisionflag}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="position() &lt; last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+ <h3>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </h3>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+ <p>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Edition'"/>
+ </xsl:call-template>
+ </p>
+</xsl:template>
+
+<xsl:template match="email" mode="titlepage.mode">
+ <!-- use the normal e-mail handling code -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+ <!-- use the normal graphic handling code -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="biblioid" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="titlepage.mode">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$generate.legalnotice.link != 0">
+
+ <!-- Compute name of legalnotice file -->
+ <xsl:variable name="file">
+ <xsl:call-template name="ln.or.rh.filename"/>
+ </xsl:variable>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name" select="$file"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+
+ <a href="{$file}">
+ <xsl:copy-of select="$title"/>
+ </a>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="user.preroot"/>
+ <html>
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content"/>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+ </body>
+ </html>
+ <xsl:value-of select="$chunk.append"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <a name="{$id}"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+ <p class="legalnotice-title"><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+ <xsl:if test="preceding-sibling::*[1][self::orgname]">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+<xsl:choose>
+ <xsl:when test="not($othercredit.like.author.enabled = 0)">
+ <xsl:variable name="contrib" select="string(contrib)"/>
+ <xsl:choose>
+ <xsl:when test="contrib">
+ <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="local-name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+ <xsl:text>: </xsl:text>
+ <xsl:call-template name="person.name"/>
+ <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+ <xsl:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="local-name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="person.name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="credits.div"/>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.othercredits">
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="local-name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="local-name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+ <xsl:call-template name="paragraph">
+ <xsl:with-param name="class" select="local-name(.)"/>
+ <xsl:with-param name="content">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+ <xsl:variable name="numcols">
+ <xsl:choose>
+ <xsl:when test=".//authorinitials|.//author">3</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:variable name="title">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">RevHistory</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="contents">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <table border="1" width="100%" summary="Revision history">
+ <tr>
+ <th align="left" valign="top" colspan="{$numcols}">
+ <b>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RevHistory'"/>
+ </xsl:call-template>
+ </b>
+ </th>
+ </tr>
+ <xsl:apply-templates mode="titlepage.mode">
+ <xsl:with-param name="numcols" select="$numcols"/>
+ </xsl:apply-templates>
+ </table>
+ </div>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$generate.revhistory.link != 0">
+
+ <!-- Compute name of revhistory file -->
+ <xsl:variable name="file">
+ <xsl:call-template name="ln.or.rh.filename">
+ <xsl:with-param name="is.ln" select="false()"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name" select="$file"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <a href="{$file}">
+ <xsl:copy-of select="$title"/>
+ </a>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="user.preroot"/>
+ <html>
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="title">
+ <xsl:value-of select="$title"/>
+ <xsl:if test="../../title">
+ <xsl:value-of select="concat(' (', ../../title, ')')"/>
+ </xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:copy-of select="$contents"/>
+ </body>
+ </html>
+ <xsl:text>&#x0a;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$contents"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+ <xsl:param name="numcols" select="'3'"/>
+ <xsl:variable name="revnumber" select="revnumber"/>
+ <xsl:variable name="revdate" select="date"/>
+ <xsl:variable name="revauthor" select="authorinitials|author"/>
+ <xsl:variable name="revremark" select="revremark|revdescription"/>
+ <tr>
+ <td align="left">
+ <xsl:if test="$revnumber">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Revision'"/>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+ </xsl:if>
+ </td>
+ <td align="left">
+ <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+ </td>
+ <xsl:choose>
+ <xsl:when test="$revauthor">
+ <td align="left">
+ <xsl:for-each select="$revauthor">
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </td>
+ </xsl:when>
+ <xsl:when test="$numcols &gt; 2">
+ <td>&#160;</td>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ <xsl:if test="$revremark">
+ <tr>
+ <td align="left" colspan="{$numcols}">
+ <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+ </td>
+ </tr>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/author" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+ <h2>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+ <xsl:variable name="id">
+ <xsl:choose>
+ <!-- if title is in an *info wrapper, get the grandparent -->
+ <xsl:when test="contains(local-name(..), 'info')">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="../.."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <h1>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$generate.id.attributes = 0">
+ <a name="{$id}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+ <span class="{@revisionflag}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+ <!-- nop; title abbreviations don't belong on the title page! -->
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<!-- This template computes the filename for legalnotice and revhistory chunks -->
+<xsl:template name="ln.or.rh.filename">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="is.ln" select="true()"/>
+
+ <xsl:variable name="dbhtml-filename">
+ <xsl:call-template name="pi.dbhtml_filename">
+ <xsl:with-param name="node" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <!-- 1. If there is a dbhtml_filename PI, use that -->
+ <xsl:when test="$dbhtml-filename != ''">
+ <xsl:value-of select="$dbhtml-filename"/>
+ </xsl:when>
+ <xsl:when test="($node/@id or $node/@xml:id) and not($use.id.as.filename = 0)">
+ <!-- * 2. If this legalnotice/revhistory has an ID, then go ahead and use -->
+ <!-- * just the value of that ID as the basename for the file -->
+ <!-- * (that is, without prepending an "ln-" or "rh-" to it) -->
+ <xsl:value-of select="($node/@id|$node/@xml:id)[1]"/>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:when>
+ <xsl:when test="not ($node/@id or $node/@xml:id) or $use.id.as.filename = 0">
+ <!-- * 3. Otherwise, if this legalnotice/revhistory does not have an ID, or -->
+ <!-- * if $use.id.as.filename = 0 -->
+ <!-- * then we generate an ID... -->
+ <xsl:variable name="id">
+ <xsl:value-of select="generate-id($node)"/>
+ </xsl:variable>
+ <!-- * ...and then we take that generated ID, prepend a -->
+ <!-- * prefix to it, and use that as the basename for the file -->
+ <xsl:choose>
+ <xsl:when test="$is.ln">
+ <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('rh-',$id,$html.ext)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/toc.xsl b/docs/xsl-generic/html/toc.xsl
new file mode 100644
index 00000000..bf1e62c7
--- /dev/null
+++ b/docs/xsl-generic/html/toc.xsl
@@ -0,0 +1,173 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: toc.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="toc">
+ <xsl:choose>
+ <xsl:when test="*">
+ <xsl:if test="$process.source.toc != 0">
+ <!-- if the toc isn't empty, process it -->
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$process.empty.source.toc != 0">
+ <xsl:choose>
+ <xsl:when test="parent::section
+ or parent::sect1
+ or parent::sect2
+ or parent::sect3
+ or parent::sect4
+ or parent::sect5">
+ <xsl:apply-templates select="parent::*"
+ mode="toc.for.section"/>
+ </xsl:when>
+ <xsl:when test="parent::article">
+ <xsl:apply-templates select="parent::*"
+ mode="toc.for.component"/>
+ </xsl:when>
+ <xsl:when test="parent::book
+ or parent::part">
+ <xsl:apply-templates select="parent::*"
+ mode="toc.for.division"/>
+ </xsl:when>
+ <xsl:when test="parent::set">
+ <xsl:apply-templates select="parent::*"
+ mode="toc.for.set"/>
+ </xsl:when>
+ <!-- there aren't any other contexts that allow toc -->
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>I don't know how to make a TOC in this context!</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocpart|tocchap
+ |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+ <xsl:variable name="sub-toc">
+ <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">
+ <dd>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/>
+ </xsl:element>
+ </dd>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:apply-templates select="tocentry[position() != last()]"/>
+
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">
+ <dt>
+ <xsl:apply-templates select="tocentry[position() = last()]"/>
+ </dt>
+ <xsl:copy-of select="$sub-toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <li>
+ <xsl:apply-templates select="tocentry[position() = last()]"/>
+ <xsl:copy-of select="$sub-toc"/>
+ </li>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry|tocfront|tocback">
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">
+ <dt>
+ <xsl:call-template name="tocentry-content"/>
+ </dt>
+ </xsl:when>
+ <xsl:otherwise>
+ <li>
+ <xsl:call-template name="tocentry-content"/>
+ </li>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry[position() = last()]" priority="2">
+ <xsl:call-template name="tocentry-content"/>
+</xsl:template>
+
+<xsl:template name="tocentry-content">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="@linkend">
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="toc.for.section">
+ <xsl:call-template name="section.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.component">
+ <xsl:call-template name="component.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.section">
+ <xsl:call-template name="section.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.division">
+ <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.set">
+ <xsl:call-template name="set.toc"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="lot|lotentry">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/verbatim.xsl b/docs/xsl-generic/html/verbatim.xsl
new file mode 100644
index 00000000..13ad10ef
--- /dev/null
+++ b/docs/xsl-generic/html/verbatim.xsl
@@ -0,0 +1,376 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+ xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="sverb xverb lxslt exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: verbatim.xsl 6946 2007-07-04 10:21:57Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:include href="../highlighting/common.xsl"/>
+<xsl:include href="highlight.xsl"/>
+
+<lxslt:component prefix="xverb"
+ functions="numberLines"/>
+
+<xsl:template match="programlisting|screen|synopsis">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:call-template name="anchor"/>
+
+ <xsl:if test="$shade.verbatim != 0">
+ <xsl:message>
+ <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+ <xsl:text>Use CSS instead,</xsl:text>
+ </xsl:message>
+ <xsl:message>
+ <xsl:text>for example: pre.</xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $use.extensions != '0'
+ and $linenumbering.extension != '0'">
+ <xsl:variable name="rtf">
+ <xsl:call-template name="apply-highlighting"/>
+ </xsl:variable>
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </pre>
+ </xsl:when>
+ <xsl:otherwise>
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="apply-highlighting"/>
+ </pre>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+
+ <xsl:variable name="rtf">
+ <xsl:apply-templates/>
+ </xsl:variable>
+
+ <xsl:if test="$shade.verbatim != 0 and @class='monospaced'">
+ <xsl:message>
+ <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+ <xsl:text>Use CSS instead,</xsl:text>
+ </xsl:message>
+ <xsl:message>
+ <xsl:text>for example: pre.</xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $use.extensions != '0'
+ and $linenumbering.extension != '0'">
+ <xsl:choose>
+ <xsl:when test="@class='monospaced'">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </pre>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p>
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@class='monospaced'">
+ <pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$rtf"/>
+ </pre>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p>
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+
+ <xsl:variable name="rtf">
+ <xsl:apply-templates/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $use.extensions != '0'
+ and $linenumbering.extension != '0'">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p>
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </p>
+ </div>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p>
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="rtf" select="$rtf"/>
+ </xsl:call-template>
+ </p>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+ <xsl:param name="rtf" select="''"/>
+ <xsl:param name="pi.context" select="."/>
+
+ <!-- Save the global values -->
+ <xsl:variable name="global.linenumbering.everyNth"
+ select="$linenumbering.everyNth"/>
+
+ <xsl:variable name="global.linenumbering.separator"
+ select="$linenumbering.separator"/>
+
+ <xsl:variable name="global.linenumbering.width"
+ select="$linenumbering.width"/>
+
+ <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
+ <xsl:variable name="pi.linenumbering.everyNth">
+ <xsl:call-template name="pi.dbhtml_linenumbering.everyNth">
+ <xsl:with-param name="node" select="$pi.context"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="pi.linenumbering.separator">
+ <xsl:call-template name="pi.dbhtml_linenumbering.separator">
+ <xsl:with-param name="node" select="$pi.context"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="pi.linenumbering.width">
+ <xsl:call-template name="pi.dbhtml_linenumbering.width">
+ <xsl:with-param name="node" select="$pi.context"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- Construct the 'in-context' values -->
+ <xsl:variable name="linenumbering.everyNth">
+ <xsl:choose>
+ <xsl:when test="$pi.linenumbering.everyNth != ''">
+ <xsl:value-of select="$pi.linenumbering.everyNth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$global.linenumbering.everyNth"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="linenumbering.separator">
+ <xsl:choose>
+ <xsl:when test="$pi.linenumbering.separator != ''">
+ <xsl:value-of select="$pi.linenumbering.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$global.linenumbering.separator"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="linenumbering.width">
+ <xsl:choose>
+ <xsl:when test="$pi.linenumbering.width != ''">
+ <xsl:value-of select="$pi.linenumbering.width"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$global.linenumbering.width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="linenumbering.startinglinenumber">
+ <xsl:choose>
+ <xsl:when test="$pi.context/@startinglinenumber">
+ <xsl:value-of select="$pi.context/@startinglinenumber"/>
+ </xsl:when>
+ <xsl:when test="$pi.context/@continuation='continues'">
+ <xsl:variable name="lastLine">
+ <xsl:choose>
+ <xsl:when test="$pi.context/self::programlisting">
+ <xsl:call-template name="lastLineNumber">
+ <xsl:with-param name="listings"
+ select="preceding::programlisting[@linenumbering='numbered']"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pi.context/self::screen">
+ <xsl:call-template name="lastLineNumber">
+ <xsl:with-param name="listings"
+ select="preceding::screen[@linenumbering='numbered']"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pi.context/self::literallayout">
+ <xsl:call-template name="lastLineNumber">
+ <xsl:with-param name="listings"
+ select="preceding::literallayout[@linenumbering='numbered']"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pi.context/self::address">
+ <xsl:call-template name="lastLineNumber">
+ <xsl:with-param name="listings"
+ select="preceding::address[@linenumbering='numbered']"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$pi.context/self::synopsis">
+ <xsl:call-template name="lastLineNumber">
+ <xsl:with-param name="listings"
+ select="preceding::synopsis[@linenumbering='numbered']"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected verbatim environment: </xsl:text>
+ <xsl:value-of select="local-name($pi.context)"/>
+ </xsl:message>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:value-of select="$lastLine + 1"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('sverb:numberLines')">
+ <xsl:copy-of select="sverb:numberLines($rtf)"/>
+ </xsl:when>
+ <xsl:when test="function-available('xverb:numberLines')">
+ <xsl:copy-of select="xverb:numberLines($rtf)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No numberLines function available.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+ <xsl:param name="rtf"/>
+
+ <!-- I want to make this RTF verbatim. There are two possibilities: either
+ I have access to the exsl:node-set extension function and I can "do it right"
+ or I have to rely on CSS. -->
+
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')">
+ <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <span style="white-space: pre;">
+ <xsl:copy-of select="$rtf"/>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ======================================================================== -->
+
+<xsl:template name="lastLineNumber">
+ <xsl:param name="listings"/>
+ <xsl:param name="number" select="0"/>
+
+ <xsl:variable name="lines">
+ <xsl:call-template name="countLines">
+ <xsl:with-param name="listing" select="string($listings[1])"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="not($listings)">
+ <xsl:value-of select="$number"/>
+ </xsl:when>
+ <xsl:when test="$listings[1]/@startinglinenumber">
+ <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/>
+ </xsl:when>
+ <xsl:when test="$listings[1]/@continuation='continues'">
+ <xsl:call-template name="lastLineNumber">
+ <xsl:with-param name="listings" select="listings[position() &gt; 1]"/>
+ <xsl:with-param name="number" select="$number + $lines"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lines"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="countLines">
+ <xsl:param name="listing"/>
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($listing, '&#10;')">
+ <xsl:call-template name="countLines">
+ <xsl:with-param name="listing" select="substring-after($listing, '&#10;')"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/html/xref.xsl b/docs/xsl-generic/html/xref.xsl
new file mode 100644
index 00000000..7c8dd68d
--- /dev/null
+++ b/docs/xsl-generic/html/xref.xsl
@@ -0,0 +1,1348 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:xlink='http://www.w3.org/1999/xlink'
+ exclude-result-prefixes="suwl exsl xlink"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: xref.xsl 7107 2007-07-22 10:22:06Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- Use internal variable for olink xlink role for consistency -->
+<xsl:variable
+ name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+ <xsl:call-template name="anchor"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref" name="xref">
+ <xsl:param name="xhref" select="@xlink:href"/>
+ <!-- is the @xlink:href a local idref link? -->
+ <xsl:param name="xlink.idref">
+ <xsl:if test="starts-with($xhref,'#')
+ and (not(contains($xhref,'&#40;'))
+ or starts-with($xhref, '#xpointer&#40;id&#40;'))">
+ <xsl:call-template name="xpointer.idref">
+ <xsl:with-param name="xpointer" select="$xhref"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:param>
+ <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/>
+ <xsl:param name="linkend.targets" select="key('id',@linkend)"/>
+ <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/>
+
+ <xsl:variable name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle)
+ and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="anchor"/>
+
+ <xsl:variable name="content">
+ <xsl:choose>
+
+ <xsl:when test="@endterm">
+ <xsl:variable name="etargets" select="key('id',@endterm)"/>
+ <xsl:variable name="etarget" select="$etargets[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($etarget) = 0">
+ <xsl:message>
+ <xsl:value-of select="count($etargets)"/>
+ <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+ <xsl:value-of select="@endterm"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$etarget" mode="endterm"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$target/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$target">
+ <xsl:if test="not(parent::citation)">
+ <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="$target" mode="xref-to">
+ <xsl:with-param name="referrer" select="."/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ </xsl:apply-templates>
+
+ <xsl:if test="not(parent::citation)">
+ <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>ERROR: xref linking to </xsl:text>
+ <xsl:value-of select="@linkend|@xlink:href"/>
+ <xsl:text> has no generated link text.</xsl:text>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- biblioref handled largely like an xref -->
+<!-- To be done: add support for begin, end, and units attributes -->
+<xsl:template match="biblioref">
+ <xsl:variable name="targets" select="key('id',@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:variable name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="anchor"/>
+
+ <xsl:choose>
+ <xsl:when test="count($target) = 0">
+ <xsl:message>
+ <xsl:text>XRef to nonexistent id: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+
+ <xsl:when test="@endterm">
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="etargets" select="key('id',@endterm)"/>
+ <xsl:variable name="etarget" select="$etargets[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($etarget) = 0">
+ <xsl:message>
+ <xsl:value-of select="count($etargets)"/>
+ <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+ <xsl:value-of select="@endterm"/>
+ </xsl:message>
+ <a href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>???</xsl:text>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="$etarget" mode="endterm"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$target/@xreflabel">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </a>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="not(parent::citation)">
+ <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+ </xsl:if>
+
+ <a href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="$target/title or $target/*/title">
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$target" mode="xref-title"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="$target" mode="xref-to">
+ <xsl:with-param name="referrer" select="."/>
+ <xsl:with-param name="xrefstyle">
+ <xsl:choose>
+ <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+ <xsl:value-of select="@role"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xrefstyle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </a>
+
+ <xsl:if test="not(parent::citation)">
+ <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="endterm">
+ <!-- Process the children of the endterm element -->
+ <xsl:variable name="endterm">
+ <xsl:apply-templates select="child::node()"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')">
+ <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$endterm"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="remove-ids">
+ <xsl:choose>
+ <!-- handle html or xhtml -->
+ <xsl:when test="local-name(.) = 'a'
+ and (namespace-uri(.) = ''
+ or namespace-uri(.) = 'http://www.w3.org/1999/xhtml')">
+ <xsl:choose>
+ <xsl:when test="(@name and count(@*) = 1)
+ or (@id and count(@*) = 1)
+ or (@xml:id and count(@*) = 1)
+ or (@xml:id and @name and count(@*) = 2)
+ or (@id and @name and count(@*) = 2)">
+ <xsl:message>suppress anchor</xsl:message>
+ <!-- suppress the whole thing -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:for-each select="@*">
+ <xsl:choose>
+ <xsl:when test="local-name(.) != 'name' and local-name(.) != 'id'">
+ <xsl:copy/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>removing <xsl:value-of
+ select="local-name(.)"/></xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:copy>
+ <xsl:apply-templates mode="remove-ids"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:for-each select="@*">
+ <xsl:choose>
+ <xsl:when test="local-name(.) != 'id'">
+ <xsl:copy/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>removing <xsl:value-of
+ select="local-name(.)"/></xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:apply-templates mode="remove-ids"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to-prefix"/>
+<xsl:template match="*" mode="xref-to-suffix"/>
+
+<xsl:template match="*" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:if test="$verbose">
+ <xsl:message>
+ <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>", ("</xsl:text>
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ <xsl:text>")</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="title" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <!-- if you xref to a title, xref to the parent... -->
+ <xsl:choose>
+ <!-- FIXME: how reliable is this? -->
+ <xsl:when test="contains(local-name(parent::*), 'info')">
+ <xsl:apply-templates select="parent::*[2]" mode="xref-to">
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="parent::*" mode="xref-to">
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract|authorblurb|personblurb|bibliodiv|bibliomset
+ |biblioset|blockquote|calloutlist|caution|colophon
+ |constraintdef|formalpara|glossdiv|important|indexdiv
+ |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain
+ |msgrel|msgset|msgsub|note|orderedlist|partintro
+ |productionset|qandadiv|refsynopsisdiv|segmentedlist
+ |set|setindex|sidebar|tip|toc|variablelist|warning"
+ mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <!-- catch-all for things with (possibly optional) titles -->
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="author|editor|othercredit|personname" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:call-template name="person.name.list"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+ <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+ <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication|preface|chapter|appendix|article" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix">
+ <xsl:text>[</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix">
+ <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <!-- handles both biblioentry and bibliomixed -->
+ <xsl:choose>
+ <xsl:when test="string(.) = ''">
+ <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+ <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+ <xsl:variable name="entry" select="$bib/bibliography/
+ *[@id=$id or @xml:id=$id][1]"/>
+ <xsl:choose>
+ <xsl:when test="$entry">
+ <xsl:choose>
+ <xsl:when test="$bibliography.numbered != 0">
+ <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+ level="any" format="1"/>
+ </xsl:when>
+ <xsl:when test="local-name($entry/*[1]) = 'abbrev'">
+ <xsl:apply-templates select="$entry/*[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>No bibliography entry: </xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> found in </xsl:text>
+ <xsl:value-of select="$bibliography.collection"/>
+ </xsl:message>
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$bibliography.numbered != 0">
+ <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+ level="any" format="1"/>
+ </xsl:when>
+ <xsl:when test="local-name(*[1]) = 'abbrev'">
+ <xsl:apply-templates select="*[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$glossentry.show.acronym = 'primary'">
+ <xsl:choose>
+ <xsl:when test="acronym|abbrev">
+ <xsl:apply-templates select="(acronym|abbrev)[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossterm" mode="xref-to">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3|refsection" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+ <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="qandaset" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="question[1]" mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:choose>
+ <xsl:when test="refmeta/refentrytitle">
+ <xsl:apply-templates select="refmeta/refentrytitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="refnamediv/refname[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="refmeta/manvolnum"/>
+</xsl:template>
+
+<xsl:template match="refnamediv" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="refname[1]" mode="xref-to">
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refname" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates mode="xref-to"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Step'"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="term[1]" mode="xref-to">
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="varlistentry/term" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <!-- to avoid the comma that will be generated if there are several terms -->
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="area|areaset" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="." mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:apply-templates select="." mode="object.xref.markup">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="para" mode="xref-to">
+ <xsl:param name="referrer"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="verbose" select="1"/>
+
+ <xsl:variable name="context" select="(ancestor::simplesect
+ |ancestor::section
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsection
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::partintro
+ |ancestor::dedication
+ |ancestor::colophon
+ |ancestor::bibliography
+ |ancestor::index
+ |ancestor::glossary
+ |ancestor::glossentry
+ |ancestor::listitem
+ |ancestor::varlistentry)[last()]"/>
+
+ <xsl:apply-templates select="$context" mode="xref-to">
+ <xsl:with-param name="purpose" select="'xref'"/>
+ <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+ <xsl:with-param name="referrer" select="$referrer"/>
+ <xsl:with-param name="verbose" select="$verbose"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-title">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-title">
+ <xsl:variable name="title">
+ <xsl:call-template name="person.name"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-title">
+ <xsl:variable name="title">
+ <xsl:call-template name="person.name.list"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-title">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-title">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-title">
+ <!-- handles both biblioentry and bibliomixed -->
+ <xsl:variable name="title">
+ <xsl:text>[</xsl:text>
+ <xsl:choose>
+ <xsl:when test="local-name(*[1]) = 'abbrev'">
+ <xsl:apply-templates select="*[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>]</xsl:text>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-title">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Step'"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="step[not(./title)]" mode="title.markup">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Step'"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-title">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="callout-bug"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$title"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link" name="link">
+ <xsl:param name="linkend" select="@linkend"/>
+ <xsl:param name="a.target"/>
+ <xsl:param name="xhref" select="@xlink:href"/>
+
+ <xsl:variable name="content">
+ <xsl:call-template name="anchor"/>
+ <xsl:choose>
+ <xsl:when test="count(child::node()) &gt; 0">
+ <!-- If it has content, use it -->
+ <xsl:apply-templates/>
+ </xsl:when>
+ <!-- else look for an endterm -->
+ <xsl:when test="@endterm">
+ <xsl:variable name="etargets" select="key('id',@endterm)"/>
+ <xsl:variable name="etarget" select="$etargets[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($etarget) = 0">
+ <xsl:message>
+ <xsl:value-of select="count($etargets)"/>
+ <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+ <xsl:value-of select="@endterm"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$etarget" mode="endterm"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Use the xlink:href if no other text -->
+ <xsl:when test="@xlink:href">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Link element has no content and no Endterm. </xsl:text>
+ <xsl:text>Nothing to show in the link to </xsl:text>
+ <xsl:value-of select="(@xlink:href|@linkend)[1]"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="simple.xlink">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="linkend" select="$linkend"/>
+ <xsl:with-param name="content" select="$content"/>
+ <xsl:with-param name="a.target" select="$a.target"/>
+ <xsl:with-param name="xhref" select="$xhref"/>
+ </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="ulink" name="ulink">
+ <xsl:param name="url" select="@url"/>
+ <xsl:variable name="link">
+ <a>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="@id or @xml:id">
+ <xsl:attribute name="name">
+ <xsl:value-of select="(@id|@xml:id)[1]"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
+ <xsl:if test="$ulink.target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$ulink.target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="$url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('suwl:unwrapLinks')">
+ <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$link"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" name="olink">
+ <!-- olink content may be passed in from xlink olink -->
+ <xsl:param name="content" select="NOTANELEMENT"/>
+
+ <xsl:call-template name="anchor"/>
+
+ <xsl:variable name="localinfo" select="@localinfo"/>
+
+ <xsl:choose>
+ <!-- olinks resolved by stylesheet and target database -->
+ <xsl:when test="@targetdoc or @targetptr or
+ (@xlink:role=$xolink.role and
+ contains(@xlink:href, '#') )" >
+
+ <xsl:variable name="targetdoc.att">
+ <xsl:choose>
+ <xsl:when test="@targetdoc != ''">
+ <xsl:value-of select="@targetdoc"/>
+ </xsl:when>
+ <xsl:when test="@xlink:role=$xolink.role and
+ contains(@xlink:href, '#')" >
+ <xsl:value-of select="substring-before(@xlink:href, '#')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="targetptr.att">
+ <xsl:choose>
+ <xsl:when test="@targetptr != ''">
+ <xsl:value-of select="@targetptr"/>
+ </xsl:when>
+ <xsl:when test="@xlink:role=$xolink.role and
+ contains(@xlink:href, '#')" >
+ <xsl:value-of select="substring-after(@xlink:href, '#')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="olink.lang">
+ <xsl:call-template name="l10n.language">
+ <xsl:with-param name="xref-context" select="true()"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="target.database.filename">
+ <xsl:call-template name="select.target.database">
+ <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+ <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="target.database"
+ select="document($target.database.filename,/)"/>
+
+ <xsl:if test="$olink.debug != 0">
+ <xsl:message>
+ <xsl:text>Olink debug: root element of target.database '</xsl:text>
+ <xsl:value-of select="$target.database.filename"/>
+ <xsl:text>' is '</xsl:text>
+ <xsl:value-of select="local-name($target.database/*[1])"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="olink.key">
+ <xsl:call-template name="select.olink.key">
+ <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+ <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="string-length($olink.key) = 0">
+ <xsl:message>
+ <xsl:text>Error: unresolved olink: </xsl:text>
+ <xsl:text>targetdoc/targetptr = '</xsl:text>
+ <xsl:value-of select="$targetdoc.att"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="$targetptr.att"/>
+ <xsl:text>'.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="href">
+ <xsl:call-template name="make.olink.href">
+ <xsl:with-param name="olink.key" select="$olink.key"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="hottext">
+ <xsl:choose>
+ <xsl:when test="$content">
+ <xsl:copy-of select="$content"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="olink.hottext">
+ <xsl:with-param name="olink.key" select="$olink.key"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="olink.docname.citation">
+ <xsl:call-template name="olink.document.citation">
+ <xsl:with-param name="olink.key" select="$olink.key"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="olink.page.citation">
+ <xsl:call-template name="olink.page.citation">
+ <xsl:with-param name="olink.key" select="$olink.key"/>
+ <xsl:with-param name="target.database" select="$target.database"/>
+ <xsl:with-param name="olink.lang" select="$olink.lang"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$href != ''">
+ <a href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$hottext"/>
+ </a>
+ <xsl:copy-of select="$olink.page.citation"/>
+ <xsl:copy-of select="$olink.docname.citation"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="olink"><xsl:copy-of select="$hottext"/></span>
+ <xsl:copy-of select="$olink.page.citation"/>
+ <xsl:copy-of select="$olink.docname.citation"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:when>
+
+ <!-- Or use old olink mechanism -->
+ <xsl:otherwise>
+ <xsl:variable name="href">
+ <xsl:choose>
+ <xsl:when test="@linkmode">
+ <!-- use the linkmode to get the base URI, use localinfo as fragid -->
+ <xsl:variable name="modespec" select="key('id',@linkmode)"/>
+ <xsl:if test="count($modespec) != 1
+ or local-name($modespec) != 'modespec'">
+ <xsl:message>Warning: olink linkmode pointer is wrong.</xsl:message>
+ </xsl:if>
+ <xsl:value-of select="$modespec"/>
+ <xsl:if test="@localinfo">
+ <xsl:text>#</xsl:text>
+ <xsl:value-of select="@localinfo"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="@type = 'href'">
+ <xsl:call-template name="olink.outline">
+ <xsl:with-param name="outline.base.uri"
+ select="unparsed-entity-uri(@targetdocent)"/>
+ <xsl:with-param name="localinfo" select="@localinfo"/>
+ <xsl:with-param name="return" select="'href'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$olink.resolver"/>
+ <xsl:text>?</xsl:text>
+ <xsl:value-of select="$olink.sysid"/>
+ <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/>
+ <!-- XSL gives no access to the public identifier (grumble...) -->
+ <xsl:if test="@localinfo">
+ <xsl:text>&amp;</xsl:text>
+ <xsl:value-of select="$olink.fragid"/>
+ <xsl:value-of select="@localinfo"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$href != ''">
+ <a href="{$href}">
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:call-template name="olink.hottext"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="olink.hottext"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="pagenumber.markup">
+ <!-- no-op in HTML -->
+</xsl:template>
+
+
+<xsl:template name="olink.outline">
+ <xsl:param name="outline.base.uri"/>
+ <xsl:param name="localinfo"/>
+ <xsl:param name="return" select="href"/>
+
+ <xsl:variable name="outline-file"
+ select="concat($outline.base.uri,
+ $olink.outline.ext)"/>
+
+ <xsl:variable name="outline" select="document($outline-file,.)/div"/>
+
+ <xsl:variable name="node-href">
+ <xsl:choose>
+ <xsl:when test="$localinfo != ''">
+ <xsl:variable name="node" select="$outline//
+ *[@id=$localinfo or @xml:id=$localinfo]"/>
+ <xsl:value-of select="$node/@href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$outline/@href"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="node-xref">
+ <xsl:choose>
+ <xsl:when test="$localinfo != ''">
+ <xsl:variable name="node" select="$outline//
+ *[@id=$localinfo or @xml:id=$localinfo]"/>
+ <xsl:copy-of select="$node/xref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$outline/xref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$return = 'href'">
+ <xsl:value-of select="$node-href"/>
+ </xsl:when>
+ <xsl:when test="$return = 'xref'">
+ <xsl:value-of select="$node-xref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$node-xref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+ <!-- called to process an xreflabel...you might use this to make -->
+ <!-- xreflabels come out in the right font for different targets, -->
+ <!-- for example. -->
+ <xsl:param name="target" select="."/>
+ <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="insert.title.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="title"/>
+
+ <xsl:choose>
+ <!-- FIXME: what about the case where titleabbrev is inside the info? -->
+ <xsl:when test="$purpose = 'xref' and titleabbrev">
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter|appendix" mode="insert.title.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="title"/>
+
+ <xsl:choose>
+ <xsl:when test="$purpose = 'xref'">
+ <i>
+ <xsl:copy-of select="$title"/>
+ </i>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.subtitle.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="subtitle"/>
+
+ <xsl:copy-of select="$subtitle"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.label.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="label"/>
+
+ <xsl:copy-of select="$label"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.pagenumber.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="pagenumber"/>
+
+ <xsl:copy-of select="$pagenumber"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.direction.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="direction"/>
+
+ <xsl:copy-of select="$direction"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.olink.docname.markup">
+ <xsl:param name="purpose"/>
+ <xsl:param name="xrefstyle"/>
+ <xsl:param name="docname"/>
+
+ <span class="olinkdocname">
+ <xsl:copy-of select="$docname"/>
+ </span>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/lib/lib.xsl b/docs/xsl-generic/lib/lib.xsl
new file mode 100644
index 00000000..5eee4862
--- /dev/null
+++ b/docs/xsl-generic/lib/lib.xsl
@@ -0,0 +1,480 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!-- ********************************************************************
+ $Id: lib.xweb 7102 2007-07-20 15:35:24Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ This module implements DTD-independent functions
+
+ ******************************************************************** -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template name="dot.count">
+ <!-- Returns the number of "." characters in a string -->
+ <xsl:param name="string"/>
+ <xsl:param name="count" select="0"/>
+ <xsl:choose>
+ <xsl:when test="contains($string, '.')">
+ <xsl:call-template name="dot.count">
+ <xsl:with-param name="string" select="substring-after($string, '.')"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="copy-string">
+ <!-- returns 'count' copies of 'string' -->
+ <xsl:param name="string"/>
+ <xsl:param name="count" select="0"/>
+ <xsl:param name="result"/>
+
+ <xsl:choose>
+ <xsl:when test="$count&gt;0">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="result">
+ <xsl:value-of select="$result"/>
+ <xsl:value-of select="$string"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$result"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="string.subst">
+ <xsl:param name="string"/>
+ <xsl:param name="target"/>
+ <xsl:param name="replacement"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $target)">
+ <xsl:variable name="rest">
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="substring-after($string, $target)"/>
+ <xsl:with-param name="target" select="$target"/>
+ <xsl:with-param name="replacement" select="$replacement"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat(substring-before($string, $target), $replacement, $rest)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="xpointer.idref">
+ <xsl:param name="xpointer">http://...</xsl:param>
+ <xsl:choose>
+ <xsl:when test="starts-with($xpointer, '#xpointer(id(')">
+ <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/>
+ <xsl:variable name="quote" select="substring($rest, 1, 1)"/>
+ <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/>
+ </xsl:when>
+ <xsl:when test="starts-with($xpointer, '#')">
+ <xsl:value-of select="substring-after($xpointer, '#')"/>
+ </xsl:when>
+ <!-- otherwise it's a pointer to some other document -->
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="length-magnitude">
+ <xsl:param name="length" select="'0pt'"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($length) = 0"/>
+ <xsl:when test="substring($length,1,1) = '0' or substring($length,1,1) = '1' or substring($length,1,1) = '2' or substring($length,1,1) = '3' or substring($length,1,1) = '4' or substring($length,1,1) = '5' or substring($length,1,1) = '6' or substring($length,1,1) = '7' or substring($length,1,1) = '8' or substring($length,1,1) = '9' or substring($length,1,1) = '.'">
+ <xsl:value-of select="substring($length,1,1)"/>
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="substring($length,2)"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="length-units">
+ <xsl:param name="length" select="'0pt'"/>
+ <xsl:param name="default.units" select="'px'"/>
+ <xsl:variable name="magnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="$length"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="units">
+ <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$units = ''">
+ <xsl:value-of select="$default.units"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$units"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="length-spec">
+ <xsl:param name="length" select="'0pt'"/>
+ <xsl:param name="default.units" select="'px'"/>
+
+ <xsl:variable name="magnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="$length"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="units">
+ <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$magnitude"/>
+ <xsl:choose>
+ <xsl:when test="$units='cm' or $units='mm' or $units='in' or $units='pt' or $units='pc' or $units='px' or $units='em'">
+ <xsl:value-of select="$units"/>
+ </xsl:when>
+ <xsl:when test="$units = ''">
+ <xsl:value-of select="$default.units"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized unit of measure: </xsl:text>
+ <xsl:value-of select="$units"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="length-in-points">
+ <xsl:param name="length" select="'0pt'"/>
+ <xsl:param name="em.size" select="10"/>
+ <xsl:param name="pixels.per.inch" select="90"/>
+
+ <xsl:variable name="magnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="$length"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="units">
+ <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$units = 'pt'">
+ <xsl:value-of select="$magnitude"/>
+ </xsl:when>
+ <xsl:when test="$units = 'cm'">
+ <xsl:value-of select="$magnitude div 2.54 * 72.0"/>
+ </xsl:when>
+ <xsl:when test="$units = 'mm'">
+ <xsl:value-of select="$magnitude div 25.4 * 72.0"/>
+ </xsl:when>
+ <xsl:when test="$units = 'in'">
+ <xsl:value-of select="$magnitude * 72.0"/>
+ </xsl:when>
+ <xsl:when test="$units = 'pc'">
+ <xsl:value-of select="$magnitude * 12.0"/>
+ </xsl:when>
+ <xsl:when test="$units = 'px'">
+ <xsl:value-of select="$magnitude div $pixels.per.inch * 72.0"/>
+ </xsl:when>
+ <xsl:when test="$units = 'em'">
+ <xsl:value-of select="$magnitude * $em.size"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized unit of measure: </xsl:text>
+ <xsl:value-of select="$units"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="pi-attribute">
+ <xsl:param name="pis" select="processing-instruction('BOGUS_PI')"/>
+ <xsl:param name="attribute">filename</xsl:param>
+ <xsl:param name="count">1</xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count&gt;count($pis)">
+ <!-- not found -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pi">
+ <xsl:value-of select="$pis[$count]"/>
+ </xsl:variable>
+ <xsl:variable name="pivalue">
+ <xsl:value-of select="concat(' ', normalize-space($pi))"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($pivalue,concat(' ', $attribute, '='))">
+ <xsl:variable name="rest" select="substring-after($pivalue,concat(' ', $attribute,'='))"/>
+ <xsl:variable name="quote" select="substring($rest,1,1)"/>
+ <xsl:value-of select="substring-before(substring($rest,2),$quote)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="pi-attribute">
+ <xsl:with-param name="pis" select="$pis"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="lookup.key">
+ <xsl:param name="key" select="''"/>
+ <xsl:param name="table" select="''"/>
+
+ <xsl:if test="contains($table, ' ')">
+ <xsl:choose>
+ <xsl:when test="substring-before($table, ' ') = $key">
+ <xsl:variable name="rest" select="substring-after($table, ' ')"/>
+ <xsl:choose>
+ <xsl:when test="contains($rest, ' ')">
+ <xsl:value-of select="substring-before($rest, ' ')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rest"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="lookup.key">
+ <xsl:with-param name="key" select="$key"/>
+ <xsl:with-param name="table" select="substring-after(substring-after($table,' '), ' ')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+<xsl:template name="xpath.location">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="path" select="''"/>
+
+ <xsl:variable name="next.path">
+ <xsl:value-of select="local-name($node)"/>
+ <xsl:if test="$path != ''">/</xsl:if>
+ <xsl:value-of select="$path"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$node/parent::*">
+ <xsl:call-template name="xpath.location">
+ <xsl:with-param name="node" select="$node/parent::*"/>
+ <xsl:with-param name="path" select="$next.path"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="$next.path"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="comment-escape-string">
+ <xsl:param name="string" select="''"/>
+
+ <xsl:if test="starts-with($string, '-')">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+
+ <xsl:call-template name="comment-escape-string.recursive">
+ <xsl:with-param name="string" select="$string"/>
+ </xsl:call-template>
+
+ <xsl:if test="substring($string, string-length($string), 1) = '-'">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+</xsl:template>
+<xsl:template name="comment-escape-string.recursive">
+ <xsl:param name="string" select="''"/>
+ <xsl:choose>
+ <xsl:when test="contains($string, '--')">
+ <xsl:value-of select="substring-before($string, '--')"/>
+ <xsl:value-of select="'- -'"/>
+ <xsl:call-template name="comment-escape-string.recursive">
+ <xsl:with-param name="string" select="substring-after($string, '--')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+ <xsl:template name="str.tokenize.keep.delimiters">
+ <xsl:param name="string" select="''"/>
+ <xsl:param name="delimiters" select="' '"/>
+ <xsl:choose>
+ <xsl:when test="not($string)"/>
+ <xsl:when test="not($delimiters)">
+ <xsl:call-template name="str.tokenize.keep.delimiters-characters">
+ <xsl:with-param name="string" select="$string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="delimiters" select="$delimiters"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="str.tokenize.keep.delimiters-characters">
+ <xsl:param name="string"/>
+ <xsl:if test="$string">
+ <ssb:token xmlns:ssb="http://sideshowbarker.net/ns"><xsl:value-of select="substring($string, 1, 1)"/></ssb:token>
+ <xsl:call-template name="str.tokenize.keep.delimiters-characters">
+ <xsl:with-param name="string" select="substring($string, 2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="str.tokenize.keep.delimiters-delimiters">
+ <xsl:param name="string"/>
+ <xsl:param name="delimiters"/>
+ <xsl:variable name="delimiter" select="substring($delimiters, 1, 1)"/>
+ <xsl:choose>
+ <xsl:when test="not($delimiter)">
+ <ssb:token xmlns:ssb="http://sideshowbarker.net/ns"><xsl:value-of select="$string"/></ssb:token>
+ </xsl:when>
+ <xsl:when test="contains($string, $delimiter)">
+ <xsl:if test="not(starts-with($string, $delimiter))">
+ <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+ <xsl:with-param name="string" select="substring-before($string, $delimiter)"/>
+ <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- output each delimiter -->
+ <xsl:value-of select="$delimiter"/>
+ <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+ <xsl:with-param name="string" select="substring-after($string, $delimiter)"/>
+ <xsl:with-param name="delimiters" select="$delimiters"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="apply-string-subst-map">
+ <xsl:param name="content"/>
+ <xsl:param name="map.contents"/>
+ <xsl:variable name="replaced_text">
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target" select="$map.contents[1]/@oldstring"/>
+ <xsl:with-param name="replacement" select="$map.contents[1]/@newstring"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$map.contents[2]">
+ <xsl:call-template name="apply-string-subst-map">
+ <xsl:with-param name="content" select="$replaced_text"/>
+ <xsl:with-param name="map.contents" select="$map.contents[position() &gt; 1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$replaced_text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<xsl:template name="count.uri.path.depth">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="count" select="0"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($filename, '/')">
+ <xsl:call-template name="count.uri.path.depth">
+ <xsl:with-param name="filename" select="substring-after($filename, '/')"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="trim.common.uri.paths">
+ <xsl:param name="uriA" select="''"/>
+ <xsl:param name="uriB" select="''"/>
+ <xsl:param name="return" select="'A'"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($uriA, '/') and contains($uriB, '/') and substring-before($uriA, '/') = substring-before($uriB, '/')">
+ <xsl:call-template name="trim.common.uri.paths">
+ <xsl:with-param name="uriA" select="substring-after($uriA, '/')"/>
+ <xsl:with-param name="uriB" select="substring-after($uriB, '/')"/>
+ <xsl:with-param name="return" select="$return"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$return = 'A'">
+ <xsl:value-of select="$uriA"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$uriB"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+ <xsl:template name="trim.text">
+ <xsl:param name="contents" select="."/>
+ <xsl:variable name="contents-left-trimmed">
+ <xsl:call-template name="trim-left">
+ <xsl:with-param name="contents" select="$contents"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="contents-trimmed">
+ <xsl:call-template name="trim-right">
+ <xsl:with-param name="contents" select="$contents-left-trimmed"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$contents-trimmed"/>
+ </xsl:template>
+
+ <xsl:template name="trim-left">
+ <xsl:param name="contents"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($contents,'&#10;') or starts-with($contents,'&#13;') or starts-with($contents,' ') or starts-with($contents,'&#9;')">
+ <xsl:call-template name="trim-left">
+ <xsl:with-param name="contents" select="substring($contents, 2)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$contents"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="trim-right">
+ <xsl:param name="contents"/>
+ <xsl:variable name="last-char">
+ <xsl:value-of select="substring($contents, string-length($contents), 1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($last-char = '&#10;') or ($last-char = '&#13;') or ($last-char = ' ') or ($last-char = '&#9;')">
+ <xsl:call-template name="trim-right">
+ <xsl:with-param name="contents" select="substring($contents, 1, string-length($contents) - 1)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$contents"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/block.xsl b/docs/xsl-generic/manpages/block.xsl
new file mode 100644
index 00000000..efee63be
--- /dev/null
+++ b/docs/xsl-generic/manpages/block.xsl
@@ -0,0 +1,296 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: block.xsl 6843 2007-06-20 12:21:13Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caution|important|note|tip|warning">
+ <xsl:call-template name="nested-section-title"/>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="formalpara">
+ <xsl:variable name="title.wrapper">
+ <xsl:value-of select="normalize-space(title[1])"/>
+ </xsl:variable>
+ <xsl:text>.PP&#10;</xsl:text>
+ <!-- * don't put linebreak after head; instead render it as a "run in" -->
+ <!-- * head, that is, inline, with a period and space following it -->
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="exsl:node-set($title.wrapper)"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>. </xsl:text>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+ <xsl:call-template name="mixed-block"/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="para">
+ <!-- * FIXME: Need to extract the ancestor::footnote, etc. checking and -->
+ <!-- * move to named template so that we can call it from templates for -->
+ <!-- * other block elements also -->
+ <xsl:choose>
+ <!-- * If a para is a descendant of a footnote, etc., then indent it -->
+ <!-- * (unless it is the first child, in which case don't generate -->
+ <!-- * anything at all to mark its start). -->
+ <!-- * FIXME: *blurb checking should not be munged in here the way -->
+ <!-- * it currently is; this probably breaks blurb indenting. -->
+ <xsl:when test="ancestor::footnote or
+ ancestor::annotation or
+ ancestor::authorblurb or
+ ancestor::personblurb">
+ <xsl:if test="preceding-sibling::*[not(name() ='')]">
+ <xsl:text>.sp</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RS 4n</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>.PP</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="mixed-block"/>
+ <xsl:if test="ancestor::footnote or
+ ancestor::annotation or
+ ancestor::authorblurb or
+ ancestor::personblurb">
+ <xsl:if test="preceding-sibling::*[not(name() ='')]">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RE</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="simpara">
+ <xsl:variable name="content">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($content)"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:if test="not(ancestor::authorblurb) and
+ not(ancestor::personblurb)">
+ <xsl:text>.sp&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * Yes, address, synopsis, and funcsynopsisinfo are verbatim environments. -->
+<xsl:template match="literallayout|programlisting|screen|
+ address|synopsis|funcsynopsisinfo">
+ <xsl:param name="indent">
+ <!-- * Only indent this verbatim if $man.indent.verbatims is -->
+ <!-- * non-zero and it is not a child of a *synopsis element -->
+ <xsl:if test="not($man.indent.verbatims = 0) and
+ not(substring(local-name(..),
+ string-length(local-name(..))-7) = 'synopsis')">
+ <xsl:text>Yes</xsl:text>
+ </xsl:if>
+ </xsl:param>
+
+ <xsl:choose>
+ <!-- * Check to see if this verbatim item is within a parent element that -->
+ <!-- * allows mixed content. -->
+ <!-- * -->
+ <!-- * If it is within a mixed-content parent, then a line space is -->
+ <!-- * already added before it by the mixed-block template, so we don't -->
+ <!-- * need to add one here. -->
+ <!-- * -->
+ <!-- * If it is not within a mixed-content parent, then we need to add a -->
+ <!-- * line space before it. -->
+ <xsl:when test="parent::caption|parent::entry|parent::para|
+ parent::td|parent::th" /> <!-- do nothing -->
+ <xsl:otherwise>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$indent = 'Yes'">
+ <!-- * start indented section -->
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($man.indent.width = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$man.indent.width"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="self::funcsynopsisinfo">
+ <!-- * All Funcsynopsisinfo content is by default rendered in bold, -->
+ <!-- * because the man(7) man page says this: -->
+ <!-- * -->
+ <!-- * For functions, the arguments are always specified using -->
+ <!-- * italics, even in the SYNOPSIS section, where the rest of -->
+ <!-- * the function is specified in bold -->
+ <!-- * -->
+ <!-- * Look through the contents of the man/man2 and man3 directories -->
+ <!-- * on your system, and you'll see that most existing pages do follow -->
+ <!-- * this "bold everything in function synopsis" rule. -->
+ <!-- * -->
+ <!-- * Users who don't want the bold output can choose to adjust the -->
+ <!-- * man.font.funcsynopsisinfo parameter on their own. So even if you -->
+ <!-- * don't personally like the way it looks, please don't change the -->
+ <!-- * default to be non-bold - because it's a convention that's -->
+ <!-- * followed is the vast majority of existing man pages that document -->
+ <!-- * functions, and we need to follow it by default, like it or no. -->
+ <xsl:text>.ft </xsl:text>
+ <xsl:value-of select="$man.font.funcsynopsisinfo"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.nf&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.fi&#10;</xsl:text>
+ <xsl:text>.ft&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Other verbatims do not need to get bolded -->
+ <xsl:text>.nf&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.fi&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$indent = 'Yes'">
+ <!-- * end indented section -->
+ <xsl:text>.RE&#10;</xsl:text>
+ </xsl:if>
+ <!-- * if first following sibling node of this verbatim -->
+ <!-- * environment is a text node, output a line of space before it -->
+ <xsl:if test="following-sibling::node()[1][name(.) = '']">
+ <xsl:text>.sp&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="table|informaltable">
+ <xsl:apply-templates select="." mode="to.tbl">
+ <!--* we call the to.tbl mode with the "source" param so that we can -->
+ <!--* preserve the context information and pass it down to the -->
+ <!--* named templates that do the actual table processing -->
+ <xsl:with-param name="source" select="ancestor::refentry/refnamediv[1]/refname[1]"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="informalexample">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="figure|example">
+ <xsl:variable name="param.placement"
+ select="substring-after(normalize-space($formal.title.placement),
+ concat(local-name(.), ' '))"/>
+
+ <xsl:variable name="placement">
+ <xsl:choose>
+ <xsl:when test="contains($param.placement, ' ')">
+ <xsl:value-of select="substring-before($param.placement, ' ')"/>
+ </xsl:when>
+ <xsl:when test="$param.placement = ''">before</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$param.placement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="formal.object">
+ <xsl:with-param name="placement" select="$placement"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject">
+ <xsl:text>.sp</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="imageobject">
+ <xsl:text>[IMAGE]</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="textobject[parent::inlinemediaobject]">
+ <xsl:text>[</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="textobject">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="formal.object">
+ <xsl:param name="placement" select="'before'"/>
+ <xsl:param name="class" select="local-name(.)"/>
+
+ <xsl:choose>
+ <xsl:when test="$placement = 'before'">
+ <xsl:call-template name="formal.object.heading"/>
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ <xsl:call-template name="formal.object.heading"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+ <xsl:param name="object" select="."/>
+ <xsl:param name="title">
+ <xsl:apply-templates select="$object" mode="object.title.markup.textonly"/>
+ </xsl:param>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="exsl:node-set($title)"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * suppress abstract -->
+<xsl:template match="abstract"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/charmap.groff.xsl b/docs/xsl-generic/manpages/charmap.groff.xsl
new file mode 100644
index 00000000..7587659f
--- /dev/null
+++ b/docs/xsl-generic/manpages/charmap.groff.xsl
@@ -0,0 +1,5985 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<xsl:stylesheet version="2.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:u="http://docbook.sf.net/xmlns/unichar/1.0"
+ exclude-result-prefixes="u">
+
+<!-- ********************************************************************
+ $Id: charmap.groff.xsl 6528 2007-01-19 08:54:04Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:character-map name="groff">
+
+ <!-- * *************************************************************** -->
+ <!-- * Commentary -->
+ <!-- * *************************************************************** -->
+ <!-- * -->
+ <!-- * This file maps a selection of Unicode symbols and special -->
+ <!-- * characters (about 800) to corresponding groff escape sequences.-->
+ <!-- * -->
+ <!-- * Although the format of this file follows the "character map" -->
+ <!-- * format described in the XSLT 2.0 specification[1], the file can -->
+ <!-- * also be used with an appropriate XSLT 1.0 stylesheet and any -->
+ <!-- * XSLT 1.0 processor. -->
+ <!-- * -->
+ <!-- * [1] http://www.w3.org/TR/xslt20/#character-maps -->
+ <!-- * -->
+ <!-- * In order to make the character map more readable, and to make -->
+ <!-- * it possible to create subsets of it at run time, it uses the -->
+ <!-- * following "extension attributes" (in the "unichar" namespace): -->
+ <!-- * -->
+ <!-- * - u:name = ISO character name (e.g., "OHM SIGN") -->
+ <!-- * - u:entity = ISO entity name (e.g., "ohm") -->
+ <!-- * - u:block = Unicode block name (e.g., "Letterlike Symbols") -->
+ <!-- * - u:class = character class (e.g., "bullets") -->
+ <!-- * -->
+ <!-- * Use of such extension attributes is permitted by the XSLT 2.0 -->
+ <!-- * spec; see the "Extension Attributes" section[2]. -->
+ <!-- * -->
+ <!-- * [2] http://www.w3.org/TR/xslt20/#extension-attributes -->
+ <!-- * -->
+ <!-- * *************************************************************** -->
+ <!-- * Acknowledgements -->
+ <!-- * *************************************************************** -->
+ <!-- * The following references were consulted when selecting roff -->
+ <!-- * mappings and character information: -->
+ <!-- * -->
+ <!-- * - groff_char(7) man page[3] -->
+ <!-- * - groff info file[4]; in particular, the "Page Motions" node[5] -->
+ <!-- * - tables in "Character Sets" chapter of "XML In a Nutshell"[6] -->
+ <!-- * - Zvon Character Search[7] -->
+ <!-- * -->
+ <!-- * [3] http://www.linux.se/showMan.php?TITLE=groff_char&SECTION=7 -->
+ <!-- * [4] http://www.fifi.org/cgi-bin/info2www?(groff) -->
+ <!-- * [5] http://www.fifi.org/cgi-bin/info2www?(groff)Page+Motions -->
+ <!-- * [6] http://www.ibiblio.org/xml/books/xian2/ -->
+ <!-- * [7] http://zvon.org/other/charSearch/PHP/search.php -->
+ <!-- * -->
+ <!-- * The initial version of this file (before the "string" mappings -->
+ <!-- * were added) was generated by taking the "unichars.el" file from -->
+ <!-- * Norm Walsh's "xmlunicode.el"[8] elisp distro, and running a -->
+ <!-- * script on it to convert it to XML. -->
+ <!-- * -->
+ <!-- * [8] http://nwalsh.com/emacs/xmlchars/ -->
+ <!-- * -->
+ <!-- * The idea for implementing a character map in the DocBook Project -->
+ <!-- * manpages system was inspired by Steve Cheng's docbook2x[9]; -->
+ <!-- * in particular, its "utf8trans" utility and character-map system. -->
+ <!-- * -->
+ <!-- * [9] http://docbook2x.sourceforge.net/ -->
+ <!-- * -->
+ <!-- * ################################################################# -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Latin-1/ISO-8859-1 -->
+ <!-- * x00a0 to x00ff -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * A no-break space can be written two ways in roff; the difference, -->
+ <!-- * according to the "Page Motions" node in the groff info page, is: -->
+ <!-- * -->
+ <!-- * "\ " = -->
+ <!-- * An unbreakable and unpaddable (i.e. not expanded during filling) -->
+ <!-- * space. -->
+ <!-- * -->
+ <!-- * "\~" = -->
+ <!-- * An unbreakable space that stretches like a normal -->
+ <!-- * inter-word space when a line is adjusted." -->
+ <!-- * -->
+ <!-- * Unfortunately, roff seems to do some weird things with long -->
+ <!-- * lines that only have words separated by "\~" spaces, so it's -->
+ <!-- * safer just to stick with the "\ " space -->
+ <xsl:output-character
+ character="&#x00a0;"
+ u:name="NO-BREAK SPACE"
+ u:entity="nbsp"
+ string="\ "
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a1;"
+ u:name="INVERTED EXCLAMATION MARK"
+ u:entity="iexcl"
+ string="\(r!"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a2;"
+ u:name="CENT SIGN"
+ u:entity="cent"
+ string="\(ct"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a3;"
+ u:name="POUND SIGN"
+ u:entity="pound"
+ string="\(Po"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a4;"
+ u:name="CURRENCY SIGN"
+ u:entity="curren"
+ string="\(Cs"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a5;"
+ u:name="YEN SIGN"
+ u:entity="yen"
+ string="\(Ye"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a6;"
+ u:name="BROKEN BAR"
+ u:entity="brvbar"
+ string="\(bb"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a7;"
+ u:name="SECTION SIGN"
+ u:entity="sect"
+ string="\(sc"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a8;"
+ u:name="DIAERESIS"
+ u:entity="Dot"
+ string="\(ad"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00a9;"
+ u:name="COPYRIGHT SIGN"
+ u:entity="copy"
+ string="\(co"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00aa;"
+ u:name="FEMININE ORDINAL INDICATOR"
+ u:entity="ordf"
+ string="\(Of"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00ab;"
+ u:name="LEFT-POINTING DOUBLE ANGLE QUOTATION MARK"
+ u:entity="laquo"
+ string="\(Fo"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00ac;"
+ u:name="NOT SIGN"
+ u:entity="not"
+ string="\(no"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <!-- * groff_char(7) man page sayxsl: "the soft hyphen control character -->
+ <!-- * (prints as itself). groff never use this character for output -->
+ <!-- * (thus it is omitted in the table below); the input character 173 -->
+ <!-- * is onto \%." -->
+ <xsl:output-character
+ character="&#x00ad;"
+ u:name="SOFT HYPHEN"
+ u:entity="shy"
+ string="\%"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00ae;"
+ u:name="REGISTERED SIGN"
+ u:entity="reg"
+ string="\(rg"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00af;"
+ u:name="MACRON"
+ u:entity="macr"
+ string="\(a-"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b0;"
+ u:name="DEGREE SIGN"
+ u:entity="deg"
+ string="\(de"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b1;"
+ u:name="PLUS-MINUS SIGN"
+ u:entity="plusmn"
+ string="\(+-"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b2;"
+ u:name="SUPERSCRIPT TWO"
+ u:entity="sup2"
+ string="\(S2"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b3;"
+ u:name="SUPERSCRIPT THREE"
+ u:entity="sup3"
+ string="\(S3"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b4;"
+ u:name="ACUTE ACCENT"
+ u:entity="acute"
+ string="\(aa"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b5;"
+ u:name="MICRO SIGN"
+ u:entity="micro"
+ string="\(mc"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b6;"
+ u:name="PILCROW SIGN"
+ u:entity="para"
+ string="\(ps"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <!-- * according to groff_char(7), I think the escape string \(pc -->
+ <!-- * "periodcentered" could also be used for middot; not sure which -->
+ <!-- * is better, but "md" mnemonic is a better fit :-) -->
+ <xsl:output-character
+ character="&#x00b7;"
+ u:name="MIDDLE DOT"
+ u:entity="middot"
+ string="\(md"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b8;"
+ u:name="CEDILLA"
+ u:entity="cedil"
+ string="\(ac"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00b9;"
+ u:name="SUPERSCRIPT ONE"
+ u:entity="sup1"
+ string="\(S1"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00ba;"
+ u:name="MASCULINE ORDINAL INDICATOR"
+ u:entity="ordm"
+ string="\(Om"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00bb;"
+ u:name="RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK"
+ u:entity="raquo"
+ string="\(Fc"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00bc;"
+ u:name="VULGAR FRACTION ONE QUARTER"
+ u:entity="frac14"
+ string="\(14"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00bd;"
+ u:name="VULGAR FRACTION ONE HALF"
+ u:entity="frac12"
+ string="\(12"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00be;"
+ u:name="VULGAR FRACTION THREE QUARTERS"
+ u:entity="frac34"
+ string="\(34"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00bf;"
+ u:name="INVERTED QUESTION MARK"
+ u:entity="iquest"
+ string="\(r?"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00c0;"
+ u:name="LATIN CAPITAL LETTER A WITH GRAVE"
+ u:entity="Agrave"
+ string="\(`A"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c1;"
+ u:name="LATIN CAPITAL LETTER A WITH ACUTE"
+ u:entity="Aacute"
+ string="\('A"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c2;"
+ u:name="LATIN CAPITAL LETTER A WITH CIRCUMFLEX"
+ u:entity="Acirc"
+ string="\(^A"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c3;"
+ u:name="LATIN CAPITAL LETTER A WITH TILDE"
+ u:entity="Atilde"
+ string="\(~A"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c4;"
+ u:name="LATIN CAPITAL LETTER A WITH DIAERESIS"
+ u:entity="Auml"
+ string="\(:A"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c5;"
+ u:name="LATIN CAPITAL LETTER A WITH RING ABOVE"
+ u:entity="Aring"
+ string="\(oA"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c6;"
+ u:name="LATIN CAPITAL LETTER AE"
+ u:entity="AElig"
+ string="\(AE"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c7;"
+ u:name="LATIN CAPITAL LETTER C WITH CEDILLA"
+ u:entity="Ccedil"
+ string="\(,C"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c8;"
+ u:name="LATIN CAPITAL LETTER E WITH GRAVE"
+ u:entity="Egrave"
+ string="\(`E"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00c9;"
+ u:name="LATIN CAPITAL LETTER E WITH ACUTE"
+ u:entity="Eacute"
+ string="\('E"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ca;"
+ u:name="LATIN CAPITAL LETTER E WITH CIRCUMFLEX"
+ u:entity="Ecirc"
+ string="\(^E"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00cb;"
+ u:name="LATIN CAPITAL LETTER E WITH DIAERESIS"
+ u:entity="Euml"
+ string="\(:E"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00cc;"
+ u:name="LATIN CAPITAL LETTER I WITH GRAVE"
+ u:entity="Igrave"
+ string="\(`I"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00cd;"
+ u:name="LATIN CAPITAL LETTER I WITH ACUTE"
+ u:entity="Iacute"
+ string="\('I"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ce;"
+ u:name="LATIN CAPITAL LETTER I WITH CIRCUMFLEX"
+ u:entity="Icirc"
+ string="\(^I"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00cf;"
+ u:name="LATIN CAPITAL LETTER I WITH DIAERESIS"
+ u:entity="Iuml"
+ string="\(:I"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d0;"
+ u:name="LATIN CAPITAL LETTER ETH"
+ u:entity="ETH"
+ string="\(-D"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d1;"
+ u:name="LATIN CAPITAL LETTER N WITH TILDE"
+ u:entity="Ntilde"
+ string="\(~N"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d2;"
+ u:name="LATIN CAPITAL LETTER O WITH GRAVE"
+ u:entity="Ograve"
+ string="\(`O"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d3;"
+ u:name="LATIN CAPITAL LETTER O WITH ACUTE"
+ u:entity="Oacute"
+ string="\('O"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d4;"
+ u:name="LATIN CAPITAL LETTER O WITH CIRCUMFLEX"
+ u:entity="Ocirc"
+ string="\(^O"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d5;"
+ u:name="LATIN CAPITAL LETTER O WITH TILDE"
+ u:entity="Otilde"
+ string="\(~O"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d6;"
+ u:name="LATIN CAPITAL LETTER O WITH DIAERESIS"
+ u:entity="Ouml"
+ string="\(:O"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d7;"
+ u:name="MULTIPLICATION SIGN"
+ u:entity="times"
+ string="\(mu"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00d8;"
+ u:name="LATIN CAPITAL LETTER O WITH STROKE"
+ u:entity="Oslash"
+ string="\(/O"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00d9;"
+ u:name="LATIN CAPITAL LETTER U WITH GRAVE"
+ u:entity="Ugrave"
+ string="\(`U"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00da;"
+ u:name="LATIN CAPITAL LETTER U WITH ACUTE"
+ u:entity="Uacute"
+ string="\('U"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00db;"
+ u:name="LATIN CAPITAL LETTER U WITH CIRCUMFLEX"
+ u:entity="Ucirc"
+ string="\(^U"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00dc;"
+ u:name="LATIN CAPITAL LETTER U WITH DIAERESIS"
+ u:entity="Uuml"
+ string="\(:U"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00dd;"
+ u:name="LATIN CAPITAL LETTER Y WITH ACUTE"
+ u:entity="Yacute"
+ string="\('Y"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00de;"
+ u:name="LATIN CAPITAL LETTER THORN"
+ u:entity="THORN"
+ string="\(TP"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00df;"
+ u:name="LATIN SMALL LETTER SHARP S"
+ u:entity="szlig"
+ string="\(ss"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e0;"
+ u:name="LATIN SMALL LETTER A WITH GRAVE"
+ u:entity="agrave"
+ string="\(`a"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e1;"
+ u:name="LATIN SMALL LETTER A WITH ACUTE"
+ u:entity="aacute"
+ string="\('a"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e2;"
+ u:name="LATIN SMALL LETTER A WITH CIRCUMFLEX"
+ u:entity="acirc"
+ string="\(^a"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e3;"
+ u:name="LATIN SMALL LETTER A WITH TILDE"
+ u:entity="atilde"
+ string="\(~a"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e4;"
+ u:name="LATIN SMALL LETTER A WITH DIAERESIS"
+ u:entity="auml"
+ string="\(:a"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e5;"
+ u:name="LATIN SMALL LETTER A WITH RING ABOVE"
+ u:entity="aring"
+ string="\(oa"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e6;"
+ u:name="LATIN SMALL LETTER AE"
+ u:entity="aelig"
+ string="\(ae"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e7;"
+ u:name="LATIN SMALL LETTER C WITH CEDILLA"
+ u:entity="ccedil"
+ string="\(,c"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e8;"
+ u:name="LATIN SMALL LETTER E WITH GRAVE"
+ u:entity="egrave"
+ string="\(`e"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00e9;"
+ u:name="LATIN SMALL LETTER E WITH ACUTE"
+ u:entity="eacute"
+ string="\('e"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ea;"
+ u:name="LATIN SMALL LETTER E WITH CIRCUMFLEX"
+ u:entity="ecirc"
+ string="\(^e"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00eb;"
+ u:name="LATIN SMALL LETTER E WITH DIAERESIS"
+ u:entity="euml"
+ string="\(:e"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ec;"
+ u:name="LATIN SMALL LETTER I WITH GRAVE"
+ u:entity="igrave"
+ string="\(`i"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ed;"
+ u:name="LATIN SMALL LETTER I WITH ACUTE"
+ u:entity="iacute"
+ string="\('i"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ee;"
+ u:name="LATIN SMALL LETTER I WITH CIRCUMFLEX"
+ u:entity="icirc"
+ string="\(^i"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ef;"
+ u:name="LATIN SMALL LETTER I WITH DIAERESIS"
+ u:entity="iuml"
+ string="\(:i"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f0;"
+ u:name="LATIN SMALL LETTER ETH"
+ u:entity="eth"
+ string="\(Sd"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f1;"
+ u:name="LATIN SMALL LETTER N WITH TILDE"
+ u:entity="ntilde"
+ string="\(~n"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f2;"
+ u:name="LATIN SMALL LETTER O WITH GRAVE"
+ u:entity="ograve"
+ string="\(`o"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f3;"
+ u:name="LATIN SMALL LETTER O WITH ACUTE"
+ u:entity="oacute"
+ string="\('o"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f4;"
+ u:name="LATIN SMALL LETTER O WITH CIRCUMFLEX"
+ u:entity="ocirc"
+ string="\(^o"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f5;"
+ u:name="LATIN SMALL LETTER O WITH TILDE"
+ u:entity="otilde"
+ string="\(~o"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f6;"
+ u:name="LATIN SMALL LETTER O WITH DIAERESIS"
+ u:entity="ouml"
+ string="\(:o"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f7;"
+ u:name="DIVISION SIGN"
+ u:entity="divide"
+ string="\(di"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="symbols"
+ />
+ <xsl:output-character
+ character="&#x00f8;"
+ u:name="LATIN SMALL LETTER O WITH STROKE"
+ u:entity="oslash"
+ string="\(/o"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00f9;"
+ u:name="LATIN SMALL LETTER U WITH GRAVE"
+ u:entity="ugrave"
+ string="\(`u"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00fa;"
+ u:name="LATIN SMALL LETTER U WITH ACUTE"
+ u:entity="uacute"
+ string="\('u"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00fb;"
+ u:name="LATIN SMALL LETTER U WITH CIRCUMFLEX"
+ u:entity="ucirc"
+ string="\(^u"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00fc;"
+ u:name="LATIN SMALL LETTER U WITH DIAERESIS"
+ u:entity="uuml"
+ string="\(:u"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00fd;"
+ u:name="LATIN SMALL LETTER Y WITH ACUTE"
+ u:entity="yacute"
+ string="\('y"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00fe;"
+ u:name="LATIN SMALL LETTER THORN"
+ u:entity="thorn"
+ string="\(Tp"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <xsl:output-character
+ character="&#x00ff;"
+ u:name="LATIN SMALL LETTER Y WITH DIAERESIS"
+ u:entity="yuml"
+ string="\(:y"
+ u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+ u:class="letters"
+ />
+ <!-- * **************************************************************** -->
+ <!-- * End: Latin-1/ISO-8859-1 -->
+ <!-- * **************************************************************** -->
+
+ <!-- * **************************************************************** -->
+ <!-- * Begin: -->
+ <!-- * -->
+ <!-- * - x0100 to x017f (Latin Extended-A) -->
+ <!-- * - x0180 to x023f (Latin Extended-B) -->
+ <!-- * - x0250 to x02ad (IPA Extensions) -->
+ <!-- * - x02b0 to x02ee (Spacing Modifier Letters) -->
+ <!-- * - x0300 to x036f (Combining Diacritical Marks) -->
+ <!-- * -->
+ <!-- * Other than the following exceptions, characters in these -->
+ <!-- * blocks don't have any roff equivalents -->
+ <!-- * **************************************************************** -->
+
+ <xsl:output-character
+ character="&#x0131;"
+ u:name="LATIN SMALL LETTER DOTLESS I"
+ u:entity="inodot"
+ string="\(.i"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0132;"
+ u:name="LATIN CAPITAL LIGATURE IJ"
+ u:entity="IJlig"
+ string="\(IJ"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0133;"
+ u:name="LATIN SMALL LIGATURE IJ"
+ u:entity="ijlig"
+ string="\(ij"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0141;"
+ u:name="LATIN CAPITAL LETTER L WITH STROKE"
+ u:entity="Lstrok"
+ string="\(/L"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0142;"
+ u:name="LATIN SMALL LETTER L WITH STROKE"
+ u:entity="lstrok"
+ string="\(/l"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0152;"
+ u:name="LATIN CAPITAL LIGATURE OE"
+ u:entity="OElig"
+ string="\(OE"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0153;"
+ u:name="LATIN SMALL LIGATURE OE"
+ u:entity="oelig"
+ string="\(oe"
+ u:block="Latin Extended-A"
+ />
+ <xsl:output-character
+ character="&#x0192;"
+ u:name="LATIN SMALL LETTER F WITH HOOK"
+ u:entity="fnof"
+ string="\(Fn"
+ u:block="Latin Extended-B"
+ />
+ <xsl:output-character
+ character="&#x02c6;"
+ u:name="MODIFIER LETTER CIRCUMFLEX ACCENT"
+ u:entity="circ"
+ string="\(a^"
+ u:block="Spacing Modifier Letters"
+ />
+ <xsl:output-character
+ character="&#x02c7;"
+ u:name="CARON"
+ u:entity="caron"
+ string="\(ac"
+ u:block="Spacing Modifier Letters"
+ />
+ <xsl:output-character
+ character="&#x02c9;"
+ u:name="MODIFIER LETTER MACRON"
+ string="\(a-"
+ u:block="Spacing Modifier Letters"
+ />
+ <xsl:output-character
+ character="&#x02d8;"
+ u:name="BREVE"
+ u:entity="breve"
+ string="\(ab"
+ u:block="Spacing Modifier Letters"
+ />
+<!-- * there does not seem to by any roff equivalent for "dot above" -->
+<!-- * <xsl:output-character -->
+<!-- * character="&#x02d9;" -->
+<!-- * u:name="DOT ABOVE" -->
+<!-- * u:entity="dot" -->
+<!-- * /> -->
+ <xsl:output-character
+ character="&#x02da;"
+ u:name="RING ABOVE"
+ u:entity="ring"
+ string="\(ao"
+ u:block="Spacing Modifier Letters"
+ />
+ <xsl:output-character
+ character="&#x02db;"
+ u:name="OGONEK"
+ u:entity="ogon"
+ string="\(ho"
+ u:block="Spacing Modifier Letters"
+ />
+ <!-- groff_char(7) calls Unicode x02dd a "Hungarian umlaut" -->
+ <xsl:output-character
+ character="&#x02dd;"
+ u:name="DOUBLE ACUTE ACCENT"
+ u:entity="dblac"
+ string='\(a"'
+ u:block="Spacing Modifier Letters"
+ />
+
+ <!-- * **************************************************************** -->
+ <!-- * End: -->
+ <!-- * - Latin Extended-A -->
+ <!-- * - Latin Extended-B -->
+ <!-- * - IPA Extensions -->
+ <!-- * - Spacing Modifier Letters -->
+ <!-- * - Combining Diacritical Marks -->
+ <!-- * **************************************************************** -->
+
+ <!-- * **************************************************************** -->
+ <!-- * Begin: Greek and Coptic -->
+ <!-- * x0370 to x03ff -->
+ <!-- * **************************************************************** -->
+
+ <xsl:output-character
+ character="&#x0391;"
+ u:name="GREEK CAPITAL LETTER ALPHA"
+ u:entity="Agr"
+ string="\(*A)"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0392;"
+ u:name="GREEK CAPITAL LETTER BETA"
+ u:entity="Bgr"
+ string="\(*B"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0393;"
+ u:name="GREEK CAPITAL LETTER GAMMA"
+ u:entity="Gamma"
+ string="\(*G"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0394;"
+ u:name="GREEK CAPITAL LETTER DELTA"
+ u:entity="Delta"
+ string="\(*D"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0395;"
+ u:name="GREEK CAPITAL LETTER EPSILON"
+ u:entity="Egr"
+ string="\(*E"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0396;"
+ u:name="GREEK CAPITAL LETTER ZETA"
+ u:entity="Zgr"
+ string="\(*Z"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0397;"
+ u:name="GREEK CAPITAL LETTER ETA"
+ u:entity="EEgr"
+ string="\(*Y"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0398;"
+ u:name="GREEK CAPITAL LETTER THETA"
+ u:entity="THgr"
+ string="\(*H"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x0399;"
+ u:name="GREEK CAPITAL LETTER IOTA"
+ u:entity="Igr"
+ string="\(*I"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x039a;"
+ u:name="GREEK CAPITAL LETTER KAPPA"
+ u:entity="Kgr"
+ string="\(*K"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x039b;"
+ u:name="GREEK CAPITAL LETTER LAMDA"
+ u:entity="Lambda"
+ string="\(*L"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x039c;"
+ u:name="GREEK CAPITAL LETTER MU"
+ u:entity="Mgr"
+ string="\(*M"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x039d;"
+ u:name="GREEK CAPITAL LETTER NU"
+ u:entity="Ngr"
+ string="\(*N"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x039e;"
+ u:name="GREEK CAPITAL LETTER XI"
+ u:entity="Xgr"
+ string="\(*C"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x039f;"
+ u:name="GREEK CAPITAL LETTER OMICRON"
+ u:entity="Ogr"
+ string="\(*O"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a0;"
+ u:name="GREEK CAPITAL LETTER PI"
+ u:entity="Pgr"
+ string="\(*P"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a1;"
+ u:name="GREEK CAPITAL LETTER RHO"
+ u:entity="Rgr"
+ string="\(*R"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a3;"
+ u:name="GREEK CAPITAL LETTER SIGMA"
+ u:entity="Sgr"
+ string="\(*S"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a4;"
+ u:name="GREEK CAPITAL LETTER TAU"
+ u:entity="Tgr"
+ string="\(*T"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a5;"
+ u:name="GREEK CAPITAL LETTER UPSILON"
+ u:entity="Ugr"
+ string="\(*U"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a6;"
+ u:name="GREEK CAPITAL LETTER PHI"
+ u:entity="PHgr"
+ string="\(*F"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a7;"
+ u:name="GREEK CAPITAL LETTER CHI"
+ u:entity="KHgr"
+ string="\(*X"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a8;"
+ u:name="GREEK CAPITAL LETTER PSI"
+ u:entity="PSgr"
+ string="\(*Q"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03a9;"
+ u:name="GREEK CAPITAL LETTER OMEGA"
+ u:entity="OHgr"
+ string="\(*W"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03aa;"
+ u:name="GREEK CAPITAL LETTER IOTA WITH DIALYTIKA"
+ u:entity="Idigr"
+ string="\(*I"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ab;"
+ u:name="GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA"
+ u:entity="Udigr"
+ string="\(*U"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ac;"
+ u:name="GREEK SMALL LETTER ALPHA WITH TONOS"
+ u:entity="aacgr"
+ string="\(*a"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ad;"
+ u:name="GREEK SMALL LETTER EPSILON WITH TONOS"
+ u:entity="eacgr"
+ string="\(*e"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ae;"
+ u:name="GREEK SMALL LETTER ETA WITH TONOS"
+ u:entity="eeacgr"
+ string="\(*y"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03af;"
+ u:name="GREEK SMALL LETTER IOTA WITH TONOS"
+ u:entity="iacgr"
+ string="\(*i"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b0;"
+ u:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS"
+ u:entity="udiagr"
+ string="\(*u"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b1;"
+ u:name="GREEK SMALL LETTER ALPHA"
+ u:entity="agr"
+ string="\(*a"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b2;"
+ u:name="GREEK SMALL LETTER BETA"
+ u:entity="beta"
+ string="\(*b"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b3;"
+ u:name="GREEK SMALL LETTER GAMMA"
+ u:entity="gamma"
+ string="\(*g"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b4;"
+ u:name="GREEK SMALL LETTER DELTA"
+ u:entity="delta"
+ string="\(*d"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b5;"
+ u:name="GREEK SMALL LETTER EPSILON"
+ u:entity="epsi"
+ string="\(*e"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b6;"
+ u:name="GREEK SMALL LETTER ZETA"
+ u:entity="zeta"
+ string="\(*z"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b7;"
+ u:name="GREEK SMALL LETTER ETA"
+ u:entity="eegr"
+ string="\(*y"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b8;"
+ u:name="GREEK SMALL LETTER THETA"
+ u:entity="thetas"
+ string="\(*h"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03b9;"
+ u:name="GREEK SMALL LETTER IOTA"
+ u:entity="igr"
+ string="\(*i"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ba;"
+ u:name="GREEK SMALL LETTER KAPPA"
+ u:entity="kappa"
+ string="\(*k"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03bb;"
+ u:name="GREEK SMALL LETTER LAMDA"
+ u:entity="lambda"
+ string="\(*l"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03bc;"
+ u:name="GREEK SMALL LETTER MU"
+ u:entity="mgr"
+ string="\(*m"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03bd;"
+ u:name="GREEK SMALL LETTER NU"
+ u:entity="ngr"
+ string="\(*n"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03be;"
+ u:name="GREEK SMALL LETTER XI"
+ u:entity="xgr"
+ string="\(*c"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03bf;"
+ u:name="GREEK SMALL LETTER OMICRON"
+ u:entity="ogr"
+ string="\(*o"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c0;"
+ u:name="GREEK SMALL LETTER PI"
+ u:entity="pgr"
+ string="\(*p"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c1;"
+ u:name="GREEK SMALL LETTER RHO"
+ u:entity="rgr"
+ string="\(*r"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c2;"
+ u:name="GREEK SMALL LETTER FINAL SIGMA"
+ u:entity="sfgr"
+ string="\(ts"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c3;"
+ u:name="GREEK SMALL LETTER SIGMA"
+ u:entity="sgr"
+ string="\(*s"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c4;"
+ u:name="GREEK SMALL LETTER TAU"
+ u:entity="tau"
+ string="\(*t"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c5;"
+ u:name="GREEK SMALL LETTER UPSILON"
+ u:entity="ugr"
+ string="\(*u"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c6;"
+ u:name="GREEK SMALL LETTER PHI"
+ u:entity="phgr"
+ string="\(*f"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c7;"
+ u:name="GREEK SMALL LETTER CHI"
+ u:entity="chi"
+ string="\(*x"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c8;"
+ u:name="GREEK SMALL LETTER PSI"
+ u:entity="psgr"
+ string="\(*q"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03c9;"
+ u:name="GREEK SMALL LETTER OMEGA"
+ u:entity="ohgr"
+ string="\(*w"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ca;"
+ u:name="GREEK SMALL LETTER IOTA WITH DIALYTIKA"
+ u:entity="idigr"
+ string="\(*i"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03cb;"
+ u:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA"
+ u:entity="udigr"
+ string="\(*u"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03cc;"
+ u:name="GREEK SMALL LETTER OMICRON WITH TONOS"
+ u:entity="oacgr"
+ string="\(*o"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03cd;"
+ u:name="GREEK SMALL LETTER UPSILON WITH TONOS"
+ u:entity="uacgr"
+ string="\(*u"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03ce;"
+ u:name="GREEK SMALL LETTER OMEGA WITH TONOS"
+ u:entity="ohacgr"
+ string="\(*w"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d0;"
+ u:name="GREEK BETA SYMBOL"
+ string="\(*B"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d1;"
+ u:name="GREEK THETA SYMBOL"
+ u:entity="thetav"
+ string="\(+h"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d2;"
+ u:name="GREEK UPSILON WITH HOOK SYMBOL"
+ u:entity="Upsi"
+ string="\(*U"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d3;"
+ u:name="GREEK UPSILON WITH ACUTE AND HOOK SYMBOL"
+ string="\(*U"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d4;"
+ u:name="GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL"
+ string="\(*U"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d5;"
+ u:name="GREEK PHI SYMBOL"
+ u:entity="phis"
+ string="\(+f"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03d6;"
+ u:name="GREEK PI SYMBOL"
+ u:entity="piv"
+ string="\(+p"
+ u:block="Greek and Coptic"
+ />
+ <!-- no mappings for remaining chars x03d7 to x03ef -->
+ <xsl:output-character
+ character="&#x03f0;"
+ u:name="GREEK KAPPA SYMBOL"
+ u:entity="kappav"
+ string="(*k"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03f1;"
+ u:name="GREEK RHO SYMBOL"
+ u:entity="rhov"
+ string="\(*r"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03f2;"
+ u:name="GREEK LUNATE SIGMA SYMBOL"
+ string="\(*s"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03f4;"
+ u:name="GREEK CAPITAL THETA SYMBOL"
+ string="\(*H"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03f5;"
+ u:name="GREEK LUNATE EPSILON SYMBOL"
+ string="\(*e"
+ u:block="Greek and Coptic"
+ />
+ <xsl:output-character
+ character="&#x03f6;"
+ u:name="GREEK REVERSED LUNATE EPSILON SYMBOL"
+ u:entity="bepsi"
+ string="\(*e"
+ u:block="Greek and Coptic"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Greek and Coptic -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- * Cyrillic -->
+ <!-- * x0400 to x04ff -->
+ <!-- * - do nothing - -->
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: General Punctuation -->
+ <!-- * x2000 to x206f -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * first, spaces of various widths -->
+
+ <!-- * Note: There does not seem to be either a real em space or en space -->
+ <!-- * in roff; to approximate them, this character map assumes that in -->
+ <!-- * most fonts, an en space is about the same as the width of a digit -->
+ <!-- * (in roff, "\0"), so an em space (which by definition is -->
+ <!-- * equal to the width of two en spaces) is about the same as the width -->
+ <!-- * of two digits (thus, in roff, "\0\0") -->
+
+ <xsl:output-character
+ character="&#x2000;"
+ u:name="EN QUAD"
+ string="\0"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <xsl:output-character
+ character="&#x2001;"
+ u:name="EM QUAD"
+ string="\0\0"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <xsl:output-character
+ character="&#x2002;"
+ u:name="EN SPACE"
+ u:entity="ensp"
+ string="\0"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <xsl:output-character
+ character="&#x2003;"
+ u:name="EM SPACE"
+ u:entity="emsp"
+ string="\0\0"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * roughly same width as a normal space -->
+ <xsl:output-character
+ character="&#x2004;"
+ u:name="THREE-PER-EM SPACE"
+ u:entity="emsp13"
+ string=" "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * roughly same width as a normal space -->
+ <xsl:output-character
+ character="&#x2005;"
+ u:name="FOUR-PER-EM SPACE"
+ u:entity="emsp14"
+ string=" "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * roughly same width as a normal space -->
+ <xsl:output-character
+ character="&#x2006;"
+ u:name="SIX-PER-EM SPACE"
+ string=" "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * same as roff "digit" space -->
+ <xsl:output-character
+ character="&#x2007;"
+ u:name="FIGURE SPACE"
+ u:entity="numsp"
+ string="\0"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * punctuation space in most fonts is actually closer to a normal -->
+ <!-- * space than it is to a thin space -->
+ <xsl:output-character
+ character="&#x2008;"
+ u:name="PUNCTUATION SPACE"
+ u:entity="puncsp"
+ string=" "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * Note: Not sure how best to deal with thin space, because the roff -->
+ <!-- * thin space, "\^", prints as a zero-width space in TTY -->
+ <!-- * output. However, it seems that, unlike a hair space, a thin space, -->
+ <!-- * at 1/12 of an em, is still recognizable to most people as a space, -->
+ <!-- * so treating it as zero-width seems wrong. So, for the sake of making -->
+ <!-- * TTY output look OK, just substitute with a normal space; but real -->
+ <!-- * roff escape is "\(\^" -->
+ <xsl:output-character
+ character="&#x2009;"
+ u:name="THIN SPACE"
+ u:entity="thinsp"
+ string=" "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * I don't think there's a standard definition of what a hair -->
+ <!-- * space is; some guides just say it's "less than 1/5 of an em" or -->
+ <!-- * that it's "narrower than a thin space"; seems like in practice, -->
+ <!-- * it's *a lot* narrower than a thin space, to the point where -->
+ <!-- * it's close to being a non-space, so here it's substituted with -->
+ <!-- * roff equivalent of a zero-width no-break space -->
+ <xsl:output-character
+ character="&#x200a;"
+ u:name="HAIR SPACE"
+ u:entity="hairsp"
+ string="\&amp;"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * map to roff "zero-width break point" -->
+ <xsl:output-character
+ character="&#x200b;"
+ u:name="ZERO WIDTH SPACE"
+ string="\:"
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+
+ <!-- * x200c and x200d have special purposes in some Indic languages (I -->
+ <!-- * think); for the "correct" zero-width space, according to Unicode docs, -->
+ <!-- * use x2060, not x200c or x200d -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x200c;" -->
+ <!-- * u:name="ZERO WIDTH NON-JOINER" -->
+ <!-- * string="\:" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x200d;" -->
+ <!-- * u:name="ZERO WIDTH JOINER" -->
+ <!-- * string="\&amp;" -->
+ <!-- * /> -->
+ <!-- * non-visible -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x200e;" -->
+ <!-- * u:name="LEFT-TO-RIGHT MARK" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x200f;" -->
+ <!-- * u:name="RIGHT-TO-LEFT MARK" -->
+ <!-- * /> -->
+
+ <!-- * .................................................... -->
+ <!-- * next, hyphens and various dashes, bars, underscores -->
+ <xsl:output-character
+ character="&#x2010;"
+ u:name="HYPHEN"
+ u:entity="hyphen"
+ string="\(hy"
+ u:block="General Punctuation"
+ u:class="dashes"
+ />
+ <!-- * although the groff docs do not make it clear, testing -->
+ <!-- * indicates that the only reliable way to make a non-breaking -->
+ <!-- * hyphen is to put just a backslash in front of it. -->
+ <!-- * -->
+ <!-- * based on testing, it also appears that no character is needed -->
+ <!-- * after the hyphen in order to make it non-breaking -->
+ <xsl:output-character
+ character="&#x2011;"
+ u:name="NON-BREAKING HYPHEN"
+ string="\-"
+ u:block="General Punctuation"
+ u:class="dashes"
+ />
+ <!-- * roughly same width as en dash -->
+ <xsl:output-character
+ character="&#x2012;"
+ u:name="FIGURE DASH"
+ string="\(en"
+ u:block="General Punctuation"
+ u:class="dashes"
+ />
+ <xsl:output-character
+ character="&#x2013;"
+ u:name="EN DASH"
+ u:entity="ndash"
+ string="\(en"
+ u:block="General Punctuation"
+ u:class="dashes"
+ />
+ <xsl:output-character
+ character="&#x2014;"
+ u:name="EM DASH"
+ u:entity="mdash"
+ string="\(em"
+ u:block="General Punctuation"
+ u:class="dashes"
+ />
+ <!-- * seems roughly same width as em dash -->
+ <xsl:output-character
+ character="&#x2015;"
+ u:name="HORIZONTAL BAR"
+ u:entity="horbar"
+ string="\(em"
+ u:block="General Punctuation"
+ u:class="dashes"
+ />
+ <xsl:output-character
+ character="&#x2016;"
+ u:name="DOUBLE VERTICAL LINE"
+ u:entity="Verbar"
+ string="\(bv\(bv"
+ u:block="General Punctuation"
+ />
+ <!-- * no double-underscore in roff; so just make it a single -->
+ <!-- * underscore -->
+ <xsl:output-character
+ character="&#x2017;"
+ u:name="DOUBLE LOW LINE"
+ string="_"
+ u:block="General Punctuation"
+ />
+
+ <!-- * .................................................... -->
+ <!-- * various quotation marks -->
+ <xsl:output-character
+ character="&#x2018;"
+ u:name="LEFT SINGLE QUOTATION MARK"
+ u:entity="lsquo"
+ string="\(oq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <xsl:output-character
+ character="&#x2019;"
+ u:name="RIGHT SINGLE QUOTATION MARK"
+ u:entity="rsquo"
+ string="\(cq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <xsl:output-character
+ character="&#x201a;"
+ u:name="SINGLE LOW-9 QUOTATION MARK"
+ u:entity="lsquor"
+ string="\(bq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <!-- * no roff equiv; treat same as lsquo -->
+ <xsl:output-character
+ character="&#x201b;"
+ u:name="SINGLE HIGH-REVERSED-9 QUOTATION MARK"
+ string="\(oq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <xsl:output-character
+ character="&#x201c;"
+ u:name="LEFT DOUBLE QUOTATION MARK"
+ u:entity="ldquo"
+ string="\(lq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <xsl:output-character
+ character="&#x201d;"
+ u:name="RIGHT DOUBLE QUOTATION MARK"
+ u:entity="rdquo"
+ string="\(rq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <xsl:output-character
+ character="&#x201e;"
+ u:name="DOUBLE LOW-9 QUOTATION MARK"
+ u:entity="ldquor"
+ string="\(Bq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <!-- * no roff equiv; treat same as rdquo -->
+ <xsl:output-character
+ character="&#x201f;"
+ u:name="DOUBLE HIGH-REVERSED-9 QUOTATION MARK"
+ string="\(rq"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+
+ <!-- * .................................................... -->
+ <!-- * various symbols -->
+ <xsl:output-character
+ character="&#x2020;"
+ u:name="DAGGER"
+ u:entity="dagger"
+ string="\(dg"
+ u:block="General Punctuation_daggers"
+ />
+ <xsl:output-character
+ character="&#x2021;"
+ u:name="DOUBLE DAGGER"
+ u:entity="Dagger"
+ string="\(dd"
+ u:block="General Punctuation_daggers"
+ />
+ <xsl:output-character
+ character="&#x2022;"
+ u:name="BULLET"
+ u:entity="bull"
+ string="\(bu"
+ u:block="General Punctuation"
+ u:class="bullets"
+ />
+ <!-- * no roff equiv -->
+ <xsl:output-character
+ character="&#x2023;"
+ u:name="TRIANGULAR BULLET"
+ string=">\&amp;"
+ u:block="General Punctuation"
+ u:class="bullets"
+ />
+ <!-- * no roff equiv -->
+ <xsl:output-character
+ character="&#x2024;"
+ u:name="ONE DOT LEADER"
+ string="\&amp;."
+ u:block="General Punctuation_leaders"
+ />
+ <!-- * no roff equiv -->
+ <xsl:output-character
+ character="&#x2025;"
+ u:name="TWO DOT LEADER"
+ u:entity="nldr"
+ string="\&amp;.."
+ u:block="General Punctuation_leaders"
+ />
+ <!-- * no roff equiv -->
+ <xsl:output-character
+ character="&#x2026;"
+ u:name="HORIZONTAL ELLIPSIS"
+ u:entity="hellip"
+ string="\&amp;..."
+ u:block="General Punctuation"
+ />
+ <!-- what is "hyphenation point" used for? looks like middot to me... -->
+ <xsl:output-character
+ character="&#x2027;"
+ u:name="HYPHENATION POINT"
+ string="\(md"
+ u:block="General Punctuation"
+ />
+ <!-- * Begin x2028 to x202e - no idea what to do with these -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2028;" -->
+ <!-- * u:name="LINE SEPARATOR" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2029;" -->
+ <!-- * u:name="PARAGRAPH SEPARATOR" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x202a;" -->
+ <!-- * u:name="LEFT-TO-RIGHT EMBEDDING" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x202b;" -->
+ <!-- * u:name="RIGHT-TO-LEFT EMBEDDING" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x202c;" -->
+ <!-- * u:name="POP DIRECTIONAL FORMATTING" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x202d;" -->
+ <!-- * u:name="LEFT-TO-RIGHT OVERRIDE" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x202e;" -->
+ <!-- * u:name="RIGHT-TO-LEFT OVERRIDE" -->
+ <!-- * /> -->
+ <!-- * End x2028 to x202e - no idea what to do with these -->
+
+ <!-- * seems like "narrow" nbsp is basically the same as a no-break -->
+ <!-- * space -->
+ <xsl:output-character
+ character="&#x202f;"
+ u:name="NARROW NO-BREAK SPACE"
+ string="\ "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <xsl:output-character
+ character="&#x2030;"
+ u:name="PER MILLE SIGN"
+ u:entity="permil"
+ string="\(%0"
+ u:block="General Punctuation"
+ />
+ <!-- * no roff equiv; no idea what to do with it -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2031;" -->
+ <!-- * u:name="PER TEN THOUSAND SIGN" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2032;"
+ u:name="PRIME"
+ u:entity="prime"
+ string="\(fm"
+ u:block="General Punctuation"
+ u:class="primes"
+ />
+ <xsl:output-character
+ character="&#x2033;"
+ u:name="DOUBLE PRIME"
+ u:entity="Prime"
+ string="\(sd"
+ u:block="General Punctuation"
+ u:class="primes"
+ />
+ <xsl:output-character
+ character="&#x2034;"
+ u:name="TRIPLE PRIME"
+ u:entity="tprime"
+ string="\(sd\(fm"
+ u:block="General Punctuation"
+ u:class="primes"
+ />
+ <!-- * no idea for these -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2035;" -->
+ <!-- * u:name="REVERSED PRIME" -->
+ <!-- * u:entity="bprime" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2036;" -->
+ <!-- * u:name="REVERSED DOUBLE PRIME" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2037;" -->
+ <!-- * u:name="REVERSED TRIPLE PRIME" -->
+ <!-- * /> -->
+
+ <!-- * there is no low caret in roff -->
+ <xsl:output-character
+ character="&#x2038;"
+ u:name="CARET"
+ string="^"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x2039;"
+ u:name="SINGLE LEFT-POINTING ANGLE QUOTATION MARK"
+ string="\(fo"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <xsl:output-character
+ character="&#x203a;"
+ u:name="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK"
+ string="\(fc"
+ u:block="General Punctuation"
+ u:class="quotes"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x203b;"
+ u:name="REFERENCE MARK"
+ string="*"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x203c;"
+ u:name="DOUBLE EXCLAMATION MARK"
+ string="!!"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x203d;"
+ u:name="INTERROBANG"
+ string="?!"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x203e;"
+ u:name="OVERLINE"
+ string="\(rn"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x203f;"
+ u:name="UNDERTIE"
+ string="\(ul"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x2040;"
+ u:name="CHARACTER TIE"
+ string="\(rn"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x2041;"
+ u:name="CARET INSERTION POINT"
+ u:entity="caret"
+ string="^"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x2042;"
+ u:name="ASTERISM"
+ string="*"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff; just make bold hyphen -->
+ <xsl:output-character
+ character="&#x2043;"
+ u:name="HYPHEN BULLET"
+ u:entity="hybull"
+ string="\fB-\fR"
+ u:block="General Punctuation"
+ u:class="bullets"
+ />
+ <xsl:output-character
+ character="&#x2044;"
+ u:name="FRACTION SLASH"
+ string="\(sl"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x2045;"
+ u:name="LEFT SQUARE BRACKET WITH QUILL"
+ string="["
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x2046;"
+ u:name="RIGHT SQUARE BRACKET WITH QUILL"
+ string="]"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x2047;"
+ u:name="DOUBLE QUESTION MARK"
+ string="??"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x2048;"
+ u:name="QUESTION EXCLAMATION MARK"
+ string="?!"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x2049;"
+ u:name="EXCLAMATION QUESTION MARK"
+ string="!?"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff -->
+ <xsl:output-character
+ character="&#x204a;"
+ u:name="TIRONIAN SIGN ET"
+ string="7"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff; just replace with un-reversed pilcrow -->
+ <xsl:output-character
+ character="&#x204b;"
+ u:name="REVERSED PILCROW SIGN"
+ string="\(ps"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff; just make regular bullet -->
+ <xsl:output-character
+ character="&#x204c;"
+ u:name="BLACK LEFTWARDS BULLET"
+ string="\(bu"
+ u:block="General Punctuation"
+ />
+ <!-- * not in roff; just make regular bullet -->
+ <xsl:output-character
+ character="&#x204d;"
+ u:name="BLACK RIGHTWARDS BULLET"
+ string="\(bu"
+ u:block="General Punctuation"
+ />
+ <xsl:output-character
+ character="&#x204e;"
+ u:name="LOW ASTERISK"
+ string="*"
+ u:block="General Punctuation"
+ />
+
+ <!-- * ............................................................... -->
+ <!-- * Remaining General Punctuation -->
+ <!-- * from x2050 to x206f -->
+ <!-- * only map a couple of these -->
+ <!-- * ............................................................... -->
+
+ <!-- * basically same as a normal space -->
+ <xsl:output-character
+ character="&#x205f;"
+ u:name="MEDIUM MATHEMATICAL SPACE"
+ string=" "
+ u:block="General Punctuation"
+ u:class="spaces"
+ />
+ <!-- * Regarding x2060 vs. xFEFF, the document "Unicode Standard Annex #14, -->
+ <!-- * Line Breaking Properties"[1] says: -->
+ <!-- * -->
+ <!-- * The word joiner character [x2060 a.k.a "WJ"] is the preferred -->
+ <!-- * choice for an invisible character to keep other characters -->
+ <!-- * together that would otherwise be split across the line at a direct -->
+ <!-- * break. The character FEFF has the same effect, but because it is -->
+ <!-- * also used in an unrelated way as a byte order mark, the use of the -->
+ <!-- * WJ as the preferred interword glue simplifies the handling of FEFF. -->
+ <!-- * -->
+ <!-- * [1] http://www.unicode.org/reports/tr14/ -->
+ <!-- * -->
+ <!-- * The groff docs seem ambiguous about whether \& is a joiner and -->
+ <!-- * prevents breaks, but, based on testing, seems like it does -->
+ <xsl:output-character
+ character="&#x2060;"
+ u:name="WORD JOINER"
+ string="\&amp;"
+ u:block="General Punctuation"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: General Punctuation -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Superscripts and Subscripts -->
+ <!-- * x2070 to x209f -->
+ <!-- * For superscripts, just do a^n thing -->
+ <!-- * For subscripts, just do a_n -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2070;"
+ u:name="SUPERSCRIPT ZERO"
+ string="^0"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2071;"
+ u:name="SUPERSCRIPT LATIN SMALL LETTER I"
+ string="^i"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2074;"
+ u:name="SUPERSCRIPT FOUR"
+ string="^4"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2075;"
+ u:name="SUPERSCRIPT FIVE"
+ string="^5"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2076;"
+ u:name="SUPERSCRIPT SIX"
+ string="^6"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2077;"
+ u:name="SUPERSCRIPT SEVEN"
+ string="^7"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2078;"
+ u:name="SUPERSCRIPT EIGHT"
+ string="^8"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2079;"
+ u:name="SUPERSCRIPT NINE"
+ string="^9"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x207a;"
+ u:name="SUPERSCRIPT PLUS SIGN"
+ string="^+"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x207b;"
+ u:name="SUPERSCRIPT MINUS"
+ string="^-"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x207c;"
+ u:name="SUPERSCRIPT EQUALS SIGN"
+ string="^="
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x207d;"
+ u:name="SUPERSCRIPT LEFT PARENTHESIS"
+ string="^("
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x207e;"
+ u:name="SUPERSCRIPT RIGHT PARENTHESIS"
+ string="^)"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x207f;"
+ u:name="SUPERSCRIPT LATIN SMALL LETTER N"
+ string="^n"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2080;"
+ u:name="SUBSCRIPT ZERO"
+ string="_0"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2081;"
+ u:name="SUBSCRIPT ONE"
+ string="_1"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2082;"
+ u:name="SUBSCRIPT TWO"
+ string="_2"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2083;"
+ u:name="SUBSCRIPT THREE"
+ string="_3"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2084;"
+ u:name="SUBSCRIPT FOUR"
+ string="_4"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2085;"
+ u:name="SUBSCRIPT FIVE"
+ string="_5"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2086;"
+ u:name="SUBSCRIPT SIX"
+ string="_6"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2087;"
+ u:name="SUBSCRIPT SEVEN"
+ string="_7"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2088;"
+ u:name="SUBSCRIPT EIGHT"
+ string="_8"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x2089;"
+ u:name="SUBSCRIPT NINE"
+ string="_9"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x208a;"
+ u:name="SUBSCRIPT PLUS SIGN"
+ string="_+"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x208b;"
+ u:name="SUBSCRIPT MINUS"
+ string="_-"
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x208c;"
+ u:name="SUBSCRIPT EQUALS SIGN"
+ string="_="
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x208d;"
+ u:name="SUBSCRIPT LEFT PARENTHESIS"
+ string="_("
+ u:block="Superscripts and Subscripts"
+ />
+ <xsl:output-character
+ character="&#x208e;"
+ u:name="SUBSCRIPT RIGHT PARENTHESIS"
+ string="_)"
+ u:block="Superscripts and Subscripts"
+ />
+ <!-- * ***************************************************************** -->
+ <!-- * End: Superscripts and Subscripts -->
+ <!-- * x2070 to x209f -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Currency Symbols -->
+ <!-- * x20a0 to x20b1 -->
+ <!-- * No mappings for any of these; just spell out -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x20a0;"
+ u:name="EURO-CURRENCY SIGN"
+ string="EUR"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a1;"
+ u:name="COLON SIGN"
+ string="COLON"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a2;"
+ u:name="CRUZEIRO SIGN"
+ string="CRUZEIRO"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a3;"
+ u:name="FRENCH FRANC SIGN"
+ string="FRANC"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a4;"
+ u:name="LIRA SIGN"
+ string="LIRA"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a5;"
+ u:name="MILL SIGN"
+ string="MILL"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a6;"
+ u:name="NAIRA SIGN"
+ string="NAIRA"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a7;"
+ u:name="PESETA SIGN"
+ string="PESETA"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a8;"
+ u:name="RUPEE SIGN"
+ string="RUPEE"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20a9;"
+ u:name="WON SIGN"
+ string="WON"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20aa;"
+ u:name="NEW SHEQEL SIGN"
+ string="SHEQEL"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20ab;"
+ u:name="DONG SIGN"
+ string="DONG"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20ac;"
+ u:name="EURO SIGN"
+ string="EUR"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20ad;"
+ u:name="KIP SIGN"
+ string="KIP"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20ae;"
+ u:name="TUGRIK SIGN"
+ string="TUGRIK"
+ u:block="Currency Symbols"
+ />
+ <xsl:output-character
+ character="&#x20af;"
+ u:name="DRACHMA SIGN"
+ string="DRACHMA"
+ u:block="Currency Symbols"
+ />
+ <!-- <xsl:output-character -->
+ <!-- character="&#x20b0;" -->
+ <!-- u:name="GERMAN PENNY SIGN" -->
+ <!-- string="?" -->
+ <!-- u:block="Currency Symbols" -->
+ <!-- /> -->
+ <xsl:output-character
+ character="&#x20b1;"
+ u:name="PESO SIGN"
+ string="PESO"
+ u:block="Currency Symbols"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Currency Symbols -->
+ <!-- * x20a0 to x20b1 -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- * Combining Diacritical Marks for Symbols -->
+ <!-- * x20d0 to x20ff -->
+ <!-- * - do nothing - -->
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Letterlike Symbols -->
+ <!-- * x2100 to x214b -->
+ <!-- * -->
+ <!-- * No mappings for any of these, and nothing appropriate for -->
+ <!-- * most of them; so, just spell out the ones that we can -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2103;"
+ u:name="DEGREE CELSIUS"
+ string="\(deC"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2105;"
+ u:name="CARE OF"
+ u:entity="incare"
+ string="c/o"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2109;"
+ u:name="DEGREE FAHRENHEIT"
+ string="\(deF"
+ u:block="Letterlike Symbols"
+ />
+ <!-- roff Ifraktur -->
+ <xsl:output-character
+ character="&#x2111;"
+ u:name="BLACK-LETTER CAPITAL I"
+ string="\(Im"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2113;"
+ u:name="SCRIPT SMALL L"
+ u:entity="ell"
+ string="l"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2116;"
+ u:name="NUMERO SIGN"
+ u:entity="numero"
+ string="No."
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2118;"
+ u:name="SCRIPT CAPITAL P"
+ u:entity="weierp"
+ string="\(wp"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x211c;"
+ u:name="BLACK-LETTER CAPITAL R"
+ u:entity="real"
+ string="\(Re"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x211e;"
+ u:name="PRESCRIPTION TAKE"
+ u:entity="rx"
+ string="Rx"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2120;"
+ u:name="SERVICE MARK"
+ string="(SM)"
+ u:block="Letterlike Symbols"
+ />
+ <!-- * We don't do "\(tm" for &#x2122; because for console output, groff -->
+ <!-- * just renders that as "tm", without any preceding space, parens, -->
+ <!-- * or anything. So it just gets run into the preceding word; i.e.: -->
+ <!-- * -->
+ <!-- * Product&#x2122; -> Producttm -->
+ <!-- * -->
+ <!-- * That it probably not what most people would want. So we just -->
+ <!-- * render it as (TM) instead, Thus: -->
+ <!-- * -->
+ <!-- * Product&#x2122; -> Product(TM) -->
+ <xsl:output-character
+ character="&#x2122;"
+ u:name="TRADE MARK SIGN"
+ u:entity="trade"
+ string="(TM)"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2126;"
+ u:name="OHM SIGN"
+ u:entity="ohm"
+ string="\(*W"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x212a;"
+ u:name="KELVIN SIGN"
+ string="K"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x212b;"
+ u:name="ANGSTROM SIGN"
+ u:entity="angst"
+ string="\(oA"
+ u:block="Letterlike Symbols"
+ />
+ <xsl:output-character
+ character="&#x2135;"
+ u:name="ALEF SYMBOL"
+ u:entity="aleph"
+ string="\(Ah"
+ u:block="Letterlike Symbols"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Letterlike Symbols -->
+ <!-- * x2100 to x214b -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Number Forms -->
+ <!-- * x2150 to x218f -->
+ <!-- * -->
+ <!-- * No mappings for any of these, and nothing appropriate for most -->
+ <!-- * of them; so, just spell out the ones that we can -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2153;"
+ u:name="VULGAR FRACTION ONE THIRD"
+ u:entity="frac13"
+ string="1/3"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2154;"
+ u:name="VULGAR FRACTION TWO THIRDS"
+ u:entity="frac23"
+ string="2/3"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2155;"
+ u:name="VULGAR FRACTION ONE FIFTH"
+ u:entity="frac15"
+ string="1/5"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2156;"
+ u:name="VULGAR FRACTION TWO FIFTHS"
+ u:entity="frac25"
+ string="2/5"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2157;"
+ u:name="VULGAR FRACTION THREE FIFTHS"
+ u:entity="frac35"
+ string="3/5"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2158;"
+ u:name="VULGAR FRACTION FOUR FIFTHS"
+ u:entity="frac45"
+ string="4/5"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2159;"
+ u:name="VULGAR FRACTION ONE SIXTH"
+ u:entity="frac16"
+ string="1/6"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x215a;"
+ u:name="VULGAR FRACTION FIVE SIXTHS"
+ u:entity="frac56"
+ string="5/6"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x215b;"
+ u:name="VULGAR FRACTION ONE EIGHTH"
+ u:entity="frac18"
+ string="1/8"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x215c;"
+ u:name="VULGAR FRACTION THREE EIGHTHS"
+ u:entity="frac38"
+ string="3/8"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x215d;"
+ u:name="VULGAR FRACTION FIVE EIGHTHS"
+ u:entity="frac58"
+ string="5/8"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x215e;"
+ u:name="VULGAR FRACTION SEVEN EIGHTHS"
+ u:entity="frac78"
+ string="7/8"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x215f;"
+ u:name="FRACTION NUMERATOR ONE"
+ string="1/"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2160;"
+ u:name="ROMAN NUMERAL ONE"
+ string="I"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2161;"
+ u:name="ROMAN NUMERAL TWO"
+ string="II"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2162;"
+ u:name="ROMAN NUMERAL THREE"
+ string="III"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2163;"
+ u:name="ROMAN NUMERAL FOUR"
+ string="IV"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2164;"
+ u:name="ROMAN NUMERAL FIVE"
+ string="V"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2165;"
+ u:name="ROMAN NUMERAL SIX"
+ string="VI"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2166;"
+ u:name="ROMAN NUMERAL SEVEN"
+ string="VII"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2167;"
+ u:name="ROMAN NUMERAL EIGHT"
+ string="VIII"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2168;"
+ u:name="ROMAN NUMERAL NINE"
+ string="IX"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2169;"
+ u:name="ROMAN NUMERAL TEN"
+ string="X"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x216a;"
+ u:name="ROMAN NUMERAL ELEVEN"
+ string="XI"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x216b;"
+ u:name="ROMAN NUMERAL TWELVE"
+ string="XII"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x216c;"
+ u:name="ROMAN NUMERAL FIFTY"
+ string="L"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x216d;"
+ u:name="ROMAN NUMERAL ONE HUNDRED"
+ string="C"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x216e;"
+ u:name="ROMAN NUMERAL FIVE HUNDRED"
+ string="D"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x216f;"
+ u:name="ROMAN NUMERAL ONE THOUSAND"
+ string="M"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2170;"
+ u:name="SMALL ROMAN NUMERAL ONE"
+ string="i"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2171;"
+ u:name="SMALL ROMAN NUMERAL TWO"
+ string="ii"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2172;"
+ u:name="SMALL ROMAN NUMERAL THREE"
+ string="iii"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2173;"
+ u:name="SMALL ROMAN NUMERAL FOUR"
+ string="iv"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2174;"
+ u:name="SMALL ROMAN NUMERAL FIVE"
+ string="v"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2175;"
+ u:name="SMALL ROMAN NUMERAL SIX"
+ string="vi"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2176;"
+ u:name="SMALL ROMAN NUMERAL SEVEN"
+ string="vii"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2177;"
+ u:name="SMALL ROMAN NUMERAL EIGHT"
+ string="viii"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2178;"
+ u:name="SMALL ROMAN NUMERAL NINE"
+ string="ix"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2179;"
+ u:name="SMALL ROMAN NUMERAL TEN"
+ string="x"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x217a;"
+ u:name="SMALL ROMAN NUMERAL ELEVEN"
+ string="xi"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x217b;"
+ u:name="SMALL ROMAN NUMERAL TWELVE"
+ string="xii"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x217c;"
+ u:name="SMALL ROMAN NUMERAL FIFTY"
+ string="l"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x217d;"
+ u:name="SMALL ROMAN NUMERAL ONE HUNDRED"
+ string="c"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x217e;"
+ u:name="SMALL ROMAN NUMERAL FIVE HUNDRED"
+ string="d"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x217f;"
+ u:name="SMALL ROMAN NUMERAL ONE THOUSAND"
+ string="m"
+ u:block="Number Forms"
+ />
+ <xsl:output-character
+ character="&#x2180;"
+ u:name="ROMAN NUMERAL ONE THOUSAND C D"
+ string="CD"
+ u:block="Number Forms"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Number Forms -->
+ <!-- * x2150 to x218f -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Arrows -->
+ <!-- * x2190 to x21ff -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2190;"
+ u:name="LEFTWARDS ARROW"
+ u:entity="larr"
+ string="\(&lt;-"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x2191;"
+ u:name="UPWARDS ARROW"
+ u:entity="uarr"
+ string="\(ua"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x2192;"
+ u:name="RIGHTWARDS ARROW"
+ u:entity="rarr"
+ string="\(->"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x2193;"
+ u:name="DOWNWARDS ARROW"
+ u:entity="darr"
+ string="\(da"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x2194;"
+ u:name="LEFT RIGHT ARROW"
+ u:entity="harr"
+ string="\(&lt;>"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x2195;"
+ u:name="UP DOWN ARROW"
+ u:entity="varr"
+ string="\(va"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x21b5;"
+ u:name="DOWNWARDS ARROW WITH CORNER LEFTWARDS"
+ u:entity="crarr"
+ string="\(CR"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x21d0;"
+ u:name="LEFTWARDS DOUBLE ARROW"
+ u:entity="lArr"
+ string="\(la"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x21d1;"
+ u:name="UPWARDS DOUBLE ARROW"
+ u:entity="uArr"
+ string="\(uA"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x21d2;"
+ u:name="RIGHTWARDS DOUBLE ARROW"
+ u:entity="rArr"
+ string="\(rA"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x21d3;"
+ u:name="DOWNWARDS DOUBLE ARROW"
+ u:entity="dArr"
+ string="\(dA"
+ u:block="Arrows"
+ />
+ <xsl:output-character
+ character="&#x21d4;"
+ u:name="LEFT RIGHT DOUBLE ARROW"
+ u:entity="hArr"
+ string="\(hA"
+ u:block="Arrows"
+ />
+ <!-- no roff equiv; render same as single arrow -->
+ <xsl:output-character
+ character="&#x21d5;"
+ u:name="UP DOWN DOUBLE ARROW"
+ u:entity="vArr"
+ string="\(va"
+ u:block="Arrows"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Mathematical Operators -->
+ <!-- * x2200 to x22ff -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2200;"
+ u:name="FOR ALL"
+ u:entity="forall"
+ string="\(fa"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2201;"
+ u:name="COMPLEMENT"
+ u:entity="comp"
+ string="C"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2202;"
+ u:name="PARTIAL DIFFERENTIAL"
+ u:entity="part"
+ string="\(pd"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2203;"
+ u:name="THERE EXISTS"
+ u:entity="exist"
+ string="\(te"
+ u:block="Mathematical Operators"
+ />
+ <!-- * no roff equiv -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2204;" -->
+ <!-- * u:name="THERE DOES NOT EXIST" -->
+ <!-- * u:entity="nexist" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2205;"
+ u:name="EMPTY SET"
+ u:entity="empty"
+ string="\(es"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2206;"
+ u:name="INCREMENT"
+ string="\(*D"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2207;"
+ u:name="NABLA"
+ u:entity="nabla"
+ string="\(gr"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2208;"
+ u:name="ELEMENT OF"
+ u:entity="isin"
+ string="\(mo"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2209;"
+ u:name="NOT AN ELEMENT OF"
+ u:entity="notin"
+ string="\(nm"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x220a;"
+ u:name="SMALL ELEMENT OF"
+ string="\(mo"
+ u:block="Mathematical Operators"
+ />
+
+ <xsl:output-character
+ character="&#x220b;"
+ u:name="CONTAINS AS MEMBER"
+ u:entity="ni"
+ string="\(st"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x220c;" -->
+ <!-- * u:name="DOES NOT CONTAIN AS MEMBER" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x220d;"
+ u:name="SMALL CONTAINS AS MEMBER"
+ string="\(st"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x220e;" -->
+ <!-- * u:name="END OF PROOF" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x220f;"
+ u:name="N-ARY PRODUCT"
+ u:entity="prod"
+ string="\(product"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2210;" -->
+ <!-- * u:name="N-ARY COPRODUCT" -->
+ <!-- * u:entity="coprod" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2211;"
+ u:name="N-ARY SUMMATION"
+ u:entity="sum"
+ string="\(sum"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2212;"
+ u:name="MINUS SIGN"
+ u:entity="minus"
+ string="\-"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2213;"
+ u:name="MINUS-OR-PLUS SIGN"
+ u:entity="mnplus"
+ string="\(+-"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2214;" -->
+ <!-- * u:name="DOT PLUS" -->
+ <!-- * u:entity="plusdo" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2215;"
+ u:name="DIVISION SLASH"
+ string="\(f/"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2216;"
+ u:name="SET MINUS"
+ u:entity="setmn"
+ string="\e"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2217;"
+ u:name="ASTERISK OPERATOR"
+ u:entity="lowast"
+ string="\(**"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2218;" -->
+ <!-- * u:name="RING OPERATOR" -->
+ <!-- * u:entity="compfn" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2219;"
+ u:name="BULLET OPERATOR"
+ string="\(bu"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x221a;"
+ u:name="SQUARE ROOT"
+ u:entity="radic"
+ string="\(sr"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x221b;" -->
+ <!-- * u:name="CUBE ROOT" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x221c;" -->
+ <!-- * u:name="FOURTH ROOT" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x221d;"
+ u:name="PROPORTIONAL TO"
+ u:entity="prop"
+ string="\(pt"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x221e;"
+ u:name="INFINITY"
+ u:entity="infin"
+ string="\(if"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x221f;" -->
+ <!-- * u:name="RIGHT ANGLE" -->
+ <!-- * u:entity="ang90" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2220;"
+ u:name="ANGLE"
+ u:entity="ang"
+ string="\(/_"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * 0x2221 to 0x2226 not in roff; -->
+ <!-- * but fake a parallel sign with vert bars -->
+
+ <xsl:output-character
+ character="&#x2225;"
+ u:name="PARALLEL TO"
+ u:entity="par"
+ string="\(bv\(bv"
+ u:block="Mathematical Operators"
+ />
+
+ <xsl:output-character
+ character="&#x2227;"
+ u:name="LOGICAL AND"
+ u:entity="and"
+ string="\(AN"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2228;"
+ u:name="LOGICAL OR"
+ u:entity="or"
+ string="\(OR"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2229;"
+ u:name="INTERSECTION"
+ u:entity="cap"
+ string="\(ca"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x222a;"
+ u:name="UNION"
+ u:entity="cup"
+ string="\(cu"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x222b;"
+ u:name="INTEGRAL"
+ u:entity="int"
+ string="\(is"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x222c;"
+ u:name="DOUBLE INTEGRAL"
+ string="\(is\(is"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x222d;"
+ u:name="TRIPLE INTEGRAL"
+ string="\(is\(is\(is"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * 0x222e to 0x2233 not in roff -->
+
+ <xsl:output-character
+ character="&#x2234;"
+ u:name="THEREFORE"
+ u:entity="there4"
+ string="\(tf"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2235;" -->
+ <!-- * u:name="BECAUSE" -->
+ <!-- * u:entity="becaus" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2236;"
+ u:name="RATIO"
+ string=":"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2237;"
+ u:name="PROPORTION"
+ string="::"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * 0x2238 to 0x223b not in roff -->
+
+ <xsl:output-character
+ character="&#x223c;"
+ u:name="TILDE OPERATOR"
+ u:entity="sim"
+ string="\(ti"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * 0x223d to 0x224b not in roff -->
+
+ <xsl:output-character
+ character="&#x2245;"
+ u:name="APPROXIMATELY EQUAL TO"
+ u:entity="cong"
+ string="\(=~"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2246;" -->
+ <!-- * u:name="APPROXIMATELY BUT NOT ACTUALLY EQUAL TO" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2247;" -->
+ <!-- * u:name="NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO" -->
+ <!-- * u:entity="ncong" -->
+ <!-- * /> -->
+
+ <xsl:output-character
+ character="&#x2248;"
+ u:name="ALMOST EQUAL TO"
+ u:entity="asymp"
+ string="\(~~"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x2249 to x2253 not in roff -->
+
+ <xsl:output-character
+ character="&#x2254;"
+ u:name="COLON EQUALS"
+ u:entity="colone"
+ string=":="
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2255;"
+ u:name="EQUALS COLON"
+ u:entity="ecolon"
+ string="=:"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x2256 to x2255 not in roff -->
+
+ <xsl:output-character
+ character="&#x225f;"
+ u:name="QUESTIONED EQUAL TO"
+ string="?="
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2260;"
+ u:name="NOT EQUAL TO"
+ u:entity="ne"
+ string="\(!="
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2261;"
+ u:name="IDENTICAL TO"
+ u:entity="equiv"
+ string="\(=="
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2262;" -->
+ <!-- * u:name="NOT IDENTICAL TO" -->
+ <!-- * u:entity="nequiv" -->
+ <!-- * /> -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2263;" -->
+ <!-- * u:name="STRICTLY EQUIVALENT TO" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2264;"
+ u:name="LESS-THAN OR EQUAL TO"
+ u:entity="le"
+ string="\(&lt;="
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2265;"
+ u:name="GREATER-THAN OR EQUAL TO"
+ u:entity="ge"
+ string="\(>="
+ u:block="Mathematical Operators"
+ />
+ <!-- * x2266 to x2269 not in roff -->
+
+ <xsl:output-character
+ character="&#x226a;"
+ u:name="MUCH LESS-THAN"
+ u:entity="Lt"
+ string="&lt;&lt;"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x226b;"
+ u:name="MUCH GREATER-THAN"
+ u:entity="Gt"
+ string=">>"
+ u:block="Mathematical Operators"
+ />
+ <!-- * x226c to x2281 not in roff -->
+
+ <xsl:output-character
+ character="&#x2282;"
+ u:name="SUBSET OF"
+ u:entity="sub"
+ string="\(sb"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2283;"
+ u:name="SUPERSET OF"
+ u:entity="sup"
+ string="\(sp"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2284;"
+ u:name="NOT A SUBSET OF"
+ u:entity="nsub"
+ string="\(nb"
+ u:block="Mathematical Operators"
+ />
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2285;" -->
+ <!-- * u:name="NOT A SUPERSET OF" -->
+ <!-- * u:entity="nsup" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2286;"
+ u:name="SUBSET OF OR EQUAL TO"
+ u:entity="sube"
+ string="\(ib"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2287;"
+ u:name="SUPERSET OF OR EQUAL TO"
+ u:entity="supe"
+ string="\(ip"
+ u:block="Mathematical Operators"
+ />
+ <!-- * x2288 to x2294 not in roff -->
+
+ <xsl:output-character
+ character="&#x2295;"
+ u:name="CIRCLED PLUS"
+ u:entity="oplus"
+ string="\(c+"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2296;"
+ u:name="CIRCLED MINUS"
+ u:entity="ominus"
+ string="\(c*"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x2297;"
+ u:name="CIRCLED TIMES"
+ u:entity="otimes"
+ string="\(c*"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x2298 to x22a4 not in roff -->
+
+ <xsl:output-character
+ character="&#x22a5;"
+ u:name="UP TACK"
+ u:entity="bottom"
+ string="\(pp"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x22a6 to x22bf not in roff -->
+
+ <xsl:output-character
+ character="&#x22c0;"
+ u:name="N-ARY LOGICAL AND"
+ string="\(AN"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x22c1;"
+ u:name="N-ARY LOGICAL OR"
+ string="\(OR"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x22c2;"
+ u:name="N-ARY INTERSECTION"
+ string="\(ca"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x22c3;"
+ u:name="N-ARY UNION"
+ string="\(cu"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * not in roff -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x22c4;" -->
+ <!-- * u:name="DIAMOND OPERATOR" -->
+ <!-- * u:entity="diam" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x22c5;"
+ u:name="DOT OPERATOR"
+ u:entity="sdot"
+ string="\(md"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x22c6;"
+ u:name="STAR OPERATOR"
+ u:entity="sstarf"
+ string="\(**"
+ u:block="Mathematical Operators"
+ />
+ <!-- * x22c7 to x22cd not in roff -->
+
+ <xsl:output-character
+ character="&#x22ce;"
+ u:name="CURLY LOGICAL OR"
+ u:entity="cuvee"
+ string="\(OR"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x22cf;"
+ u:name="CURLY LOGICAL AND"
+ u:entity="cuwed"
+ string="\(AN"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x22d0 to x22d7 not in roff -->
+
+ <xsl:output-character
+ character="&#x22d8;"
+ u:name="VERY MUCH LESS-THAN"
+ u:entity="Ll"
+ string="&lt;&lt;&lt;"
+ u:block="Mathematical Operators"
+ />
+ <xsl:output-character
+ character="&#x22d9;"
+ u:name="VERY MUCH GREATER-THAN"
+ u:entity="Gg"
+ string=">>>"
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x22da to x22ee not in roff -->
+
+ <xsl:output-character
+ character="&#x22ef;"
+ u:name="MIDLINE HORIZONTAL ELLIPSIS"
+ string="\&amp;..."
+ u:block="Mathematical Operators"
+ />
+
+ <!-- * x22fo to x22ff not in roff -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Mathematical Operators -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- * Miscellaneous Technical -->
+ <!-- * x2300 to x23ff -->
+ <!-- * - do nothing except for angle brackets - -->
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <xsl:output-character
+ character="&#x2329;"
+ u:name="LEFT-POINTING ANGLE BRACKET"
+ u:entity="lang"
+ string="\(la"
+ u:block="Miscellaneous Technical"
+ />
+ <xsl:output-character
+ character="&#x232a;"
+ u:name="RIGHT-POINTING ANGLE BRACKET"
+ u:entity="rang"
+ string="\(ra"
+ u:block="Miscellaneous Technical"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Control Pictures -->
+ <!-- * x2400 to x243f -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2400;"
+ u:name="SYMBOL FOR NULL"
+ string="NUL"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2401;"
+ u:name="SYMBOL FOR START OF HEADING"
+ string="SOH"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2402;"
+ u:name="SYMBOL FOR START OF TEXT"
+ string="STX"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2403;"
+ u:name="SYMBOL FOR END OF TEXT"
+ string="ETX"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2404;"
+ u:name="SYMBOL FOR END OF TRANSMISSION"
+ string="EOT"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2405;"
+ u:name="SYMBOL FOR ENQUIRY"
+ string="ENQ"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2406;"
+ u:name="SYMBOL FOR ACKNOWLEDGE"
+ string="ACK"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2407;"
+ u:name="SYMBOL FOR BELL"
+ string="BEL"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2408;"
+ u:name="SYMBOL FOR BACKSPACE"
+ string="BS"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2409;"
+ u:name="SYMBOL FOR HORIZONTAL TABULATION"
+ string="HT"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x240a;"
+ u:name="SYMBOL FOR LINE FEED"
+ string="LF"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x240b;"
+ u:name="SYMBOL FOR VERTICAL TABULATION"
+ string="VT"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x240c;"
+ u:name="SYMBOL FOR FORM FEED"
+ string="FF"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x240d;"
+ u:name="SYMBOL FOR CARRIAGE RETURN"
+ string="CR"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x240e;"
+ u:name="SYMBOL FOR SHIFT OUT"
+ string="SO"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x240f;"
+ u:name="SYMBOL FOR SHIFT IN"
+ string="SI"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2410;"
+ u:name="SYMBOL FOR DATA LINK ESCAPE"
+ string="DLE"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2411;"
+ u:name="SYMBOL FOR DEVICE CONTROL ONE"
+ string="DC1"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2412;"
+ u:name="SYMBOL FOR DEVICE CONTROL TWO"
+ string="DC2"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2413;"
+ u:name="SYMBOL FOR DEVICE CONTROL THREE"
+ string="DC3"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2414;"
+ u:name="SYMBOL FOR DEVICE CONTROL FOUR"
+ string="DC4"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2415;"
+ u:name="SYMBOL FOR NEGATIVE ACKNOWLEDGE"
+ string="NAK"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2416;"
+ u:name="SYMBOL FOR SYNCHRONOUS IDLE"
+ string="SYN"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2417;"
+ u:name="SYMBOL FOR END OF TRANSMISSION BLOCK"
+ string="ETB"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2418;"
+ u:name="SYMBOL FOR CANCEL"
+ string="CAN"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2419;"
+ u:name="SYMBOL FOR END OF MEDIUM"
+ string="EM"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x241a;"
+ u:name="SYMBOL FOR SUBSTITUTE"
+ string="SUB"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x241b;"
+ u:name="SYMBOL FOR ESCAPE"
+ string="ESC"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x241c;"
+ u:name="SYMBOL FOR FILE SEPARATOR"
+ string="FS"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x241d;"
+ u:name="SYMBOL FOR GROUP SEPARATOR"
+ string="GS"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x241e;"
+ u:name="SYMBOL FOR RECORD SEPARATOR"
+ string="RS"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x241f;"
+ u:name="SYMBOL FOR UNIT SEPARATOR"
+ string="US"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2420;"
+ u:name="SYMBOL FOR SPACE"
+ string="SP"
+ u:block="Control Pictures"
+ />
+ <xsl:output-character
+ character="&#x2421;"
+ u:name="SYMBOL FOR DELETE"
+ string="DEL"
+ u:block="Control Pictures"
+ />
+ <!-- * no roff equivs for x2422 and x2423 -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2422;" -->
+ <!-- * u:name="BLANK SYMBOL" -->
+ <!-- * string="?" -->
+ <!-- * u:block="Control Pictures" -->
+ <!-- * /> -->
+ <!-- * I think there should be a roff equiv for &blank;, but as far as I -->
+ <!-- * know, there is not... -->
+ <!-- * <xsl:output-character -->
+ <!-- * character="&#x2423;" -->
+ <!-- * u:name="OPEN BOX" -->
+ <!-- * u:entity="blank" -->
+ <!-- * string="?" -->
+ <!-- * u:block="Control Pictures" -->
+ <!-- * /> -->
+ <xsl:output-character
+ character="&#x2424;"
+ u:name="SYMBOL FOR NEWLINE"
+ string="NL"
+ u:block="Control Pictures"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Control Pictures -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- * Optical Character Recognition -->
+ <!-- * x2440 to x24ff -->
+ <!-- * - do nothing - -->
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Enclosed Alphanumerics -->
+ <!-- * x2460 to x24ff -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2460;"
+ u:name="CIRCLED DIGIT ONE"
+ string="1"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2461;"
+ u:name="CIRCLED DIGIT TWO"
+ string="2"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2462;"
+ u:name="CIRCLED DIGIT THREE"
+ string="3"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2463;"
+ u:name="CIRCLED DIGIT FOUR"
+ string="4"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2464;"
+ u:name="CIRCLED DIGIT FIVE"
+ string="5"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2465;"
+ u:name="CIRCLED DIGIT SIX"
+ string="6"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2466;"
+ u:name="CIRCLED DIGIT SEVEN"
+ string="7"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2467;"
+ u:name="CIRCLED DIGIT EIGHT"
+ string="8"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2468;"
+ u:name="CIRCLED DIGIT NINE"
+ string="9"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2469;"
+ u:name="CIRCLED NUMBER TEN"
+ string="10"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x246a;"
+ u:name="CIRCLED NUMBER ELEVEN"
+ string="11"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x246b;"
+ u:name="CIRCLED NUMBER TWELVE"
+ string="12"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x246c;"
+ u:name="CIRCLED NUMBER THIRTEEN"
+ string="13"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x246d;"
+ u:name="CIRCLED NUMBER FOURTEEN"
+ string="14"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x246e;"
+ u:name="CIRCLED NUMBER FIFTEEN"
+ string="15"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x246f;"
+ u:name="CIRCLED NUMBER SIXTEEN"
+ string="16"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2470;"
+ u:name="CIRCLED NUMBER SEVENTEEN"
+ string="17"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2471;"
+ u:name="CIRCLED NUMBER EIGHTEEN"
+ string="18"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2472;"
+ u:name="CIRCLED NUMBER NINETEEN"
+ string="19"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2473;"
+ u:name="CIRCLED NUMBER TWENTY"
+ string="20"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2474;"
+ u:name="PARENTHESIZED DIGIT ONE"
+ string="(1)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2475;"
+ u:name="PARENTHESIZED DIGIT TWO"
+ string="(2)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2476;"
+ u:name="PARENTHESIZED DIGIT THREE"
+ string="(3)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2477;"
+ u:name="PARENTHESIZED DIGIT FOUR"
+ string="(4)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2478;"
+ u:name="PARENTHESIZED DIGIT FIVE"
+ string="(5)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2479;"
+ u:name="PARENTHESIZED DIGIT SIX"
+ string="(6)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x247a;"
+ u:name="PARENTHESIZED DIGIT SEVEN"
+ string="(7)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x247b;"
+ u:name="PARENTHESIZED DIGIT EIGHT"
+ string="(8)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x247c;"
+ u:name="PARENTHESIZED DIGIT NINE"
+ string="(9)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x247d;"
+ u:name="PARENTHESIZED NUMBER TEN"
+ string="(10)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x247e;"
+ u:name="PARENTHESIZED NUMBER ELEVEN"
+ string="(11)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x247f;"
+ u:name="PARENTHESIZED NUMBER TWELVE"
+ string="(12)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2480;"
+ u:name="PARENTHESIZED NUMBER THIRTEEN"
+ string="(13)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2481;"
+ u:name="PARENTHESIZED NUMBER FOURTEEN"
+ string="(14)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2482;"
+ u:name="PARENTHESIZED NUMBER FIFTEEN"
+ string="(15)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2483;"
+ u:name="PARENTHESIZED NUMBER SIXTEEN"
+ string="(16)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2484;"
+ u:name="PARENTHESIZED NUMBER SEVENTEEN"
+ string="(17)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2485;"
+ u:name="PARENTHESIZED NUMBER EIGHTEEN"
+ string="(18)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2486;"
+ u:name="PARENTHESIZED NUMBER NINETEEN"
+ string="(19)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2487;"
+ u:name="PARENTHESIZED NUMBER TWENTY"
+ string="(20)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2488;"
+ u:name="DIGIT ONE FULL STOP"
+ string="1."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2489;"
+ u:name="DIGIT TWO FULL STOP"
+ string="2."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x248a;"
+ u:name="DIGIT THREE FULL STOP"
+ string="3."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x248b;"
+ u:name="DIGIT FOUR FULL STOP"
+ string="4."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x248c;"
+ u:name="DIGIT FIVE FULL STOP"
+ string="5."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x248d;"
+ u:name="DIGIT SIX FULL STOP"
+ string="6."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x248e;"
+ u:name="DIGIT SEVEN FULL STOP"
+ string="7."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x248f;"
+ u:name="DIGIT EIGHT FULL STOP"
+ string="8."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2490;"
+ u:name="DIGIT NINE FULL STOP"
+ string="9."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2491;"
+ u:name="NUMBER TEN FULL STOP"
+ string="10."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2492;"
+ u:name="NUMBER ELEVEN FULL STOP"
+ string="11."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2493;"
+ u:name="NUMBER TWELVE FULL STOP"
+ string="12."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2494;"
+ u:name="NUMBER THIRTEEN FULL STOP"
+ string="13."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2495;"
+ u:name="NUMBER FOURTEEN FULL STOP"
+ string="14."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2496;"
+ u:name="NUMBER FIFTEEN FULL STOP"
+ string="15."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2497;"
+ u:name="NUMBER SIXTEEN FULL STOP"
+ string="16."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2498;"
+ u:name="NUMBER SEVENTEEN FULL STOP"
+ string="17."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x2499;"
+ u:name="NUMBER EIGHTEEN FULL STOP"
+ string="18."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x249a;"
+ u:name="NUMBER NINETEEN FULL STOP"
+ string="19."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x249b;"
+ u:name="NUMBER TWENTY FULL STOP"
+ string="20."
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x249c;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER A"
+ string="(a)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x249d;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER B"
+ string="(b)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x249e;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER C"
+ string="(c)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x249f;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER D"
+ string="(d)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a0;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER E"
+ string="(e)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a1;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER F"
+ string="(f)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a2;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER G"
+ string="(g)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a3;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER H"
+ string="(h)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a4;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER I"
+ string="(i)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a5;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER J"
+ string="(j)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a6;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER K"
+ string="(k)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a7;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER L"
+ string="(l)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a8;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER M"
+ string="(m)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24a9;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER N"
+ string="(n)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24aa;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER O"
+ string="(o)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ab;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER P"
+ string="(p)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ac;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER Q"
+ string="(q)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ad;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER R"
+ string="(r)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ae;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER S"
+ string="(s)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24af;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER T"
+ string="(t)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b0;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER U"
+ string="(u)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b1;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER V"
+ string="(v)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b2;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER W"
+ string="(w)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b3;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER X"
+ string="(x)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b4;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER Y"
+ string="(y)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b5;"
+ u:name="PARENTHESIZED LATIN SMALL LETTER Z"
+ string="(z)"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b6;"
+ u:name="CIRCLED LATIN CAPITAL LETTER A"
+ string="A"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b7;"
+ u:name="CIRCLED LATIN CAPITAL LETTER B"
+ string="B"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b8;"
+ u:name="CIRCLED LATIN CAPITAL LETTER C"
+ string="C"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24b9;"
+ u:name="CIRCLED LATIN CAPITAL LETTER D"
+ string="D"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ba;"
+ u:name="CIRCLED LATIN CAPITAL LETTER E"
+ string="E"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24bb;"
+ u:name="CIRCLED LATIN CAPITAL LETTER F"
+ string="F"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24bc;"
+ u:name="CIRCLED LATIN CAPITAL LETTER G"
+ string="G"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24bd;"
+ u:name="CIRCLED LATIN CAPITAL LETTER H"
+ string="H"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24be;"
+ u:name="CIRCLED LATIN CAPITAL LETTER I"
+ string="I"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24bf;"
+ u:name="CIRCLED LATIN CAPITAL LETTER J"
+ string="J"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c0;"
+ u:name="CIRCLED LATIN CAPITAL LETTER K"
+ string="K"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c1;"
+ u:name="CIRCLED LATIN CAPITAL LETTER L"
+ string="L"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c2;"
+ u:name="CIRCLED LATIN CAPITAL LETTER M"
+ string="M"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c3;"
+ u:name="CIRCLED LATIN CAPITAL LETTER N"
+ string="N"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c4;"
+ u:name="CIRCLED LATIN CAPITAL LETTER O"
+ string="O"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c5;"
+ u:name="CIRCLED LATIN CAPITAL LETTER P"
+ string="P"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c6;"
+ u:name="CIRCLED LATIN CAPITAL LETTER Q"
+ string="Q"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c7;"
+ u:name="CIRCLED LATIN CAPITAL LETTER R"
+ string="R"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c8;"
+ u:name="CIRCLED LATIN CAPITAL LETTER S"
+ u:entity="oS"
+ string="S"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24c9;"
+ u:name="CIRCLED LATIN CAPITAL LETTER T"
+ string="T"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ca;"
+ u:name="CIRCLED LATIN CAPITAL LETTER U"
+ string="U"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24cb;"
+ u:name="CIRCLED LATIN CAPITAL LETTER V"
+ string="V"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24cc;"
+ u:name="CIRCLED LATIN CAPITAL LETTER W"
+ string="W"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24cd;"
+ u:name="CIRCLED LATIN CAPITAL LETTER X"
+ string="X"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ce;"
+ u:name="CIRCLED LATIN CAPITAL LETTER Y"
+ string="Y"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24cf;"
+ u:name="CIRCLED LATIN CAPITAL LETTER Z"
+ string="Z"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d0;"
+ u:name="CIRCLED LATIN SMALL LETTER A"
+ string="a"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d1;"
+ u:name="CIRCLED LATIN SMALL LETTER B"
+ string="b"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d2;"
+ u:name="CIRCLED LATIN SMALL LETTER C"
+ string="c"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d3;"
+ u:name="CIRCLED LATIN SMALL LETTER D"
+ string="d"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d4;"
+ u:name="CIRCLED LATIN SMALL LETTER E"
+ string="e"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d5;"
+ u:name="CIRCLED LATIN SMALL LETTER F"
+ string="f"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d6;"
+ u:name="CIRCLED LATIN SMALL LETTER G"
+ string="g"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d7;"
+ u:name="CIRCLED LATIN SMALL LETTER H"
+ string="h"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d8;"
+ u:name="CIRCLED LATIN SMALL LETTER I"
+ string="i"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24d9;"
+ u:name="CIRCLED LATIN SMALL LETTER J"
+ string="j"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24da;"
+ u:name="CIRCLED LATIN SMALL LETTER K"
+ string="k"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24db;"
+ u:name="CIRCLED LATIN SMALL LETTER L"
+ string="l"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24dc;"
+ u:name="CIRCLED LATIN SMALL LETTER M"
+ string="m"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24dd;"
+ u:name="CIRCLED LATIN SMALL LETTER N"
+ string="n"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24de;"
+ u:name="CIRCLED LATIN SMALL LETTER O"
+ string="o"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24df;"
+ u:name="CIRCLED LATIN SMALL LETTER P"
+ string="p"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e0;"
+ u:name="CIRCLED LATIN SMALL LETTER Q"
+ string="q"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e1;"
+ u:name="CIRCLED LATIN SMALL LETTER R"
+ string="r"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e2;"
+ u:name="CIRCLED LATIN SMALL LETTER S"
+ string="s"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e3;"
+ u:name="CIRCLED LATIN SMALL LETTER T"
+ string="t"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e4;"
+ u:name="CIRCLED LATIN SMALL LETTER U"
+ string="u"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e5;"
+ u:name="CIRCLED LATIN SMALL LETTER V"
+ string="b"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e6;"
+ u:name="CIRCLED LATIN SMALL LETTER W"
+ string="w"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e7;"
+ u:name="CIRCLED LATIN SMALL LETTER X"
+ string="x"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e8;"
+ u:name="CIRCLED LATIN SMALL LETTER Y"
+ string="y"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24e9;"
+ u:name="CIRCLED LATIN SMALL LETTER Z"
+ string="z"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ea;"
+ u:name="CIRCLED DIGIT ZERO"
+ string="0"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24eb;"
+ u:name="NEGATIVE CIRCLED NUMBER ELEVEN"
+ string="11"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ec;"
+ u:name="NEGATIVE CIRCLED NUMBER TWELVE"
+ string="12"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ed;"
+ u:name="NEGATIVE CIRCLED NUMBER THIRTEEN"
+ string="13"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ee;"
+ u:name="NEGATIVE CIRCLED NUMBER FOURTEEN"
+ string="14"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24ef;"
+ u:name="NEGATIVE CIRCLED NUMBER FIFTEEN"
+ string="15"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f0;"
+ u:name="NEGATIVE CIRCLED NUMBER SIXTEEN"
+ string="16"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f1;"
+ u:name="NEGATIVE CIRCLED NUMBER SEVENTEEN"
+ string="17"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f2;"
+ u:name="NEGATIVE CIRCLED NUMBER EIGHTEEN"
+ string="18"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f3;"
+ u:name="NEGATIVE CIRCLED NUMBER NINETEEN"
+ string="19"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f4;"
+ u:name="NEGATIVE CIRCLED NUMBER TWENTY"
+ string="20"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f5;"
+ u:name="DOUBLE CIRCLED DIGIT ONE"
+ string="1"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f6;"
+ u:name="DOUBLE CIRCLED DIGIT TWO"
+ string="2"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f7;"
+ u:name="DOUBLE CIRCLED DIGIT THREE"
+ string="3"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f8;"
+ u:name="DOUBLE CIRCLED DIGIT FOUR"
+ string="4"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24f9;"
+ u:name="DOUBLE CIRCLED DIGIT FIVE"
+ string="5"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24fa;"
+ u:name="DOUBLE CIRCLED DIGIT SIX"
+ string="6"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24fb;"
+ u:name="DOUBLE CIRCLED DIGIT SEVEN"
+ string="7"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24fc;"
+ u:name="DOUBLE CIRCLED DIGIT EIGHT"
+ string="8"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24fd;"
+ u:name="DOUBLE CIRCLED DIGIT NINE"
+ string="9"
+ u:block="Enclosed Alphanumerics"
+ />
+ <xsl:output-character
+ character="&#x24fe;"
+ u:name="DOUBLE CIRCLED NUMBER TEN"
+ string="10"
+ u:block="Enclosed Alphanumerics"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Enclosed Alphanumerics -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- * Box Drawing -->
+ <!-- * x2500 to x257f -->
+ <!-- * Block Elements -->
+ <!-- * x2580 to x259f -->
+ <!-- * - do nothing - -->
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Geometric Shapes -->
+ <!-- * x25a0 to x25f7 -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x25a1;"
+ u:name="WHITE SQUARE"
+ u:entity="squ"
+ string="\(sq"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25a2;"
+ u:name="WHITE SQUARE WITH ROUNDED CORNERS"
+ string="\(sq"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25ab;"
+ u:name="WHITE SMALL SQUARE"
+ string="\(sq"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25ba;"
+ u:name="BLACK RIGHT-POINTING POINTER"
+ string="\fB>\fR"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25bb;"
+ u:name="WHITE RIGHT-POINTING POINTER"
+ string=">"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25bc;"
+ u:name="BLACK DOWN-POINTING TRIANGLE"
+ string="\fBv\fR"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25bd;"
+ u:name="WHITE DOWN-POINTING TRIANGLE"
+ u:entity="xdtri"
+ string="v"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25c4;"
+ u:name="BLACK LEFT-POINTING POINTER"
+ string="\fB&lt;\fR"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25c5;"
+ u:name="WHITE LEFT-POINTING POINTER"
+ string="&lt;"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25c6;"
+ u:name="BLACK DIAMOND"
+ string="\(DI"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25c7;"
+ u:name="WHITE DIAMOND"
+ string="\(lz"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25ca;"
+ u:name="LOZENGE"
+ u:entity="loz"
+ string="\(lz"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25cb;"
+ u:name="WHITE CIRCLE"
+ u:entity="cir"
+ string="\(ci"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25cf;"
+ u:name="BLACK CIRCLE"
+ string="\(bu"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25e6;"
+ u:name="WHITE BULLET"
+ string="\(ci"
+ u:block="Geometric Shapes"
+ />
+ <xsl:output-character
+ character="&#x25ef;"
+ u:name="LARGE CIRCLE"
+ u:entity="xcirc"
+ string="\(ci"
+ u:block="Geometric Shapes"
+ />
+ <!-- * ***************************************************************** -->
+ <!-- * End: Geometric Shapes -->
+ <!-- * x25a0 to x25f7 -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Miscellaneous Symbols -->
+ <!-- * x2600 to x26ff -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x261a;"
+ u:name="BLACK LEFT POINTING INDEX"
+ string="\(lh"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x261b;"
+ u:name="BLACK RIGHT POINTING INDEX"
+ string="\(rh)"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x261c;"
+ u:name="WHITE LEFT POINTING INDEX"
+ string="\(lh"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x261e;"
+ u:name="WHITE RIGHT POINTING INDEX"
+ string="\(rh)"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2660;"
+ u:name="BLACK SPADE SUIT"
+ u:entity="spades"
+ string="\(SP"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2661;"
+ u:name="WHITE HEART SUIT"
+ string="\(HE"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2662;"
+ u:name="WHITE DIAMOND SUIT"
+ string="\(DI"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2663;"
+ u:name="BLACK CLUB SUIT"
+ u:entity="clubs"
+ string="\(CL"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2664;"
+ u:name="WHITE SPADE SUIT"
+ string="\(SP"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2665;"
+ u:name="BLACK HEART SUIT"
+ u:entity="hearts"
+ string="\(HE"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2666;"
+ u:name="BLACK DIAMOND SUIT"
+ u:entity="diams"
+ string="\(DI"
+ u:block="Miscellaneous Symbols"
+ />
+ <xsl:output-character
+ character="&#x2667;"
+ u:name="WHITE CLUB SUIT"
+ string="\(CL"
+ u:block="Miscellaneous Symbols"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Miscellaneous Symbols -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Dingbats -->
+ <!-- * x2700 to x27be -->
+ <!-- * No roff equiv for most of these; just map to something close -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#x2713;"
+ u:name="CHECK MARK"
+ u:entity="check"
+ string="\(OK"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2714;"
+ u:name="HEAVY CHECK MARK"
+ string="\fB\(OK\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2715;"
+ u:name="MULTIPLICATION X"
+ string="\(mu"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2716;"
+ u:name="HEAVY MULTIPLICATION X"
+ string="\fB\(mu\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2717;"
+ u:name="BALLOT X"
+ u:entity="cross"
+ string="\(mu"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2718;"
+ u:name="HEAVY BALLOT X"
+ string="\fB\(mu\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2719;"
+ u:name="OUTLINED GREEK CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x271a;"
+ u:name="HEAVY GREEK CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x271b;"
+ u:name="OPEN CENTRE CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x271c;"
+ u:name="HEAVY OPEN CENTRE CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x271d;"
+ u:name="LATIN CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x271e;"
+ u:name="SHADOWED WHITE LATIN CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x271f;"
+ u:name="OUTLINED LATIN CROSS"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2720;"
+ u:name="MALTESE CROSS"
+ u:entity="malt"
+ string="\fB+\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2721;"
+ u:name="STAR OF DAVID"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2722;"
+ u:name="FOUR TEARDROP-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2723;"
+ u:name="FOUR BALLOON-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2724;"
+ u:name="HEAVY FOUR BALLOON-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2725;"
+ u:name="FOUR CLUB-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2726;"
+ u:name="BLACK FOUR POINTED STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2727;"
+ u:name="WHITE FOUR POINTED STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2729;"
+ u:name="STRESS OUTLINED WHITE STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x272a;"
+ u:name="CIRCLED WHITE STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x272b;"
+ u:name="OPEN CENTRE BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x272c;"
+ u:name="BLACK CENTRE WHITE STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x272d;"
+ u:name="OUTLINED BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x272e;"
+ u:name="HEAVY OUTLINED BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x272f;"
+ u:name="PINWHEEL STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2730;"
+ u:name="SHADOWED WHITE STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2731;"
+ u:name="HEAVY ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2732;"
+ u:name="OPEN CENTRE ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2733;"
+ u:name="EIGHT SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2734;"
+ u:name="EIGHT POINTED BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2735;"
+ u:name="EIGHT POINTED PINWHEEL STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2736;"
+ u:name="SIX POINTED BLACK STAR"
+ u:entity="sext"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2737;"
+ u:name="EIGHT POINTED RECTILINEAR BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2738;"
+ u:name="HEAVY EIGHT POINTED RECTILINEAR BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2739;"
+ u:name="TWELVE POINTED BLACK STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x273a;"
+ u:name="SIXTEEN POINTED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x273b;"
+ u:name="TEARDROP-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x273c;"
+ u:name="OPEN CENTRE TEARDROP-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x273d;"
+ u:name="HEAVY TEARDROP-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x273e;"
+ u:name="SIX PETALLED BLACK AND WHITE FLORETTE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x273f;"
+ u:name="BLACK FLORETTE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2740;"
+ u:name="WHITE FLORETTE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2741;"
+ u:name="EIGHT PETALLED OUTLINED BLACK FLORETTE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2742;"
+ u:name="CIRCLED OPEN CENTRE EIGHT POINTED STAR"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2743;"
+ u:name="HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2744;"
+ u:name="SNOWFLAKE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2745;"
+ u:name="TIGHT TRIFOLIATE SNOWFLAKE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2746;"
+ u:name="HEAVY CHEVRON SNOWFLAKE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2747;"
+ u:name="SPARKLE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2748;"
+ u:name="HEAVY SPARKLE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2749;"
+ u:name="BALLOON-SPOKED ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x274a;"
+ u:name="EIGHT TEARDROP-SPOKED PROPELLER ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x274b;"
+ u:name="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x274d;"
+ u:name="SHADOWED WHITE CIRCLE"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x274f;"
+ u:name="LOWER RIGHT DROP-SHADOWED WHITE SQUARE"
+ string="\(sq"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2750;"
+ u:name="UPPER RIGHT DROP-SHADOWED WHITE SQUARE"
+ string="\(sq"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2751;"
+ u:name="LOWER RIGHT SHADOWED WHITE SQUARE"
+ string="\(sq"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2752;"
+ u:name="UPPER RIGHT SHADOWED WHITE SQUARE"
+ string="\(sq"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2756;"
+ u:name="BLACK DIAMOND MINUS WHITE X"
+ string="*"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2758;"
+ u:name="LIGHT VERTICAL BAR"
+ string="\(bv"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2759;"
+ u:name="MEDIUM VERTICAL BAR"
+ string="\fB\(bv\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x275a;"
+ u:name="HEAVY VERTICAL BAR"
+ string="\fB\(bv\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x275b;"
+ u:name="HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT"
+ string="\fB\(oq\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x275c;"
+ u:name="HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT"
+ string="\fB\(cq\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x275d;"
+ u:name="HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT"
+ string="\fB\(lq\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x275e;"
+ u:name="HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT"
+ string="\fB\(rq\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2761;"
+ u:name="CURVED STEM PARAGRAPH SIGN ORNAMENT"
+ string="\(ps"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2762;"
+ u:name="HEAVY EXCLAMATION MARK ORNAMENT"
+ string="\fB!\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2763;"
+ u:name="HEAVY HEART EXCLAMATION MARK ORNAMENT"
+ string="\fB!\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2764;"
+ u:name="HEAVY BLACK HEART"
+ string="\fB\(HE\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2765;"
+ u:name="ROTATED HEAVY BLACK HEART BULLET"
+ string="\fB\(HE\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2766;"
+ u:name="FLORAL HEART"
+ string="\fB\(HE\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2767;"
+ u:name="ROTATED FLORAL HEART BULLET"
+ string="\fB\(HE\fR"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2776;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT ONE"
+ string="1"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2777;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT TWO"
+ string="2"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2778;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT THREE"
+ string="3"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2779;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT FOUR"
+ string="4"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x277a;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT FIVE"
+ string="5"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x277b;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT SIX"
+ string="6"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x277c;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT SEVEN"
+ string="7"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x277d;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT EIGHT"
+ string="8"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x277e;"
+ u:name="DINGBAT NEGATIVE CIRCLED DIGIT NINE"
+ string="9"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x277f;"
+ u:name="DINGBAT NEGATIVE CIRCLED NUMBER TEN"
+ string="10"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2780;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT ONE"
+ string="1"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2781;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT TWO"
+ string="2"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2782;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT THREE"
+ string="3"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2783;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT FOUR"
+ string="4"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2784;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT FIVE"
+ string="5"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2785;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT SIX"
+ string="6"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2786;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN"
+ string="7"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2787;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT"
+ string="8"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2788;"
+ u:name="DINGBAT CIRCLED SANS-SERIF DIGIT NINE"
+ string="9"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2789;"
+ u:name="DINGBAT CIRCLED SANS-SERIF NUMBER TEN"
+ string="10"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x278a;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE"
+ string="1"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x278b;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO"
+ string="2"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x278c;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE"
+ string="3"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x278d;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR"
+ string="4"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x278e;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE"
+ string="5"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x278f;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX"
+ string="6"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2790;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN"
+ string="7"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2791;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT"
+ string="8"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2792;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE"
+ string="9"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2793;"
+ u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN"
+ string="10"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2794;"
+ u:name="HEAVY WIDE-HEADED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x2799;"
+ u:name="HEAVY RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x279b;"
+ u:name="DRAFTING POINT RIGHTWARDS ARROW"
+ string="\(->"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x279c;"
+ u:name="HEAVY ROUND-TIPPED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x279d;"
+ u:name="TRIANGLE-HEADED RIGHTWARDS ARROW"
+ string="\(->"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x279e;"
+ u:name="HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x279f;"
+ u:name="DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"
+ string="\(->"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a0;"
+ u:name="HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a1;"
+ u:name="BLACK RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a2;"
+ u:name="THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD"
+ string="\(->"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a3;"
+ u:name="THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD"
+ string="\(->"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a4;"
+ u:name="BLACK RIGHTWARDS ARROWHEAD"
+ string="\(->"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a7;"
+ u:name="SQUAT BLACK RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a8;"
+ u:name="HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27a9;"
+ u:name="RIGHT-SHADED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27aa;"
+ u:name="LEFT-SHADED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27ab;"
+ u:name="BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27ac;"
+ u:name="FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27ad;"
+ u:name="HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27ae;"
+ u:name="HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27af;"
+ u:name="NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b1;"
+ u:name="NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b2;"
+ u:name="CIRCLED HEAVY WHITE RIGHTWARDS ARROW"
+ string="\(rA"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b3;"
+ u:name="WHITE-FEATHERED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b4;"
+ u:name="BLACK-FEATHERED SOUTH EAST ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b5;"
+ u:name="BLACK-FEATHERED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b6;"
+ u:name="BLACK-FEATHERED NORTH EAST ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b7;"
+ u:name="HEAVY BLACK-FEATHERED SOUTH EAST ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b8;"
+ u:name="HEAVY BLACK-FEATHERED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27b9;"
+ u:name="HEAVY BLACK-FEATHERED NORTH EAST ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27ba;"
+ u:name="TEARDROP-BARBED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27bb;"
+ u:name="HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27bc;"
+ u:name="WEDGE-TAILED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27bd;"
+ u:name="HEAVY WEDGE-TAILED RIGHTWARDS ARROW"
+ string="\fR\(->\fB"
+ u:block="Dingbats"
+ />
+ <xsl:output-character
+ character="&#x27be;"
+ u:name="OPEN-OUTLINED RIGHTWARDS ARROW"
+ string="\fR\(rA\fB"
+ u:block="Dingbats"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Dingbats -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- * Miscellaneous Mathematical Symbols -->
+ <!-- * x27c0 to x27ef -->
+ <!-- * Supplemental Arrows -->
+ <!-- * x27f0 to x297f -->
+ <!-- * Miscellaneous Mathematical Symbols -->
+ <!-- * x2980 to x29ff -->
+ <!-- * Supplemental Mathematical Operators -->
+ <!-- * x2a00 to x2aff -->
+ <!-- * - no nothing - -->
+ <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <!-- * ***************************************************************** -->
+ <!-- * Begin: Alphabetic Presentation Forms -->
+ <!-- * xfb00 to xfb04 -->
+ <!-- * ***************************************************************** -->
+
+ <xsl:output-character
+ character="&#xfb00;"
+ u:name="LATIN SMALL LIGATURE FF"
+ u:entity="fflig"
+ string="\(ff"
+ u:block="Alphabetic Presentation Forms"
+ />
+ <xsl:output-character
+ character="&#xfb01;"
+ u:name="LATIN SMALL LIGATURE FI"
+ u:entity="filig"
+ string="\(fi"
+ u:block="Alphabetic Presentation Forms"
+ />
+ <xsl:output-character
+ character="&#xfb02;"
+ u:name="LATIN SMALL LIGATURE FL"
+ u:entity="fllig"
+ string="\(fl"
+ u:block="Alphabetic Presentation Forms"
+ />
+ <xsl:output-character
+ character="&#xfb03;"
+ u:name="LATIN SMALL LIGATURE FFI"
+ u:entity="ffilig"
+ string="\(Fi"
+ u:block="Alphabetic Presentation Forms"
+ />
+ <xsl:output-character
+ character="&#xfb04;"
+ u:name="LATIN SMALL LIGATURE FFL"
+ u:entity="ffllig"
+ string="\(Fl"
+ u:block="Alphabetic Presentation Forms"
+ />
+
+ <!-- * ***************************************************************** -->
+ <!-- * End: Alphabetic Presentation Forms -->
+ <!-- * ***************************************************************** -->
+
+ <!-- * ================================================================= -->
+
+ <!-- * Regarding x2060 vs. xFEFF, the document "Unicode Standard Annex #14, -->
+ <!-- * Line Breaking Properties"[1] says: -->
+ <!-- * -->
+ <!-- * The word joiner character [x2060 a.k.a "WJ"] is the preferred -->
+ <!-- * choice for an invisible character to keep other characters -->
+ <!-- * together that would otherwise be split across the line at a direct -->
+ <!-- * break. The character FEFF has the same effect, but because it is -->
+ <!-- * also used in an unrelated way as a byte order mark, the use of the -->
+ <!-- * WJ as the preferred interword glue simplifies the handling of FEFF. -->
+ <!-- * -->
+ <!-- * [1] http://www.unicode.org/reports/tr14/ -->
+ <!-- * -->
+ <!-- * We include it here anyway & map to the roff zero-width no-break -->
+ <xsl:output-character
+ character="&#xfeff;"
+ u:name="ZERO WIDTH NO-BREAK SPACE"
+ string="\&amp;"
+ u:block="Arabic Presentation Forms-B"
+ />
+</xsl:character-map>
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/docbook.xsl b/docs/xsl-generic/manpages/docbook.xsl
new file mode 100644
index 00000000..87c7ade8
--- /dev/null
+++ b/docs/xsl-generic/manpages/docbook.xsl
@@ -0,0 +1,293 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ exclude-result-prefixes="exsl"
+ version='1.0'>
+
+ <xsl:import href="../html/docbook.xsl"/>
+ <xsl:import href="../html/manifest.xsl"/>
+ <!-- * html-synop.xsl file is generated by build -->
+ <xsl:import href="html-synop.xsl"/>
+ <xsl:output method="text"
+ encoding="UTF-8"
+ indent="no"/>
+ <!-- ********************************************************************
+ $Id: docbook.xsl 7153 2007-07-26 14:08:55Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+ <!-- ==================================================================== -->
+
+ <xsl:include href="../common/refentry.xsl"/>
+ <xsl:include href="../common/charmap.xsl"/>
+ <xsl:include href="param.xsl"/>
+ <xsl:include href="utility.xsl"/>
+ <xsl:include href="info.xsl"/>
+ <xsl:include href="other.xsl"/>
+ <xsl:include href="refentry.xsl"/>
+ <xsl:include href="block.xsl"/>
+ <xsl:include href="inline.xsl"/>
+ <xsl:include href="synop.xsl"/>
+ <xsl:include href="lists.xsl"/>
+ <xsl:include href="endnotes.xsl"/>
+ <xsl:include href="table.xsl"/>
+
+ <!-- * we rename the following just to avoid using params with "man" -->
+ <!-- * prefixes in the table.xsl stylesheet (because that stylesheet -->
+ <!-- * can potentially be reused for more than just man output) -->
+ <xsl:param name="tbl.font.headings" select="$man.font.table.headings"/>
+ <xsl:param name="tbl.font.title" select="$man.font.table.title"/>
+
+ <!-- ==================================================================== -->
+
+ <xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- * when we find a namespaced document, strip the -->
+ <!-- * namespace and then continue processing it. -->
+ <xsl:when test="//self::db:*">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>stripped namespace before processing</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:variable name="stripns">
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:variable>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>processing stripped document</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates select="exsl:node-set($stripns)"/>
+ </xsl:when>
+ <xsl:when test="//*[local-name() = 'refentry']">
+ <!-- * Check to see if we have any refentry children in this -->
+ <!-- * document; if so, process them. The reason we use -->
+ <!-- * local-name()=refentry (instead of just //refentry) to to -->
+ <!-- * check for refentry children is because this stylsheet is -->
+ <!-- * also post-processed by the stylesheet build to create the -->
+ <!-- * manpages/profile-docbook.xsl, and the refentry child check -->
+ <!-- * in the profile-docbook.xsl stylesheet won't work if we do -->
+ <!-- * a simple //refentry check. -->
+ <xsl:apply-templates select="//refentry"/>
+ <!-- * if $man.output.manifest.enabled is non-zero, -->
+ <!-- * generate a manifest file -->
+ <xsl:if test="not($man.output.manifest.enabled = 0)">
+ <xsl:call-template name="generate.manifest">
+ <xsl:with-param name="filename">
+ <xsl:choose>
+ <xsl:when test="not($man.output.manifest.filename = '')">
+ <!-- * If a name for the manifest file is specified, -->
+ <!-- * use that name. -->
+ <xsl:value-of select="$man.output.manifest.filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, if user has unset -->
+ <!-- * $man.output.manifest.filename, default to -->
+ <!-- * using "MAN.MANIFEST" as the filename. Because -->
+ <!-- * $man.output.manifest.enabled is non-zero and -->
+ <!-- * so we must have a filename in order to -->
+ <!-- * generate the manifest. -->
+ <xsl:text>MAN.MANIFEST</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, the document does not contain any -->
+ <!-- * refentry elements, so log/emit message and stop. -->
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Erro</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text> no refentry</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>No refentry elements found</xsl:text>
+ <xsl:if test="$doc.title != ''">
+ <xsl:text> in "</xsl:text>
+ <xsl:choose>
+ <xsl:when test="string-length($doc.title) &gt; 30">
+ <xsl:value-of select="substring($doc.title,1,30)"/>
+ <xsl:text>...</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$doc.title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>"</xsl:text>
+ </xsl:if>
+ <xsl:text>.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- ============================================================== -->
+
+ <xsl:template match="refentry">
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+ <!-- * Just use the first refname found as the "name" of the man -->
+ <!-- * page (which may different from the "title"...) -->
+ <xsl:variable name="first.refname" select="refnamediv[1]/refname[1]"/>
+
+ <xsl:call-template name="root.messages">
+ <xsl:with-param name="refname" select="$first.refname"/>
+ </xsl:call-template>
+
+ <!-- * Because there are several times when we need to check *info of -->
+ <!-- * each refentry and its ancestors, we get those and store the -->
+ <!-- * data from them as a node-set in memory. -->
+
+ <!-- * Make a node-set with contents of *info -->
+ <xsl:variable name="get.info"
+ select="ancestor-or-self::*/*[substring(local-name(),
+ string-length(local-name()) - 3) = 'info']"
+ />
+ <xsl:variable name="info" select="exsl:node-set($get.info)"/>
+
+ <!-- * The get.refentry.metadata template is in -->
+ <!-- * ../common/refentry.xsl. It looks for metadata in $info -->
+ <!-- * and in various other places and then puts it into a form -->
+ <!-- * that's easier for us to digest. -->
+ <xsl:variable name="get.refentry.metadata">
+ <xsl:call-template name="get.refentry.metadata">
+ <xsl:with-param name="refname" select="$first.refname"/>
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="prefs" select="$refentry.metadata.prefs"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="refentry.metadata" select="exsl:node-set($get.refentry.metadata)"/>
+
+ <!-- * Assemble the various parts into a complete page, then store into -->
+ <!-- * $manpage.contents so that we can manipluate them further. -->
+ <xsl:variable name="manpage.contents">
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * top.comment = commented-out section at top of roff source -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:call-template name="top.comment">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="date" select="$refentry.metadata/date"/>
+ <xsl:with-param name="title" select="$refentry.metadata/title"/>
+ <xsl:with-param name="manual" select="$refentry.metadata/manual"/>
+ <xsl:with-param name="source" select="$refentry.metadata/source"/>
+ </xsl:call-template>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * TH.title.line = title line in header/footer of man page -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:call-template name="TH.title.line">
+ <!-- * .TH TITLE section extra1 extra2 extra3 -->
+ <!-- * -->
+ <!-- * According to the man(7) man page: -->
+ <!-- * -->
+ <!-- * extra1 = date, "the date of the last revision" -->
+ <!-- * extra2 = source, "the source of the command" -->
+ <!-- * extra3 = manual, "the title of the manual -->
+ <!-- * (e.g., Linux Programmer's Manual)" -->
+ <!-- * -->
+ <!-- * So, we end up with: -->
+ <!-- * -->
+ <!-- * .TH TITLE section date source manual -->
+ <!-- * -->
+ <xsl:with-param name="title" select="$refentry.metadata/title"/>
+ <xsl:with-param name="section" select="$refentry.metadata/section"/>
+ <xsl:with-param name="extra1" select="$refentry.metadata/date"/>
+ <xsl:with-param name="extra2" select="$refentry.metadata/source"/>
+ <xsl:with-param name="extra3" select="$refentry.metadata/manual"/>
+ </xsl:call-template>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * Set default hyphenation, justification, indentation, and -->
+ <!-- * line-breaking -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:call-template name="set.default.formatting"/>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * Main body of man page -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:apply-templates/>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * AUTHOR section -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:if test="not($man.authors.section.enabled = 0)">
+ <xsl:call-template name="author.section">
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * COPYRIGHT section -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:if test="not($man.copyright.section.enabled = 0)">
+ <xsl:call-template name="copyright.section">
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * NOTES list (only if user wants endnotes numbered and/or listed) -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:if test="$man.endnotes.list.enabled != 0 or
+ $man.endnotes.are.numbered != 0">
+ <xsl:call-template name="endnotes.list"/>
+ </xsl:if>
+ </xsl:variable> <!-- * end of manpage.contents -->
+
+ <!-- * Prepare the page contents for final output, then store in -->
+ <!-- * $manpage.contents.prepared so the we can pass it on to the -->
+ <!-- * write.text.chunk() function -->
+ <xsl:variable name="manpage.contents.prepared">
+ <!-- * "Preparing" the page contents involves, at a minimum, -->
+ <!-- * doubling any backslashes found (so they aren't interpreted -->
+ <!-- * as roff escapes). -->
+ <!-- * -->
+ <!-- * If $charmap.enabled is true, "preparing" the page contents also -->
+ <!-- * involves applying a character map to convert Unicode symbols and -->
+ <!-- * special characters into corresponding roff escape sequences. -->
+ <xsl:call-template name="prepare.manpage.contents">
+ <xsl:with-param name="content" select="$manpage.contents"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- * Write the prepared page contents to disk to create -->
+ <!-- * the final man page. -->
+ <xsl:call-template name="write.man.file">
+ <xsl:with-param name="name" select="$first.refname"/>
+ <xsl:with-param name="section" select="$refentry.metadata/section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="content" select="$manpage.contents.prepared"/>
+ </xsl:call-template>
+
+ <!-- * Generate "stub" (alias) pages (if any needed) -->
+ <xsl:call-template name="write.stubs">
+ <xsl:with-param name="first.refname" select="$first.refname"/>
+ <xsl:with-param name="section" select="$refentry.metadata/section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/endnotes.xsl b/docs/xsl-generic/manpages/endnotes.xsl
new file mode 100644
index 00000000..f1c7480c
--- /dev/null
+++ b/docs/xsl-generic/manpages/endnotes.xsl
@@ -0,0 +1,535 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ exclude-result-prefixes="db ng exsl xlink"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: endnotes.xsl 7254 2007-08-18 23:59:53Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- * -->
+<!-- * The templates in this file handle elements whose contents can't -->
+<!-- * be displayed completely within the main text flow in output, but -->
+<!-- * instead need to be displayed "out of line". Those elements are: -->
+<!-- * -->
+<!-- * - elements providing annotative text (annotation|alt|footnote) -->
+<!-- * - elements pointing at external resources (ulink, link, and -->
+<!-- * any elements with xlink:href attributes; and imagedata, -->
+<!-- * audiodata, and videodata - which (using their fileref -->
+<!-- * attribute) reference external files -->
+<!-- * -->
+<!-- * Within this stylesheet, the above are collectively referred to as -->
+<!-- * a "notesources". This stylesheet handles those notesources in -->
+<!-- * this way: -->
+<!-- * -->
+<!-- * 1. Constructs a numbered in-memory index of all unique "earmarks“ -->
+<!-- * of all notesources in the document. For each link, the -->
+<!-- * earmark is the value of its url or xlink:href attribute; for -->
+<!-- * each imagedata|audiodata|videodata: the value of its fileref -->
+<!-- * attribute; for each annotative element: its content. -->
+<!-- * -->
+<!-- * Notesources with the same earmark are assigned the same -->
+<!-- * number. -->
+<!-- * -->
+<!-- * By design, that index excludes any element whose whose string -->
+<!-- * value is identical to value of its url xlink:href attribute). -->
+<!-- * -->
+<!-- * 2. Puts a numbered marker inline to mark the place where the -->
+<!-- * notesource occurs in the main text flow. -->
+<!-- * -->
+<!-- * 3. Generates a numbered endnotes list (titled NOTES in English) -->
+<!-- * at the end of the man page, with the contents of each -->
+<!-- * notesource. -->
+<!-- * -->
+<!-- * Note that table footnotes are not listed in the endnotes list, -->
+<!-- * and are not handled by this stylesheet (they are instead handled -->
+<!-- * by the table.xsl stylesheet). -->
+<!-- * -->
+<!-- * Also, we don't get notesources in *info sections or Refmeta or -->
+<!-- * Refnamediv or Indexterm, because, in manpages output, contents of -->
+<!-- * those are either suppressed or are displayed out of document -->
+<!-- * order - for example, the Info/Author content gets moved to the -->
+<!-- * end of the page. So, if we were to number notesources in the -->
+<!-- * Author content, it would "throw off" the numbering at the -->
+<!-- * beginning of the main text flow. -->
+<!-- * -->
+<!-- * And for the record, one reason we don't use xsl:key to index the -->
+<!-- * earmarks is that we need to get and check the sets of -->
+<!-- * earmarks for uniqueness per-Refentry (not per-document). -->
+<!-- * -->
+<!-- * FIXME: as -->
+<!-- * with "repeat" URLS, alt instances that have the same string value -->
+<!-- * as preceding ones (likely to occur for repeat acroynyms and -->
+<!-- * abbreviations) should be listed only once in the endnotes list, -->
+<!-- * and numbered accordingly inline; split man.indent.width into -->
+<!-- * man.indent.width.value (default 4) and man.indent.width.units -->
+<!-- * (default n); also, if the first child of notesource is some block -->
+<!-- * content other than a (non-formal) paragraph, the current code -->
+<!-- * will probably end up generating a blank line after the -->
+<!-- * corresponding number in the endnotes list... we should probably -->
+<!-- * try to instead display the title of that block content there (if -->
+<!-- * there is one: e.g., the list title, admonition title, etc.) -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="get.all.earmark.indexes.in.current.document">
+ <!-- * Here we create a tree to hold indexes of all earmarks in -->
+ <!-- * the current document. If the current document contains -->
+ <!-- * multiple refentry instances, then this tree will contain -->
+ <!-- * multiple indexes. -->
+ <xsl:if test="$man.endnotes.are.numbered != 0">
+ <!-- * Only create earmark indexes if user wants numbered endnotes -->
+ <xsl:for-each select="//refentry">
+ <earmark.index>
+ <xsl:attribute name="idref">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:attribute>
+ <xsl:for-each
+ select=".//*[self::*[@xlink:href]
+ or self::ulink
+ or self::imagedata
+ or self::audiodata
+ or self::videodata
+ or self::footnote[not(ancestor::table)]
+ or self::annotation
+ or self::alt]
+ [(node()
+ or self::imagedata
+ or self::audiodata
+ or self::videodata
+ )
+ and not(ancestor::refentryinfo)
+ and not(ancestor::info)
+ and not(ancestor::docinfo)
+ and not(ancestor::refmeta)
+ and not(ancestor::refnamediv)
+ and not(ancestor::indexterm)
+ and not(. = @url)
+ and not(. = @xlink:href)
+ and not(@url =
+ preceding::ulink[node()
+ and not(ancestor::refentryinfo)
+ and not(ancestor::info)
+ and not(ancestor::docinfo)
+ and not(ancestor::refmeta)
+ and not(ancestor::refnamediv)
+ and not(ancestor::indexterm)
+ and (generate-id(ancestor::refentry)
+ = generate-id(current()))]/@url)
+ and not(@xlink:href =
+ preceding::*[@xlink:href][node()
+ and not(ancestor::refentryinfo)
+ and not(ancestor::info)
+ and not(ancestor::docinfo)
+ and not(ancestor::refmeta)
+ and not(ancestor::refnamediv)
+ and not(ancestor::indexterm)
+ and (generate-id(ancestor::refentry)
+ = generate-id(current()))]/@xlink:href)
+ and not(@fileref =
+ preceding::*[@fileref][
+ not(ancestor::refentryinfo)
+ and not(ancestor::info)
+ and not(ancestor::docinfo)
+ and not(ancestor::refmeta)
+ and not(ancestor::refnamediv)
+ and not(ancestor::indexterm)
+ and (generate-id(ancestor::refentry)
+ = generate-id(current()))]/@fileref)]">
+ <earmark>
+ <xsl:attribute name="id">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:attribute>
+ <xsl:attribute name="number">
+ <xsl:value-of select="position()"/>
+ </xsl:attribute>
+ <xsl:if test="@url|@xlink:href|@fileref">
+ <!-- * Only add a uri attribute if the notesource is -->
+ <!-- * a link or an element that references an external -->
+ <!-- * (an imagedata, audiodata, or videodata element) -->
+ <xsl:attribute name="uri">
+ <xsl:value-of select="@url|@xlink:href|@fileref"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy>
+ <xsl:copy-of select="node()"/>
+ </xsl:copy>
+ </earmark>
+ </xsl:for-each>
+ </earmark.index>
+ </xsl:for-each>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*[@xlink:href]|ulink
+ |imagedata|audiodata|videodata
+ |footnote[not(ancestor::table)]
+ |annotation|alt">
+ <xsl:variable name="all.earmark.indexes.in.current.document.rtf">
+ <xsl:call-template name="get.all.earmark.indexes.in.current.document"/>
+ </xsl:variable>
+ <xsl:variable name="all.earmark.indexes.in.current.document"
+ select="exsl:node-set($all.earmark.indexes.in.current.document.rtf)"/>
+ <xsl:variable name="all.earmarks.in.current.refentry.rtf">
+ <!-- * get the set of all earmarks for the ancestor Refentry of -->
+ <!-- * this notesource -->
+ <xsl:copy-of
+ select="$all.earmark.indexes.in.current.document/earmark.index
+ [@idref =
+ generate-id(current()/ancestor::refentry)]/earmark"/>
+ </xsl:variable>
+ <xsl:variable name="all.earmarks.in.current.refentry"
+ select="exsl:node-set($all.earmarks.in.current.refentry.rtf)"/>
+
+ <!-- * identify the earmark for the current element -->
+ <xsl:variable name="earmark">
+ <xsl:choose>
+ <xsl:when test="@url|@xlink:href">
+ <xsl:value-of select="@url|@xlink:href"/>
+ </xsl:when>
+ <xsl:when test="@fileref">
+ <xsl:value-of select="@fileref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="notesource.number">
+ <!-- * Get the number for this notesource -->
+ <!-- * -->
+ <!-- * If this is an imagedata, audiodata, or videodata element -->
+ <!-- * OR if it's a non-empty element AND its string value is not -->
+ <!-- * equal to the value of its url or xlink:href attribute (if -->
+ <!-- * it has one) AND user wants endnotes numbered, only then -->
+ <!-- * do we output a number for it -->
+ <xsl:if test="(self::imagedata or
+ self::audiodata or
+ self::videodata or
+ (node()
+ and not(. = @url)
+ and not(. = @xlink:href))
+ )
+ and $man.endnotes.are.numbered != 0">
+ <!-- * To select the number for this notesource, we -->
+ <!-- * check the index of all earmarks for the current refentry -->
+ <!-- * and find the number of the indexed earmark which matches -->
+ <!-- * this notesource's earmark. -->
+ <!-- * Note that multiple notesources may share the same -->
+ <!-- * numbered earmark; in that case, they get the same number. -->
+ <!-- * -->
+ <xsl:choose>
+ <xsl:when test="self::ulink or
+ self::*[@xlink:href] or
+ self::imagedata or
+ self::audiodata or
+ self::videodata">
+ <xsl:value-of select="$all.earmarks.in.current.refentry/earmark[@uri = $earmark]/@number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$all.earmarks.in.current.refentry/earmark[@id = $earmark]/@number"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="notesource.contents">
+ <xsl:choose>
+ <!-- * check to see if the element is empty or not -->
+ <xsl:when test="node()">
+ <!-- * this is a non-empty node, so process its contents -->
+ <xsl:apply-templates/>
+ <xsl:if test="../footnote or ../annotation">
+ <!-- * if this element is a footnote or annotation, we need to -->
+ <!-- * do some further checking on it, so we can emit warnings -->
+ <!-- * about potential problems -->
+ <xsl:for-each select="node()">
+ <xsl:if test="local-name() != 'para' and local-name() !=''">
+ <!-- * for each node we find as a child of a footnote or -->
+ <!-- * annotation, if it's not a para or a text node, emit a -->
+ <!-- * warning... because in manpages output, we can't render -->
+ <!-- * block-level child content of an endnote properly unless -->
+ <!-- * it's wrapped in a para that has some "prefatory" text -->
+ <xsl:variable name="parent-name" select="local-name(..)"/>
+ <xsl:variable name="refname" select="ancestor::refentry/refnamediv[1]/refname[1]"/>
+ <xsl:variable name="endnote-number">
+ <xsl:call-template name="pad-string">
+ <!-- * endnote number may be 2 digits, so pad it with a space -->
+ <!-- * if we have only 1 digit -->
+ <xsl:with-param name="padVar" select="concat('#',$notesource.number)"/>
+ <xsl:with-param name="length" select="3"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>endnote </xsl:text>
+ <xsl:value-of select="$endnote-number"/>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>Bad: </xsl:text>
+ <xsl:value-of select="$parent-name"/>
+ <!-- * figure out which occurance of this element type this -->
+ <!-- * instance is and output a number in square brackets so -->
+ <!-- * that end-user can know which element to fix -->
+ <xsl:text>[</xsl:text>
+ <xsl:value-of select="count(preceding::*[local-name() = $parent-name]) + 1"/>
+ <xsl:text>]</xsl:text>
+ <xsl:text> in source</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>endnote </xsl:text>
+ <xsl:value-of select="$endnote-number"/>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>Has: </xsl:text>
+ <xsl:value-of select="$parent-name"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>endnote </xsl:text>
+ <xsl:value-of select="$endnote-number"/>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>Fix: </xsl:text>
+ <xsl:value-of select="$parent-name"/>
+ <xsl:text>/</xsl:text>
+ <xsl:text>para/</xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise this is an empty link or an empty imagedata, -->
+ <!-- * audiodata, or videodata element, so we just get the -->
+ <!-- * value of its url, xlink:href, or fileref attribute. -->
+ <xsl:if test="$man.hyphenate.urls = 0
+ and $man.break.after.slash = 0">
+ <!-- * Add hyphenation suppression in URL output only if -->
+ <!-- * break.after.slash is also non-zero -->
+ <xsl:call-template name="suppress.hyphenation"/>
+ <xsl:text>\%</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$earmark"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="self::ulink or self::*[@xlink:href]">
+ <!-- * This is a hyperlink, so we need to decide how to format -->
+ <!-- * the inline contents of the link (to underline or not). -->
+ <xsl:choose>
+ <!-- * if user wants links underlined, underline (ital) it -->
+ <xsl:when test="$man.links.are.underlined != 0">
+ <xsl:variable name="link.wrapper">
+ <xsl:value-of select="$notesource.contents"/>
+ </xsl:variable>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="exsl:node-set($link.wrapper)"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * user doesn't want links underlined, so just display content -->
+ <xsl:value-of select="$notesource.contents"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:if test="$notesource.number != ''">
+ <!-- * Format the number by placing it in square brackets. FIXME: -->
+ <!-- * This formatting should probably be made user-configurable, -->
+ <!-- * to allow something other than just square brackets; e.g., -->
+ <!-- * Angle brackets<10> or Braces{10} -->
+ <xsl:text>\&amp;[</xsl:text>
+ <xsl:value-of select="$notesource.number"/>
+ <xsl:text>]</xsl:text>
+ <!-- * Note that the reason for the \& before the opening bracket -->
+ <!-- * is to prevent any possible linebreak from being introduced -->
+ <!-- * between the opening bracket and the following text. -->
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="endnotes.list">
+ <!-- We have stored earmark indexes for all refentry instances in the -->
+ <!-- current document, with the ID for each index being the same ID as -->
+ <!-- its corresponding refentry; so we now need to get the ID for the -->
+ <!-- current refentry so we can grab its corresponding earmark index -->
+ <xsl:variable name="current.refentry.id">
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:variable>
+
+ <xsl:variable name="endnotes.rtf">
+ <xsl:variable name="all.earmark.indexes.in.current.document.rtf">
+ <xsl:call-template name="get.all.earmark.indexes.in.current.document"/>
+ </xsl:variable>
+ <xsl:variable name="all.earmark.indexes.in.current.document"
+ select="exsl:node-set($all.earmark.indexes.in.current.document.rtf)"/>
+ <xsl:copy-of
+ select="$all.earmark.indexes.in.current.document/earmark.index
+ [@idref = $current.refentry.id]/earmark"/>
+ </xsl:variable>
+
+ <xsl:variable name="endnotes" select="exsl:node-set($endnotes.rtf)"/>
+
+ <!-- * check to see if we have actually found any content to use as -->
+ <!-- * endnotes; if we have, we generate the endnotes list, if not, -->
+ <!-- * we do nothing -->
+ <xsl:if test="$endnotes/node()">
+ <xsl:call-template name="format.endnotes.list">
+ <xsl:with-param name="endnotes" select="$endnotes"/>
+ </xsl:call-template>
+ </xsl:if>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="format.endnotes.list">
+ <xsl:param name="endnotes"/>
+ <xsl:call-template name="mark.subheading"/>
+
+ <!-- * ======= make the endnotes-list section heading ============= -->
+ <xsl:text>.SH "</xsl:text>
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <!-- * if user has specified a heading, use that -->
+ <xsl:when test="$man.endnotes.list.heading != ''">
+ <xsl:value-of select="$man.endnotes.list.heading"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, get localized heading from gentext -->
+ <!-- * (in English, NOTES) -->
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Notes'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>"&#10;</xsl:text>
+
+ <!-- * ================ process each earmark ====================== -->
+ <xsl:for-each select="$endnotes/earmark">
+ <!-- * make paragraph with hanging indent, and starting with a -->
+ <!-- * number in the form " 1." (padded to $man.indent.width - 1) -->
+ <xsl:text>.IP</xsl:text>
+ <xsl:text> "</xsl:text>
+ <xsl:variable name="endnote.number">
+ <xsl:value-of select="@number"/>
+ <xsl:text>.</xsl:text>
+ </xsl:variable>
+ <xsl:call-template name="pad-string">
+ <xsl:with-param name="padVar" select="$endnote.number"/>
+ <!-- FIXME: the following assumes that $man.indent.width is in -->
+ <!-- en's; also, this should probably use $list.indent instead -->
+ <xsl:with-param name="length" select="$man.indent.width - 1"/>
+ </xsl:call-template>
+ <xsl:text>"</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+
+ <!-- * ========================================================= -->
+ <!-- * print the notesource/endnote contents -->
+ <!-- * ========================================================= -->
+ <xsl:choose>
+ <xsl:when test="*/node()">
+ <!-- * if the earmark has non-empty child content, then -->
+ <!-- * its corresponding notesource is either a link or -->
+ <!-- * an instance of annotative text, so we want to -->
+ <!-- * display that content -->
+ <xsl:choose>
+ <xsl:when test="*/node()[name(.)!='']">
+ <!-- * if node is not text only, then process it as-is -->
+ <xsl:apply-templates select="*/node()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise node is text-only, so normalize it -->
+ <xsl:value-of select="normalize-space(*/node())"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, this earmark has empty content, -->
+ <!-- * which means its corresponding notesources is an -->
+ <!-- * imagedata, audiodata, or videodata instance; in -->
+ <!-- * that case, we use the value of the notesoures's -->
+ <!-- * @fileref attribute (which is stored in the -->
+ <!-- * earmark uri attribute) as the "contents" for -->
+ <!-- * this endnote/notesource -->
+ <xsl:value-of select="@uri"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#10;</xsl:text>
+
+ <!-- * ========================================================= -->
+ <!-- * print the URL for links -->
+ <!-- * ========================================================= -->
+ <!-- * In addition to the notesource contents, if the -->
+ <!-- * notesource is a link, we display the URL for the link. -->
+ <!-- * But for notesources that are imagedata, audiodata, or -->
+ <!-- * videodata instances, we don't want to (re)display the -->
+ <!-- * URL for those here, because for those elements, the -->
+ <!-- * notesource contents are the URL (the value of the -->
+ <!-- * @fileref attribute), and we have already rendered them. -->
+ <!-- * -->
+ <!-- * We know an earmark is a link if it has non-empty child -->
+ <!-- * content and a uri attribute; so we check for that -->
+ <!-- * condition here. -->
+ <xsl:if test="*/node() and @uri">
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <!-- * Add hyphenation suppression in URL output only if -->
+ <!-- * $break.after.slash is also non-zero -->
+ <xsl:if test="$man.hyphenate.urls = 0
+ and $man.break.after.slash = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ <xsl:text>\%</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="@uri"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RE</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/html-synop.xsl b/docs/xsl-generic/manpages/html-synop.xsl
new file mode 100644
index 00000000..a6182a01
--- /dev/null
+++ b/docs/xsl-generic/manpages/html-synop.xsl
@@ -0,0 +1,1605 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+ $Id: synop.xsl 7250 2007-08-18 10:19:00Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+ <div>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <p>
+ <xsl:if test="..//processing-instruction('dbcmdlist')">
+ <!-- * Placing a dbcmdlist PI as a child of a particular element -->
+ <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
+ <!-- * that are descendants of that element; so for any -->
+ <!-- * cmdsynopsis that is a descendant of an element containing -->
+ <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
+ <!-- * we will have something to link to -->
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+ </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:call-template name="inline.monoseq"/>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+ <xsl:call-template name="inline.monoseq"/>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:variable name="sepchar">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*/@sepchar">
+ <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="preceding-sibling::*">
+ <xsl:value-of select="$sepchar"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:value-of select="$arg.choice.plain.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.open.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates/>
+ <xsl:choose>
+ <xsl:when test="$rep='repeat'">
+ <xsl:value-of select="$arg.rep.repeat.str"/>
+ </xsl:when>
+ <xsl:when test="$rep='norepeat'">
+ <xsl:value-of select="$arg.rep.norepeat.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.rep.def.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:value-of select="$arg.choice.plain.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.close.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:if test="preceding-sibling::*">
+ <xsl:value-of select="$arg.or.sep"/>
+ </xsl:if>
+ <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+ <xsl:text>
+.
+</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+ <xsl:variable name="target" select="key('id',@linkend)"/>
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+ </xsl:variable>
+ <i>
+ <a href="#{@linkend}">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ </a>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+ <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="." mode="synopfragment.number"/>
+ </xsl:variable>
+ <p>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <a name="{$id}">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ </a>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+ <xsl:if test="..//processing-instruction('dbfunclist')">
+ <!-- * Placing a dbfunclist PI as a child of a particular element -->
+ <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
+ <!-- * are descendants of that element; so for any funcsynopsis that is -->
+ <!-- * a descendant of an element containing a dbfunclist PI, we need -->
+ <!-- * to output an a@id instance so that we will have something to -->
+ <!-- * link to -->
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+ <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates/>
+ </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype -->
+<!--
+
+funcprototype ::= (funcdef,
+ (void|varargs|paramdef+))
+
+funcdef ::= (#PCDATA|type|replaceable|function)*
+
+paramdef ::= (#PCDATA|type|replaceable|parameter|funcparams)*
+-->
+
+<xsl:template match="funcprototype">
+ <xsl:variable name="html-style">
+ <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+ <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="style">
+ <xsl:choose>
+ <xsl:when test="$html-style != ''">
+ <xsl:value-of select="$html-style"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$funcsynopsis.style"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+<!--
+ <xsl:variable name="tabular-p"
+ select="$funcsynopsis.tabular.threshold &gt; 0
+ and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
+-->
+
+ <xsl:variable name="tabular-p" select="true()"/>
+
+ <xsl:choose>
+ <xsl:when test="$style = 'kr' and $tabular-p">
+ <xsl:apply-templates select="." mode="kr-tabular"/>
+ </xsl:when>
+ <xsl:when test="$style = 'kr'">
+ <xsl:apply-templates select="." mode="kr-nontabular"/>
+ </xsl:when>
+ <xsl:when test="$style = 'ansi' and $tabular-p">
+ <xsl:apply-templates select="." mode="ansi-tabular"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="ansi-nontabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, non-tabular -->
+
+<xsl:template match="funcprototype" mode="kr-nontabular">
+ <p>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ <xsl:if test="paramdef">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+ </xsl:if>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-nontabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-nontabular">
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-nontabular">
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-nontabular">
+ <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-nontabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-nontabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+ <xsl:if test="preceding-sibling::paramdef"><xsl:text>
+.
+</xsl:text></xsl:if>
+ <code>
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ </code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
+ <code>(</code>
+ <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+ <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, tabular -->
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+ <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
+ <tr>
+ <td>
+ <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
+ </td>
+ <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
+ </tr>
+ <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+ <tr>
+ <td> </td>
+ <xsl:apply-templates select="." mode="kr-tabular"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <xsl:if test="paramdef">
+ <table border="0" summary="Function argument synopsis" cellspacing="0" cellpadding="0">
+ <xsl:if test="following-sibling::funcprototype">
+ <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="paramdef" mode="kr-tabular-funcsynopsis-mode"/>
+ </table>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-tabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="kr-tabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="kr-tabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-tabular">
+ <td>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td> </td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-tabular">
+ <td>
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td> </td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular">
+ <td>
+ <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td> </td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-tabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-tabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
+ </xsl:when>
+ <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+ <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <tr>
+ <xsl:choose>
+ <xsl:when test="$type != '' and funcparams">
+ <td>
+ <code>
+ <xsl:copy-of select="$type"/>
+ </code>
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <code>
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </code>
+ </td>
+ </xsl:when>
+
+ <xsl:when test="funcparams">
+ <td colspan="2">
+ <code>
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ </code>
+ </td>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <td>
+ <code>
+ <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+ </code>
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <code>
+ <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+ <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
+ <code>(</code>
+ <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, non-tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-nontabular">
+ <p>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-nontabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-nontabular">
+ <code>void)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-nontabular">
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-nontabular">
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-nontabular">
+ <code>(</code>
+ <xsl:apply-templates mode="ansi-nontabular"/>
+ <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+ <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <xsl:if test="following-sibling::funcprototype">
+ <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute>
+ </xsl:if>
+ <tr>
+ <td>
+ <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+ </td>
+ <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+ </tr>
+ <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+ <tr>
+ <td> </td>
+ <xsl:apply-templates select="." mode="ansi-tabular"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-tabular">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="ansi-tabular"/>
+ <xsl:text>(</xsl:text>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="kr-tabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-tabular">
+ <td>
+ <code>void)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td> </td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-tabular">
+ <td>
+ <xsl:text>...</xsl:text>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </td>
+ <td> </td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type" mode="ansi-tabular"/>
+ </xsl:when>
+ <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+ <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$type != '' and funcparams">
+ <td>
+ <xsl:copy-of select="$type"/>
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="type">
+ <xsl:apply-templates select="type/following-sibling::*" mode="ansi-tabular"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*" mode="ansi-tabular"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/>
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <xsl:apply-templates select="parameter" mode="ansi-tabular"/>
+ <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="ansi-tabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-tabular">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates mode="ansi-tabular"/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>
+ <xsl:apply-templates mode="ansi-tabular"/>
+ </code>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-tabular">
+ <code>(</code>
+ <xsl:apply-templates/>
+ <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis |fieldsynopsis |methodsynopsis |constructorsynopsis |destructorsynopsis">
+ <xsl:param name="language">
+ <xsl:choose>
+ <xsl:when test="@language">
+ <xsl:value-of select="@language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-classsynopsis-language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$language='java' or $language='Java'">
+ <xsl:apply-templates select="." mode="java"/>
+ </xsl:when>
+ <xsl:when test="$language='perl' or $language='Perl'">
+ <xsl:apply-templates select="." mode="perl"/>
+ </xsl:when>
+ <xsl:when test="$language='idl' or $language='IDL'">
+ <xsl:apply-templates select="." mode="idl"/>
+ </xsl:when>
+ <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+ <xsl:apply-templates select="." mode="cpp"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized language on </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="$language"/>
+ </xsl:message>
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="language" select="$default-classsynopsis-language"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+ <xsl:if test="parent::classsynopsis or (following-sibling::fieldsynopsis |following-sibling::methodsynopsis |following-sibling::constructorsynopsis |following-sibling::destructorsynopsis)">
+ <xsl:text>
+.
+</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+ <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="ooclass[1]" mode="java"/>
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text> extends</xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+ <xsl:if test="oointerface|ooexception">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text>implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="java"/>
+ <xsl:if test="ooexception">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text>throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="java"/>
+ </xsl:if>
+ <xsl:text> {</xsl:text>
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="java"/>
+ <xsl:text>}</xsl:text>
+ </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+ <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+ <xsl:param name="indent">0</xsl:param>
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>,</xsl:text>
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:if test="$indent &gt; 0">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string"> </xsl:with-param>
+ <xsl:with-param name="count" select="$indent + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="decl">
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+ <!-- type -->
+ <xsl:if test="local-name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="java"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="java"/>
+ </xsl:variable>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:copy-of select="$decl"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="java">
+ <xsl:with-param name="indent" select="string-length($decl)"/>
+ </xsl:apply-templates>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    throws </xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="java"/>
+ </xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="java"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+ <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+ <xsl:if test="oointerface|ooexception">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text> implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="cpp"/>
+ <xsl:if test="ooexception">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text> throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="cpp"/>
+ </xsl:if>
+ <xsl:text> {</xsl:text>
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="cpp"/>
+ <xsl:text>}</xsl:text>
+ </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+ <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+ <!-- type -->
+ <xsl:if test="local-name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="cpp"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="cpp"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    throws </xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="cpp"/>
+ </xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+ <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>interface </xsl:text>
+ <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+ <xsl:if test="oointerface|ooexception">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text> implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="idl"/>
+ <xsl:if test="ooexception">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text> throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="idl"/>
+ </xsl:if>
+ <xsl:text> {</xsl:text>
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="idl"/>
+ <xsl:text>}</xsl:text>
+ </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+ <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+ <!-- type -->
+ <xsl:if test="local-name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="idl"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="idl"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <xsl:text>
+.
+</xsl:text>
+ <xsl:text>    raises(</xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="idl"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+ <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>package </xsl:text>
+ <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+ <xsl:text>;</xsl:text>
+ <xsl:text>
+.
+</xsl:text>
+
+ <xsl:if test="ooclass[preceding-sibling::*]">
+ <xsl:text>@ISA = (</xsl:text>
+ <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+ <xsl:text>);</xsl:text>
+ <xsl:text>
+.
+</xsl:text>
+ </xsl:if>
+
+ <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="perl"/>
+ </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+ <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+ <xsl:if test="preceding-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:if test="parent::classsynopsis">
+ <xsl:text>  </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text>;</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+ <xsl:if test="preceding-sibling::methodparam">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+ <span>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+ <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+ <code>
+ <xsl:apply-templates select="." mode="class.attribute"/>
+ <xsl:text>sub </xsl:text>
+
+ <xsl:apply-templates select="methodname" mode="perl"/>
+ <xsl:text> { ... };</xsl:text>
+ </code>
+ <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/docs/xsl-generic/manpages/info.xsl b/docs/xsl-generic/manpages/info.xsl
new file mode 100644
index 00000000..36dded00
--- /dev/null
+++ b/docs/xsl-generic/manpages/info.xsl
@@ -0,0 +1,630 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:date="http://exslt.org/dates-and-times"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="date exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: info.xsl 7087 2007-07-19 07:20:38Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+ <xsl:variable name="blurb-indent">
+ <xsl:choose>
+ <xsl:when test="not($man.indent.blurbs = 0)">
+ <xsl:value-of select="$man.indent.width"/>
+ </xsl:when>
+ <xsl:when test="not($man.indent.refsect = 0)">
+ <!-- * "zq" is the name of a register we set for -->
+ <!-- * preserving the original default indent value -->
+ <!-- * when $man.indent.refsect is non-zero; -->
+ <!-- * "u" is a roff unit specifier -->
+ <xsl:text>\n(zqu</xsl:text>
+ </xsl:when>
+ <xsl:otherwise/> <!-- * otherwise, just leave it empty -->
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- ================================================================== -->
+ <!-- * About the $info param used in this stylesheet -->
+ <!-- * -->
+ <!-- * The $info param is a "master info" node set that contains -->
+ <!-- * the entire contents of the *info child of the current -->
+ <!-- * Refentry, plus the entire contents of the *info children of -->
+ <!-- * all ancestors of the current Refentry, in document order. -->
+ <!-- * -->
+ <!-- * We try to find a "best match" for selecting content from -->
+ <!-- * $infor; we look through it in reverse document order until we -->
+ <!-- * can find something usable. -->
+ <!-- * -->
+ <!-- * Specifically what the basic metadata-gathering XPath expression -->
+ <!-- * in this stylesheet does is: -->
+ <!-- * -->
+ <!-- * 1. Look through the entire "master info" node set.-->
+ <!-- * 2. Get the last node in the set that contains, for -->
+ <!-- * example, an Author element. That amounts to being the -->
+ <!-- * closest *info node to the Refentry - either its *info -->
+ <!-- * child, or the *info node of its closest ancestor that -->
+ <!-- * contains an Author. -->
+
+ <!-- ================================================================== -->
+ <!-- * Get user "refentry metadata" preferences -->
+ <!-- ================================================================== -->
+ <!-- * The DocBook XSL stylesheets include several user-configurable -->
+ <!-- * global stylesheet parameters for controlling refentry metadata -->
+ <!-- * gathering. Those parameters are not read directly by the other -->
+ <!-- * refentry metadata-gathering templates. Instead, they are read -->
+ <!-- * only by the get.refentry.metadata.prefs template, which -->
+ <!-- * assembles them into a structure that is then passed to the -->
+ <!-- * other refentry metadata-gathering template. -->
+
+ <xsl:variable name="get.refentry.metadata.prefs">
+ <!-- * get.refentry.metadata.prefs is in common/refentry.xsl -->
+ <xsl:call-template name="get.refentry.metadata.prefs"/>
+ </xsl:variable>
+
+ <xsl:variable name="refentry.metadata.prefs"
+ select="exsl:node-set($get.refentry.metadata.prefs)"/>
+
+ <!-- * ============================================================== -->
+ <!-- * Get content for Author metadata field. -->
+ <!-- * ============================================================== -->
+
+ <!-- * The make.roff.metatada.author template and metadata.author -->
+ <!-- * mode are used only for populating the Author field in the -->
+ <!-- * metadata "top comment" we embed in roff source of each page. -->
+
+ <xsl:template name="make.roff.metadata.author">
+ <xsl:param name="info"/>
+ <xsl:choose>
+ <xsl:when test="$info//author">
+ <xsl:apply-templates
+ select="(($info[//author])[last()]//author)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//corpauthor">
+ <xsl:apply-templates
+ select="(($info[//corpauthor])[last()]//corpauthor)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//editor">
+ <xsl:apply-templates
+ select="(($info[//editor])[last()]//editor)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//corpcredit">
+ <xsl:apply-templates
+ select="(($info[//corpcredit])[last()]//corpcredit)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//othercredit">
+ <xsl:apply-templates
+ select="(($info[//othercredit])[last()]//othercredit)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//collab">
+ <xsl:apply-templates
+ select="(($info[//collab])[last()]//collab)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//orgname">
+ <xsl:apply-templates
+ select="(($info[//orgname])[last()]//orgname)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:when test="$info//publishername">
+ <xsl:apply-templates
+ select="(($info[//publishername])[last()]//publishername)[1]"
+ mode="metadata.author"/>
+ </xsl:when>
+ <xsl:otherwise/> <!-- * do nothing, no author info found -->
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="author|editor|othercredit|collab" mode="metadata.author">
+ <xsl:choose>
+ <xsl:when test="collabname">
+ <!-- * If this node is a Collab, then it should have a -->
+ <!-- * Collabname child, so get that. -->
+ <xsl:variable name="contents">
+ <xsl:apply-templates select="collabname"/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, this node is not a Collab, but instead -->
+ <!-- * an author|editor|othercredit, which must have a name -->
+ <!-- * of some kind; so get that name -->
+ <xsl:call-template name="person.name.normalized"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test=".//email|address/otheraddr/ulink">
+ <xsl:text> </xsl:text>
+ <!-- * For each attribution found, use only the first e-mail -->
+ <!-- * address or ulink value found -->
+ <xsl:apply-templates select="(.//email|address/otheraddr/ulink)[1]"
+ mode="metadata.author"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="email|address/otheraddr/ulink" mode="metadata.author">
+ <xsl:text>&lt;</xsl:text>
+ <xsl:choose>
+ <xsl:when test="self::email">
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ </xsl:when>
+ <xsl:when test="self::ulink">
+ <xsl:variable name="contents">
+ <xsl:apply-templates select="."/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>&gt;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="metadata.author">
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+ <!-- * Assemble the AUTHOR/AUTHORS section -->
+ <!-- * ============================================================== -->
+
+ <xsl:template name="author.section">
+ <xsl:param name="info"/>
+ <!-- * The $info param is a "master info" node set that contains -->
+ <!-- * the entires contents of the *info child of the current -->
+ <!-- * Refentry, plus the entire contents of the *info children of -->
+ <!-- * all ancestors of the current Refentry, in document order. -->
+ <xsl:choose>
+ <xsl:when test="$info//author|$info//editor|$info//collab|
+ $info//corpauthor|$info//corpcredit|
+ $info//othercredit|$info/orgname|
+ $info/publishername|$info/publisher">
+ <xsl:variable name="authorcount">
+ <xsl:value-of
+ select="count(
+ $info//author|$info//editor|$info//collab|
+ $info//corpauthor|$info//corpcredit|
+ $info//othercredit)">
+ </xsl:value-of>
+ </xsl:variable>
+ <xsl:text>.SH "</xsl:text>
+ <xsl:call-template name="make.authorsecttitle">
+ <xsl:with-param name="authorcount" select="$authorcount"/>
+ </xsl:call-template>
+ <!-- * Now output all the actual author, editor, etc. content -->
+ <xsl:for-each
+ select="$info//author|$info//editor|$info//collab|
+ $info//corpauthor|$info//corpcredit|
+ $info//othercredit|$info/orgname|
+ $info/publishername|$info/publisher">
+ <xsl:apply-templates select="." mode="authorsect"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise/> <!-- * do nothing, no author info found -->
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="make.authorsecttitle">
+ <!-- * If we have exactly one attributable person/entity, then output -->
+ <!-- * localized gentext for 'Author'; otherwise, output 'Authors'. -->
+ <xsl:param name="authorcount"/>
+ <xsl:param name="authorsecttitle">
+ <xsl:choose>
+ <xsl:when test="$authorcount = 1">
+ <xsl:text>Author</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Authors</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="$authorsecttitle"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>"&#10;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="author|editor|othercredit" mode="authorsect">
+ <xsl:variable name="person-name">
+ <xsl:call-template name="person.name.normalized"/>
+ </xsl:variable>
+ <!-- * If we have a person-name or email or ulink content, then -->
+ <!-- * output name and email or ulink content on the same line -->
+ <xsl:choose>
+ <xsl:when test="not($person-name = '') or .//email or address/otheraddr/ulink">
+ <xsl:text>.PP&#10;</xsl:text>
+ <!-- * Display person name in bold -->
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="exsl:node-set($person-name)"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
+ <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>.br&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- * Display affiliation(s) on separate lines -->
+ <xsl:apply-templates select="affiliation" mode="authorsect"/>
+ <!-- * Display direct-child addresses on separate lines -->
+ <xsl:apply-templates select="address" mode="authorsect"/>
+ <!-- * Call template for handling various attribution possibilities -->
+ <xsl:call-template name="attribution"/>
+ </xsl:template>
+
+ <xsl:template match="collab" mode="authorsect">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="collabname"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
+ <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
+ <xsl:text>&#10;</xsl:text>
+ <!-- * Display affilition(s) on separate lines -->
+ <xsl:apply-templates select="affiliation" mode="authorsect"/>
+ </xsl:template>
+
+ <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="authorsect">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:if test="self::publishername">
+ <!-- * Display localized "Publisher" gentext -->
+ <xsl:call-template name="publisher.attribution"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="publisher" mode="authorsect">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="publishername"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
+ <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
+ <!-- * Display addresses on separate lines -->
+ <xsl:apply-templates select="address" mode="authorsect"/>
+ <!-- * Display localized "Publisher" literal -->
+ <xsl:call-template name="publisher.attribution"/>
+ </xsl:template>
+
+ <xsl:template name="publisher.attribution">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($blurb-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$blurb-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Publisher'"/>
+ </xsl:call-template>
+ <xsl:text>.&#10;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="email|address/otheraddr/ulink" mode="authorsect">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[descendant-or-self::email]
+ or preceding-sibling::address/otheraddr/ulink
+ or ancestor::address[preceding-sibling::*[descendant-or-self::email]]
+ or ancestor::address[preceding-sibling::address/otheraddr/ulink]">
+ <!-- * This is not the first instance, so do nothing. -->
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * This is first instances of an e-mail address or ulink, -->
+ <!-- * so put a space before it. -->
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- * Note that the reason for the \& character after the opening -->
+ <!-- * angle bracket and before the closing angle bracket is to -->
+ <!-- * prevent groff from inserting a linebreak at those points and -->
+ <!-- * outputting a hyphen character where the break occurs -->
+ <xsl:text>&lt;\&amp;</xsl:text>
+ <xsl:choose>
+ <xsl:when test="self::email">
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ </xsl:when>
+ <xsl:when test="self::ulink">
+ <xsl:variable name="contents">
+ <xsl:apply-templates select="."/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>\&amp;&gt;</xsl:text>
+ <xsl:choose>
+ <xsl:when test="not(following-sibling::*[descendant-or-self::email]
+ or following-sibling::address/otheraddr/ulink
+ or ancestor::address[following-sibling::*[descendant-or-self::email]]
+ or ancestor::address[following-sibling::address/otheraddr/ulink])">
+ <!-- * This is the final instance, so do nothing. -->
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Separate multiple e-mail addresses or ulinks with a comma -->
+ <xsl:text>, </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="affiliation" mode="authorsect">
+ <!-- * Get the string value of the contents of this Affiliation. If the -->
+ <!-- * affiliation only contains an Address child whose only content is -->
+ <!-- * an email address or ulink, then these contents will end up empty. -->
+ <xsl:variable name="contents">
+ <xsl:apply-templates mode="authorsect"/>
+ </xsl:variable>
+ <!-- * If contents are actually empty except for an email address -->
+ <!-- * or ulink, then output nothing. -->
+ <xsl:if test="$contents != ''">
+ <xsl:text>.br&#10;</xsl:text>
+ <xsl:for-each select="shortaffil|jobtitle|orgname|orgdiv|address">
+ <!-- * only display output of nodes other than email or ulink -->
+ <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <!-- * only add comma if the node has a child node other than -->
+ <!-- * an email address or ulink -->
+ <xsl:if test="child::node()[not(self::email) and not(self::otheraddr/ulink)]">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <!-- * put a line break after every Affiliation instance except -->
+ <!-- * the last one in the set -->
+ <xsl:text>.br&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="address" mode="authorsect">
+ <xsl:variable name="contents"
+ select="normalize-space(node()[not(self::email)
+ and not(self::otheraddr/ulink)])"/>
+ <!-- * If this contents of this Address do not contain anything except -->
+ <!-- * an email address or ulink, then output nothing. -->
+ <xsl:if test="$contents != ''">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.br&#10;</xsl:text>
+ <!--* Skip email and ulink descendants of Address (rendered elsewhere) -->
+ <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="attribution">
+ <!-- * Determine appropriate attribution for a particular person's role. -->
+ <xsl:choose>
+ <!-- * if we have a *blurb or contrib, just use that -->
+ <xsl:when test="contrib|personblurb|authorblurb">
+ <xsl:apply-templates select="contrib|personblurb|authorblurb" mode="authorsect"/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:when>
+ <!-- * If we have no *blurb or contrib, but this is an Author or -->
+ <!-- * Editor, then render the corresponding localized gentext -->
+ <xsl:when test="self::author">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($blurb-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$blurb-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Author'"/>
+ </xsl:call-template>
+ <xsl:text>.&#10;</xsl:text>
+ </xsl:when>
+ <xsl:when test="self::editor">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($blurb-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$blurb-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'Editor'"/>
+ </xsl:call-template>
+ <xsl:text>.&#10;</xsl:text>
+ </xsl:when>
+ <!-- * If we have no *blurb or contrib, but this is an Othercredit, -->
+ <!-- * check value of Class attribute and use corresponding gentext. -->
+ <xsl:when test="self::othercredit">
+ <xsl:choose>
+ <xsl:when test="@class and @class != 'other'">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($blurb-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$blurb-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="@class"/>
+ </xsl:call-template>
+ <xsl:text>.&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * We have an Othercredit, but not usable value for the Class -->
+ <!-- * attribute, so nothing to show, do nothing -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * We have no *blurb or contrib or anything else we can use to -->
+ <!-- * display appropriate attribution for this person, so do nothing -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="personblurb|authorblurb" mode="authorsect">
+ <xsl:call-template name="mark.up.blurb.or.contrib"/>
+ <!-- * yeah, it's possible for a *blurb to have a "title" -->
+ <xsl:apply-templates select="title"/>
+ <xsl:apply-templates select="*[not(self::title)]"/>
+ </xsl:template>
+
+ <xsl:template match="personblurb/title|authorblurb/title">
+ <!-- * always render period after title -->
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ <xsl:text>.</xsl:text>
+ <!-- * render space after Title+period if the title is followed -->
+ <!-- * by something element content -->
+ <xsl:if test="following-sibling::*[name() != '']">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="contrib" mode="authorsect">
+ <xsl:call-template name="mark.up.blurb.or.contrib"/>
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:template>
+
+ <xsl:template name="mark.up.blurb.or.contrib">
+ <xsl:choose>
+ <!-- * If this *blurb has a sibling "name" element of some kind, then -->
+ <!-- * we are already outputting the name content, and we need to -->
+ <!-- * indent the *blurb content after that. -->
+ <xsl:when
+ test="../personname|../surname|../firstname
+ |../othername|../lineage|../honorific
+ |../affiliation|../email|../address">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($blurb-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$blurb-indent"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, we have no "name" content, so don't indent; -->
+ <!-- * instead, decide if we need a .PP or just a .br -->
+ <xsl:choose>
+ <xsl:when test="not(preceding-sibling::*)">
+ <!-- * if this *blurb or contrib has no preceding -->
+ <!-- * siblings, then we need to start a new paragraph -->
+ <xsl:text>.PP</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise, this has no preceding siblings, so -->
+ <!-- * just put a linebreak -->
+ <xsl:text>.br</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+ <!-- * Assemble the COPYRIGHT section -->
+ <!-- * ============================================================== -->
+ <!-- * The COPYRIGHT section is output only if a copyright or -->
+ <!-- * legalnotice is found. It contains the copyright contents -->
+ <!-- * followed by the legalnotice contents. -->
+ <xsl:template name="copyright.section">
+ <xsl:param name="info"/>
+ <xsl:choose>
+ <xsl:when test="$info//copyright|$info//legalnotice">
+ <xsl:text>.SH "</xsl:text>
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key">Copyright</xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>"&#10;</xsl:text>
+ <!-- * the copyright mode="titlepage.mode" template is -->
+ <!-- * imported from the HTML stylesheets -->
+ <xsl:for-each select="
+ (($info[//copyright])[last()]//copyright)
+ | (($info[//legalnotice])[last()]//legalnotice)">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'copyright'">
+ <xsl:variable name="contents">
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.br&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise/> <!-- * do nothing, no copyright or legalnotice found -->
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="legalnotice">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+
+ <!-- * suppress refmeta and all *info (we grab what we need from them -->
+ <!-- * elsewhere) -->
+
+ <xsl:template match="refmeta"/>
+
+ <xsl:template match="info|refentryinfo|referenceinfo|refsynopsisdivinfo
+ |refsectioninfo|refsect1info|refsect2info|refsect3info
+ |setinfo|bookinfo|articleinfo|chapterinfo|sectioninfo
+ |sect1info|sect2info|sect3info|sect4info|sect5info
+ |partinfo|prefaceinfo|appendixinfo|docinfo"/>
+
+ <!-- ============================================================== -->
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/inline.xsl b/docs/xsl-generic/manpages/inline.xsl
new file mode 100644
index 00000000..a88369c8
--- /dev/null
+++ b/docs/xsl-generic/manpages/inline.xsl
@@ -0,0 +1,190 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: inline.xsl 6843 2007-06-20 12:21:13Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="replaceable|varname">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="option|userinput|envar|errorcode|constant|markup">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="classname">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="type[not(ancestor::cmdsynopsis) and
+ not(ancestor::funcsynopsis)]">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="function[not(ancestor::cmdsynopsis) and
+ not(ancestor::funcsynopsis)]">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="parameter[not(ancestor::cmdsynopsis) and
+ not(ancestor::funcsynopsis)]">
+ <xsl:if test="$man.hyphenate.computer.inlines = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="filename">
+ <!-- * add hyphenation suppression in Filename output only if -->
+ <!-- * break.after.slash is also non-zero -->
+ <xsl:if test="$man.hyphenate.filenames = 0 and
+ $man.break.after.slash = 0">
+ <xsl:call-template name="suppress.hyphenation"/>
+ </xsl:if>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="emphasis">
+ <xsl:choose>
+ <xsl:when test="
+ @role = 'bold' or
+ @role = 'strong' or
+ @remap = 'B'">
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="optional">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ <xsl:apply-templates/>
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template name="do-citerefentry">
+ <xsl:param name="refentrytitle" select="''"/>
+ <xsl:param name="manvolnum" select="''"/>
+ <xsl:variable name="title">
+ <xsl:value-of select="$refentrytitle"/>
+ </xsl:variable>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="exsl:node-set($title)"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$manvolnum"/>
+ <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+ <xsl:call-template name="do-citerefentry">
+ <xsl:with-param name="refentrytitle" select="refentrytitle"/>
+ <xsl:with-param name="manvolnum" select="manvolnum"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="trademark|productname">
+ <xsl:apply-templates/>
+ <xsl:choose>
+ <!-- * Just use true Unicode chars for copyright, trademark, etc., -->
+ <!-- * symbols (by default, we later automatically translate them -->
+ <!-- * with the apply-string-subst-map template, or with the -->
+ <!-- * default character map, if man.charmap.enabled is true). -->
+ <xsl:when test="@class = 'copyright'">
+ <xsl:text>&#x00a9;</xsl:text>
+ </xsl:when>
+ <xsl:when test="@class = 'registered'">
+ <xsl:text>&#x00ae;</xsl:text>
+ </xsl:when>
+ <xsl:when test="@class = 'service'">
+ <xsl:text>&#x2120;</xsl:text>
+ </xsl:when>
+ <xsl:when test="@class = 'trade'">
+ <xsl:text>&#x2122;</xsl:text>
+ </xsl:when>
+ <!-- * for Trademark element, render a trademark symbol by default -->
+ <!-- * even if no "class" value is specified -->
+ <xsl:when test="self::trademark" >
+ <xsl:text>&#x2122;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * otherwise we have a Productname with no value for the -->
+ <!-- * "class" attribute, so don't render any symbol by default -->
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- * span seems to sneak through into output sometimes, possibly due -->
+<!-- * to failed Olink processing; so we need to catch it -->
+<xsl:template match="span">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+ <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/lists.xsl b/docs/xsl-generic/manpages/lists.xsl
new file mode 100644
index 00000000..4c18c80c
--- /dev/null
+++ b/docs/xsl-generic/manpages/lists.xsl
@@ -0,0 +1,368 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: lists.xsl 6843 2007-06-20 12:21:13Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:variable name="list-indent">
+ <xsl:choose>
+ <xsl:when test="not($man.indent.lists = 0)">
+ <xsl:value-of select="$man.indent.width"/>
+ </xsl:when>
+ <xsl:when test="not($man.indent.refsect = 0)">
+ <!-- * "zq" is the name of a register we set for -->
+ <!-- * preserving the original default indent value -->
+ <!-- * when $man.indent.refsect is non-zero; -->
+ <!-- * "u" is a roff unit specifier -->
+ <xsl:text>\n(zqu</xsl:text>
+ </xsl:when>
+ <xsl:otherwise/> <!-- * otherwise, just leave it empty -->
+ </xsl:choose>
+</xsl:variable>
+
+<!-- ================================================================== -->
+
+<xsl:template match="para[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+ simpara[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+ remark[ancestor::listitem or ancestor::step or ancestor::glossdef]">
+ <xsl:call-template name="mixed-block"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:if test="following-sibling::*[1][
+ self::para or
+ self::simpara or
+ self::remark
+ ]">
+ <!-- * Make sure multiple paragraphs within a list item don't -->
+ <!-- * merge together. -->
+ <xsl:text>.sp&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="variablelist|glosslist">
+ <xsl:if test="title">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="title"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="varlistentry|glossentry">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:for-each select="term|glossterm">
+ <xsl:variable name="content">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($content)"/>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <!-- * if we have multiple terms in the same varlistentry, generate -->
+ <!-- * a separator (", " by default) and/or an additional line -->
+ <!-- * break after each one except the last -->
+ <!-- * -->
+ <!-- * note that it is not valid to have multiple glossterms -->
+ <!-- * within a glossentry, so this logic never gets exercised -->
+ <!-- * for glossterms (every glossterm is always the last in -->
+ <!-- * its parent glossentry) -->
+ <xsl:value-of select="$variablelist.term.separator"/>
+ <xsl:if test="not($variablelist.term.break.after = '0')">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.br&#10;</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>.RE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varlistentry/term"/>
+<xsl:template match="glossentry/glossterm"/>
+
+<xsl:template match="variablelist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+ glosslist[ancestor::listitem or ancestor::step or ancestor::glossdef]">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::node() or
+ parent::para[following-sibling::node()] or
+ parent::simpara[following-sibling::node()] or
+ parent::remark[following-sibling::node()]">
+ <xsl:text>.sp</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem|glossentry/glossdef">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+ <!-- * We output a real bullet here (rather than, "\(bu", -->
+ <!-- * the roff bullet) because, when we do character-map -->
+ <!-- * processing before final output, the character-map will -->
+ <!-- * handle conversion of the &#x2022; to "\(bu" for us -->
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>\h'-</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text>0</xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>'</xsl:text>
+ <xsl:text>&#x2022;</xsl:text>
+ <xsl:text>\h'+</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text>0</xsl:text>
+ <xsl:value-of select="$list-indent - 1"/>
+ <xsl:text>'</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:text>.RE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem|procedure/step">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>\h'-</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text>0</xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>'</xsl:text>
+ <xsl:if test="count(preceding-sibling::listitem) &lt; 9">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:number format="1."/>
+ <xsl:text>\h'+</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text>0</xsl:text>
+ <xsl:value-of select="$list-indent - 2"/>
+ <xsl:text>'</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:text>.RE&#10;</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="itemizedlist|orderedlist|procedure">
+ <xsl:if test="title">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="title"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <!-- * DocBook allows just about any block content to appear in -->
+ <!-- * lists before the actual list items, so we need to get that -->
+ <!-- * content (if any) before getting the list items -->
+ <xsl:apply-templates
+ select="*[not(self::listitem) and not(self::title)]"/>
+ <xsl:apply-templates select="listitem"/>
+ <!-- * If this list is a child of para and has content following -->
+ <!-- * it, within the same para, then add a blank line and move -->
+ <!-- * the left margin back to where it was -->
+ <xsl:if test="parent::para and following-sibling::node()">
+ <xsl:text>.sp&#10;</xsl:text>
+ <xsl:text>.RE&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="itemizedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+ orderedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+ procedure[ancestor::listitem or ancestor::step or ancestor::glossdef]">
+ <xsl:if test="title">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="title"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::node() or
+ parent::para[following-sibling::node()] or
+ parent::simpara[following-sibling::node()] or
+ parent::remark[following-sibling::node()]">
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<!-- * for simplelist type="inline", render it as a comma-separated list -->
+<xsl:template match="simplelist[@type='inline']">
+
+ <!-- * if dbchoice PI exists, use that to determine the choice separator -->
+ <!-- * (that is, equivalent of "and" or "or" in current locale), or literal -->
+ <!-- * value of "choice" otherwise -->
+ <xsl:variable name="localized-choice-separator">
+ <xsl:choose>
+ <xsl:when test="processing-instruction('dbchoice')">
+ <xsl:call-template name="select.choice.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * empty -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:for-each select="member">
+ <xsl:apply-templates/>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <xsl:text>, </xsl:text>
+ <xsl:if test="position() = last() - 1">
+ <xsl:if test="$localized-choice-separator != ''">
+ <xsl:value-of select="$localized-choice-separator"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- * if simplelist type is not inline, render it as a one-column vertical -->
+<!-- * list (ignoring the values of the type and columns attributes) -->
+<xsl:template match="simplelist">
+ <xsl:for-each select="member">
+ <xsl:text>.IP ""</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<!-- * We output Segmentedlist as a table, using tbl(1) markup. There -->
+<!-- * is no option for outputting it in manpages in "list" form. -->
+<xsl:template match="segmentedlist">
+ <xsl:if test="title">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:call-template name="bold">
+ <xsl:with-param name="node" select="title"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:text>.\" line length increase to cope w/ tbl weirdness&#10;</xsl:text>
+ <xsl:text>.ll +(\n(LLu * 62u / 100u)&#10;</xsl:text>
+ <!-- * .TS = "Table Start" -->
+ <xsl:text>.TS&#10;</xsl:text>
+ <!-- * first output the table "format" spec, which tells tbl(1) how -->
+ <!-- * how to format each row and column. -->
+ <xsl:for-each select=".//segtitle">
+ <!-- * l = "left", which hard-codes left-alignment for tabular -->
+ <!-- * output of all segmentedlist content -->
+ <xsl:text>l</xsl:text>
+ </xsl:for-each>
+ <!-- * last line of table format section must end with a dot -->
+ <xsl:text>.&#10;</xsl:text>
+ <!-- * optionally suppress output of segtitle -->
+ <xsl:choose>
+ <xsl:when test="$man.segtitle.suppress != 0">
+ <!-- * non-zero = "suppress", so do nothing -->
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * "0" = "do not suppress", so output the segtitle(s) -->
+ <xsl:apply-templates select=".//segtitle" mode="table-title"/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates/>
+ <!-- * .TE = "Table End" -->
+ <xsl:text>.TE&#10;</xsl:text>
+ <xsl:text>.\" line length decrease back to previous value&#10;</xsl:text>
+ <xsl:text>.ll -(\n(LLu * 62u / 100u)&#10;</xsl:text>
+ <!-- * put a blank line of space below the table -->
+ <xsl:text>.sp&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="segmentedlist/segtitle" mode="table-title">
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="."/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <!-- * tbl(1) treats tab characters as delimiters between -->
+ <!-- * cells; so we need to output a tab after each except -->
+ <!-- * segtitle except the last one -->
+ <xsl:text>&#09;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="segmentedlist/seglistitem">
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="segmentedlist/seglistitem/seg">
+ <!-- * the “T{" and “T}” stuff are delimiters to tell tbl(1) that -->
+ <!-- * the delimited contents are "text blocks" that groff(1) -->
+ <!-- * needs to process -->
+ <xsl:text>T{&#10;</xsl:text>
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($contents)"/>
+ <xsl:text>&#10;T}</xsl:text>
+ <xsl:choose>
+ <xsl:when test="position() = last()"/> <!-- do nothing -->
+ <xsl:otherwise>
+ <!-- * tbl(1) treats tab characters as delimiters between -->
+ <!-- * cells; so we need to output a tab after each except -->
+ <!-- * segtitle except the last one -->
+ <xsl:text>&#09;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/other.xsl b/docs/xsl-generic/manpages/other.xsl
new file mode 100644
index 00000000..3a3afee9
--- /dev/null
+++ b/docs/xsl-generic/manpages/other.xsl
@@ -0,0 +1,674 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ exclude-result-prefixes="exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: other.xsl 6863 2007-06-23 09:08:06Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- * This file contains named templates related to things other than -->
+<!-- * just assembling the actual text of the main text flow of each man -->
+<!-- * page. This "other" stuff currently amounts to these steps: -->
+<!-- * -->
+<!-- * - get contents of the "map" used to convert special characters -->
+<!-- * - output boilerplate messages -->
+<!-- * - escape backslash, dot, dash, and apostrophe characters -->
+<!-- * - convert non-breaking spaces -->
+<!-- * - add a comment to top part of roff source of each page -->
+<!-- * - make a .TH title line (for controlling page header/footer) -->
+<!-- * - set hyphenation, alignment, indent & line-breaking defaults -->
+<!-- * - "prepare" the complete man page contents for final output -->
+<!-- * - write the actual man file to the filesystem -->
+<!-- * - write any "stub" pages to the filesystem -->
+<!-- * -->
+<!-- * The templates in this file are actually called only once per -->
+<!-- * each Refentry; they are just in a separate file for the purpose -->
+<!-- * of keeping things modular. -->
+
+<!-- ==================================================================== -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsection refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+manvolnum
+
+db:abstract db:affiliation db:anchor db:answer db:appendix db:area db:areaset db:areaspec
+db:artheader db:article db:audiodata db:audioobject db:author db:authorblurb db:authorgroup
+db:beginpage db:bibliodiv db:biblioentry db:bibliography db:biblioset db:blockquote db:book
+db:bookbiblio db:bookinfo db:callout db:calloutlist db:caption db:caution db:chapter
+db:citerefentry db:cmdsynopsis db:co db:collab db:colophon db:colspec db:confgroup
+db:copyright db:dedication db:docinfo db:editor db:entrytbl db:epigraph db:equation
+db:example db:figure db:footnote db:footnoteref db:formalpara db:funcprototype
+db:funcsynopsis db:glossary db:glossdef db:glossdiv db:glossentry db:glosslist db:graphicco
+db:group db:highlights db:imagedata db:imageobject db:imageobjectco db:important db:index
+db:indexdiv db:indexentry db:indexterm db:informalequation db:informalexample
+db:informalfigure db:informaltable db:inlineequation db:inlinemediaobject
+db:itemizedlist db:itermset db:keycombo db:keywordset db:legalnotice db:listitem db:lot
+db:mediaobject db:mediaobjectco db:menuchoice db:msg db:msgentry db:msgexplan db:msginfo
+db:msgmain db:msgrel db:msgset db:msgsub db:msgtext db:note db:objectinfo
+db:orderedlist db:othercredit db:part db:partintro db:preface db:printhistory db:procedure
+db:programlistingco db:publisher db:qandadiv db:qandaentry db:qandaset db:question
+db:refentry db:reference db:refmeta db:refnamediv db:refsection db:refsect1 db:refsect1info
+db:refsect2
+db:refsect2info db:refsect3 db:refsect3info db:refsynopsisdiv db:refsynopsisdivinfo
+db:revhistory db:revision db:row db:sbr db:screenco db:screenshot db:sect1 db:sect1info db:sect2
+db:sect2info db:sect3 db:sect3info db:sect4 db:sect4info db:sect5 db:sect5info db:section
+db:sectioninfo db:seglistitem db:segmentedlist db:seriesinfo db:set db:setindex db:setinfo
+db:shortcut db:sidebar db:simplelist db:simplesect db:spanspec db:step db:subject
+db:subjectset db:substeps db:synopfragment db:table db:tbody db:textobject db:tfoot db:tgroup
+db:thead db:tip db:toc db:tocchap db:toclevel1 db:toclevel2 db:toclevel3 db:toclevel4
+db:toclevel5 db:tocpart db:varargs db:variablelist db:varlistentry db:videodata
+db:videoobject db:void db:warning db:subjectset
+
+db:classsynopsis
+db:constructorsynopsis
+db:destructorsynopsis
+db:fieldsynopsis
+db:methodparam
+db:methodsynopsis
+db:ooclass
+db:ooexception
+db:oointerface
+db:simplemsgentry
+db:manvolnum
+"/>
+
+<!-- ==================================================================== -->
+<!-- * Get character map contents -->
+<!-- ==================================================================== -->
+
+ <xsl:variable name="man.charmap.contents">
+ <xsl:if test="$man.charmap.enabled != 0">
+ <xsl:call-template name="read-character-map">
+ <xsl:with-param name="use.subset" select="$man.charmap.use.subset"/>
+ <xsl:with-param name="subset.profile" select="$man.charmap.subset.profile"/>
+ <xsl:with-param name="uri">
+ <xsl:choose>
+ <xsl:when test="$man.charmap.uri != ''">
+ <xsl:value-of select="$man.charmap.uri"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'../manpages/charmap.groff.xsl'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="root.messages">
+ <xsl:param name="refname"/>
+ <!-- redefine this any way you'd like to output messages -->
+ <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+ <!-- Example:
+ <xsl:if test="//foo">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$refname"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>limitation</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>Output for foo element is not yet supported.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- * Escape roff special chars -->
+<!-- ==================================================================== -->
+
+<!-- ******************************************************************** -->
+<!-- * -->
+<!-- * The backslash, dot, dash, and apostrophe (\, ., -, ') characters -->
+<!-- * have special meaning for roff, so before we do any other -->
+<!-- * processing, we must escape those characters where they appear in -->
+<!-- * the source content. -->
+<!-- * -->
+<!-- * Here we also deal with replacing U+00a0 (non-breaking space) with -->
+<!-- * its roff equivalent -->
+<!-- * -->
+<!-- ******************************************************************** -->
+
+<xsl:template match="//refentry//text()">
+ <xsl:call-template name="escape.roff.specials">
+ <xsl:with-param name="content">
+ <xsl:value-of select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.roff.specials">
+ <xsl:param name="content"/>
+ <xsl:call-template name="convert.nobreak-space">
+ <xsl:with-param name="content">
+ <xsl:call-template name="escape.apostrophe">
+ <xsl:with-param name="content">
+ <xsl:call-template name="escape.dash">
+ <xsl:with-param name="content">
+ <xsl:call-template name="escape.dot">
+ <xsl:with-param name="content">
+ <xsl:call-template name="escape.backslash">
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.backslash">
+ <xsl:param name="content"/>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target">\</xsl:with-param>
+ <!-- * we use "\e" instead of "\\" because the groff docs say -->
+ <!-- * that's the correct thing to do; also because testing -->
+ <!-- * shows that "\\" doesn't always work as expected; for -->
+ <!-- * example, "\\" within a table seems to mess things up -->
+ <xsl:with-param name="replacement">\e</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.dot">
+ <xsl:param name="content"/>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target">.</xsl:with-param>
+ <xsl:with-param name="replacement">\.</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.dash">
+ <xsl:param name="content"/>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target">-</xsl:with-param>
+ <xsl:with-param name="replacement">\-</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.apostrophe">
+ <xsl:param name="content"/>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target">'</xsl:with-param>
+ <xsl:with-param name="replacement">\'</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="convert.nobreak-space">
+ <xsl:param name="content"/>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target">&#x00a0;</xsl:with-param>
+ <!-- * A no-break space can be written two ways in roff; the -->
+ <!-- * difference, according to the "Page Motions" node in the -->
+ <!-- * groff info page, is: -->
+ <!-- * -->
+ <!-- * "\ " = -->
+ <!-- * An unbreakable and unpaddable (i.e. not expanded -->
+ <!-- * during filling) space. -->
+ <!-- * -->
+ <!-- * "\~" = -->
+ <!-- * An unbreakable space that stretches like a normal -->
+ <!-- * inter-word space when a line is adjusted." -->
+ <!-- * -->
+ <!-- * Unfortunately, roff seems to do some weird things with -->
+ <!-- * long lines that only have words separated by "\~" -->
+ <!-- * spaces, so it's safer just to stick with the "\ " space -->
+ <xsl:with-param name="replacement">\ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * top.comment generates a comment containing metadata for the man -->
+<!-- * page; for example, Author, Generator, and Date information -->
+
+ <xsl:template name="top.comment">
+ <xsl:param name="info"/>
+ <xsl:param name="date"/>
+ <xsl:param name="title"/>
+ <xsl:param name="manual"/>
+ <xsl:param name="source"/>
+ <xsl:text>.\" Title: </xsl:text>
+ <xsl:call-template name="replace.dots.and.dashes">
+ <xsl:with-param name="content" select="$title"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\" Author: </xsl:text>
+ <xsl:call-template name="replace.dots.and.dashes">
+ <xsl:with-param name="content">
+ <xsl:call-template name="make.roff.metadata.author">
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\" Generator: DocBook </xsl:text>
+ <xsl:value-of select="$DistroTitle"/>
+ <xsl:text> v</xsl:text>
+ <xsl:call-template name="replace.dots.and.dashes">
+ <xsl:with-param name="content" select="$VERSION"/>
+ </xsl:call-template>
+ <xsl:text> &lt;http://docbook.sf.net/></xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\" Date: </xsl:text>
+ <xsl:call-template name="replace.dots.and.dashes">
+ <xsl:with-param name="content" select="$date"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\" Manual: </xsl:text>
+ <xsl:call-template name="replace.dots.and.dashes">
+ <xsl:with-param name="content" select="$manual"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\" Source: </xsl:text>
+ <xsl:call-template name="replace.dots.and.dashes">
+ <xsl:with-param name="content" select="$source"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\"</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:template>
+
+<!-- ==================================================================== -->
+
+ <xsl:template name="TH.title.line">
+
+ <!-- * The exact way that .TH contents are displayed is system- -->
+ <!-- * dependent; it varies somewhat between OSes and roff -->
+ <!-- * versions. Below is a description of how Linux systems with -->
+ <!-- * a modern groff seem to render .TH contents. -->
+ <!-- * -->
+ <!-- * title(section) extra3 title(section) <- page header -->
+ <!-- * extra2 extra1 title(section) <- page footer-->
+ <!-- * -->
+ <!-- * Or, using the names with which the man(7) man page refers -->
+ <!-- * to the various fields: -->
+ <!-- * -->
+ <!-- * title(section) manual title(section) <- page header -->
+ <!-- * source date title(section) <- page footer-->
+ <!-- * -->
+ <!-- * Note that while extra1, extra2, and extra3 are all (nominally) -->
+ <!-- * optional, in practice almost all pages include an "extra1" -->
+ <!-- * field, which is, universally, a date (in some form), and it is -->
+ <!-- * always rendered in the same place (the middle footer position) -->
+ <!-- * -->
+ <!-- * Here are a couple of examples of real-world man pages that -->
+ <!-- * have somewhat useful page headers/footers: -->
+ <!-- * -->
+ <!-- * gtk-options(7) GTK+ User's Manual gtk-options(7) -->
+ <!-- * GTK+ 1.2 2003-10-20 gtk-options(7) -->
+ <!-- * -->
+ <!-- * svgalib(7) Svgalib User Manual svgalib(7) -->
+ <!-- * Svgalib 1.4.1 16 December 1999 svgalib(7) -->
+ <!-- * -->
+ <xsl:param name="title"/>
+ <xsl:param name="section"/>
+ <xsl:param name="extra1"/>
+ <xsl:param name="extra2"/>
+ <xsl:param name="extra3"/>
+
+ <xsl:call-template name="mark.subheading"/>
+ <!-- * Note that we generate quotes around _every_ field in the -->
+ <!-- * .TH title line, including the "title" and "section" -->
+ <!-- * fields. That is because we use the contents of those "as -->
+ <!-- * is", unchanged from the DocBook source; and DTD-based -->
+ <!-- * validation does not provide a way to constrain them to be -->
+ <!-- * "space free" -->
+ <xsl:text>.TH "</xsl:text>
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="$man.th.title.max.length != ''">
+ <xsl:value-of
+ select="normalize-space(substring($title, 1, $man.th.title.max.length))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space($title)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>" "</xsl:text>
+ <xsl:value-of select="normalize-space($section)"/>
+ <xsl:text>" "</xsl:text>
+ <xsl:if test="$man.th.extra1.suppress = 0">
+ <!-- * there is no max.length for the extra1 field; the reason -->
+ <!-- * is, it is almost always a date, and it is not possible -->
+ <!-- * to truncate dates without changing their meaning -->
+ <xsl:value-of select="normalize-space($extra1)"/>
+ </xsl:if>
+ <xsl:text>" "</xsl:text>
+ <xsl:if test="$man.th.extra2.suppress = 0">
+ <xsl:choose>
+ <!-- * if max.length is non-empty, use value to truncate field -->
+ <xsl:when test="$man.th.extra2.max.length != ''">
+ <xsl:value-of
+ select="normalize-space(substring($extra2, 1, $man.th.extra2.max.length))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space($extra2)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:text>" "</xsl:text>
+ <xsl:if test="$man.th.extra3.suppress = 0">
+ <xsl:choose>
+ <!-- * if max.length is non-empty, use value to truncate field -->
+ <xsl:when test="$man.th.extra3.max.length != ''">
+ <xsl:value-of
+ select="normalize-space(substring($extra3, 1, $man.th.extra3.max.length))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space($extra3)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:text>"&#10;</xsl:text>
+ <xsl:call-template name="mark.subheading"/>
+ </xsl:template>
+
+ <!-- ============================================================== -->
+
+ <xsl:template name="set.default.formatting">
+ <!-- * Set default hyphenation, justification, indentation and -->
+ <!-- * line-breaking -->
+ <!-- * -->
+ <!-- * If the value of man.hypenate is zero (the default), then -->
+ <!-- * disable hyphenation (".nh" = "no hyphenation") -->
+ <xsl:if test="$man.hyphenate = 0">
+ <xsl:text>.\" disable hyphenation&#10;</xsl:text>
+ <xsl:text>.nh&#10;</xsl:text>
+ </xsl:if>
+ <!-- * If the value of man.justify is zero (the default), then -->
+ <!-- * disable justification (".ad l" means "adjust to left only") -->
+ <xsl:if test="$man.justify = 0">
+ <xsl:text>.\" disable justification</xsl:text>
+ <xsl:text> (adjust text to left margin only)&#10;</xsl:text>
+ <xsl:text>.ad l&#10;</xsl:text>
+ </xsl:if>
+ <xsl:if test="not($man.indent.refsect = 0)">
+ <xsl:text>.\" store initial "default indentation value"&#10;</xsl:text>
+ <xsl:text>.nr zq \n(IN&#10;</xsl:text>
+ <xsl:text>.\" adjust default indentation&#10;</xsl:text>
+ <xsl:text>.nr IN </xsl:text>
+ <xsl:value-of select="$man.indent.width"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.\" adjust indentation of SS headings&#10;</xsl:text>
+ <xsl:text>.nr SN \n(IN&#10;</xsl:text>
+ </xsl:if>
+ <!-- * Unless the value of man.break.after.slash is zero (the -->
+ <!-- * default), tell groff that it is OK to break a line -->
+ <!-- * after a slash when needed. -->
+ <xsl:if test="$man.break.after.slash != 0">
+ <xsl:text>.\" enable line breaks after slashes&#10;</xsl:text>
+ <xsl:text>.cflags 4 /&#10;</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * The prepare.manpage.contents template is called after all -->
+ <!-- * other processing has been done, before serializing the -->
+ <!-- * result of all the other processing. It basically works on -->
+ <!-- * the result as one big string. -->
+ <xsl:template name="prepare.manpage.contents">
+ <xsl:param name="content" select="''"/>
+
+ <!-- * If user has provided a "local" string-substitution map to -->
+ <!-- * be applied /before/ the standard string-substitution map, -->
+ <!-- * apply it. -->
+ <xsl:variable name="pre.adjusted.content">
+ <xsl:choose>
+ <xsl:when test="$man.string.subst.map.local.pre">
+ <!-- * normalized value of man.string.subst.map.local.pre -->
+ <!-- * is non-empty, so get contents of map and apply them -->
+ <xsl:call-template name="apply-string-subst-map">
+ <xsl:with-param name="content" select="$content"/>
+ <xsl:with-param name="map.contents"
+ select="exsl:node-set($man.string.subst.map.local.pre)/*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * value of man.string.subst.map.local.pre is empty, -->
+ <!-- * so just copy original contents -->
+ <xsl:value-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- * Apply standard string-substitution map. The main purpose -->
+ <!-- * of this map is to escape certain characters that have -->
+ <!-- * special meaning in roff, and to replace certain characters -->
+ <!-- * used within the stylesheet internally to represent roff -->
+ <!-- * markup characters. -->
+ <xsl:variable name="adjusted.content">
+ <xsl:call-template name="apply-string-subst-map">
+ <xsl:with-param name="content" select="$pre.adjusted.content"/>
+ <xsl:with-param name="map.contents"
+ select="exsl:node-set($man.string.subst.map)/*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- * If user has provided a "local" string-substitution map to -->
+ <!-- * be applied /after/ the standard string-substitution map, -->
+ <!-- * apply it. -->
+ <xsl:variable name="post.adjusted.content">
+ <xsl:choose>
+ <xsl:when test="$man.string.subst.map.local.post">
+ <!-- * normalized value of man.string.subst.map.local.post -->
+ <!-- * is non-empty, so get contents of map and apply them -->
+ <xsl:call-template name="apply-string-subst-map">
+ <xsl:with-param name="content" select="$adjusted.content"/>
+ <xsl:with-param name="map.contents"
+ select="exsl:node-set($man.string.subst.map.local.post)/*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * value of man.string.subst.map.local.post is empty, -->
+ <!-- * so just copy original contents -->
+ <xsl:value-of select="$adjusted.content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- * Optionally, apply a character map to replace Unicode -->
+ <!-- * symbols and special characters. -->
+ <xsl:choose>
+ <xsl:when test="$man.charmap.enabled != 0">
+ <xsl:call-template name="apply-character-map">
+ <xsl:with-param name="content" select="$post.adjusted.content"/>
+ <xsl:with-param name="map.contents"
+ select="exsl:node-set($man.charmap.contents)/*"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * if we reach here, value of $man.charmap.enabled is zero, -->
+ <!-- * so we just pass the adjusted contents through "as is" -->
+ <xsl:value-of select="$adjusted.content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <xsl:template name="write.man.file">
+ <xsl:param name="name"/>
+ <xsl:param name="section"/>
+ <xsl:param name="lang"/>
+ <xsl:param name="content"/>
+ <xsl:param name="filename">
+ <xsl:call-template name="make.adjusted.man.filename">
+ <xsl:with-param name="name" select="$name"/>
+ <xsl:with-param name="section" select="$section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ </xsl:param>
+ <xsl:call-template name="write.text.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="suppress-context-node-name" select="1"/>
+ <xsl:with-param name="quiet" select="$man.output.quietly"/>
+ <xsl:with-param
+ name="message-prolog"
+ >Note: </xsl:with-param>
+ <xsl:with-param name="encoding" select="$man.output.encoding"/>
+ <xsl:with-param name="content" select="$content"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ============================================================== -->
+
+ <!-- * A "stub" is sort of alias for another file, intended to be read -->
+ <!-- * and expanded by soelim(1); it's simply a file whose complete -->
+ <!-- * contents are just a single line of the following form: -->
+ <!-- * -->
+ <!-- * .so manX/realname.X -->
+ <!-- * -->
+ <!-- * "realname" is a name of another man-page file. That .so line is -->
+ <!-- * basically a roff "include" statement. When the man command finds -->
+ <!-- * it, it calls soelim(1) and includes and displays the contents of -->
+ <!-- * the manX/realqname.X file. -->
+ <!-- * -->
+ <!-- * If a refentry has multiple refnames, we generate a "stub" page for -->
+ <!-- * each refname found, except for the first one. -->
+ <xsl:template name="write.stubs">
+ <xsl:param name="first.refname"/>
+ <xsl:param name="section"/>
+ <xsl:param name="lang"/>
+ <xsl:for-each select="refnamediv/refname">
+ <xsl:if test=". != $first.refname">
+ <xsl:call-template name="write.text.chunk">
+ <xsl:with-param name="filename">
+ <xsl:call-template name="make.adjusted.man.filename">
+ <xsl:with-param name="name">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ <xsl:with-param name="section" select="$section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$man.output.quietly"/>
+ <xsl:with-param name="suppress-context-node-name" select="1"/>
+ <xsl:with-param name="message-prolog">Note: </xsl:with-param>
+ <xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:value-of select="concat('.so man', $section, '/')"/>
+ <xsl:call-template name="make.adjusted.man.filename">
+ <xsl:with-param name="name" select="$first.refname"/>
+ <xsl:with-param name="section" select="$section"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- ============================================================== -->
+
+ <!-- * A manifest file is useful for doing "make clean" during -->
+ <!-- * builds and for other purposes. When we make the manifest -->
+ <!-- * file, we need to include in it a filename for each man-page -->
+ <!-- * generated, including any "stub" pages. -->
+ <xsl:template name="generate.manifest">
+ <xsl:variable name="filelist">
+ <xsl:for-each select="//refentry">
+ <!-- * all refname instances in a Refentry inherit their section -->
+ <!-- * numbers from the parent Refentry; so we only need to get -->
+ <!-- * the section once per Refentry, not once per Refname -->
+ <xsl:variable name="section">
+ <xsl:call-template name="get.refentry.section">
+ <xsl:with-param name="quiet" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:variable>
+ <xsl:for-each select="refnamediv/refname">
+ <xsl:call-template name="make.adjusted.man.filename">
+ <xsl:with-param name="name" select="."/>
+ <xsl:with-param name="section" select="$section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <!-- * we write the manifest file once per document, not once per -->
+ <!-- * Refentry -->
+ <xsl:call-template name="write.text.chunk">
+ <xsl:with-param name="filename">
+ <xsl:value-of select="$man.output.manifest.filename"/>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="1"/>
+ <xsl:with-param name="message-prolog">Note: </xsl:with-param>
+ <xsl:with-param name="message-epilog"> (manifest file)</xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:value-of select="$filelist"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="$man.output.quietly = 0">
+ <xsl:message><xsl:text>&#10;</xsl:text></xsl:message>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/param.xsl b/docs/xsl-generic/manpages/param.xsl
new file mode 100644
index 00000000..fcdc3bc6
--- /dev/null
+++ b/docs/xsl-generic/manpages/param.xsl
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This file is generated from param.xweb -->
+
+<!-- ********************************************************************
+ $Id: param.xweb 7112 2007-07-22 12:19:19Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:param name="man.authors.section.enabled">1</xsl:param>
+<xsl:param name="man.break.after.slash">0</xsl:param>
+<xsl:param name="man.charmap.enabled" select="1"/>
+<xsl:param name="man.charmap.subset.profile">
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ @*[local-name() = 'class'] = 'symbols'
+) or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+ @*[local-name() = 'class'] = 'dashes' or
+ @*[local-name() = 'class'] = 'quotes' or
+ @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+</xsl:param>
+<xsl:param name="man.charmap.uri"/>
+<xsl:param name="man.charmap.use.subset" select="1"/>
+<xsl:param name="man.copyright.section.enabled">1</xsl:param>
+<xsl:param name="man.endnotes.are.numbered">1</xsl:param>
+<xsl:param name="man.endnotes.list.enabled">1</xsl:param>
+<xsl:param name="man.endnotes.list.heading"/>
+ <xsl:param name="man.font.funcprototype">BI</xsl:param>
+ <xsl:param name="man.font.funcsynopsisinfo">B</xsl:param>
+ <xsl:param name="man.font.table.headings">B</xsl:param>
+ <xsl:param name="man.font.table.title">B</xsl:param>
+<xsl:param name="man.hyphenate.computer.inlines">0</xsl:param>
+<xsl:param name="man.hyphenate.filenames">0</xsl:param>
+<xsl:param name="man.hyphenate">0</xsl:param>
+<xsl:param name="man.hyphenate.urls">0</xsl:param>
+<xsl:param name="man.indent.blurbs" select="1"/>
+<xsl:param name="man.indent.lists" select="1"/>
+<xsl:param name="man.indent.refsect" select="0"/>
+<xsl:param name="man.indent.verbatims" select="1"/>
+<xsl:param name="man.indent.width">4</xsl:param>
+<xsl:param name="man.justify">0</xsl:param>
+<xsl:param name="man.links.are.underlined">1</xsl:param>
+<xsl:param name="man.output.base.dir">man/</xsl:param>
+<xsl:param name="man.output.encoding">UTF-8</xsl:param>
+<xsl:param name="man.output.in.separate.dir" select="0"/>
+<xsl:param name="man.output.lang.in.name.enabled" select="0"/>
+<xsl:param name="man.output.manifest.enabled" select="0"/>
+<xsl:param name="man.output.manifest.filename">MAN.MANIFEST</xsl:param>
+<xsl:param name="man.output.quietly" select="0"/>
+<xsl:param name="man.output.subdirs.enabled" select="1"/>
+<xsl:param name="man.segtitle.suppress" select="0"/>
+<xsl:param name="man.string.subst.map">
+
+ <!-- * remove no-break marker at beginning of line (stylesheet artifact) -->
+ <substitution oldstring="&#9618;&#9600;" newstring="&#9618;"/>
+ <!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space -->
+ <substitution oldstring="&#9600;" newstring="\ "/>
+
+ <!-- ==================================================================== -->
+
+ <!-- * squeeze multiple newlines before a roff request -->
+ <substitution oldstring="&#10;&#10;." newstring="&#10;."/>
+ <!-- * remove any .sp instances that directly precede a .PP -->
+ <substitution oldstring=".sp&#10;.PP" newstring=".PP"/>
+ <!-- * remove any .sp instances that directly follow a .PP -->
+ <substitution oldstring=".PP&#10;.sp" newstring=".PP"/>
+ <!-- * squeeze multiple newlines after start of no-fill (verbatim) env. -->
+ <substitution oldstring=".nf&#10;&#10;" newstring=".nf&#10;"/>
+ <!-- * squeeze multiple newlines after REstoring margin -->
+ <substitution oldstring=".RE&#10;&#10;" newstring=".RE&#10;"/>
+ <!-- * U+2591 is a marker we add before and after every Parameter in -->
+ <!-- * Funcprototype output -->
+ <substitution oldstring="&#9617;" newstring=" "/>
+ <!-- * U+2592 is a marker we add for the newline before output of <sbr>; -->
+ <substitution oldstring="&#9618;" newstring="&#10;"/>
+ <!-- * -->
+ <!-- * Now deal with some other characters that are added by the -->
+ <!-- * stylesheets during processing. -->
+ <!-- * -->
+ <!-- * bullet -->
+ <substitution oldstring="&#8226;" newstring="\(bu"/>
+ <!-- * left double quote -->
+ <substitution oldstring="&#8220;" newstring="\(lq"/>
+ <!-- * right double quote -->
+ <substitution oldstring="&#8221;" newstring="\(rq"/>
+ <!-- * left single quote -->
+ <substitution oldstring="&#8216;" newstring="\(oq"/>
+ <!-- * right single quote -->
+ <substitution oldstring="&#8217;" newstring="\(cq"/>
+ <!-- * copyright sign -->
+ <substitution oldstring="&#169;" newstring="\(co"/>
+ <!-- * registered sign -->
+ <substitution oldstring="&#174;" newstring="\(rg"/>
+ <!-- * ...servicemark... -->
+ <!-- * There is no groff equivalent for it. -->
+ <substitution oldstring="&#8480;" newstring="(SM)"/>
+ <!-- * ...trademark... -->
+ <!-- * We don't do "\(tm" because for console output, -->
+ <!-- * groff just renders that as "tm"; that is: -->
+ <!-- * -->
+ <!-- * Product&#x2122; -> Producttm -->
+ <!-- * -->
+ <!-- * So we just make it to "(TM)" instead; thus: -->
+ <!-- * -->
+ <!-- * Product&#x2122; -> Product(TM) -->
+ <substitution oldstring="&#8482;" newstring="(TM)"/>
+
+</xsl:param>
+<xsl:param name="man.string.subst.map.local.post"/>
+ <xsl:param name="man.string.subst.map.local.pre"/>
+<xsl:param name="man.subheading.divider.enabled">0</xsl:param>
+<xsl:param name="man.subheading.divider">========================================================================</xsl:param>
+<xsl:param name="man.table.footnotes.divider">----</xsl:param>
+<xsl:param name="man.th.extra1.suppress">0</xsl:param>
+<xsl:param name="man.th.extra2.max.length">30</xsl:param>
+<xsl:param name="man.th.extra2.suppress">0</xsl:param>
+<xsl:param name="man.th.extra3.max.length">30</xsl:param>
+<xsl:param name="man.th.extra3.suppress">0</xsl:param>
+<xsl:param name="man.th.title.max.length">20</xsl:param>
+<xsl:param name="refentry.date.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.date.profile">
+ (($info[//date])[last()]/date)[1]|
+ (($info[//pubdate])[last()]/pubdate)[1]
+</xsl:param>
+<xsl:param name="refentry.manual.fallback.profile">
+refmeta/refmiscinfo[1]/node()</xsl:param>
+<xsl:param name="refentry.manual.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.manual.profile">
+ (($info[//title])[last()]/title)[1]|
+ ../title/node()
+</xsl:param>
+<xsl:param name="refentry.meta.get.quietly" select="0"/>
+<xsl:param name="refentry.source.fallback.profile">
+refmeta/refmiscinfo[1]/node()</xsl:param>
+<xsl:param name="refentry.source.name.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.source.name.profile">
+ (($info[//productname])[last()]/productname)[1]|
+ (($info[//corpname])[last()]/corpname)[1]|
+ (($info[//corpcredit])[last()]/corpcredit)[1]|
+ (($info[//corpauthor])[last()]/corpauthor)[1]|
+ (($info[//orgname])[last()]/orgname)[1]|
+ (($info[//publishername])[last()]/publishername)[1]
+</xsl:param>
+<xsl:param name="refentry.source.name.suppress">0</xsl:param>
+<xsl:param name="refentry.version.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.version.profile">
+ (($info[//productnumber])[last()]/productnumber)[1]|
+ (($info[//edition])[last()]/edition)[1]|
+ (($info[//releaseinfo])[last()]/releaseinfo)[1]
+</xsl:param>
+<xsl:param name="refentry.version.suppress">0</xsl:param>
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/profile-docbook.xsl b/docs/xsl-generic/manpages/profile-docbook.xsl
new file mode 100644
index 00000000..ec4759e0
--- /dev/null
+++ b/docs/xsl-generic/manpages/profile-docbook.xsl
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl exslt" version="1.0">
+
+ <xsl:import href="../html/docbook.xsl"/>
+ <xsl:import href="../html/manifest.xsl"/>
+ <!-- * html-synop.xsl file is generated by build -->
+ <xsl:import href="html-synop.xsl"/>
+ <xsl:output method="text" encoding="UTF-8" indent="no"/>
+ <!-- ********************************************************************
+ $Id: docbook.xsl 7153 2007-07-26 14:08:55Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+ <!-- ==================================================================== -->
+
+ <xsl:include href="../common/refentry.xsl"/>
+ <xsl:include href="../common/charmap.xsl"/>
+ <xsl:include href="param.xsl"/>
+ <xsl:include href="utility.xsl"/>
+ <xsl:include href="info.xsl"/>
+ <xsl:include href="other.xsl"/>
+ <xsl:include href="refentry.xsl"/>
+ <xsl:include href="block.xsl"/>
+ <xsl:include href="inline.xsl"/>
+ <xsl:include href="synop.xsl"/>
+ <xsl:include href="lists.xsl"/>
+ <xsl:include href="endnotes.xsl"/>
+ <xsl:include href="table.xsl"/>
+
+ <!-- * we rename the following just to avoid using params with "man" -->
+ <!-- * prefixes in the table.xsl stylesheet (because that stylesheet -->
+ <!-- * can potentially be reused for more than just man output) -->
+ <xsl:param name="tbl.font.headings" select="$man.font.table.headings"/>
+ <xsl:param name="tbl.font.title" select="$man.font.table.title"/>
+
+ <!-- ==================================================================== -->
+
+ <xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- * when we find a namespaced document, strip the -->
+ <!-- * namespace and then continue processing it. -->
+ <xsl:when test="false()"/>
+ <xsl:when test="//*[local-name() = 'refentry']">
+ <!-- * Check to see if we have any refentry children in this -->
+ <!-- * document; if so, process them. The reason we use -->
+ <!-- * local-name()=refentry (instead of just //refentry) to to -->
+ <!-- * check for refentry children is because this stylsheet is -->
+ <!-- * also post-processed by the stylesheet build to create the -->
+ <!-- * manpages/profile-docbook.xsl, and the refentry child check -->
+ <!-- * in the profile-docbook.xsl stylesheet won't work if we do -->
+ <!-- * a simple //refentry check. -->
+ <xsl:apply-templates select="$profiled-nodes//refentry"/>
+ <!-- * if $man.output.manifest.enabled is non-zero, -->
+ <!-- * generate a manifest file -->
+ <xsl:if test="not($man.output.manifest.enabled = 0)">
+ <xsl:call-template name="generate.manifest">
+ <xsl:with-param name="filename">
+ <xsl:choose>
+ <xsl:when test="not($man.output.manifest.filename = '')">
+ <!-- * If a name for the manifest file is specified, -->
+ <!-- * use that name. -->
+ <xsl:value-of select="$man.output.manifest.filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, if user has unset -->
+ <!-- * $man.output.manifest.filename, default to -->
+ <!-- * using "MAN.MANIFEST" as the filename. Because -->
+ <!-- * $man.output.manifest.enabled is non-zero and -->
+ <!-- * so we must have a filename in order to -->
+ <!-- * generate the manifest. -->
+ <xsl:text>MAN.MANIFEST</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, the document does not contain any -->
+ <!-- * refentry elements, so log/emit message and stop. -->
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Erro</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text> no refentry</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>No refentry elements found</xsl:text>
+ <xsl:if test="$doc.title != ''">
+ <xsl:text> in "</xsl:text>
+ <xsl:choose>
+ <xsl:when test="string-length($doc.title) &gt; 30">
+ <xsl:value-of select="substring($doc.title,1,30)"/>
+ <xsl:text>...</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$doc.title"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>"</xsl:text>
+ </xsl:if>
+ <xsl:text>.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- ============================================================== -->
+
+ <xsl:template match="refentry">
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+ <!-- * Just use the first refname found as the "name" of the man -->
+ <!-- * page (which may different from the "title"...) -->
+ <xsl:variable name="first.refname" select="refnamediv[1]/refname[1]"/>
+
+ <xsl:call-template name="root.messages">
+ <xsl:with-param name="refname" select="$first.refname"/>
+ </xsl:call-template>
+
+ <!-- * Because there are several times when we need to check *info of -->
+ <!-- * each refentry and its ancestors, we get those and store the -->
+ <!-- * data from them as a node-set in memory. -->
+
+ <!-- * Make a node-set with contents of *info -->
+ <xsl:variable name="get.info" select="ancestor-or-self::*/*[substring(local-name(), string-length(local-name()) - 3) = 'info']"/>
+ <xsl:variable name="info" select="exsl:node-set($get.info)"/>
+
+ <!-- * The get.refentry.metadata template is in -->
+ <!-- * ../common/refentry.xsl. It looks for metadata in $info -->
+ <!-- * and in various other places and then puts it into a form -->
+ <!-- * that's easier for us to digest. -->
+ <xsl:variable name="get.refentry.metadata">
+ <xsl:call-template name="get.refentry.metadata">
+ <xsl:with-param name="refname" select="$first.refname"/>
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="prefs" select="$refentry.metadata.prefs"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="refentry.metadata" select="exsl:node-set($get.refentry.metadata)"/>
+
+ <!-- * Assemble the various parts into a complete page, then store into -->
+ <!-- * $manpage.contents so that we can manipluate them further. -->
+ <xsl:variable name="manpage.contents">
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * top.comment = commented-out section at top of roff source -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:call-template name="top.comment">
+ <xsl:with-param name="info" select="$info"/>
+ <xsl:with-param name="date" select="$refentry.metadata/date"/>
+ <xsl:with-param name="title" select="$refentry.metadata/title"/>
+ <xsl:with-param name="manual" select="$refentry.metadata/manual"/>
+ <xsl:with-param name="source" select="$refentry.metadata/source"/>
+ </xsl:call-template>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * TH.title.line = title line in header/footer of man page -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:call-template name="TH.title.line">
+ <!-- * .TH TITLE section extra1 extra2 extra3 -->
+ <!-- * -->
+ <!-- * According to the man(7) man page: -->
+ <!-- * -->
+ <!-- * extra1 = date, "the date of the last revision" -->
+ <!-- * extra2 = source, "the source of the command" -->
+ <!-- * extra3 = manual, "the title of the manual -->
+ <!-- * (e.g., Linux Programmer's Manual)" -->
+ <!-- * -->
+ <!-- * So, we end up with: -->
+ <!-- * -->
+ <!-- * .TH TITLE section date source manual -->
+ <!-- * -->
+ <xsl:with-param name="title" select="$refentry.metadata/title"/>
+ <xsl:with-param name="section" select="$refentry.metadata/section"/>
+ <xsl:with-param name="extra1" select="$refentry.metadata/date"/>
+ <xsl:with-param name="extra2" select="$refentry.metadata/source"/>
+ <xsl:with-param name="extra3" select="$refentry.metadata/manual"/>
+ </xsl:call-template>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * Set default hyphenation, justification, indentation, and -->
+ <!-- * line-breaking -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:call-template name="set.default.formatting"/>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * Main body of man page -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:apply-templates/>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * AUTHOR section -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:if test="not($man.authors.section.enabled = 0)">
+ <xsl:call-template name="author.section">
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * COPYRIGHT section -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:if test="not($man.copyright.section.enabled = 0)">
+ <xsl:call-template name="copyright.section">
+ <xsl:with-param name="info" select="$info"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <!-- * NOTES list (only if user wants endnotes numbered and/or listed) -->
+ <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <xsl:if test="$man.endnotes.list.enabled != 0 or $man.endnotes.are.numbered != 0">
+ <xsl:call-template name="endnotes.list"/>
+ </xsl:if>
+ </xsl:variable> <!-- * end of manpage.contents -->
+
+ <!-- * Prepare the page contents for final output, then store in -->
+ <!-- * $manpage.contents.prepared so the we can pass it on to the -->
+ <!-- * write.text.chunk() function -->
+ <xsl:variable name="manpage.contents.prepared">
+ <!-- * "Preparing" the page contents involves, at a minimum, -->
+ <!-- * doubling any backslashes found (so they aren't interpreted -->
+ <!-- * as roff escapes). -->
+ <!-- * -->
+ <!-- * If $charmap.enabled is true, "preparing" the page contents also -->
+ <!-- * involves applying a character map to convert Unicode symbols and -->
+ <!-- * special characters into corresponding roff escape sequences. -->
+ <xsl:call-template name="prepare.manpage.contents">
+ <xsl:with-param name="content" select="$manpage.contents"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- * Write the prepared page contents to disk to create -->
+ <!-- * the final man page. -->
+ <xsl:call-template name="write.man.file">
+ <xsl:with-param name="name" select="$first.refname"/>
+ <xsl:with-param name="section" select="$refentry.metadata/section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="content" select="$manpage.contents.prepared"/>
+ </xsl:call-template>
+
+ <!-- * Generate "stub" (alias) pages (if any needed) -->
+ <xsl:call-template name="write.stubs">
+ <xsl:with-param name="first.refname" select="$first.refname"/>
+ <xsl:with-param name="section" select="$refentry.metadata/section"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/refentry.xsl b/docs/xsl-generic/manpages/refentry.xsl
new file mode 100644
index 00000000..9cb7005f
--- /dev/null
+++ b/docs/xsl-generic/manpages/refentry.xsl
@@ -0,0 +1,256 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: refentry.xsl 6657 2007-02-26 20:04:25Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+ <xsl:template match="refnamediv">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::refnamediv">
+ <!-- * No title on secondary refnamedivs! -->
+ <!-- * Just put a single line break instead -->
+ <xsl:text>.br&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:text>.SH "</xsl:text>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ <xsl:text>"</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="mark.subheading"/>
+ <!-- * if we have multiple Refname instances, separate the names -->
+ <!-- * with commas -->
+ <xsl:for-each select="refname">
+ <xsl:if test="position()>1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ <!-- * The man(7) man pages says: -->
+ <!-- * -->
+ <!-- * The only required heading is NAME, which should be the -->
+ <!-- * first section and be followed on the next line by a one -->
+ <!-- * line description of the program: -->
+ <!-- * -->
+ <!-- * .SH NAME chess \- the game of chess -->
+ <!-- * -->
+ <!-- * It is extremely important that this format is followed, -->
+ <!-- * and that there is a backslash before the single dash -->
+ <!-- * which follows the command name. This syntax is used by -->
+ <!-- * the makewhatis(8) program to create a database of short -->
+ <!-- * command descriptions for the whatis(1) and apropos(1) -->
+ <!-- * commands. -->
+ <!-- * -->
+ <!-- * So why don't we precede the hyphen with a backslash here? -->
+ <!-- * Well, because it's added later, by the apply-string-subst-map -->
+ <!-- * template, before we generate final output -->
+ <xsl:if test="refpurpose/node()">
+ <xsl:text> - </xsl:text>
+ <xsl:value-of select="normalize-space(refpurpose)"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="refsynopsisdiv">
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:text>.SH "</xsl:text>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ <xsl:text>"&#10;</xsl:text>
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="refsect1|refentry/refsection">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:text>.SH "</xsl:text>
+ <xsl:value-of select="normalize-space($title)"/>
+ <xsl:text>"&#10;</xsl:text>
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="refsect2|refentry/refsection/refsection">
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:variable name="title">
+ <xsl:apply-templates
+ select="(info/title
+ |refsectioninfo/title
+ |refsect1info/title
+ |title)[1]/node()"/>
+
+ </xsl:variable>
+ <xsl:text>.SS "</xsl:text>
+ <xsl:value-of select="normalize-space($title)"/>
+ <xsl:text>"&#10;</xsl:text>
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:choose>
+ <!-- * If default-indentation adjustment is on, then indent the -->
+ <!-- * child content of this Refsect2 -->
+ <xsl:when test="not($man.indent.refsect = 0)">
+ <xsl:text>.RS&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>.RE&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * If default-indentation adjustment is on, then do not -->
+ <!-- * indent the child content of thie Refsect2, because -->
+ <!-- * the title is already "sticking out to the left" -->
+ <!-- * (as the groff_man(7) man page describes it), which -->
+ <!-- * actually means the title is indented by the value of -->
+ <!-- * the SN register, which appears by default to be -->
+ <!-- * about half of the default indentation value -->
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="refsect3|refentry/refsection/refsection/refsection">
+ <xsl:variable name="title">
+ <xsl:value-of select="(info/title
+ |refsectioninfo/title
+ |refsect1info/title
+ |title)[1]"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- * If default-indentation adjustment is on, then indent the -->
+ <!-- * child content of this Refsect3 or Refsection. -->
+ <xsl:when test="not($man.indent.refsect != 0)">
+ <xsl:call-template name="nested-section-title"/>
+ <xsl:text>.RS&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>.RE&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * If default-indentation adjustment is on, then do not -->
+ <!-- * indent the child content of thie Refsect2, because -->
+ <!-- * the title is already "sticking out to the left" -->
+ <!-- * (as the groff_man(7) man page describes it), which -->
+ <!-- * actually means the title is indented by the value of -->
+ <!-- * the SN register, which appears by default to be -->
+ <!-- * about half of the default indentation value -->
+ <xsl:text>.ti (\n(SNu * 5u / 3u)&#10;</xsl:text>
+ <xsl:call-template name="nested-section-title"/>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="refsection">
+ <!-- * This template is used for a nested Refsection that is -->
+ <!-- * is a child of a Refsect3-level section (The numberd -->
+ <!-- * Refsect hierarchy in DocBook ends with Refsect3, so -->
+ <!-- * there is not actually a Refsect4 element.) -->
+ <xsl:variable name="title">
+ <xsl:value-of select="(info/title
+ |refsectioninfo/title
+ |refsect1info/title
+ |title)[1]"/>
+ </xsl:variable>
+ <xsl:variable name="indent-width">
+ <xsl:if test="not($man.indent.refsect = 0)">
+ <!-- * If default-indentation adjustment is on, then indent the -->
+ <!-- * child content of this Refsect3 or Refsection. -->
+ <xsl:text>(\n(SNu)&#10;</xsl:text>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:call-template name="nested-section-title"/>
+ <xsl:text>.RS (\n(SNu)&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>.RE&#10;</xsl:text>
+ </xsl:template>
+
+ <!-- ==================================================================== -->
+
+ <!-- * Use uppercase to render titles of all instances of Refsect1 or -->
+ <!-- * top-level Refsection, including in cross-references -->
+ <xsl:template match="refsect1|refentry/refsection"
+ mode="title.markup">
+ <xsl:variable name="title" select="(info/title
+ |refsectioninfo/title
+ |refsect1info/title
+ |title)[1]"/>
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:apply-templates select="$title" mode="title.markup"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- * Output of Titles from Xref with Endterm needs to be handled -->
+ <!-- * separately from output for Endterm-less Xref -->
+ <xsl:template match="refsect1/title
+ |refentry/refsection/title
+ |refsynopsisdiv/title"
+ mode="endterm">
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- * Use uppercase to render titles of all instances of Refsynopsisdiv, -->
+ <!-- * including in cross-references -->
+ <xsl:template match="refsynopsisdiv" mode="title.markup">
+ <xsl:param name="allow-anchors" select="0"/>
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:choose>
+ <xsl:when test="info/title
+ |refsynopsisdivinfo/title
+ |title">
+ <xsl:apply-templates
+ select="(info/title
+ |refsynopsisdivinfo/title
+ |title)[1]" mode="title.markup">
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- * Use uppercase to render titles of all instances of Refnamediv, -->
+ <!-- * including in cross-references -->
+ <xsl:template match="refnamediv" mode="title.markup">
+ <xsl:call-template name="string.upper">
+ <xsl:with-param name="string">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'RefName'"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template match="refnamediv" mode="xref-to">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:template>
+
+ <!-- ==================================================================== -->
+
+ <!-- * suppress any title we don't otherwise process elsewhere -->
+
+ <xsl:template match="title"/>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/synop.xsl b/docs/xsl-generic/manpages/synop.xsl
new file mode 100644
index 00000000..cbca36c7
--- /dev/null
+++ b/docs/xsl-generic/manpages/synop.xsl
@@ -0,0 +1,305 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="exsl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: synop.xsl 7235 2007-08-13 11:13:37Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<xsl:variable name="arg.or.sep"> |</xsl:variable>
+
+<!-- * Note: If you're looking for the *Synopsis* element, you won't -->
+<!-- * find any code here for handling it. It's a "verbatim" -->
+<!-- * environment; see the block.xsl file instead. -->
+
+<xsl:template match="synopfragmentref">
+ <xsl:variable name="target" select="key('id',@linkend)"/>
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+ </xsl:variable>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ <xsl:text>&#x2580;</xsl:text>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="node" select="exsl:node-set(normalize-space(.))"/>
+ <xsl:with-param name="context" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+ <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="." mode="synopfragment.number"/>
+ </xsl:variable>
+ <xsl:text>&#10;</xsl:text>
+ <!-- * If we have a group of Synopgfragments, we only want to output a -->
+ <!-- * line of space before the first; so when we find a Synopfragment -->
+ <!-- * whose first preceding sibling is another Synopfragment, we back -->
+ <!-- * up one line vertically to negate the line of vertical space -->
+ <!-- * that's added by the .HP macro -->
+ <xsl:if test="preceding-sibling::*[1][self::synopfragment]">
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ </xsl:if>
+ <xsl:text>.HP </xsl:text>
+ <!-- * For each Synopfragment, make a hanging paragraph, with the -->
+ <!-- * indent calculated from the length of the generated number -->
+ <!-- * used as a reference + pluse 3 characters (for the open and -->
+ <!-- * close parens around the number, plus a space). -->
+ <xsl:value-of select="string-length (normalize-space ($snum)) + 3"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:variable name="sepchar">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*/@sepchar">
+ <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="position()>1 and
+ not(preceding-sibling::*[1][self::sbr])"
+ ><xsl:value-of select="$sepchar"/></xsl:if>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <!-- * do nothing -->
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.open.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="arg">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'arg' and not(ancestor::arg)">
+ <!-- * Prevent arg contents from getting wrapped and broken up -->
+ <xsl:variable name="arg.wrapper">
+ <Arg><xsl:value-of select="normalize-space($arg)"/></Arg>
+ </xsl:variable>
+ <xsl:apply-templates mode="prevent.line.breaking"
+ select="exsl:node-set($arg.wrapper)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$rep='repeat'">
+ <xsl:value-of select="$arg.rep.repeat.str"/>
+ </xsl:when>
+ <xsl:when test="$rep='norepeat'">
+ <xsl:value-of select="$arg.rep.norepeat.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.rep.def.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:if test='arg'>
+ <xsl:value-of select="$arg.choice.plain.close.str"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.close.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if>
+ <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+ <xsl:text>&#x2592;</xsl:text>
+ <xsl:text>.br&#x2592;</xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis">
+ <!-- * if justification is enabled by default, turn it off temporarily -->
+ <xsl:if test="$man.justify != 0">
+ <xsl:text>.ad l&#10;</xsl:text>
+ </xsl:if>
+ <!-- * if hyphenation is enabled by default, turn it off temporarily -->
+ <xsl:if test="$man.hyphenate != 0">
+ <xsl:text>.hy 0&#10;</xsl:text>
+ </xsl:if>
+ <xsl:text>.HP </xsl:text>
+ <xsl:value-of select="string-length (normalize-space (command)) + 1"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>&#10;</xsl:text>
+ <!-- * if justification is enabled by default, turn it back on -->
+ <xsl:if test="$man.justify != 0">
+ <xsl:text>.ad&#10;</xsl:text>
+ </xsl:if>
+ <!-- * if hyphenation is enabled by default, turn it back on -->
+ <xsl:if test="$man.hyphenate != 0">
+ <xsl:text>.hy&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- * Funcsynopis hierarchy starts here -->
+<!-- ==================================================================== -->
+
+<!-- * Note: If you're looking for the *Funcsynopsisinfo* element, -->
+<!-- * you won't find any code here for handling it. It's a "verbatim" -->
+<!-- * environment; see the block.xsl file instead. -->
+
+<!-- * Within funcsynopis output, disable hyphenation, and use -->
+<!-- * left-aligned filling for the duration of the synopsis, so that -->
+<!-- * line breaks only occur between separate paramdefs. -->
+<xsl:template match="funcsynopsis">
+ <!-- * if justification is enabled by default, turn it off temporarily -->
+ <xsl:if test="$man.justify != 0">
+ <xsl:text>.ad l&#10;</xsl:text>
+ </xsl:if>
+ <!-- * if hyphenation is enabled by default, turn it off temporarily -->
+ <xsl:if test="$man.hyphenate != 0">
+ <xsl:text>.hy 0&#10;</xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <!-- * if justification is enabled by default, turn it back on -->
+ <xsl:if test="$man.justify != 0">
+ <xsl:text>.ad&#10;</xsl:text>
+ </xsl:if>
+ <!-- * if hyphenation is enabled by default, turn it back on -->
+ <xsl:if test="$man.hyphenate != 0">
+ <xsl:text>.hy&#10;</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<!-- * All Funcprototype content is by default rendered in bold, -->
+<!-- * because the man(7) man page says this: -->
+<!-- * -->
+<!-- * For functions, the arguments are always specified using -->
+<!-- * italics, even in the SYNOPSIS section, where the rest of -->
+<!-- * the function is specified in bold -->
+<!-- * -->
+<!-- * Look through the contents of the man/man2 and man3 directories -->
+<!-- * on your system, and you'll see that most existing pages do follow -->
+<!-- * this "bold everything in function synopsis" rule. -->
+<!-- * -->
+<!-- * Users who don't want the bold output can choose to adjust the -->
+<!-- * man.font.funcprototype parameter on their own. So even if you -->
+<!-- * don't personally like the way it looks, please don't change the -->
+<!-- * default to be non-bold - because it's a convention that's -->
+<!-- * followed is the vast majority of existing man pages that document -->
+<!-- * functions, and we need to follow it by default, like it or no. -->
+<xsl:template match="funcprototype">
+ <xsl:variable name="funcprototype.string.value">
+ <xsl:value-of select="funcdef"/>
+ </xsl:variable>
+ <xsl:variable name="funcprototype">
+ <xsl:apply-templates select="funcdef"/>
+ </xsl:variable>
+ <xsl:text>.HP </xsl:text>
+ <!-- * Hang Paragraph by length of string value of <funcdef> + 1 -->
+ <!-- * (because funcdef is always followed by one open paren char) -->
+ <xsl:value-of select="string-length (normalize-space ($funcprototype.string.value)) + 1"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$man.font.funcprototype"/>
+ <xsl:text> </xsl:text>
+ <!-- * The following quotation mark (and the one further below) are -->
+ <!-- * needed to properly delimit the parts of the Funcprototype that -->
+ <!-- * should be rendered in the prevailing font (either Bold or Roman) -->
+ <!-- * from Parameter output that needs to be alternately rendered in -->
+ <!-- * italic. -->
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select="normalize-space($funcprototype)"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="*[local-name() != 'funcdef']"/>
+ <xsl:text>"</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcdef">
+ <xsl:apply-templates mode="prevent.line.breaking"/>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="void">
+ <xsl:text>void);</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs">
+ <xsl:text>...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef">
+ <xsl:apply-templates mode="prevent.line.breaking" select="."/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>);</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+ <!-- * We use U+2591 here in place of a normal space, because if we -->
+ <!-- * were to just use a normal space, it would get replaced with a -->
+ <!-- * non-breaking space when we run the whole Paramdef through the -->
+ <!-- * prevent.line.breaking template. And as far as why we're -->
+ <!-- * inserting the space and quotation marks around each Parameter -->
+ <!-- * to begin with, the reason is that we need to because we are -->
+ <!-- * outputting Funcsynopsis in either the "BI" or "RI" font, and -->
+ <!-- * the space and quotation marks delimit the text as the -->
+ <!-- * "alternate" or "I" text that needs to be rendered in italic. -->
+ <xsl:text>"&#x2591;"</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>"&#x2591;"</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcparams">
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>)</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/table.xsl b/docs/xsl-generic/manpages/table.xsl
new file mode 100644
index 00000000..b6e2fe2e
--- /dev/null
+++ b/docs/xsl-generic/manpages/table.xsl
@@ -0,0 +1,633 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="exsl"
+ version='1.0'>
+
+ <!-- ********************************************************************
+ $Id: table.xsl 7177 2007-08-06 10:18:36Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+ <!--
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+ <xsl:param name="tbl.font.title">B</xsl:param>
+ <xsl:param name="tbl.font.headings">B</xsl:param>
+ -->
+ <xsl:param name="tbl.running.header.from.thead" select="0"/>
+ <xsl:param name="tbl.column.separator.char">:</xsl:param>
+
+ <!-- ==================================================================== -->
+
+ <!-- * This stylesheet transforms DocBook and HTML table source into -->
+ <!-- * tbl(1) markup. -->
+ <!-- * -->
+ <!-- * For details on tbl(1) and its markup syntaxt, see M. E. Lesk,-->
+ <!-- * "Tbl - A Program to Format Tables": -->
+ <!-- * -->
+ <!-- * http://cm.bell-labs.com/7thEdMan/vol2/tbl -->
+ <!-- * http://cm.bell-labs.com/cm/cs/doc/76/tbl.ps.gz -->
+ <!-- * http://www.snake.net/software/troffcvt/tbl.html -->
+
+ <xsl:template match="table|informaltable" mode="to.tbl">
+ <!--* the "source" param is an optional param; it can be any -->
+ <!--* string you want to use that gives some indication of the -->
+ <!--* source context for a table; it gets passed down to the named -->
+ <!--* templates that do the actual table processing; this -->
+ <!--* stylesheet currently uses the "source" information for -->
+ <!--* logging purposes -->
+ <xsl:param name="source"/>
+ <xsl:param name="title">
+ <xsl:if test="local-name(.) = 'table'">
+ <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+ </xsl:if>
+ </xsl:param>
+ <!-- * ============================================================== -->
+ <!-- * Set global table parameters -->
+ <!-- * ============================================================== -->
+ <!-- * First, set a few parameters based on attributes specified in -->
+ <!-- * the table source. -->
+ <xsl:param name="allbox">
+ <xsl:if test="not(@frame = 'none') and not(@border = '0')">
+ <!-- * By default, put a box around table and between all cells, -->
+ <!-- * unless frame="none" or border="0" -->
+ <xsl:text>allbox </xsl:text>
+ </xsl:if>
+ </xsl:param>
+ <xsl:param name="center">
+ <!-- * If align="center", center the table. Otherwise, tbl(1) -->
+ <!-- * left-aligns it by default; note that there is no support -->
+ <!-- * in tbl(1) for specifying right alignment. -->
+ <xsl:if test="@align = 'center' or tgroup/@align = 'center'">
+ <xsl:text>center </xsl:text>
+ </xsl:if>
+ </xsl:param>
+ <xsl:param name="expand">
+ <!-- * If pgwide="1" or width="100%", then "expand" the table by -->
+ <!-- * making it "as wide as the current line length" (to quote -->
+ <!-- * the tbl(1) guide). -->
+ <xsl:if test="@pgwide = '1' or @width = '100%'">
+ <xsl:text>expand </xsl:text>
+ </xsl:if>
+ </xsl:param>
+
+ <!-- * ============================================================== -->
+ <!-- * Convert table to HTML -->
+ <!-- * ============================================================== -->
+ <!-- * Process the table by applying the HTML templates from the -->
+ <!-- * DocBook XSL stylesheets to the whole thing; because we don't -->
+ <!-- * override any of the <row>, <entry>, <tr>, <td>, etc. templates, -->
+ <!-- * the templates in the HTML stylesheets (which we import) are -->
+ <!-- * used to process those. -->
+ <xsl:param name="html-table-output">
+ <xsl:choose>
+ <xsl:when test=".//tr">
+ <!-- * If this table has a TR child, it means that it's an -->
+ <!-- * HTML table in the DocBook source, instead of a CALS -->
+ <!-- * table. So we just copy it as-is, while wrapping it -->
+ <!-- * in an element with same name as its original parent. -->
+ <xsl:for-each select="descendant-or-self::table|descendant-or-self::informaltable">
+ <xsl:element name="{local-name(..)}">
+ <table>
+ <xsl:copy-of select="*"/>
+ </table>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, this is a CALS table in the DocBook source, -->
+ <!-- * so we need to apply the templates in the HTML -->
+ <!-- * stylesheets to transform it into HTML before we do -->
+ <!-- * any further processing of it. -->
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="contents" select="exsl:node-set($html-table-output)"/>
+
+ <!-- ==================================================================== -->
+ <!-- * Output the table -->
+ <!-- ==================================================================== -->
+ <!-- * -->
+ <!-- * This is the "driver" part of the code; it calls a series of named
+ * templates (further below) to generate the actual tbl(1) markup, -->
+ <!-- * including the optional "options line", required "format section", -->
+ <!-- * and then the actual contents of the table. -->
+ <!-- * -->
+ <!-- ==================================================================== -->
+
+ <xsl:for-each select="$contents//table">
+ <!-- * ============================================================== -->
+ <!-- * Output table title -->
+ <!-- * ============================================================== -->
+ <xsl:if test="$title != '' or parent::td">
+ <xsl:text>.PP&#10;</xsl:text>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$tbl.font.title"/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="parent::td">
+ <xsl:text>*[nested&#x2580;table]</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="normalize-space($title)"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp -1n&#10;</xsl:text>
+ </xsl:if>
+
+ <!-- * mark the start of the table -->
+ <!-- * "TS" = "table start" -->
+ <xsl:text>.TS</xsl:text>
+ <xsl:if test="thead and $tbl.running.header.from.thead">
+ <!-- * H = "has header" -->
+ <xsl:text> H</xsl:text>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+
+ <!-- * ============================================================== -->
+ <!-- * Output "options line" -->
+ <!-- * ============================================================== -->
+ <xsl:variable name="options-line">
+ <xsl:value-of select="$allbox"/>
+ <xsl:value-of select="$center"/>
+ <xsl:value-of select="$expand"/>
+ <xsl:text>tab(</xsl:text>
+ <xsl:value-of select="$tbl.column.separator.char"/>
+ <xsl:text>)</xsl:text>
+ </xsl:variable>
+ <xsl:if test="normalize-space($options-line) != ''">
+ <xsl:value-of select="normalize-space($options-line)"/>
+ <xsl:text>;&#10;</xsl:text>
+ </xsl:if>
+
+ <!-- * ============================================================== -->
+ <!-- * Output table header rows -->
+ <!-- * ============================================================== -->
+ <xsl:if test="thead">
+ <xsl:call-template name="output.rows">
+ <xsl:with-param name="rows" select="thead/tr"/>
+ </xsl:call-template>
+ <xsl:text>&#10;</xsl:text>
+
+ <!-- * mark the end of table-header rows -->
+ <xsl:choose>
+ <xsl:when test="$tbl.running.header.from.thead">
+ <!-- * "TH" = "table header end" -->
+ <xsl:text>.TH&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * "T&" = "table continuation" and is meant just as a kind -->
+ <!-- * of convenience macro and is sorta equivalent to a "TE" -->
+ <!-- * (table end) followed immediately by a "TS" (table start); -->
+ <!-- * in this case, it marks the end of a table "subsection" -->
+ <!-- * with header rows, and the start of a subsection with body -->
+ <!-- * rows. It's necessary to output it here because the "TH" -->
+ <!-- * macro is not being output, so there's otherwise no way -->
+ <!-- * for tbl(1) to know we have the table "sectioned". -->
+ <xsl:text>.T&amp;&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <!-- * ============================================================== -->
+ <!-- * Output table body rows -->
+ <!-- * ============================================================== -->
+ <!-- * First create node set with all non-thead rows (tbody+tfoot), -->
+ <!-- * but reordered with the tfoot rows at the end of the node set -->
+ <xsl:variable name="rows-set">
+ <xsl:copy-of select="tbody/tr|tr"/>
+ <xsl:copy-of select="tfoot/tr"/>
+ </xsl:variable>
+ <xsl:call-template name="output.rows">
+ <xsl:with-param name="source" select="$source"/>
+ <xsl:with-param name="rows" select="exsl:node-set($rows-set)"/>
+ </xsl:call-template>
+
+ <!-- * mark the end of the table -->
+ <xsl:text>&#10;</xsl:text>
+ <!-- * .TE = "Table End" -->
+ <xsl:text>.TE&#10;</xsl:text>
+ <!-- * put a blank line of space below the table -->
+ <xsl:text>.sp&#10;</xsl:text>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- ==================================================================== -->
+ <!-- * named templates -->
+ <!-- ==================================================================== -->
+ <!-- * -->
+ <!-- * All of the following are named templates that get called directly -->
+ <!-- * or indirectly by the main "driver" part of the code (above) -->
+ <!-- * -->
+ <!-- ==================================================================== -->
+
+ <xsl:template name="output.rows">
+ <xsl:param name="source"/>
+ <xsl:param name="rows"/>
+ <!-- * ============================================================== -->
+ <!-- * Flatten row set into simple list of cells -->
+ <!-- * ============================================================== -->
+ <!-- * Now we flatten the structure further into just a set of -->
+ <!-- * cells without the row parents. This basically creates a -->
+ <!-- * copy of the entire contents of the original table, but -->
+ <!-- * restructured in such a way that we can more easily generate -->
+ <!-- * the corresponding tbl(1) markup we need to output. -->
+ <xsl:variable name="cells-list">
+ <xsl:call-template name="build.cell.list">
+ <xsl:with-param name="source" select="$source"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cells" select="exsl:node-set($cells-list)"/>
+
+ <!-- * Output the table "format section", which tells tbl(1) how to -->
+ <!-- * format each row and column -->
+ <xsl:call-template name="create.table.format">
+ <xsl:with-param name="cells" select="$cells"/>
+ </xsl:call-template>
+
+ <!--* Output the formatted contents of each cell. -->
+ <xsl:for-each select="$cells/cell">
+ <xsl:call-template name="output.cell"/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+ <!-- * Output the tbl(1)-formatted contents of each cell. -->
+ <!-- * ============================================================== -->
+ <xsl:template name="output.cell">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::cell[1]/@row != @row or
+ not(preceding-sibling::cell)">
+ <!-- * If the value of the "row" attribute on this cell is -->
+ <!-- * different from the value of that on the previous cell, it -->
+ <!-- * means we have a new row. So output a line break (as long -->
+ <!-- * as this isn't the first cell in the table) -->
+ <xsl:text>&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise we are not at the start of a new row, so we -->
+ <!-- * output a tab character to delimit the contents of this -->
+ <!-- * cell from the contents of the next one. -->
+ <xsl:value-of select="$tbl.column.separator.char"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@type = '^'">
+ <!-- * If this is a dummy cell resulting from the presence of -->
+ <!-- * rowpan attribute in the source, it has no contents, so -->
+ <!-- * we need to handle it differently. -->
+ <xsl:if test="@colspan and @colspan > 1">
+ <!-- * If there is a colspan attribute on this dummy row, then -->
+ <!-- * we need to output a tab character for each column that -->
+ <!-- * it spans. -->
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string" select="$tbl.column.separator.char"/>
+ <xsl:with-param name="count">
+ <xsl:value-of select="@colspan - 1"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Otherwise, we have a "real" cell (not a dummy one) with -->
+ <!-- * contents that we need to output, -->
+ <!-- * -->
+ <!-- * The "T{" and "T}" stuff are delimiters to tell tbl(1) that -->
+ <!-- * the delimited contents are "text blocks" that roff -->
+ <!-- * needs to process -->
+ <xsl:text>T{&#10;</xsl:text>
+ <xsl:copy-of select="."/>
+ <xsl:text>&#10;T}</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+ <!-- * Build a restructured "cell list" copy of the entire table -->
+ <!-- * ============================================================== -->
+ <xsl:template name="build.cell.list">
+ <xsl:param name="source"/>
+ <xsl:param name="rows"/>
+ <xsl:param name="cell-data-unsorted">
+ <!-- * This param collects all the "real" cells from the table, -->
+ <!-- * along with "dummy" rows that we generate for keeping -->
+ <!-- * track of Rowspan instances. -->
+ <xsl:apply-templates select="$rows" mode="cell.list">
+ <xsl:with-param name="source" select="$source"/>
+ </xsl:apply-templates>
+ </xsl:param>
+ <xsl:param name="cell-data-sorted">
+ <!-- * Sort the cells so that the dummy cells get put where we -->
+ <!-- * need them in the structure. Note that we need to specify -->
+ <!-- * data-type="number" here because the default sorting method -->
+ <!-- * for xsl:sort is "text" (alphabetical). -->
+ <xsl:for-each select="exsl:node-set($cell-data-unsorted)/cell">
+ <xsl:sort select="@row" data-type="number"/>
+ <xsl:sort select="@slot" data-type="number"/>
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </xsl:param>
+ <!-- * Return the sorted cell list -->
+ <xsl:copy-of select="$cell-data-sorted"/>
+ </xsl:template>
+
+ <xsl:template match="tr" mode="cell.list">
+ <xsl:param name="source"/>
+ <xsl:variable name="row">
+ <xsl:value-of select="count(preceding-sibling::tr) + 1"/>
+ </xsl:variable>
+ <xsl:for-each select="td|th">
+ <xsl:call-template name="cell">
+ <xsl:with-param name="source" select="$source"/>
+ <xsl:with-param name="row" select="$row"/>
+ <!-- * pass on the element name so we can select the appropriate -->
+ <!-- * roff font for styling the cell contents -->
+ <xsl:with-param name="class" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="cell">
+ <xsl:param name="source"/>
+ <xsl:param name="row"/>
+ <xsl:param name="class"/>
+ <xsl:param name="slot">
+ <!-- * The "slot" is the horizontal position of this cell (usually -->
+ <!-- * just the same as its column, but not so when it is preceded -->
+ <!-- * by cells that have colspans or cells in preceding rows that -->
+ <!-- * that have rowspans). -->
+ <xsl:value-of select="position()"/>
+ </xsl:param>
+ <!-- * For each real TD cell, create a Cell instance; contents will -->
+ <!-- * be the roff-formatted contents of its original table cell. -->
+ <cell type=""
+ row="{$row}"
+ slot="{$slot}"
+ class="{$class}"
+ colspan="{@colspan}"
+ align="{@align}"
+ valign="{@valign}"
+ >
+ <xsl:choose>
+ <xsl:when test=".//tr">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Warn</xsl:with-param>
+ <xsl:with-param name="source" select="$source"/>
+ <xsl:with-param name="context-desc">tbl convert</xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>Extracted a nested table</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>[\fInested&#x2580;table\fR]*&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Apply templates to the child contents of this cell, to -->
+ <!-- * transform them into marked-up roff. -->
+ <xsl:variable name="contents">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <!-- * We now have the contents in roff (plain-text) form, -->
+ <!-- * but we may also still have unnecessary whitespace at -->
+ <!-- * the beginning and/or end of it, so trim it off. -->
+ <xsl:call-template name="trim.text">
+ <xsl:with-param name="contents" select="$contents"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </cell>
+
+ <!-- * For each instance of a rowspan attribute found, we create N -->
+ <!-- * dummy cells, where N is equal to the value of the rowspan. -->
+ <xsl:if test="@rowspan and @rowspan > 0">
+ <!-- * If this cell is preceded in the same row by cells that -->
+ <!-- * have colspan attributes, then we need to calculate the -->
+ <!-- * "offset" caused by those colspan instances; the formula -->
+ <!-- * is to (1) check for all the preceding cells that have -->
+ <!-- * colspan attributes that are not empty and which have a -->
+ <!-- * value greater than 1, then (2) take the sum of the values -->
+ <!-- * of all those colspan attributes, and subtract from that -->
+ <!-- * the number of such colspan instances found. -->
+ <xsl:variable name="colspan-offset">
+ <xsl:value-of
+ select="sum(preceding-sibling::td[@colspan != ''
+ and @colspan > 1]/@colspan) -
+ count(preceding-sibling::td[@colspan != ''
+ and @colspan > 1]/@colspan)"/>
+ </xsl:variable>
+ <xsl:call-template name="create.dummy.cells">
+ <xsl:with-param name="row" select="$row + 1"/>
+ <!-- * The slot value on each dummy cell must be offset by the -->
+ <!-- * value of $colspan-offset to adjust for preceding colpans -->
+ <xsl:with-param name="slot" select="$slot + $colspan-offset"/>
+ <xsl:with-param name="colspan" select="@colspan"/>
+ <xsl:with-param name="rowspan" select="@rowspan"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="create.dummy.cells">
+ <xsl:param name="row"/>
+ <xsl:param name="slot"/>
+ <xsl:param name="colspan"/>
+ <xsl:param name="rowspan"/>
+ <xsl:choose>
+ <xsl:when test="$rowspan > 1">
+ <!-- * Tail recurse until we have no more rowspans, creating -->
+ <!-- * an empty dummy cell each time. The type value, '^' -->
+ <!-- * is the marker that tbl(1) uses to indicate a -->
+ <!-- * "vertically spanned heading". -->
+ <cell row="{$row}" slot="{$slot}" type="^" colspan="{@colspan}"/>
+ <xsl:call-template name="create.dummy.cells">
+ <xsl:with-param name="row" select="$row + 1"/>
+ <xsl:with-param name="slot" select="$slot"/>
+ <xsl:with-param name="colspan" select="$colspan"/>
+ <xsl:with-param name="rowspan" select="$rowspan - 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+ <!-- * Build the "format section" for the table -->
+ <!-- * ============================================================== -->
+ <!-- * Description from the tbl(1) guide: -->
+ <!-- * -->
+ <!-- * "The format section of the table specifies the layout of the -->
+ <!-- * columns. Each line in this section corresponds to one line of -->
+ <!-- * the table... and each line contains a key-letter for each -->
+ <!-- * column of the table." -->
+ <xsl:template name="create.table.format">
+ <xsl:param name="cells"/>
+ <xsl:apply-templates mode="table.format" select="$cells"/>
+ <!-- * last line of table format section must end with a dot -->
+ <xsl:text>.</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="cell" mode="table.format">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::cell[1]/@row != @row">
+ <!-- * If the value of the row attribute on this cell is -->
+ <!-- * different from the value of that on the previous cell, it -->
+ <!-- * means we have a new row. So output a line break. -->
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * If this isn't the first cell, output a space before it to -->
+ <!-- * separate it from the preceding key letter. -->
+ <xsl:if test="position() != 1">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- * Select an appropriate "alignment" key letter based on this -->
+ <!-- * cell's attributes. -->
+ <xsl:choose>
+ <xsl:when test="@type = '^'">
+ <xsl:text>^</xsl:text>
+ </xsl:when>
+ <xsl:when test="@align = 'center'">
+ <xsl:text>c</xsl:text>
+ </xsl:when>
+ <xsl:when test="@align = 'right'">
+ <xsl:text>r</xsl:text>
+ </xsl:when>
+ <xsl:when test="@align = 'char'">
+ <xsl:text>n</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * Default to left alignment. -->
+ <xsl:text>l</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- * By default, tbl(1) vertically centers cell contents within -->
+ <!-- * their cells; the "t" key latter tells it to top-align the -->
+ <!-- * contents instead. Note that tbl(1) has no options for -->
+ <!-- * bottom or baseline alignment. -->
+ <xsl:if test="@valign = 'top'">
+ <xsl:text>t</xsl:text>
+ </xsl:if>
+ <xsl:if test="@class = 'th'">
+ <!-- * If this is a heading row, generate a font indicator (B or I), -->
+ <!-- * or if the value of $tbl.font.headings is empty, nothing. -->
+ <xsl:value-of select="$tbl.font.headings"/>
+ </xsl:if>
+ <!-- * We only need to deal with colspans whose value is greater -->
+ <!-- * than one (a colspan="1" is the same as having no colspan -->
+ <!-- * attribute at all). -->
+ <xsl:if test="@colspan > 1">
+ <xsl:call-template name="process.colspan">
+ <xsl:with-param name="colspan" select="@colspan - 1"/>
+ <xsl:with-param name="type" select="@type"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="process.colspan">
+ <xsl:param name="colspan"/>
+ <xsl:param name="type"/>
+ <!-- * Output a space to separate this key letter from preceding one. -->
+ <xsl:text> </xsl:text>
+ <xsl:choose>
+ <xsl:when test="$type = '^'">
+ <!-- * A '^' ("vertically spanned heading" marker) indicates -->
+ <!-- * that the "parent" of this spanned cell is a dummy cell; -->
+ <!-- * in this case, we need to generate a '^' instead of the -->
+ <!-- * normal 's'. -->
+ <xsl:text>^</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * s = 'spanned heading' -->
+ <xsl:text>s</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$colspan > 1">
+ <!-- * Tail recurse until we have no more colspans, outputting -->
+ <!-- * another marker each time. -->
+ <xsl:call-template name="process.colspan">
+ <xsl:with-param name="colspan" select="$colspan - 1"/>
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- * ============================================================== -->
+ <!-- * colgroup and col -->
+ <!-- * ============================================================== -->
+ <!-- * We currently don't do anything with colgroup. Not sure if it -->
+ <!-- * is widely used enough to bother adding support for it -->
+ <xsl:template match="colgroup"/>
+ <xsl:template match="col"/>
+
+ <!-- * ============================================================== -->
+ <!-- * table footnotes -->
+ <!-- * ============================================================== -->
+ <xsl:template match="footnote" mode="table.footnote.mode">
+ <xsl:variable name="footnotes" select=".//footnote"/>
+ <xsl:variable name="table.footnotes"
+ select=".//tgroup//footnote"/>
+ <xsl:value-of select="$man.table.footnotes.divider"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.br&#10;</xsl:text>
+ <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+ <xsl:apply-templates select="*[position() &gt; 1]"/>
+ </xsl:template>
+
+ <!-- * The following template for footnote.body.number mode was just -->
+ <!-- * lifted from the HTML stylesheets with some minor adjustments -->
+ <xsl:template match="*" mode="footnote.body.number">
+ <xsl:variable name="name">
+ <xsl:text>ftn.</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="footnote.mark">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates select="ancestor::footnote"
+ mode="footnote.number"/>
+ <xsl:text>]&#10;</xsl:text>
+ </xsl:variable>
+ <xsl:variable name="html">
+ <xsl:apply-templates select="."/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('exsl:node-set')">
+ <xsl:variable name="html-nodes" select="exsl:node-set($html)"/>
+ <xsl:choose>
+ <xsl:when test="$html-nodes//p">
+ <xsl:apply-templates select="$html-nodes" mode="insert.html.p">
+ <xsl:with-param name="mark" select="$footnote.mark"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$html-nodes" mode="insert.html.text">
+ <xsl:with-param name="mark" select="$footnote.mark"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$html"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- * The HTML stylesheets output <sup><a>...</a></sup> around -->
+ <!-- * footnote markers in tables -->
+ <xsl:template match="th/sup">
+ <xsl:apply-templates/>
+ </xsl:template>
+ <xsl:template match="a">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/docs/xsl-generic/manpages/utility.xsl b/docs/xsl-generic/manpages/utility.xsl
new file mode 100644
index 00000000..cf72479b
--- /dev/null
+++ b/docs/xsl-generic/manpages/utility.xsl
@@ -0,0 +1,452 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:dyn="http://exslt.org/dynamic"
+ xmlns:saxon="http://icl.com/saxon"
+ exclude-result-prefixes="exsl dyn saxon"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id: utility.xsl 6843 2007-06-20 12:21:13Z xmldoc $
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- * This file contains "utility" templates that are called multiple -->
+<!-- * times per each Refentry. -->
+
+<!-- ==================================================================== -->
+
+ <!-- * NOTE TO DEVELOPERS: For ease of maintenance, the current -->
+ <!-- * manpages stylesheets use the "bold" and "italic" named -->
+ <!-- * templates for anything and everything that needs to get -->
+ <!-- * boldfaced or italicized. -->
+ <!-- * -->
+ <!-- * So if you add anything that needs bold or italic character -->
+ <!-- * formatting, try to apply these templates to it rather than -->
+ <!-- * writing separate code to format it. This can be a little odd if -->
+ <!-- * the content you want to format is not element content; in those -->
+ <!-- * cases, you need to turn it into element content before applying -->
+ <!-- * the template; see examples of this in the existing code. -->
+
+ <xsl:template name="bold">
+ <xsl:param name="node"/>
+ <xsl:param name="context"/>
+ <xsl:choose>
+ <xsl:when test="not($context[ancestor::title])">
+ <xsl:for-each select="$node/node()">
+ <xsl:text>\fB</xsl:text>
+ <xsl:apply-templates select="."/>
+ <xsl:text>\fR</xsl:text>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$node/node()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="italic">
+ <xsl:param name="node"/>
+ <xsl:param name="context"/>
+ <xsl:for-each select="$node/node()">
+ <xsl:text>\fI</xsl:text>
+ <xsl:apply-templates select="."/>
+ <xsl:text>\fR</xsl:text>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * NOTE TO DEVELOPERS: For ease of maintenance, the current -->
+ <!-- * manpages stylesheets use the mode="prevent.line.breaking" -->
+ <!-- * templates for anything and everything that needs to have -->
+ <!-- * embedded spaces turned into no-break spaces in output - in -->
+ <!-- * order to prevent that output from getting broken across lines -->
+ <!-- * -->
+ <!-- * So if you add anything that whose output, try to apply this -->
+ <!-- * template to it rather than writing separate code to format -->
+ <!-- * it. This can be a little odd if the content you want to -->
+ <!-- * format is not element content; in those cases, you need to -->
+ <!-- * turn it into element content before applying the template; -->
+ <!-- * see examples of this in the existing code. -->
+ <!-- * -->
+ <!-- * This template is currently called by the funcdef and paramdef -->
+ <!-- * and group/arg templates. -->
+ <xsl:template mode="prevent.line.breaking" match="*">
+ <xsl:variable name="rcontent">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:variable name="content">
+ <xsl:value-of select="normalize-space($rcontent)"/>
+ </xsl:variable>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target" select="' '"/>
+ <!-- * U+2580 is a "UPPER HALF BLOCK"; we use it here because -->
+ <!-- * if we were to just use a normal space, it would get -->
+ <!-- * replaced when normalization is done. We replace it -->
+ <!-- * later with the groff markup for non-breaking space. -->
+ <xsl:with-param name="replacement" select="'&#x2580;'"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <xsl:template name="suppress.hyphenation">
+ <!-- * we need to suppress hyphenation inline only if hyphenation is -->
+ <!-- * actually on, and even then only outside of Cmdsynopsis and -->
+ <!-- * Funcsynopsis, where it is already always turned off -->
+ <xsl:if test="$man.hyphenate != 0 and
+ not(ancestor::cmdsynopsis) and
+ not(ancestor::funcsynopsis)">
+ <xsl:text>\%</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * The replace.dots.and.dashes template is used to cause real -->
+ <!-- * dots and dashes to be output in the top comment (instead of -->
+ <!-- * escaped ones as in the source for the text displayed in the -->
+ <!-- * body of the page) -->
+ <xsl:template name="replace.dots.and.dashes">
+ <xsl:param name="content">
+ <xsl:apply-templates/>
+ </xsl:param>
+ <xsl:variable name="dot-content">
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$content"/>
+ <xsl:with-param name="target" select="'\.'"/>
+ <xsl:with-param name="replacement" select="'.'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string" select="$dot-content"/>
+ <xsl:with-param name="target" select="'\-'"/>
+ <xsl:with-param name="replacement" select="'-'"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * The nested-section-title template is called for refsect3, and any -->
+ <!-- * refsection nested more than 2 levels deep. -->
+ <xsl:template name="nested-section-title">
+ <!-- * The next few lines are some arcane roff code to control line -->
+ <!-- * spacing after headings. -->
+ <xsl:text>.sp&#10;</xsl:text>
+ <xsl:text>.it 1 an-trap&#10;</xsl:text>
+ <xsl:text>.nr an-no-space-flag 1&#10;</xsl:text>
+ <xsl:text>.nr an-break-flag 1&#10;</xsl:text>
+ <xsl:text>.br&#10;</xsl:text>
+ <!-- * make title wrapper so that we can use mode="bold" template to -->
+ <!-- * apply character formatting to it -->
+ <xsl:variable name="title.wrapper">
+ <bold><xsl:choose>
+ <xsl:when test="title">
+ <xsl:value-of select="normalize-space(title[1])"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+ </xsl:otherwise>
+ </xsl:choose></bold>
+ </xsl:variable>
+ <xsl:call-template name="mark.subheading"/>
+ <xsl:apply-templates mode="bold" select="exsl:node-set($title.wrapper)"/>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:call-template name="mark.subheading"/>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * The mixed-block template jumps through a few hoops to deal with -->
+ <!-- * mixed-content blocks, so that we don't end up munging verbatim -->
+ <!-- * environments or lists and so that we don't gobble up whitespace -->
+ <!-- * when we shouldn't -->
+ <xsl:template name="mixed-block">
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <!-- * Check to see if this node is a verbatim environment. -->
+ <!-- * If so, put a line of space before it. -->
+ <!-- * -->
+ <!-- * Yes, address and synopsis are vertabim environments. -->
+ <!-- * -->
+ <!-- * The code here previously also treated informaltable as a -->
+ <!-- * verbatim, presumably to support some kludge; I removed it -->
+ <xsl:when test="self::address|self::literallayout|self::programlisting|
+ self::screen|self::synopsis">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.sp&#10;</xsl:text>
+ <xsl:call-template name="mark.up.block.start"/>
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <!-- * Check to see if this node is a list; if it is, we don't -->
+ <!-- * want to normalize-space(), so we just apply-templates. -->
+ <!-- * Do same for all admonitions -->
+ <xsl:when test="(self::itemizedlist|self::orderedlist|
+ self::variablelist|self::glosslist|
+ self::simplelist[@type !='inline']|
+ self::segmentedlist|
+ self::caution|self::important|
+ self::note|self::tip|self::warning|
+ self::table|self::informaltable)">
+ <xsl:call-template name="mark.up.block.start"/>
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::text()">
+ <!-- * Check to see if this is a text node. -->
+ <!-- * -->
+ <!-- * If so, replace all whitespace at the beginning or end of it -->
+ <!-- * with a single linebreak. -->
+ <!-- * -->
+ <xsl:variable name="content">
+ <xsl:apply-templates select="."/>
+ </xsl:variable>
+ <xsl:if
+ test="starts-with(translate(.,'&#9;&#10;&#13; ',' '), ' ')
+ and preceding-sibling::node()[1][name(.)!='']
+ and normalize-space($content) != ''
+ and not(
+ preceding-sibling::*[1][
+ self::caution or
+ self::important or
+ self::note or
+ self::tip or
+ self::warning or
+ self::variablelist or
+ self::glosslist or
+ self::itemizedlist or
+ self::orderedlist or
+ self::segmentedlist or
+ self::procedure or
+ self::address or
+ self::literallayout or
+ self::programlisting or
+ self::screen or
+ self::table or
+ self::informaltable
+ ]
+ )
+ ">
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="normalize-space($content)"/>
+ <xsl:if
+ test="(translate(substring(., string-length(.), 1),'&#9;&#10;&#13; ',' ') = ' '
+ and following-sibling::node()[1][name(.)!=''])
+ or following-sibling::node()[1][self::comment()]
+ or following-sibling::node()[1][self::processing-instruction()]
+ ">
+ <xsl:if test="normalize-space($content) != ''
+ or concat(normalize-space($content), ' ') = ' '">
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * At this point, we know that this node is not a verbatim -->
+ <!-- * environment, list, admonition, or text node; so we can -->
+ <!-- * safely normalize-space() it. -->
+ <xsl:variable name="content">
+ <xsl:apply-templates select="."/>
+ </xsl:variable>
+ <xsl:value-of select="normalize-space($content)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:call-template name="mark.up.block.end"/>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * Footnote and annotation contents are displayed using a hanging -->
+ <!-- * indent out to $man.indent.width If a paragraph-level block -->
+ <!-- * element (verbatim, list, or admonition) is the first block -->
+ <!-- * element nested at its same level within the same footnote or -->
+ <!-- * annotation, then we push it over by the same indent width. -->
+ <!-- * -->
+ <!-- * We don't reset the indent for each following sibling, but -->
+ <!-- * instead do it after for-eaching over all block siblings at -->
+ <!-- * the same level. So the effect is that if there are any -->
+ <!-- * following-sibling blocks after the block that starts this -->
+ <!-- * indent, then they just retain the indent that was already set -->
+
+ <xsl:template name="mark.up.block.start">
+ <xsl:choose>
+ <xsl:when test="(ancestor::footnote
+ or ancestor::annotation)">
+ <xsl:if test="not(preceding-sibling::address|
+ preceding-sibling::literallayout|
+ preceding-sibling::programlisting|
+ preceding-sibling::screen|
+ preceding-sibling::synopsis|
+ preceding-sibling::itemizedlist|
+ preceding-sibling::orderedlist|
+ preceding-sibling::variablelist|
+ preceding-sibling::glosslist|
+ preceding-sibling::simplelist[@type !='inline']|
+ preceding-sibling::segmentedlist|
+ preceding-sibling::caution|
+ preceding-sibling::important|
+ preceding-sibling::note|
+ preceding-sibling::tip|
+ preceding-sibling::warning|
+ preceding-sibling::table|
+ preceding-sibling::informaltable
+ )">
+ <xsl:text>.RS</xsl:text>
+ <xsl:if test="not($list-indent = '')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$list-indent"/>
+ </xsl:if>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- * Check to see if we were called from a block within a footnote or -->
+ <!-- * annotation; if so, and the block contains any nested block -->
+ <!-- * content, then we know the mark.up.block.end template was already -->
+ <!-- * called to generate a .RS macro to indent that nested block -->
+ <!-- * content; so we need to generate a .RE to set the margin back to -->
+ <!-- * where it was prior to the .RS call. -->
+ <xsl:template name="mark.up.block.end">
+ <xsl:if test="(ancestor::footnote
+ or ancestor::annotation)">
+ <xsl:if test="address|
+ literallayout|
+ programlisting|
+ screen|
+ synopsis|
+ itemizedlist|
+ orderedlist|
+ variablelist|
+ glosslist|
+ simplelist[@type !='inline']|
+ segmentedlist|
+ caution|
+ important|
+ note|
+ tip|
+ warning|
+ table|
+ informaltable">
+ <xsl:text>&#10;</xsl:text>
+ <xsl:text>.RE</xsl:text>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * The person.name template in the HTML stylesheets outputs extra -->
+ <!-- * spaces that we need to strip out for manpages output. This -->
+ <!-- * template calls person.name, then tries to do some smart -->
+ <!-- * normalization of the result tree fragment from that. -->
+ <xsl:template name="person.name.normalized">
+ <xsl:variable name="contents">
+ <xsl:call-template name="person.name"/>
+ </xsl:variable>
+ <!-- * We put the output of person.name into a node-set and then we -->
+ <!-- * check it node-by-node and strip out space only where needed. -->
+ <xsl:variable name="contents.tree" select="exsl:node-set($contents)"/>
+ <xsl:for-each select="$contents.tree/node()">
+ <xsl:choose>
+ <!-- * We don't want to monkey with single spaces or commas/periods -->
+ <!-- * followed by spaces, because those are bits of text that are -->
+ <!-- * actually generated by the person.name template itself (that -->
+ <!-- * is, they're not in the source). So, we preserve them. -->
+ <xsl:when test=". = ' ' or . = ', ' or . = '. '">
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <xsl:template name="make.adjusted.man.filename">
+ <xsl:param name="name"/>
+ <xsl:param name="lang"/>
+ <xsl:param name="name.with.lang">
+ <xsl:choose>
+ <xsl:when test="$lang != 'en'
+ and not($man.output.lang.in.name.enabled = 0)
+ and ($man.output.subdirs.enabled = 0 or
+ $man.output.in.separate.dir = 0)">
+ <!-- * $lang is not en (English) -->
+ <!-- * AND user has specified man.output.lang.in.name.enabled -->
+ <!-- * AND doesn't want output going into separate dirs, -->
+ <!-- * SO... we include the $lang value in the filename; e.g., -->
+ <!-- * foo.ja.1 -->
+ <xsl:value-of select="concat($name, '.', $lang)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- * user either has man.output.lang.in.name.enabled unset -->
+ <!-- * or has set it but also has man.output.subdirs.enabled -->
+ <!-- * set (in which case the $lang value is used to add a -->
+ <!-- * $lang subdir in the pathname); in either case, we don't -->
+ <!-- * want to include the $lang in the filename -->
+ <xsl:value-of select="$name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="section"/>
+ <xsl:param name="dirname">
+ <xsl:if test="not($man.output.in.separate.dir = 0)">
+ <xsl:choose>
+ <xsl:when test="not($man.output.subdirs.enabled = 0)">
+ <xsl:variable name="lang.subdir">
+ <xsl:if test="not($man.output.lang.in.name.enabled = 0)">
+ <!-- * user has man.output.lang.in.name.enabled set, so -->
+ <!-- * we need to add a $lang subdir -->
+ <xsl:value-of select="concat($lang, '/')"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:value-of
+ select="concat($man.output.base.dir, $lang.subdir,
+ 'man', normalize-space($section), '/')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$man.output.base.dir"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:param>
+ <xsl:call-template name="string.subst">
+ <!-- * To create the man filename, replace any spaces in filename with -->
+ <!-- * underscores and then append a dot plus a section number. -->
+ <xsl:with-param name="string"
+ select="concat($dirname,
+ normalize-space($name.with.lang),
+ '.', normalize-space($section))"/>
+ <xsl:with-param name="target" select="' '"/>
+ <xsl:with-param name="replacement" select="'_'"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ================================================================== -->
+
+ <!-- * Put a horizontal rule or other divider around section titles -->
+ <!-- * in roff source (just to make things easier to read). -->
+ <xsl:template name="mark.subheading">
+ <xsl:if test="$man.subheading.divider.enabled != 0">
+ <xsl:text>.\" </xsl:text>
+ <xsl:value-of select="$man.subheading.divider"/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>