tex-common-4.04/0000755000000000000000000000000012157017604010420 5ustar tex-common-4.04/TODO0000644000000000000000000000034412157017604011111 0ustar * rewrite policy and user documentation!!! - updmap.d handling has disappeared - texmf.d handling has changed, changes to /etc/texmf/web2c/texmf.cnf are NOT USER EDITABLE ANYMORE exclusive use of /etc/texmf/texmf.d tex-common-4.04/texmf/0000755000000000000000000000000012157017604011543 5ustar tex-common-4.04/texmf/web2c/0000755000000000000000000000000012157017604012545 5ustar tex-common-4.04/texmf/web2c/mktex.cnf0000644000000000000000000000043312157017604014365 0ustar # global font cache, also change VARTEXFONTS in 05TeXMF.cnf #: ${MT_FEATURES=appendonlydir:varfonts} # per user font cache : ${MT_FEATURES=appendonlydir:texmfvar} #: ${MODE=ljfour} #: ${BDPI=600} # uncomment the following line to use ps2pk instead of gsftopk: # : ${ps_to_pk=ps2pk} tex-common-4.04/conf/0000755000000000000000000000000012157017604011345 5ustar tex-common-4.04/conf/texmf.d/0000755000000000000000000000000012157017604012712 5ustar tex-common-4.04/conf/texmf.d/00debian.cnf0000644000000000000000000000003212157017604014757 0ustar VARTEXFONTS=/tmp/texfonts tex-common-4.04/conf/hyphen.d/0000755000000000000000000000000012157017604013062 5ustar tex-common-4.04/conf/hyphen.d/00tex.cnf0000644000000000000000000000020312157017604014505 0ustar % % The first entries in language.dat and language.def have to be % for english/USenglish to ensure total document portability. % tex-common-4.04/conf/fmt.d/0000755000000000000000000000000012157017604012355 5ustar tex-common-4.04/conf/fmt.d/00tex.cnf0000644000000000000000000000252412157017604014010 0ustar # 00tex.cnf: header of the configuration file for fmtutil. # # In Debian, fmtutil.cnf is a file that is generated from # configuration files in /etc/texmf/fmt.d/. This file, 00tex.cnf, # contains only some comments on how to edit these files. # # The text of the comments is Copyright 1998, 1999 by Thomas Esser, it # is in the Public domain. # You Customize these file to your needs, e.g. # - remove or uncomment formats that you don't need # - add your own formats # - change default engine / flags for standard formats # Some notes: # 1) tex and amstex just load hyphen.tex. No customization. # You can have you own customized (via babel's hyphen.cfg) # formats on top of plain by using "bplain.tex" instead of # plain.tex (see e.g. bplain.ini file for bplain format). # # 2) etex loads language.def, not language.dat. # # 3) The symbolic link to the right engines (e.g. bplain -> tex) # will be generated by the "texlinks" script. So, if you call # fmtutil "by hand" and not via texconfig, please also call # texlinks afterwards. # # 4) usual comments start with "# ", whereas disabled configurations # start with "#! " in this file. # The format of the table is: # format engine pattern-file arguments # The last part of "arguments" must be the name of the file to run # initex (or another "ini"-engine) on. tex-common-4.04/scripts/0000755000000000000000000000000012157017604012107 5ustar tex-common-4.04/scripts/update-updmap0000755000000000000000000002145512157017604014612 0ustar #!/bin/bash -e # # update-updmap --- Generate updmap.cfg for all the trees # Copyright (C) 2012 Norbert Preining # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 dated June, 1991. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA. version="1.0" progname=$(basename "$0") SNIPPET_BASE=/var/lib/tex-common/fontmap-cfg SNIPPET_OLD_BASE=/etc/texmf/updmap.d # this needs to be kept in sync with dh_installtex COMPONENTS="texmf texlive" usage="Usage: $progname [OPTION...] Generate updmap configuration files. Options: --checks perform sanity checks on the generated config file --quiet don't write anything to the standard output during normal operation --help display this help message and exit --version output version information and exit" # This ensures that if $tempfile is in the *environment*, we won't erase # the file it could point to in case the script is killed by a signal before # it has had a chance to even create its temporary file. tempfile="" cleanup() { rc=$? [ -n "$tempfile" ] && rm -f "$tempfile" exit $rc } perform_contents_check () { fn="$1" grep -i '^\W*\(Mixed\|Kanji\)\?Map' "$fn" | while read foo map ; do # now check the existence of the hyphenation file if [ -z $(kpsewhich -format=map $map) ] ; then cat >&2 < include_file() { file="$1" printf "\n# ## From file: $file\n" cat "$file" echo "# End of file: $file" } # do_not_include_file do_not_include_file() { file="$1" cat </dev/null; then # Is the package "$file" comes from still installed? if [ -d "$SNIPPET_BASE" ] \ && find "$SNIPPET_BASE" -type f -name '*.list' -print0 \ | xargs -0r cat \ | grep -E "^$(basename "$file" .cfg)\$" >/dev/null; then include_file "$file" else do_not_include_file "$file" fi else include_file "$file" fi fi } ####################################################### # # end of backward compatibility stuff # ####################################################### # The list of signals to trap is taken from teTeX 3's updmap script, but they # have been converted to signal names because we can only rely on these on # POSIX systems. trap 'cleanup' HUP INT QUIT BUS PIPE TERM # -v (verbose) is here for backward compatibility only. TEMP=$(getopt -o +vc:o: --longoptions \ check,quiet,help,version \ -n "$progname" -- "$@") case $? in 0) : ;; 1) echo "$usage" >&2; exit 1 ;; *) exit 1 ;; esac # Don't remove the quotes around $TEMP! eval set -- "$TEMP" # **************************************************************************** # * Defaults * # **************************************************************************** quiet=0 dochecks=0 # **************************************************************************** # * Options handling * # **************************************************************************** while true; do case "$1" in --quiet) quiet=1; shift ;; --check) dochecks=1; shift ;; -v) printf "\ ${progname}'s -v option is deprecated. The default mode of operation will be verbose as soon as enough packages use the --quiet option. Please update your scripts accordingly.\n\n" >&2; quiet=0; shift ;; --help) echo "$usage"; exit 0 ;; --version) echo "$progname $version"; exit 0 ;; --) shift; break ;; *) echo "$progname: unexpected option '$1'; please report a bug." >&2 exit 1 ;; esac done # Non-option arguments are not allowed. if [ $# -ne 0 ]; then echo "$usage" >&2 exit 1 fi # **************************************************************************** # * Actual work * # **************************************************************************** updated_files="" for tree in $COMPONENTS ; do if [ $tree = "texmf" ] ; then # output_file=/usr/share/texmf/web2c/updmap.cfg output_file=/var/lib/texmf/updmap.cfg-DEBIAN elif [ $tree = "texlive" ] ; then # output_file=/usr/share/texlive/texmf-dist/web2c/updmap.cfg output_file=/var/lib/texmf/updmap.cfg-TEXLIVEDIST else echo "$progname: that cannot happen!" >&2 exit 1 fi # create output dir in any case ... mkdir -p $(dirname $output_file) # if [ $quiet = 0 ]; then if [ -f "$output_file" ]; then printf "Regenerating '${output_file}'... " else printf "Generating '${output_file}'... " fi fi # Creating the temporary file in the output directory gives it # automatically the default permissions appropriate for that # directory, according to the user's umask. When it is complete, # we'll be able to rename it atomically to the desired output # file, which will therefore have the right permissions. tempfile="updmap.$tree.new" if ! printf "" > "$tempfile" ; then echo "$progname: cannot write to the temporary file '$tempfile'" >&2 exit 1 fi printf "\ ### This file was automatically generated by ${progname}. # # Any local change will be overwritten. Please see the documentation # of updmap on how to override things from here. # ###\n" >> "$tempfile" # From now on, $tempfile must be deleted on exit; therefore, cleanup() should # be used. if [ -d "$SNIPPET_BASE/$tree" ] ; then find "$SNIPPET_BASE/$tree" -maxdepth 1 -type f -name '*.cfg' \ -exec cat '{}' \; >> "$tempfile" fi if [ $tree = "texmf" ] ; then # # also include snippets in /etc/texmf/updmap.d but give # big fat warnings that this might create problems!!! if [ -d $SNIPPET_OLD_BASE ] ; then old_files=$(find $SNIPPET_OLD_BASE -maxdepth 1 -type f -name '*.cfg' | LC_COLLATE=C sort) if [ -n "$old_files" ] ; then cat >&2 <&2 done echo "" >&2 fi for file in $old_files ; do handle_file $file >> "$tempfile" done fi fi # This is atomic. mv "$tempfile" "$output_file" updated_files="$updated_files\t$output_file\n"; # Check wether the generated file is decent, if all necessary files are # installed, etc. if [ "$dochecks" = 1 ] ; then perform_contents_check "$output_file" fi if [ $quiet = 0 ]; then printf "done.\n" fi done if [ $quiet = 0 ] && [ -n "$updated_files" ] ; then echo "$progname has updated the following file(s):" printf "$updated_files" echo "If you want to enable the map files with this new file," echo "you should run updmap-sys or updmap." fi # vim:set expandtab tabstop=4 autoindent: # tex-common-4.04/scripts/postrm-tex0000644000000000000000000000547012157017604014162 0ustar ## ## postrm-tex ## ## postrm snippets for registering hyphenation patterns, font maps, and formats ## ## Authors: ## Florent Rougon ## Norbert Preining ## # Please note that comments in this file are stripped before installation # by calling a grep -v '^[ \t]*# ' # Thus, first lines containing ## are preserved! # So please be careful if you add stuff here! # # it might happen that tex-common is not installed and # still the postrm of a package is tried to be uninstalled # so don't call update-texmf-config if not present # See bug report #531581 dhit_call_update_texmf_config () { if which update-texmf-config >/dev/null; then update-texmf-config $* else echo "update-texmf-config not present: is tex-common installed?" >&2 fi } dhit_check_run_without_errors () { silent=0 if [ "$1" = "-silent" ] ; then silent=1 shift fi if which "$1" >/dev/null; then tempfile=$(mktemp -p /tmp checkrun.XXXXXXXX) if [ $silent = 0 ] ; then printf "Running '$*'.\nThis may take some time..." fi set +e if "$@" > $tempfile 2>&1 ; then rm -f $tempfile [ $silent = 0 ] && echo " done." else echo echo "$* failed. Output has been stored in" echo "$tempfile" echo "If tex-common is not configured you can ignore this error" \ "message!" echo "Otherwise, please include this file if you report a bug." echo fi set -e fi return 0 } case "$1" in remove|disappear) # It doesn't hurt to call all of them. dhit_check_run_without_errors -silent update-updmap --quiet dhit_check_run_without_errors -silent update-language dhit_check_run_without_errors -silent update-fmtutil for i in #WHATTODO# ; do if [ "$i" = lsr ] ; then dhit_call_update_texmf_config lsr fi if [ "$i" = lsrfull ] ; then dhit_call_update_texmf_config lsrfull fi if [ "$i" = map ] ; then dhit_call_update_texmf_config map fi if [ "$i" = allformats ] ; then for fmt in #FORMATS# ; do rm -f /var/lib/texmf/web2c/$fmt.* done fi if [ "$i" = format ] ; then for fmt in #FORMATS# ; do rm -f /var/lib/texmf/web2c/$fmt.* done fi if [ "$i" = hyphen ] ; then dhit_call_update_texmf_config hyphen fi done ;; purge|upgrade|failed-upgrade|abort-upgrade|abort-install) ;; esac # Let vim know that we don't want tabs # vim:set expandtab tabstop=4: # tex-common-4.04/scripts/postinst-tex0000644000000000000000000001164712157017604014524 0ustar ## ## postinst-tex ## ## postinst snippets for everything TeX related (mktlsr, hyphenation ## patterns, formats, font maps) ## ## Authors: ## Florent Rougon ## Norbert Preining ## # Please note that comments in this file are stripped before installation # by calling a grep -v '^[ \t]*# ' # Thus, first lines containing ## are preserved! # So please be careful if you add stuff here! # TEXMFTREES="/usr/share/texmf /var/lib/texmf" FULLTEXMFTREES="$TEXMFTREES /usr/share/texlive/texmf /usr/share/texlive/texmf-dist" # Tell if kpsewhich works. If this is the case: # # 1. kpsewhich is installed and; # # 2. libkpathsea is configured. dhit_libkpathsea_configured () { kpsewhich --version >/dev/null 2>&1 } dhit_update_lsr_files () { tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX) printf "Running mktexlsr. This may take some time... " if mktexlsr $* > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mktexlsr $* failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi } dhit_build_hyphen_format_if_format_exists () { v=$(kpsewhich -var-value TEXMFSYSVAR) c=$(kpsewhich -var-value TEXMFSYSCONFIG) TEXMFVAR="$v" TEXMFCONFIG="$c" export TEXMFVAR TEXMFCONFIG fmtcnffile=$(kpsewhich --format='web2c files' fmtutil.cnf) # this is slow, and since we hope/assure that all ini files # are installed if the format is active, we don't need the # extra check fmtutil does when called with catcfg # X=$(fmtutil-sys --catcfg | grep "^$1[[:space:]]" || true) X=$(grep "^[[:space:]]*$1[[:space:]]" $fmtcnffile || true) if [ -n "$X" ] ; then dhit_build_format --byhyphen "$2" fi } dhit_build_format () { tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building format(s) $*.\n\tThis may take some time... " if fmtutil-sys "$@" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi } case "$1" in configure|abort-upgrade|abort-remove|abort-deconfigure) # These programs are all in tex-common and can be run immediately. # In fact it *does* hurt not calling them since we might # have formats installed and we call with --all, so not the # trigger action is done, but the postinst runs the fmtutil-sys call update-updmap --quiet update-language update-fmtutil # All of the following needs an installed and configured # basic TeX system, so check this. if dhit_libkpathsea_configured; then # # if we are doing something with formats we have to update # the lsr database first do_lsr=0 for i in #WHATTODO# ; do if [ "$i" = lsrfull ] ; then TEXMFTREES=$FULLTEXMFTREES fi if [ "$i" = allformats ] ; then do_lsr=1 fi if [ "$i" = format ] ; then do_lsr=1 fi done if [ $do_lsr = 1 ] ; then # mktexlsr may not be present if which mktexlsr >/dev/null; then dhit_update_lsr_files $TEXMFTREES # can we "close" or "delete" a trigger, i.e. say # that it has been dealt with? fi fi for i in #WHATTODO# ; do if [ "$i" = lsr ] ; then if [ $do_lsr = 0 ] ; then update-texmf-config lsr fi fi if [ "$i" = lsrfull ] ; then if [ $do_lsr = 0 ] ; then update-texmf-config lsrfull fi fi if [ "$i" = map ] ; then update-texmf-config map fi if [ "$i" = allformats ] ; then dhit_build_format --all fi if [ "$i" = format ] ; then for fmt in #FORMATSFILES# ; do if [ -r "/etc/texmf/fmt.d/$fmt.cnf" ] ; then dhit_build_format --all --cnffile "/etc/texmf/fmt.d/$fmt.cnf" else echo "config file /etc/texmf/fmt.d/$fmt.cnf not available" fi done fi if [ "$i" = hyphen ] ; then update-texmf-config hyphen fi done fi ;; esac # Let vim know that we don't want tabs # vim:set expandtab tabstop=4: # tex-common-4.04/scripts/update-texmf.80000644000000000000000000000217712157017604014612 0ustar .TH UPDATE-TEXMF 8 .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection .\" other parms are allowed: see man(7), man(1) .SH NAME update-texmf \- shell script to generate /etc/texmf/texmf.cnf .SH SYNOPSIS .B update-texmf .I "[options]" .br .SH DESCRIPTION This manual page documents briefly the .BR update-texmf command. This manual page was written for the Debian GNU/Linux distribution because the original script was designed for Debian packaging system. .PP .B update-texmf is a shell script to generate /etc/texmf/web2c/texmf.cnf from files in /etc/texmf/texmf.d/*.cnf .PP A user who wants to customize /etc/texmf/web2c/texmf.cnf should add, for example, 22mymacro.cnf in /etc/texmf/texmf.d/ and run 'update-texmf'. .SH OPTIONS .TP .B \-v, --verbose Show verbose messages. .TP .B \-d, --debug Show debugging information, and don't delete temporary files. Implies --verbose. .SH SEE ALSO .PP Further information can be found in /usr/share/doc/tex-common/README.Debian.{txt,pdf.html} .PP .SH AUTHOR This manual page was written by Atsuhito Kohda , for the Debian GNU/Linux system (but may be used by others). tex-common-4.04/scripts/update-texmf0000644000000000000000000000477112157017604014446 0ustar #!/bin/sh # update-texmf # License: GPL set -e TXMF=/etc/texmf TXMF_CNF=$TXMF/web2c/texmf.cnf CNFDIR=${TXMF}/texmf.d TMPDIR=`mktemp -d` TMPTXMF=`mktemp -p ${TMPDIR} texmfXXXXXXX` VERBOSE=false DEBUG=false while [ $# -ne 0 ]; do case $1 in -v|--verbose) VERBOSE=true shift;; -d|--debug) DEBUG=true VERBOSE=true shift;; *) echo "unknown option: $1" exit 1 ;; esac done # test wether /etc isn't mounted read-only if touch /etc/texmf/is_rw 2>/dev/null; then rm -f /etc/texmf/is_rw else echo "Directory /etc/texmf/ not writeable. Exiting." exit 1 fi CNFFILES=`find ${CNFDIR} -name \*.cnf -print | sort` if [ $DEBUG = true ]; then echo "Using the following files:" for file in $CNFFILES; do echo $file done fi if [ -z "$CNFFILES" ] ; then # no config files are found, remove texmf.cnf if it is there rm -rf /etc/texmf/web2c/texmf.cnf exit 0 fi if [ "${VERBOSE}" = "true" ]; then if [ -f "${TXMF_CNF}" ]; then echo -n "Merging information from /etc/texmf/texmf.d/ into ${TXMF_CNF} ... " >&2 else echo -n "Generating ${TXMF_CNF} ... " >&2 fi fi cat > ${TMPTXMF} <&2 echo "%%% IGNORED: $i" >> ${TMPTXMF} continue fi echo "%%% From file: $i" >> ${TMPTXMF} cat $i >> ${TMPTXMF} echo "%%% End of file: $i" >> ${TMPTXMF} done mkdir -p ${TXMF}/web2c cp ${TMPTXMF} ${TXMF_CNF} rm -r ${TMPDIR} chmod 644 ${TXMF_CNF} if [ "${VERBOSE}" = "true" ]; then echo "done" fi # # Let vim know that we don't want tabs # vim:set expandtab: # tex-common-4.04/scripts/dh_installtex0000755000000000000000000005434712157017604014714 0ustar #!/usr/bin/perl -w # dh_installtex --- register Type 1 fonts, languages, or formats with TeX # Copyright (C) 2006, 2007 Florent Rougon # Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Norbert Preining # Copyright (C) 2006, 2007 Frank Küster # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 dated June, 1991. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA. # =head1 NAME dh_installtex - register Type 1 fonts, hyphenation patterns, or formats with TeX =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] [B<-n>] [B<--priority=>I] [B<--flavor=>I[,I]] [BI] [BI] [BI] [BI[=I]] [BI,I[,lhm=I][,rhm=I][,synonym=I,...]] [BI[=I]] [BI,I,I,I] [BI[=I]] =head1 DESCRIPTION dh_installtex is a debhelper program that is responsible for updating the ls-R databases, registering map files, new formats, and new hyphenation patterns with TeX. Your package should depend on an appropriate version of tex-common so that the update-* commands are available. (This program adds that dependency to ${misc:Depends}.) B This program does B check for the actual existence of any input files in TEXMF trees. If you call it without any further specification on which packages to work on (using C<-p> or C<-N>) it will add calls to management functions to B packages. In this case don't forget to add ${misc:Depends} to all packages' dependencies. =head1 SIMPLE USAGE: Registering Files If you only install files into /usr/share/texmf and want to be sure that mktexlsr is called in a correct way (e.g., also in the postrm script when there is no functional mktexlsr), simply call dh_installtex =head1 COMPLEX USAGE: Registering fonts, hyphenation patterns and formats If in addition, you have to install map files, hyphenation patterns for additional languages, or format definitions you can use three different methods to specify what should be installed: 1) B
 These files can be specified with the
different Ifile= options, together with an optional priority.
I can be one of map, format and hyphen, and these files will be
installed into /etc/texmf/I/ for the respective type (updmap.d for
map files, hyphen.d for hyphenation pattern files, and fmt.d for format files).

Example:

        dh_installtex mapfile=foo.cfg formatfile=debian/bar.cnf=42

would install foo.cfg as /var/lib/tex-common/fontmap-cfg/texmf/foo.cfg, 
and debian/bar.cnf as /etc/texmf/fmt.d/42bar.cnf.


2) B
You can specify maps, formats, and hyphenations on the cmd line. The items
are stored in the respective config file 20package

Example:

        dh_installtex map=Map,foo.map hyphen=ngerman-x-2011-07-01,dehyphn-x-2011-07-01.tex,hyph-de-1996.pat.txt,lhm=2,rhm=2,synonym=ngerman-x-latest,exceptions=hyph-de-1996.hyp.txt

would install a file /var/lib/tex-common/fontmap-cfg/texmf/package.cfg containing the line

        Map foo.map

and a file /etc/texmf/hyphen.d/20package.cnf containing the lines

    name=ngerman-x-2011-07-01 file=dehyphn-x-2011-07-01.tex file_patterns=hyph-de-1996.pat.txt lefthyphenmin=2 righthyphenmin=2 synonym=ngerman-x-latest file_exceptions=hyph-de-1996.hyp.txt

3) B
You create a file debian/package.maps or debian/maps,
debian/package.hyphens or debian/hyphens, 
debian/package.formats or debian/formats. These files are
installed with default priority and the name of the package. Each of these
files will be installed into the first package dh_installtex
is told to act on. By default this is the first binary package in
debian/control, but if you use -p, -i, or -a flags, it will be the first
package specified by those flags.

Example:

        dh_installtex

would install a present debian/package.formats file as
/etc/texmf/fmt.d/20package.cnf.


=head2 Mixing the different variants

The command line items (Variant 2) are merged into the debian/package.maps 
(debian/package.hyphens, debian/package.formats)
file and the merged file is installed as 20package.cfg/cnf. If you specify
an additional package.cfg/cnf (Variant 1) without a different priority than
the default one on the cmd line, this will raise an error since both files
would be installed as 20package.cfg/cnf. You can only specify 
package.cfg/cnf without
a different priority than the default one if no debian/package.maps nor
any command line Map files are present.

=head2 The pseudo-comment

If the provided cfg files do not contain the pseudo-comment as described
in the Debian TeX Policy, Font configuration, an additional header with
explanation, warning and the pseudo-comment is added.

This program automatically generates the postinst and postrm commands needed
to register the fonts with TeX.  See L for an explanation
of how this works.

=head1 OPTIONS

=over 4

=item B<-n>, B<--noscripts>

Do not modify postinst/prerm scripts.

=item B<--priority=>I

Set the default priority to I instead of 20.

=item B<--flavor=>I[,I]

This option is used to select a different tree then the default
/usr/share/texmf, and to switch on additional options. The argument
specify a list from flavors to be selected.
At the moment you can select from the following list of flavors:
B,
B, B, 
B, B>, and
B.

B will select the tree /usr/share/texlive/texmf-dist and
should only be used for files installed into this tree.

B will create a file I for each active
(i.e. uncommented) map in each of the cfg file generated by one of the
three methods described above. These files are installed in
/usr/share/texmf/dvips/config/.

If you select B the script will generate I
even for those map files which are present in a cfg file, but deactivated by a comment.

The file I is used when called by `dvips -Pbar ...'. Thus it
allows the activation of single map files even if they are not automatically
activated via the updmap(-sys) mechanism.

Default is I to generate any config files.

B will add code to the postinst script to create all
defined formats, and to the postrm script to clean and recreate? FIXME?
the generated formats.

B> allows to add the generation of a specific
format without actually providing it (in a cnf file).  This is useful if a 
package adds hyphenation patterns to an existing formats.

B:
Usually, for every format that is specified in a configuration file in
/etc/texmf/fmt.d/, dh_installtex will create a symlink
/usr/bin/I that points to the corresponding engine.  For
example, /usr/bin/latex would be created as a symlink to pdftex.  

The flavor B inhibits this. If a link already
exists, dh_installtex will skip this format with an informational
message, even if this option is not given.

B: Recreate the lsr database not only for the standard trees,
but also the distribution tree C and
C.

=back

=head1 NOTES

"dh_installtex" adds a dependency relation onto tex-common to misc:Depends.
If files are installed into /usr/share/texmf/doc, the version is >=4,
otherwise >=3.

Note that this command is not idempotent. "dh_clean -k" should be called
between invocations of this command, unless using the B<-n> option.
Otherwise, it may cause multiple instances of the same text to be added
to maintainer scripts.

Please refer to the Debian TeX policy for details about fonts configuration
for TeX by Debian packages.


=cut

init(options => { "flavor=s" => \$dh{FLAVOR} });




#
# GLOBAL VARIABLES
#
my $flavor;		
my $mapdoconfig =  0;	  # doconfig depending map/subflavor
my $doallformats = 0;	  # depending on flavor format:build_all
my $dofulllsr = 0;        # do include texmf-texlive in lsr making
my @addbuildformats = (); # additional formats to be build
my $priority=20;	# priority with which files are installed
my $doformatlinks = 1;
my $texmftree = "texmf";
my %cmdlineargs;
my %cmdlinefiles;
my %cmdlinefilespriority;
my @cmdlinetexmftrees;

#
# definitions for the different flavors
#
# extension of package files debian/$package.formats and/or debian/formats etc
my %pkgfileext = ( 
	hyphen 		=> "hyphens", 
	format 		=> "formats", 
	map 		=> "maps" );
# extension of the config files
my %configfileext = ( 
	hyphen	 	=> "cnf", 
	format 		=> "cnf", 
	map 		=> "cfg" );
# comment char for magic header
my %commentchar = ( 
	hyphen	 	=> '%', 
	format 		=> '#', 
	map 		=> '#' );
# directory under /etc/texmf/ where files are installed
my %configdir = ( 
	hyphen	 	=> "hyphen.d", 
	format 		=> "fmt.d", 
	map 		=> "updmap.d" );
# directory under /var/lib/tex-common where list files are installed
my %managedir = ( 
	hyphen	 	=> "hyphen-cnf", 
	format 		=> "fmtutil-cnf", 
	map 		=> "fontmap-cfg" );
#
# dummy loop variables
my $i;
my $bn;
my $pr;
my $dofilen;

# the magic header without comment chars
my @magicheader = ( "You can change/add entries to this file and changes will be preserved", 
"over upgrades, even if you have removed the main package prior",
"(not if you purged it). You should leave the following pseudo comment",
"present in the file!",
"-_- DebPkgProvidedMaps -_-", "");

#
# collect data
# This function is used to extract certain information from the respective
# config files. Up to now we have to do the following:
# for config file for maps
# 	if we select to generate all dvips config files
# 	(with map:config_for_active_maps or map:config_for_all_maps)
# 	we collect the map files
# for config file for formats
# 	we extract format\tengine for
# 		- generation with fmtutil-sys --byfmt
# 		- creation of links /usr/bin/format -> /usr/bin/engine
sub collect_data {
	my ($type,$dataref,$entry) = @_;
	my $m;

	if ($type eq "map") {
		if ($m = extract_map($entry, $mapdoconfig)) { push @$dataref, $m; }
	} elsif ($type eq "format") {
		if ($m = extract_format($entry)) { push @$dataref, $m; }
	} 
	# TODO should we do something with hypehn here!????
}

sub extract_format {
	my ($line) = @_;
	if ($line =~ m/^([^#\s]\S+)\s*(\S*)\s+/) {
		return "$1\t$2";
	}
}

sub extract_map {
	my ($line,$mapdoconfig) = @_;
	if ($mapdoconfig == 0) { return ""; }
	if ($line =~ m/^[[:space:]]*([#[:space:]]*)[[:space:]]*(Mixed|Kanji)?Map[[:space:]]*(.*\.map)[[:space:]]*(#.*)?$/) {
		my $comment = $1;
		my $map = $3;
		if (($comment eq "") || ($mapdoconfig == 2)) {
			return $map;
		}
	}
	return "";
}

#
# build_line
# used to create a correct config file entry from a cmd-line specification
sub build_line {
	my ($type,$line) = @_;
	if ($type eq "map") {
		if ($line =~ m/^(Map|MixedMap|KanjiMap),(.*)$/) {
			return("$1 $2");
		} else {
			error("$line is neither of the form Map filename.map, nor MixedMap filename.map.");
		}
	} elsif ($type eq "format") {
		my ($format,$engine,$pat,@rest) = split(",",$line);
		my $ret = "$format\t$engine\t$pat\t" . join(",",@rest);
		return($ret);
	} elsif ($type eq "hyphen") {
		my ($lang,$loader,$pat,@rest) = split(",",$line);
		my $ret="name=$lang file=$loader file_patterns=$pat";
		my @synonyms = ();
		my $lhm;
		my $rhm;
		my $exceptions;
		foreach (@rest) {
			my ($a,$b) = split("=", $_, 2);
			if ($a eq "lhm") {
				$lhm = $b;
			} elsif ($a eq "rhm") {
				$rhm = $b;
			} elsif ($a eq "synonym") {
				push @synonyms, $b;
			} elsif ($a eq "exceptions") {
				$exceptions = $b;
			} else {
				error("$line is not well formed.");
			}
		}
		$ret .= " lefthyphenmin=$lhm" if defined($lhm);
		$ret .= " righthyphenmin=$rhm" if defined($rhm);
		$ret .= " file_exceptions=$exceptions" if defined($exceptions);
		if ($#synonyms >= 0) {
			$ret .= " synonyms=" . join(",",@synonyms);
		}
		$ret .= "\n";
		return($ret);
	}
}

#
# check wether a magic comment is already present
sub magic_comment_present {
	my ($fname) = @_;
	my @args = ( "grep", "-q", "^[#%] -_- DebPkgProvidedMaps -_-", $fname );
	if (system(@args) == 0) { return 1; }
	return 0;
}

#
#
# START OF THE MAIN PROGRAM
#
#

if (defined($dh{PRIORITY}) && $dh{PRIORITY} ne '') {
	$priority=$dh{PRIORITY};
}

#
# parse the cmd line and fill in the various hashes
#
foreach (@ARGV) {
	if ((m/^(map)file=(.*\.cfg)(=([[:digit:]]+))?$/) ||
	    (m/^(hyphen)file=(.*\.cnf)(=([[:digit:]]+))?$/) ||
	    (m/^(format)file=(.*\.cnf)(=([[:digit:]]+))?$/)) {
		my $type=$1;
		my $fn=$2;
		my $pr=$priority;
		if (defined($4)) {
			$pr=$4;
		}
		$cmdlinefilespriority{$type}{$fn}=$pr;
	} elsif (m/^(map|hyphen|format)=(.*)$/) {
		push @{$cmdlineargs{$1}}, $2;
	} else {
		error("Unrecognized argument: $_\n");
	}
}

#
#
if (defined($dh{FLAVOR})) {
	foreach my $fl (split (/,/,$dh{FLAVOR})) {
		if ($fl eq "map:config_for_active_maps") {
			$mapdoconfig = 1;
		} elsif ($fl eq "map:config_for_all_maps") {
			$mapdoconfig = 2;
		} elsif ($fl eq "format:build_all") {
			$doallformats = 1;
		} elsif ($fl =~ /^format:add_one:(.*)$/) {
			push @addbuildformats , $1;
		} elsif ($fl eq "format:no_links") {
			$doformatlinks = 0;
		} elsif ($fl eq "lsr:full") {
			$dofulllsr = 1;
		} elsif ($fl eq "tree:texlive") {
			$texmftree = "texlive";
		} else {
			error("Specified flavor $fl not supported.\nPlease see man page for supported flavors!\n");
		}
	}
}



foreach my $package (@{$dh{DOPACKAGES}}) {
	# these variables should be local to the loop over packages
	# as they vary with package
	my $tmp=tmpdir($package);
	my %pkgprovidedfilecontents;
	my %data;
	my @whattodo = ();
	my @fmtconffiles;

	if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
		# we do nothing here
	} else {
		# we have to clear all the cmd line arguments!
		%cmdlinefilespriority = ();
		%cmdlineargs = ();
	}

	foreach my $type ("map", "hyphen", "format") {
		my @cmdlineconfigfiles = ();
		my @cmdlinearguments = ();
		my $pkgprovidedfile = 0;
		my $pkgfileoncmdline = 0;
		my @listlines;
		my $pkgfilename = pkgfile($package,$pkgfileext{$type});
		if ($pkgfilename) {
			open(FOO, "<$pkgfilename") || error("$pkgfilename cannot be opened.");
			my @bar = ;
			close(FOO);
			$pkgprovidedfilecontents{$type} = \@bar;
			$pkgprovidedfile = 1;
		}
		if (defined($cmdlinefilespriority{$type})) {
			my %priorityhash = %{$cmdlinefilespriority{$type}};
			@cmdlineconfigfiles = keys(%priorityhash);
		}
		if (defined($cmdlineargs{$type})) {
			@cmdlinearguments = @{$cmdlineargs{$type}};
		}
		foreach my $foo (@cmdlineconfigfiles) {
			my $bn=basename($foo);
			if ($bn eq "$package.$configfileext{$type}" && $cmdlinefilespriority{$type}{$foo} == $priority) {
				$pkgfileoncmdline = 1;
			}
		}
		if (!$pkgprovidedfile && ($#cmdlineconfigfiles < 0) && ($#cmdlinearguments < 0)) {
			# we have nothing to do here, skip to the next one!
			next;
		}
		# we got something, either a cmd line are for one of the
		# config files, or a package (e.g., debian/pkg.maps) file 
		# do the full maintainer stuff!
		push @whattodo, $type;
		if ($pkgfileoncmdline && ($pkgprovidedfile || ($#cmdlinearguments >= 0))) {
			error("This call would create multiple copies of $priority$package.$configfileext{$_}.\nPlease read the man page on how this should be fixed!\n");
		}

		my $targetdir = "$tmp/etc/texmf/$configdir{$type}";
		if ($type eq "map") {
			$targetdir = "$tmp/var/lib/tex-common/$managedir{$type}/$texmftree";
		}
		if ( ! $dh{ONLYSCRIPTS} && ! -d $targetdir) {
			doit("install", "-d", $targetdir);
		};
		#
		# the cmd line cfg files
		#
		foreach (@cmdlineconfigfiles) {
			$bn=basename($_);
			$pr=$cmdlinefilespriority{$type}{$_};
			if ($type eq "map") {
				$dofilen = "$targetdir/$bn";
			} else {
				$dofilen = "$targetdir/$pr$bn";
			}
			WRITECMDLINECFGFILE: do {
				-r $dofilen &&
					error("The config file $dofilen already exists! Cannot recreate it, please call dh_clean -k!");
				open(CFGFILE, ">$dofilen") ||
					error("Cannot open $dofilen for writing!");
				verbose_print("Writing $dofilen");
				if (($type ne "map") && !magic_comment_present($_)) {
					print CFGFILE "$commentchar{$type} $pr$bn\n";
					foreach $i (@magicheader) {
						print CFGFILE "$commentchar{$type} $i\n";
					}
				}
				open(FOO,"<$_") || error("Cannot open $_ for reading!");
				while () { 
					print CFGFILE $_; 
					collect_data($type,\@{$data{$type}},$_);
				}
				close(FOO);
				close(CFGFILE);
				$bn =~ s/\.$configfileext{$type}$//;
				push @listlines, "$pr$bn";
			} unless ($dh{ONLYSCRIPTS});
		}
		#
		# now debian/package.maps and/or debian/maps formats languages
		# merge in the cmd line arguments
		#
		if ( ! $dh{ONLYSCRIPTS} && ( $pkgprovidedfile || ($#cmdlinearguments >= 0) )) {
			my $basefile = "$priority$package.$configfileext{$type}";
			$basefile = "$package.$configfileext{$type}" if ($type eq "map");
			$dofilen = "$targetdir/$basefile";
			-r $dofilen && 
				error("The config file $dofilen already exists! Cannot recreate it, please call dh_clean -k!");
			open(CFGFILE, ">$dofilen") || 
				error("Cannot open $dofilen for writing!");
			verbose_print("Writing $dofilen");
			if ($type ne "map") {
				if (($pkgprovidedfile &&  
					 !magic_comment_present($pkgfilename)) ||
					(!$pkgprovidedfile && ($#cmdlinearguments >= 0))) {
					print CFGFILE "$commentchar{$type} $basefile\n";
					foreach (@magicheader) {
						print CFGFILE "$commentchar{$type} $_\n";
					}
				}
			}
			foreach (@{$pkgprovidedfilecontents{$type}}) {
				print CFGFILE "$_";
				collect_data($type,\@{$data{$type}},$_);
			}
			foreach (@cmdlinearguments) {
				my $foo =  build_line($type,$_);
				print CFGFILE $foo,"\n";
				collect_data($type,\@{$data{$type}},$foo);
			}
			close(CFGFILE);
			push @listlines, "$priority$package";
		};

		WRITELISTFILE: do {
			if ( ! -d "$tmp/var/lib/tex-common/$managedir{$type}/") {
				doit("install","-d","$tmp/var/lib/tex-common/$managedir{$type}/");
			}		
			$dofilen = "$tmp/var/lib/tex-common/$managedir{$type}/$package.list";
			open(LISTFILE, ">>$dofilen") ||
				error("Cannot open $dofilen for writing/appending!");
			verbose_print("Writing $dofilen");
			foreach (@listlines) {
				print LISTFILE "$_\n";
			}
			if ($type eq "format") {
				@fmtconffiles = @listlines;
			}
			close(LISTFILE);
		}  unless (($type eq "map") || $dh{ONLYSCRIPTS});
	}
	
	my @mapdata = ();
	if (defined($data{"map"})) {
		@mapdata = @{$data{"map"}};
	}
	if ( ! $dh{ONLYSCRIPTS} && ($#mapdata >= 0) ) {
		doit("install","-d","$tmp/usr/share/texmf/dvips/config/");
	};
	INSTALLDVIPSCONF: do {
		foreach $i (@mapdata) {
			my $font = $i;
			$font =~ s/\.map$//;
			$dofilen = "$tmp/usr/share/texmf/dvips/config/config.$font";
			-r $dofilen &&
				error("The dvips config file $dofilen already exists!\nYou may have to call dh_clean -k!\n");
			open(CNFFILE, ">$dofilen") ||
				error("Cannot open $dofilen for writing!");
			verbose_print("Writing $dofilen");
			print CNFFILE "p +$i\n";
			close(CNFFILE);
		} 
	} unless ($dh{ONLYSCRIPTS});

	my @fmtpairs = ();
	my @fmtdata = ();
	my @postrmfmtdata = ();
	if (defined($data{"format"})) {
		@fmtpairs = @{$data{"format"}};
	}
 	installformatlink: do {
		foreach my $pair (@fmtpairs) {
			my ($format,$engine) = $pair =~ m/^(.*)\t(.*)$/;
			if ($engine =~ m/^(mf|mf-nowin)$/) {
				push @postrmfmtdata, "metafont/$format";
			} elsif ($engine eq "mpost") {
				push @postrmfmtdata, "metapost/$format";
			} else {
				push @postrmfmtdata, "$engine/$format";
			}
			push @postrmfmtdata, "$format";
			push @fmtdata, "$format";
			if ($doformatlinks && ($format ne $engine)) {
				my $formatlink = "$tmp/usr/bin/$format";
				if ( -l $formatlink ) {
					if (readlink($formatlink) eq $engine) {
						# correct link generated, only give message
						warning ("/usr/bin/$format link already correctly created, skipping recreation");
					} else {
						# it is a link but pointing to something different
						# error out
						error ("/usr/bin/$format link points to something different but $engine!");
					}
				} elsif ( -e $formatlink ) {
					error ("/usr/bin/$format already exists and not a link, exiting");
				} else {
					doit("mkdir","-p","$tmp/usr/bin");
					doit("ln","-s","$engine","$formatlink");
		  		};
			}
		} 
	} unless ($dh{ONLYSCRIPTS});

	if ($#addbuildformats >= 0) {
		push @fmtdata, @addbuildformats;
		push @postrmfmtdata, @addbuildformats;
	}
	if ($doallformats == 1) {
		# in case we have allformats to do we ignore
		# 	language and format
		my @newwhat = ();
		push @newwhat, "allformats";
		foreach my $t (@whattodo) {
			if ($t eq "map") {
				push @newwhat, $t;
			}
		}
		@whattodo = @newwhat;
		# also include the full code
	}
	if (! $dh{NOSCRIPTS}) {
		push @whattodo, ($dofulllsr ? "lsrfull" : "lsr");
		autoscript($package, "postinst", "postinst-tex", "s|#FORMATSFILES#|@fmtconffiles|; s|#WHATTODO#|@whattodo|");
		# map entries have already been filtered out
		autoscript($package, "postrm",   "postrm-tex", "s|#FORMATS#|@postrmfmtdata|; s|#WHATTODO#|@whattodo|");
	}

	# deduce dependency level
	# from v3 to v4 we removed the link 
	# /usr/share/texmf/doc -> /usr/share/doc/texmf
	# thus, if packages are installing files into /usr/share/texmf/doc
	# then it should depend on tex-common >= 4, otherwise >=3 is enough
	my $tcvers = ">= 3";
	if (-d "$tmp/usr/share/texmf/doc") {
		$tcvers = ">= 4";
	}

	# for trigger support
	addsubstvar($package, "misc:Depends", "dpkg", ">= 1.14.18");
	addsubstvar($package, "misc:Depends", "tex-common", $tcvers);
}

=head1 SEE ALSO

L

=head1 AUTHOR

This program and its documentation was written by
Norbert Preining > for the Debian Operating System
and both are licensed under the GNU General Public License Version 2 or later.

=cut

### Local Variables:
### perl-indent-level: 4
### tab-width: 4
### indent-tabs-mode: t
### End:
# vim:set tabstop=4 autoindent fileencoding=utf-8: #
tex-common-4.04/scripts/update-texmf-config.80000644000000000000000000000247412157017604016055 0ustar  .TH UPDATE-TEXMF-CONFIG 8
.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
.\" other parms are allowed: see man(7), man(1)
.SH NAME
update-texmf-config \- script used in maintainer scripts to trigger tex-common actions
.SH SYNOPSIS
.B update-texmf-config
.I "[options]"
.br
.SH DESCRIPTION
This manual page documents briefly the
.BR update-texmf-config
command.
This manual page was written for the Debian GNU/Linux distribution
because the original script was designed for Debian packaging system.
.PP
.B update-texmf-config
is a shell script that is called from maintainer scripts shipping new
map files, hyphenation patterns, or any other TeX input
file.
.PP
The script simply activates the respective trigger, namely texmf-map
for font map files, texmf-hyphen for hyphenation patterns, and 
texmf-lsr for updates to the lsr database. All
the necessary action will then be carried out by the tex-common package.
.SH OPTIONS
.TP
.B map
Activate the texmf-map trigger.
.TP
.B hyphen
Activate the texmf-hyphen trigger.
.TP
.B lsr
Activate the texmf-lsr trigger.

.SH SEE ALSO
.PP
Further information can be found in
/usr/share/doc/tex-common/README.Debian.{txt,pdf.html}
.PP
.SH AUTHOR
This manual page was written by Norbert Preining ,
for the Debian GNU/Linux system (but may be used by others).
tex-common-4.04/scripts/tex.pm0000644000000000000000000000025112157017604013243 0ustar  #!/usr/bin/perl
# debhelper sequence file for tex-common script

use warnings;
use strict;
use Debian::Debhelper::Dh_Lib;

insert_after("dh_link", "dh_installtex");

1;
tex-common-4.04/scripts/update-updmap.80000644000000000000000000002132312157017604014747 0ustar  .Dd Jul 19, 2005
.Os Debian
.Dt UPDATE-UPDMAP 8 SMM
.Sh NAME
.Nm update-updmap
.Nd generate
.Pa updmap.cfg
from files in
.Pa /etc/texmf/updmap.d/
.Sh SYNOPSIS
.Nm
.Bk
.Op Ar option ...
.Ek
.Sh DESCRIPTION
This manual page documents
.Nm ,
a program that was written for the Debian distribution.
.Ss Overview
.Nm
is used to generate
.Xr updmap 1 Ns 's
and 
.Xr updmap-sys 8 Ns 's
site-wide configuration file,
.Pa /var/lib/texmf/web2c/updmap.cfg ,
or the per-user configuration file,
.Pa TEXMFCONFIG/web2c/updmap.cfg ,
from the files with names ending in
.Ql .cfg
located in
.Pa /etc/texmf/updmap.d/ .
.Pp
The base TeX packages (texlive-) provide files in
.Pa /etc/texmf/updmap.d/ ,
which define the base contents of the to\-be\-generated
.Pa /var/lib/texmf/web2c/updmap.cfg
(general settings and base fonts), or the per-user file 
.Pa TEXMFCONFIG/web2c/updmap.cfg .
With the underlying mechanism, system
administrators can disable the map files they want by commenting their
entries in the appropriate files under
.Pa /etc/texmf/updmap.d/ .
Such changes will be preserved if the package in question is removed
(not purged) and then reinstalled.
.Pp
Users without local administration rights can use 
.Nm
to merge their local configuration and an updated site-wide
configuration (see 
.Sx User-specific configuration 
below).  The local configuration files, unless specified otherwise, are
expected in 
.Pa $TEXMFCONFIG/updmap.d ,
(that is
.Pa ~/.texmf-config/updmap.d ),
and the default output file is
.Pa $TEXMFVAR/web2c/updmap.cfg
(in other words,
.Pa ~/.texmf-var/web2c/updmap.cfg ).
.Pp
Thanks to
.Nm ,
TeX-related font packages can have their own font map files referenced in
.Pa /var/lib/texmf/web2c/updmap.cfg
without having to edit that file.  The packages simply have to ship their map files (e.g.,
.Pa foo.map )
in
.Pa /etc/texmf/map/dvips/
and one or more
.Ql .cfg
file(s) under
.Pa /etc/texmf/updmap.d/
(e.g.,
.Pa  10foo.cfg )
referencing the map files.
.Ss "Mode of operation"
.Nm
concatenates all the
.Ql .cfg
files under
.Pa /etc/texmf/updmap.d/
provided that:
.Bl -dash -offset indent -compact
.It
they do not contain the following pseudo-comment:
.Bd -literal -offset indent
# -_- DebPkgProvidedMaps -_-
.Ed
.Pp
or;
.It
they have this pseudo-comment, are up-to-date (i.e., the same file
with suffix
.Ql .dpkg-new
doesn't exist) and are listed in a
.Ql .list
file under
.Pa /var/lib/tex-common/fontmap-cfg/ ,
meaning that the package shipping the
.Ql .cfg
file is installed. The name of the
.Ql .list
file is ignored (but should be the name of the package that installed
it). The file should contain the names of the 
.Ql .cfg
files in 
.Pa /etc/texmf/updmap.d/
that should be enabled, without the
.Ql .cfg
suffix, e.g. 
.Bd -literal -offset indent
10foo
12bar
.Ed
.El
.Pp
The first case is for configuration files added by the local system
administrator. Files that contain the magic pseudo-comment should be
used by Debian packages. In this case, only the base name should appear
in the
.Ql .list
file: for instance,
.Ql 10foo
for
.Pa /etc/texmf/updmap.d/10foo.cfg ;
please refer to the Debian TeX Policy for details.
.Ss "Names for configuration files"
Filenames should begin with two digits and must have the extension 
.Ql .cfg .
The order used to process the
files is obtained by running
.Xr sort 1
with the
.Sq C
locale (for ordinary alphanumeric characters, it corresponds to the
.Tn ASCII
order).  The result obtained by concatenating them is stored as the new
.Pa updmap.cfg .
Note that 
.Xr updmap 1 Ns 
and
.Xr updmap-sys 8 Ns
don't care about the order of entries, the sorting is just for the
user's convenience.
.Pp
If you want to be able to use
.Xr updmap 1 Ns 's
or
.Xr updmap-sys 8 Ns 's
option
.Fl -enable
and 
.Fl -setoption ,
some further 
.Sy Restrictions
apply to the filenames used and the way
entries are distributed among these files.  For
.Fl -setoption
to work, the options (like 
.Ev dvipsPreferOutline )
must be kept in a file named 
.Pa 00updmap.cfg ,
either
in 
.Pa /etc/texmf/updmap.d/
as installed by the 
.Nm tex-common
package, or in the 
.Va conf-dir
you specified.  If you use 
.Fl -enable
.Ar Map some.map
and there is no mention of 
.Ar some.map
in any file in 
.Pa /etc/texmf/updmap.d/
(and in 
.Va conf-dir ,
if specified), then the Map line will be introduced in a file whose name matches 
.Pa *local*.cfg
if it exists, or
.Pa 99local.cfg
will be created (in 
.Va conf-dir
if specified).  For this to work, you cannot have more than one file
that matches that name, except that you can use
.Pa conf-dir/*local.cfg
to supersede the site-wide file in 
.Pa /etc/texmf/updmap.d/ .
.Pp
In order to enable a Map file that already is listed in your
configuration files, it must be commented with the string '#! '.  This
is the sort of lines that
.Dl updmap --disable some.map
will produce - see also
.Xr updmap.cfg 5 Ns .
If such a line occurs in more than one file,
.Xr updmap 1 Ns 
 will fail.  Again the exception is a file in
.Pa conf-dir
that shadows entries in a site-wide file.
.Pp
Although not strictly mandatory, it is wise to keep corresponding Map
entries in files with the same name in 
.Pa conf-dir
and the site-wide dir.  Otherwise, the results may seem unpredictable.
.Ss "User-specific configuration"
If you want a different configuration for
.Xr updmap 1 Ns
 than the setup at your site provides, you can place changed copies of
the configuration files from
.Pa /etc/texmf/updmap.d/
in a directory below 
.Va $TEXMFCONFIG ,
or create additional files there.  Per default, files are looked for in
.Pa $TEXMFCONFIG/updmap.d ,
where
.Ev $TEXMFCONFIG
is
.Pa ~/.texmf-config
unless the configuration has been changed.  When you call
.Nm
as a user,  it will produce a user-specific 
.Pa updmap.cfg
file as follows: if files with the same name exist in both directories,
the version in
.Pa ~/.texmf-config/updmap.d/
will be used; files with unique names will be used from either
directory. 
.Pp
If you want to keep your files elsewhere, specify their location with
options (see 
.Sx OPTIONS
below).
.Sh OPTIONS
.Bl -tag -width ".Fl -version"
.It Fl c, -conf-dir Ev conf-dir
in user-specific mode, use configuration files from 
.Ev conf-dir
instead of 
.Pa $TEXMFCONFIG/updmap.d/
.It Fl  o, -output-file Ev outputfile
in user-specific mode, generate 
.Ev outputfile
instead of
.Pa $TEXMFVAR/web2c/updmap.cfg
.It Fl -check
Executes additional checks that all necessary files are present in the
kpathsea database. Don't use this in maintainer scripts.
.It Fl -quiet
don't write anything to the standard output during normal operation
.It Fl -help
print a summary of the command-line usage of
.Nm
and exit
.It Fl -version
output version information and exit
.El
.Pp
Note that the
.Fl v
option, which turns on verbose mode, is deprecated.  We are currently in a
transition phase where quiet mode is still the default (therefore,
.Fl -quiet
has no effect), but
.Nm
will be verbose by default as soon as enough packages use
.Fl -quiet
in their maintainer scripts.
.Sh "SYNTAX FOR THE .CFG FILES"
The
.Ql .cfg
files under
.Pa /etc/texmf/updmap.d/
should contain valid configuration lines for
.Xr updmap 1 .
Usually, they will consist of lines of following one of these forms:
.Bd -literal -offset indent
Map 
MixedMap 
.Ed
.Pp
The
.Li MixedMap
form should only be used if the font is available in both bitmap and scalable
formats (this way, it won't be declared in the default map file for Dvips that
is used
when
.Li dvipsPreferOutline
is set to
.Ql false
in
.Pa updmap.cfg ) .
.Pp
The following comment (from
.Xr updmap 1 Ns 's
point of view):
.Bd -literal -offset indent
# -_- DebPkgProvidedMaps -_-
.Ed
.Pp
is treated in a particular way by
.Nm
(see section
.Sx "Mode of operation"
above) and should be used in every
.Ql .cfg
file provided by a Debian package.  This ensures that the corresponding
map files are disabled when the package is removed and reenabled when
the package is reinstalled.
.Sh FILES
.Bd -unfilled -offset left -compact
.Pa /etc/texmf/updmap.d/00updmap.cfg
.Pa /etc/texmf/updmap.d/*.cfg
.Pa /var/lib/texmf/web2c/updmap.cfg
.Pa /var/lib/tex-common/fontmap-cfg/*.list
.Ed
.Sh DIAGNOSTICS
.Nm
returns 0 on success, or a strictly positive integer on error.
.Sh SEE ALSO
.Xr updmap 1
.Pp
.Bd -unfilled -offset left -compact
.Pa /usr/share/doc/tex-common/README.Debian.{txt,pdf,html}
.Pa /usr/share/doc/tex-common/Debian-TeX-Policy.{txt,pdf,html}
.Pa /usr/share/doc/tex-common/TeX-on-Debian.{txt,pdf,html}
.Ed
.Sh AUTHORS
This manual page was written by
.An -nosplit
.An Atsuhito Kohda Aq kohda@debian.org
and updated by
.An "Florent Rougon" Aq f.rougon@free.fr
and 
.An "Frank Kuester" Aq frank@debian.org
for the Debian distribution (and may be used by others).
.\" For Emacs:
.\" Local Variables:
.\" fill-column: 72
.\" sentence-end: "[.?!][]\"')}]*\\($\\| $\\|	\\|  \\)[ 	\n]*"
.\" sentence-end-double-space: t
.\" End:
tex-common-4.04/scripts/update-texmf-config0000644000000000000000000000320112157017604015674 0ustar  #!/bin/sh -e
#
# update-texmf-config
# script used in maintainer script for updating the config files
# updmap.cfg, language.dat, fmtutil.cnf, and calling the respective
# triggers to allow tex-common trigger action to be run.
#
# Copyright (C) 2009 Norbert Preining
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 dated June, 1991.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301 USA.

DOLSR=off
DOLSRFULL=off
DOHYPHEN=off
DOUPDMAP=off

# for upgrading purpose we accept language as synonym for hyphen, and
# updmap for map
while [ $# -ne 0 ]; do
  case $1 in
    hyphen|language)
      DOHYPHEN=on
      shift;;
    map|updmap)
      DOUPDMAP=on
      shift;;
    lsr)
      DOLSR=on
      shift;;
    lsrfull)
      DOLSR=off
      DOLSRFULL=on
      shift;;
    *)
      echo "unknown option: $1"
      exit 1
      ;;
  esac
done

if [ $DOLSR = on ] ; then
  dpkg-trigger texmf-lsr
fi
if [ $DOLSRFULL = on ] ; then
  dpkg-trigger texmf-lsrfull
fi
if [ $DOHYPHEN = on ] ; then
  dpkg-trigger texmf-hyphen
fi
if [ $DOUPDMAP = on ] ; then
  dpkg-trigger texmf-map
fi

# vim:set expandtab tabstop=2: #
tex-common-4.04/scripts/update-fmtlang0000755000000000000000000007226312157017604014757 0ustar  #!/bin/bash -e
#
# update-fmtlang --- Generate updmap.cfg, language.dat, fmtutil.cnf etc
#                     from a set of files
# Copyright (C) 2002 Atsuhito Kohda
# Copyright (C) 2004, 2005, 2006, 2007 Florent Rougon
# Copyright (C) 2005, 2006, 2009, 2010, 2011, 2012 Norbert Preining
# Copyright (C) 2007 Frank Küster
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 dated June, 1991.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301 USA.

version="1.0"
progname=$(basename "$0")

SYSPATH_BASE=/var/lib/texmf

HYPHENMODE=nohyphen
HEADFILE=/not/a/real/file/we/ever/will/see/on/a/system
HEADBACK=/not/a/real/file/we/ever/will/see/on/a/system

if [ "$progname" = "update-language" ] ; then
    update-language-dat
    update-language-def
    update-language-lua
    exit 0
elif [ "$progname" = "update-language-lua" ] ; then
    CNFDIR=hyphen.d
    HEADFILE=/usr/share/texlive/texmf-dist/tex/generic/config/language.us.lua
    HEADBACK=/usr/share/texlive/texmf/tex/generic/config/language.us.lua
    HYPHENMODE=luatex
    # System-wide configuration directory
    SYSWIDE_CONFDIR=/etc/texmf/$CNFDIR
    CHECKFILE="$SYSWIDE_CONFDIR/00tex.cnf"
    EXT="cnf"
    MEMORY_DIR=/var/lib/tex-common/hyphen-cnf
    PATH_COMPONENT=tex/generic/config
    SYSWIDE_VARD="$SYSPATH_BASE/$PATH_COMPONENT"
    DEFAULT_OUTPUTFILE_BASENAME=language.dat.lua
    SYSWIDE_DEFAULT_OUTPUTFILE="$SYSWIDE_VARD/$DEFAULT_OUTPUTFILE_BASENAME"
    READCC="%"                      # for COMMENTCHAR
    WRITECC="--"
    # in printf, %% is one %
    PCC="\055\055"                    # for printfCOMMENTCHAR
    SHORT_DESC="Generate language.dat.lua, the hyphenation configuration file for luaTeX and friends"
elif [ "$progname" = "update-language-def" ] ; then
    CNFDIR=hyphen.d
    HEADFILE=/usr/share/texlive/texmf-dist/tex/generic/config/language.us.def
    HEADBACK=/usr/share/texlive/texmf/tex/generic/config/language.us.def
    HYPHENMODE=etex
    # System-wide configuration directory
    SYSWIDE_CONFDIR=/etc/texmf/$CNFDIR
    CHECKFILE="$SYSWIDE_CONFDIR/00tex.cnf"
    EXT="cnf"
    MEMORY_DIR=/var/lib/tex-common/hyphen-cnf
    PATH_COMPONENT=tex/generic/config
    SYSWIDE_VARD="$SYSPATH_BASE/$PATH_COMPONENT"
    DEFAULT_OUTPUTFILE_BASENAME=language.def
    SYSWIDE_DEFAULT_OUTPUTFILE="$SYSWIDE_VARD/$DEFAULT_OUTPUTFILE_BASENAME"
    READCC="%"                      # for COMMENTCHAR
    WRITECC="%"
    # in printf, %% is one %
    PCC="%%"                    # for printfCOMMENTCHAR
    SHORT_DESC="Generate language.def, the hyphenation configuration file for eTeX and friends"
elif [ "$progname" = "update-language-dat" ] ; then
    CNFDIR=hyphen.d
    HEADFILE=/usr/share/texlive/texmf-dist/tex/generic/config/language.us
    HEADBACK=/usr/share/texlive/texmf/tex/generic/config/language.us
    HYPHENMODE=latex
    # System-wide configuration directory
    SYSWIDE_CONFDIR=/etc/texmf/$CNFDIR
    CHECKFILE="$SYSWIDE_CONFDIR/00tex.cnf"
    EXT="cnf"
    MEMORY_DIR=/var/lib/tex-common/hyphen-cnf
    PATH_COMPONENT=tex/generic/config
    SYSWIDE_VARD="$SYSPATH_BASE/$PATH_COMPONENT"
    DEFAULT_OUTPUTFILE_BASENAME=language.dat
    SYSWIDE_DEFAULT_OUTPUTFILE="$SYSWIDE_VARD/$DEFAULT_OUTPUTFILE_BASENAME"
    READCC="%"                      # for COMMENTCHAR
    WRITECC="%"
    # in printf, %% is one %
    PCC="%%"                    # for printfCOMMENTCHAR
    SHORT_DESC="Generate language.dat, the hyphenation configuration file for LaTeX"
elif [ "$progname" = "update-updmap" ] ; then
    echo "I should NOT be called this way, there is something wrong!!! ... good bye!" >&2
    exit 1
    CNFDIR=updmap.d
    # System-wide configuration directory
    SYSWIDE_CONFDIR=/etc/texmf/$CNFDIR
    CHECKFILE="$SYSWIDE_CONFDIR/00updmap.cfg"
    EXT="cfg"
    MEMORY_DIR=/var/lib/tex-common/fontmap-cfg
    PATH_COMPONENT=web2c
    SYSWIDE_VARD="$SYSPATH_BASE/$PATH_COMPONENT"
    DEFAULT_OUTPUTFILE_BASENAME=updmap.cfg
    SYSWIDE_DEFAULT_OUTPUTFILE="$SYSWIDE_VARD/$DEFAULT_OUTPUTFILE_BASENAME"
    READCC="#"
    WRITECC="#"
    PCC="#"                     # for printfCOMMENTCHAR
    SHORT_DESC="Generate an updmap configuration file"
elif [ "$progname" = "update-fmtutil" ] ; then
    CNFDIR=fmt.d
    # System-wide configuration directory
    SYSWIDE_CONFDIR=/etc/texmf/$CNFDIR
    CHECKFILE="$SYSWIDE_CONFDIR/00tex.cnf"
    EXT="cnf"
    MEMORY_DIR=/var/lib/tex-common/fmtutil-cnf
    PATH_COMPONENT=web2c
    SYSWIDE_VARD="$SYSPATH_BASE/$PATH_COMPONENT"
    DEFAULT_OUTPUTFILE_BASENAME=fmtutil.cnf
    SYSWIDE_DEFAULT_OUTPUTFILE="$SYSWIDE_VARD/$DEFAULT_OUTPUTFILE_BASENAME"
    READCC="#"
    WRITECC="#"
    PCC="#"                     # for printfCOMMENTCHAR
    SHORT_DESC="Generate an fmtutil configuration file"
else
    echo "Please call me either as update-updmap, update-language, or update-fmtutil!"
    exit 1
fi

usage="Usage: $progname [OPTION...]
${SHORT_DESC}.

Options:
  -c, --conf-dir=DIR     directory where the user-specific configuration is
                         looked for in user-specific mode
  -o, --output-file=FILE file to write the output to (default is
                         $SYSWIDE_DEFAULT_OUTPUTFILE in system-wide-mode,
                         and depends on your Kpathsea settings in
                         user-specific mode)
      --checks           perform sanity checks on the generated config file
      --quiet            don't write anything to the standard output during
                         normal operation
      --help             display this help message and exit
      --version          output version information and exit"


DebPkgProvidedMaps_magic_comment="^[#%] -_- DebPkgProvidedMaps -_-"

# This ensures that if $tempfile is in the *environment*, we won't erase
# the file it could point to in case the script is killed by a signal before
# it has had a chance to even create its temporary file.
tempfile=""


cleanup()
{
    rc=$?
    [ -n "$tempfile" ] && rm -f "$tempfile"
    exit $rc
}

do_one_hyphen_line()
{
    line="$1"
    case "$line" in
        ${READCC}*) echo "$line" | sed -e "s!^$READCC!$WRITECC !" >> "$tempfile" ; return ;;
    esac
    set -- $line
    name=""
    lhm=""
    rhm=""
    synonyms=""
    f=""
    while [ ! "$1" = "" ] ; do
        case "$1" in
            name=*) name="${1#name=}" ;;
            lefthyphenmin=*) lhm="${1#lefthyphenmin=}" ;;
            righthyphenmin=*) rhm="${1#righthyphenmin=}" ;;
            patterns=*) patterns="${1#patterns=}" ;;
            synonyms=*) synonyms="${1#synonyms=}" ;;
            exceptions=*) exceptions="${1#exceptions=}" ;;
            file=*) f="${1#file=}" ;;
            *) echo "Unknown AddHypen directive $1 in line: ==$line==!" >&2 ; return ;;
        esac
        shift
    done
    if [ "$name$lhm$rhm$synonyms$f$exceptions$patterns" = "" ] ; then
        return
    fi
    if [ ! "$lhm$rhm$synonyms$f$exceptions$patterns" = "" ] ; then
        if [ "$name" = "" ] ; then
            echo "the line $line does not contain a name= directive, ignored!" >&2
            return
        fi
    fi
    if [ ! "$name$lhm$rhm$synonyms$exceptions$patterns" = "" ] ; then
        if [ "$f" = "" ] ; then
            echo "the line $line does not contain a file= directive, ignored!" >&2
            return
        fi
    fi
    if [ "$HYPHENMODE" = "etex" ] ; then
        printf '\\'"addlanguage{$name}{$f}{}{$lhm}{$rhm}\n" >> "$tempfile"
    elif [ "$HYPHENMODE" = "latex" ] ; then
        echo "$name $f" >> "$tempfile"
    elif [ "$HYPHENMODE" = "luatex" ] ; then
       printf "\t[\' $name \'] = {\n\t\tloader = \'$f\',\n\t\tlefthyphenmin = $lhm,\n\t\trighthyphenmin = $rhm,\n\t\tpatterns = \'$patterns\',\n\t\thyphenation = \'$exceptions\',\n\t\tsynonyms = { " >> "$tempfile"
    fi
    if [ ! "$synonyms" = "" ] ; then
        {
            first=1
            OLDIFS="$IFS"
            IFS=",$IFS"
            for s in $synonyms ; do
                if [ "$HYPHENMODE" = "etex" ] ; then
                    printf '\\'"addlanguage{$s}{$f}{}{$lhm}{$rhm}\n" >> "$tempfile"
                elif [ "$HYPHENMODE" = "latex" ] ; then
                    echo "=$s" >> "$tempfile"
                elif [ "$HYPHENMODE" = "luatex" ] ; then
                    if [ $first = 0 ] ; then
                        printf ", " >> "$tempfile"
                    else 
                        first=0
                    fi
                    printf "\'$s\'" >> "$tempfile"
                fi
            done
            IFS="$OLDIFS"
        }
    fi
    if [ "$HYPHENMODE" = "luatex" ] ; then
        printf " }\n\t},\n"  >> "$tempfile"
    fi
}

include_hyphen_file_core()
{
    file="$1"
    cat "$1" | while read line ; do
        do_one_hyphen_line "$line"
    done
}

# include_file 
include_file()
{
    file="$1"

    printf "\n${PCC} ${PCC}${PCC} From file: $file\n" >>"$tempfile"
    if [ $HYPHENMODE = "nohyphen" ] ; then
        cat "$file" >>"$tempfile"
    else
        include_hyphen_file_core "$file"
    fi
    echo "${WRITECC} End of file: $file" >>"$tempfile"
    case "$file" in
      */10texlive-latex-base.cnf)
	seen_latex=1
	;;
    esac
}

# do_not_include_file 
do_not_include_file()
{
    file="$1"

    cat >>"$tempfile" <
do_not_include_snippet_that_depends_on_a_not_included_snippet()
{
    file="$1"

    cat >>"$tempfile" <
#
# Special case for jadetex and xmltex: If no latex format information is
# included so far ($seen_latex is still 0), then we cannot generate the jadetex
# or xmltex formats, and may not include them in fmtutil.cnf. Even if both
# packages depend on tl-latex-base, this is still needed, because if
# tl-base-bin and tl-latex-base are upgraded at the same time, the latex
# information is not included while tl-base-bin is configured and runs
# "fmtutil --all" (see bug #427562).
#
# Return value:
#
#   - 0 if:
#       * we are being called as update-fmtutil;
#       * and  points to 40jadetex.cnf or 40xmltex.cnf;
#       * and $seen_latex=0.
#
#   - 1 in all other cases.
check_special_jadetex_xmltex()
{
  [ "$progname" = update-fmtutil ] || return 1
  
  file="$1"

  case "$file" in
    */40jadetex.cnf|*/40xmltex.cnf)
      if [ $seen_latex = 0 ]; then
          return 0
      fi
      ;;
  esac

  return 1
}

# handle_file 
#
#  must point to an update-fontlang configuration file (such as
# /etc/texmf/updmap.d/20lmodern.cfg). The function decides whether the file
# should be included in $output_file and outputs the corresponding snippet if
# yes, or a comment explaining why if no.
handle_file()
{
    file="$1"

    # Does the file have a dpkg-new sister?
    if [ -f "${file}.dpkg-new" ]; then
      do_not_include_file "$file"
    else
      # Does the file have the magic comment?
      if grep -E "$DebPkgProvidedMaps_magic_comment" "$file" >/dev/null; then
        # Is the package "$file" comes from still installed?
        if [ -d "$MEMORY_DIR" ] \
            && find "$MEMORY_DIR" -type f -name '*.list' -print0 \
            | xargs -0r cat \
            | grep -E "^$(basename "$file" ".$EXT")\$" >/dev/null;
	then
	  if check_special_jadetex_xmltex "$file"; then
              do_not_include_snippet_that_depends_on_a_not_included_snippet \
                "$file"
          else
            include_file "$file"
	  fi
        else
            do_not_include_file "$file"
        fi
      else
        include_file "$file"
      fi
    fi
}

# merge_files
#
# This function expects on the standard input a sorted list of update-updmap
# configuration files (such as /etc/texmf/updmap.d/20lmodern.cfg). Each of
# them should be listed on a line by itself with the basename being the
# *first* component of the path, e.g.:
#
#   20lmodern.cfg/etc/texmf/updmap.d
#
# (where 20 should be at the beginning of the line, with no leading spaces, of
# course). This is so because the sort operation presumably performed by the
# caller of this function should sort on the basenames of the files,
# regardless of the directories they come from.
#
# Since the list is expected to be sorted, if several files have the same
# basename, they will be found on consecutive lines.
#
# The function calls handle_file() for every file in the list, but only once
# for a single basename. If several files with the same basename are listed
# from several directories, only the one in $conf_dir will be passed to
# handle_file. This allows user-defined .cfg files to override system .cfg
# files (those in /etc). The order of the files is preserved:
# handle_file() will receive them as they came on stdin, except that it will
# be called only once for each basename.
#
# handle_file receives the file path in the usual order (directory/basename).
merge_files()
{
    # We will procede the list focusing on the last two elements in order to
    # handle the case of several files in a row having the same basename.
    lastfile=""
    lastdir=""
    # Overloaded files are files with the same basename that were found in
    # several directories.
    overloaded=0
    # In case we are being called as update-fmtutil, seen_latex tells whether
    # we have included the snippet for the LaTeX format so far. This is
    # useful, because the snippets for formats that depend on LaTeX such
    # jadetex and xmltex should only be included along with the snippet for
    # the LaTeX format (see bug #427562).
    seen_latex=0

    while read line; do
        filename="${line%%/*}"
        dirname="/${line#*/}"
        if [ -n "$lastfile" ]; then
            if [ "$lastfile" != "$filename" ]; then
                # For overloaded files, use the one in $conf_dir.
                if [ $overloaded = 1 ]; then
                    overloaded=0
                    dir="$conf_dir"
                else
                    dir="$lastdir"
                fi
                handle_file "$dir/$lastfile"
            else
                overloaded=1
            fi
        fi
        lastdir="$dirname"
        lastfile="$filename"
    done

    # Test whether there was at least one line to read from stdin
    if [ -n "$lastdir" ]; then
        # The last file is still in the pipe; get it out.
        if [ $overloaded = 1 ]; then
            dir="$conf_dir"
        else
            dir="$lastdir"
        fi
        handle_file "$dir/$lastfile"
    fi
}

perform_sanity_checks()
{
    if [ -L "$output_file" ]; then
        # This might cause errors, so do not skip this echo when quiet.
        echo "$progname: $output_file is a symbolic link; won't do anything" >&2
        exit 0
    fi

    if ! [ -r "$CHECKFILE" ] ; then
        echo "$progname: cannot read $CHECKFILE" >&2
        echo "$progname: if it was removed by accident, it has to be reinstalled with" >&2
        # the following command does not work due to a IMNSHO stupid 
        # apt* behaviour, it seems that Apt first wants to configure the
        # broken package, but that will not work, so it breaks.
        # Instead it should *first* unpack and reinstall new conffiles,
        # and then try to configure ... so what, let everyone feel the pain!
        # echo "$progname:   apt-get install --reinstall -o DPkg::Options::=\"--force-confmiss\" tex-common" >&2
        echo "$progname:   t=\$(mktemp -d); cd "\$t"; apt-get download tex-common ; dpkg -i --force-confmiss tex-common*.deb" >&2
        # this is what I want to ship out to the terminal, though ...
        # echo "$progname: (sorry, but due to Apt stupidity there is no simple way to do that!)" >&2
        exit 1
    fi

    # Check for $DEFAULT_OUTPUTFILE_BASENAME in wrong places (currently,
    # only enabled for update-updmap), if running in system-wide mode.
    if [ $syswide_mode = 1 ] && [ "$progname" = "update-updmap" ]; then
        badly_located_cfg_file="/etc/texmf/web2c/$DEFAULT_OUTPUTFILE_BASENAME"
        badly_used_prg=updmap-sys
        bad_options="--edit, --syncwithtrees, etc."

        if [ -e "$badly_located_cfg_file" ]; then
            printf "\
Error: '$badly_located_cfg_file' should not exist when using the
       Debian TeX Live packages. Presumably, you used ${badly_used_prg} 
       in maintainance mode (options ${bad_options}).
       This shouldn't be done with the Debian TeX Live packages.
       Instead, you should edit the files in ${SYSWIDE_CONFDIR}/ and run
       ${progname}, mktexlsr and ${badly_used_prg}.
       Please remove '$badly_located_cfg_file' and try again.\n" >&2
            exit 1
        fi
    fi

    # It could be that there is a DEFAULT_OUTPUTFILE_BASENAME file 
    # in TEXMFCONFIG, which would be found by kpathsea instead of the
    # output_file. So we check for this and give a warning in case
    # the created file would be shadowed.
    if [ $syswide_mode = 0 ] && [ $output_file_specified = 0 ]; then
        OLDIFS="$IFS"
        IFS=:
        for d in "$texmfconfig"; do
            if [ ! "$d/$PATH_COMPONENT/$DEFAULT_OUTPUTFILE_BASENAME" \
                 = "$output_file" ] \
                && [ -f "$d/$PATH_COMPONENT/$DEFAULT_OUTPUTFILE_BASENAME" ];
                then
                printf "\
You are about to generate the file 
        $output_file
but at the same time you have a file
        $d/$PATH_COMPONENT/$DEFAULT_OUTPUTFILE_BASENAME
which will shadow the former. We'll continue generating the first
file, but to allow TeX and friends to find it, you'll have to remove the
second one.\n"
                # Don't break out as we want to warn the user for *every*
                # shadowing file!
            fi
        done
        IFS="$OLDIFS"
    fi
}

# perform_contents_check
#
# This function *TRIES* to check wether the installed files are correct in
# the sense that every file occurring in it is present. This can help to
# find typing errors
perform_contents_check ()
{
    #
    # performing contents checking only works when kpsewhich is present
    # and configured, this can be done in one step:
    if kpsewhich --version  >/dev/null 2>&1 ; then
        if [ "$progname" = "update-language" ] ; then
            perform_contents_check_language "$1"
        elif [ "$progname" = "update-updmap" ] ; then
            perform_contents_check_map "$1"
        elif [ "$progname" = "update-fmtutil" ] ; then
            perform_contents_check_format "$1"
        fi
    fi
}

perform_contents_check_language ()
{
    fn="$1"
    grep -v '^\W*\(%\|=\|$\)' "$fn" | while read lang hyph comm ; do
        # now check the existence of the hyphenation file
        if [ -z $(kpsewhich -format=tex $hyph) ] ; then
           cat >&2 <&2 <&2 <&2; exit 1 ;;
    *) exit 1 ;;
esac

# Don't remove the quotes around $TEMP!
eval set -- "$TEMP"

# Determine whether we will run in system-wide mode or in user-specific mode
if [ "$(id -u)" -eq 0 ]; then
    syswide_mode=1
else
    syswide_mode=0
fi


# ****************************************************************************
# *                                 Defaults                                 *
# ****************************************************************************
quiet=1
dochecks=0
output_file_specified=0

if [ $syswide_mode = 1 ]; then
    output_file="$SYSWIDE_DEFAULT_OUTPUTFILE"
else
    # If texlive-binaries is not installed, kpsewhich is not available, 
    # and we cannot do anything
    if ! which kpsewhich >/dev/null; then
	echo "kpsewhich isn't available. Cannot create" \
             "$DEFAULT_OUTPUTFILE_BASENAME in user-specific mode." >&2
	exit 1
    fi
    # Is there an updmap.d/language.d directory somewhere in the expansion of
    # $TEXMFCONFIG?
    conf_dir=""
    texmfconfig=$(kpsewhich --expand-path '$TEXMFCONFIG')
    OLDIFS="$IFS"
    IFS=:
    for d in "$texmfconfig"; do
        if [ -d "$d/$CNFDIR" ]; then
            conf_dir="$d/$CNFDIR"
            break
        fi
    done
    IFS="$OLDIFS"

    # Does $TEXMFVAR expand to a single directory?
    texmfvar=$(kpsewhich --var-value 'TEXMFVAR')
    if ! echo "$texmfvar" | grep -e '[,:]'; then 
        output_file="$texmfvar/$PATH_COMPONENT/$DEFAULT_OUTPUTFILE_BASENAME"
    else
        # We don't know what to do in this case, therefore: do nothing unless
        # the output file is specified with the correponding option.
        output_file=""
    fi
fi


# ****************************************************************************
# *                             Options handling                             *
# ****************************************************************************
while true; do
    case "$1" in
        -c|--conf-dir) conf_dir="$2"; shift 2 ;;
        -o|--output-file) 
            output_file="$2"
            output_file_specified=1
            shift 2 ;;
        --quiet) quiet=1; shift ;;
        --check) dochecks=1; shift ;;
        -v) printf "\
${progname}'s -v option is deprecated. The default mode of operation will
be verbose as soon as enough packages use the --quiet option. Please update
your scripts accordingly.\n\n" >&2; quiet=0; shift ;;
        --help) echo "$usage"; exit 0 ;;
        --version) echo "$progname $version"; exit 0 ;;
        --) shift; break ;;
	*) echo "$progname: unexpected option '$1'; please report a bug." >&2
            exit 1 ;;
    esac
done

# Non-option arguments are not allowed.
if [ $# -ne 0 ]; then
    echo "$usage" >&2
    exit 1
fi

# In user-specific mode, $conf_dir is required; let's check that.
if [ $syswide_mode = 0 ]; then
    if [ -z "$conf_dir" ]; then
        printf "$progname: "
        cat >&2 </dev/null; then
        conf_dir="${PWD}/${conf_dir}"
    fi
fi

if [ -z "$output_file" ]; then
    printf "$progname: "
    cat >&2 <&2
            exit 1
        fi
        [ $quiet = 0 ] && echo "done."
    fi
fi

# ****************************************************************************
# *                               Actual work                                *
# ****************************************************************************
if [ $quiet = 0 ]; then
    if [ -f "$output_file" ]; then
	printf "Regenerating '${output_file}'... "
    else
	printf "Generating '${output_file}'... "
    fi
fi

# Creating the temporary file in the output directory gives it automatically
# the default permissions appropriate for that directory, according to the
# user's umask. When it is complete, we'll be able to rename it atomically to
# the desired output file, which will therefore have the right permissions.
tempfile="${output_file}.new"

confdirs="${SYSWIDE_CONFDIR}/"
[ $syswide_mode = 0 ] && confdirs="${confdirs}\n#    ${conf_dir}/"

if ! printf "" > "$tempfile" ; then
    echo "$progname: cannot write to the temporary file '$tempfile'" >&2
    exit 1
fi

#
# we have to make sure that language.def starts out the right way!
if [ "$HYPHENMODE" = "etex" ] ; then
    printf "\
${PCC}${PCC} e-TeX V2.0;2

${PCC} Note: the first line of this file must match the corresponding line
${PCC} in \"etex.src\" and \"etexdefs.lib\", otherwise fallback will be used.
\n" >> "$tempfile"
fi

printf "\
${PCC} ${PCC}${PCC} This file was automatically generated by ${progname}.
${PCC}
${PCC} Please do not edit it directly. If you want to add or change
${PCC} anything here, please have a look at the files in:
${PCC}
${PCC}    $confdirs
${PCC}
${PCC} and invoke ${progname}.
${PCC}
${PCC} ${PCC}${PCC}\n" >> "$tempfile"

#
# include the necessary files
if [ ! "$HYPHENMODE" = "nohyphen" ] ; then
    # we are creating a hyphenation file, include the head file
    if [ -r "$HEADFILE" ] ; then
        cat "$HEADFILE" >> "$tempfile"
    elif [ -r "$HEADBACK" ] ; then
        cat "$HEADBACK" >> "$tempfile"
    else
        echo "${WRITECC} HEADFILE $deffile not found" >> "$tempfile"
    fi
fi

# From now on, $tempfile must be deleted on exit; therefore, cleanup() should
# be used.

if [ $syswide_mode = 1 ]; then
    find "$SYSWIDE_CONFDIR"             -maxdepth 1 -type f -name '*.'${EXT}
else
    find "$SYSWIDE_CONFDIR" "$conf_dir" -maxdepth 1 -type f -name '*.'${EXT}
fi | swap_basename_and_dirname | LC_COLLATE=C sort | merge_files

#
# for language.def we have to select the right language at the end
if [ "$HYPHENMODE" = "etex" ] ; then
    printf "
${PCC} ${PCC}${PCC} No changes may be made beyond this point.

\\\\uselanguage {USenglish}             ${PCC} This MUST be the last line of the file.
" >> "$tempfile"
elif [ "$HYPHENMODE" = "luatex" ] ; then
    # for luatex we need the closing brace!
    echo "}" >> "$tempfile"
fi

# This is atomic.
mv "$tempfile" "$output_file"

# Check wether the generated file is decent, if all necessary files are
# installed, etc.
if [ "$dochecks" = 1 ] ; then
    perform_contents_check "$output_file"
fi

if [ $quiet = 0 ]; then
    printf "done.\n\n"
    echo "$progname has updated '$output_file'. If you want to"

    if [ "$progname" = "update-language" ]; then
        echo "enable the new patterns, you should run fmtutil-sys or fmtutil"
        echo "(with option --all, or with a particular format specified)."
    elif [ "$progname" = "update-updmap" ]; then
	echo "enable the map files with this new file, you should run" \
             "updmap-sys or updmap."
    elif [ "$progname" = "update-fmtutil" ]; then
        echo "enable the new formats,  you should run fmtutil-sys or fmtutil"
        echo "(with option --all or --missing)."
    else
        echo "Unexpected \$progname: '$progname'" >&2
        exit 1
    fi
fi

# vim:set expandtab tabstop=4 autoindent: #
tex-common-4.04/scripts/update-fmtlang.80000644000000000000000000001530712157017604015116 0ustar  .TH update-fontlang 8 "2006-12-11" "Debian" "Debian User's Manual"

.SH NAME
update-language, update-fmtutil, update-fmtlang \- update
various TeX-related configuration files

.SH SYNOPSIS
.B update-language
.RI [ options ]
.br
.B update-fmtutil
.RI [ options ]
.br

.SH DESCRIPTION
This manual page explains briefly the usage of the three TeX configuration
update programs
.B update-language
and \fBupdate-fmtutil\fP.
.PP
The
.B update-fontlang
script should not be called directly, but only via the two described links.
For a more in-depth description, please see the document \fITeX on Debian\fP in
.I /usr/share/doc/tex-common/TeX-on-Debian.txt.gz
(also available as HTML and PDF).

The programs \fBupdate-language\fP and
\fBupdate-fmtutil\fP create or update the configuration files
\fIlanguage.dat\fP and \fIfmtutil.cnf\fP, respectively.
These files define 
the hyphenation patterns to be loaded into LaTeX-related
TeX formats (\fIlanguage.dat\fP), and the list of formats to be created
(\fIfmtutil.cnf\fP).

These programs can be used either in system-wide mode if called by root, or
in a user-specific mode if called by a user without super-user privileges.
.SH OPTIONS
.TP
.BI \-c\  DIR ,\ \-\-conf-dir= DIR
directory where the user-specific configuration files are looked for in
user-specific mode (default 
\fITEXMFCONFIG/language.d\fP for \fBupdate-language\fP
and \fITEXMFCONFIG/fmt.d\fP for \fBupdate-fmtutil\fP, where \fITEXMFCONFIG\fP
is usually \fI$HOME/.texmf-config\fP).
.TP
.BI \-o\  FILE ,\ \-\-output-file= FILE
file to write the output to. Per default, in system-wide mode,
\fBupdate-language\fP writes to 
\fI/var/lib/texmf/tex/generic/config/language.dat\fP
and
\fBupdate-fmtutil\fP writes to
\fI/var/lib/texmf/web2c/fmtutil.cnf\fP.
.TP
.B \-\-checks
perform sanity checks on the generated config file. Don't use this
in maintainer scripts.
.TP
.B \-\-quiet
don't write anything to the standard output during normal operation
.TP
.B \-\-help
print a summary of the command-line usage and exit
.TP
.B \-\-version
output version information and exit

.SH USAGE

In system-wide mode, both programs merge those files
("configuration snippets") with a specific extension in the respective
configuration directories to produce the final file. These
configuration directories and extensions are \fIlanguage.d\fP and
\fB.cnf\fP for \fBupdate-language\fP, 
and \fIfmt.d\fP and \fB.cnf\fP for \fBupdate-fmtutil\fP.
In system-wide mode, these directories are those under \fI/etc/texmf/\fP. Both
TeX add-on packages and local administrators can add files to these
directories.

If a package that provides such snippets is removed but not purged,
including the snippet will likely break the system.  To prevent the
inclusion in these cases, snippets installed by \fIpackages\fP have to
contain a magic header:

# -_- DebPkgProvidedMaps -_-

which local administrators should \fInot\fP remove.  From the files
with a magic header, only those files which are also listed in one of
the files in
.I /var/lib/tex-common/language-cnf/
for \fBupdate-language\fP, and
.I /var/lib/tex-common/fmtutil-cnf/
for \fBupdate-fmtutil\fP, are actually included into the final output
file. This way, local changes to the configuration can be preserved
while the package is in state 'rc' (that is, the package is removed, but its
configuration files are still present).  For details about this mechanism,
package maintainers should consult the Debian TeX Policy.  As a
special case, the files for JadeTeX and xmlTeX are only included if
there is already a file for the LaTeX format (see \fITeX on Debian\fP
for details).

The user-specific mode provides a way for a non-admin user to override
system-wide settings.  In this mode,
\fBupdate-language\fP writes to 
\fITEXMFVAR/tex/generic/config/language.dat\fP, and
\fBupdate-fmtutil\fP writes to
\fITEXMFVAR/web2c/fmtutil.cnf\fP, where \fITEXMFVAR\fP is usually
\fI$HOME/.texmf-var\fP. 
Furthermore, files present within the user-specific configuration
directories are included \fIin addition\fP to the files present in the
system-wide configuration directories.  In case the same filename
exists in the system-wide configuration directory and the
user-specific configuration directory, the user-specific file is used
instead of the system-wide one. The user-specific configuration directories
are
\fITEXMFCONFIG/language.d\fP for \fBupdate-language\fP and
\fITEXMFCONFIG/fmt.d\fP
for \fBupdate-fmtutil\fP, where \fITEXMFCONFIG\fP is usually
\fI$HOME/.texmf-config\fP. The system-wide configuration directories have the
same names, but are located in \fI/etc/texmf/\fP instead of \fITEXMFCONFIG\fP.

Note that changes introduced by updates of packages are \fInot\fP
propagated to the user's configuration files. This has to be done by hand.

.SH FILES
.TP
.B /var/lib/texmf/tex/generic/config/language.dat
This file is generated or updated by \fBupdate-language\fP in system-wide
mode and contains a list of the hyphenation patterns loaded into
LaTeX-based formats by \fBfmtutil-sys\fP.
.TP
.B /var/lib/texmf/web2c/fmtutil.cnf
This file is generated or updated by \fBupdate-fmtutil\fP in system-wide
mode and contains a list of formats to be generated by \fBfmtutil-sys\fP.
.TP
.B /etc/texmf/language.d/\fIname\fP.cnf
Input files for \fBupdate-language\fP
.TP
.B /etc/texmf/fmt.d/\fIname\fP.cnf
Input files for \fBupdate-fmtutil\fP
.TP
.B /var/lib/tex-common/language-cnf/\fIpackage\fP.list
Lists the file(s) installed by \fIpackage\fP in \fI/etc/texmf/language.d/\fP.
.TP
.B /var/lib/tex-common/fmtutil-cnf/\fIpackage\fP.list
Lists the file(s) installed by \fIpackage\fP in \fI/etc/texmf/fmt.d/\fP.

.SH SEE ALSO

.TP
.B fmtutil(1), fmtutil-sys(1)
The programs actually using the generated configuration files
(\fIlanguage.dat\fP and \fIfmtutil.cnf\fP).
.TP
.B TeX on Debian Documentation
to be found in \fI/usr/share/doc/tex-common/TeX-on-Debian.txt.gz\fP (also
available as HTML and PDF), describing in more detail how to setup
and maintain a TeX system in Debian. It also includes details on user-specific
configuration.
.TP
.B Debian TeX Policy
to be found in \fI/usr/share/doc/tex-common/Debian-TeX-Policy.txt.gz\fP (also
available as HTML and PDF), describing the internals and the TeX Policy
established on the Debian TeX mailing-list
(debian-tex-maint@lists.debian.org). Intended audience is mainly developers
packaging TeX-related resources for Debian.
.TP
.B dh_installtex(1)
a debhelper-like script for managing the installation of files into the
system-wide configuration directories; this script helps to write Debian
packages containing TeX-related resources that conform to the Debian TeX
Policy.

.SH AUTHOR
This manual page was written by Norbert Preining 
for the Debian distribution (and may be used by others). It was later updated
by Florent Rougon .
tex-common-4.04/doc/0000755000000000000000000000000012157017604011165 5ustar  tex-common-4.04/doc/TeX-on-Debian.sgml0000644000000000000000000010766412157017604014361 0ustar  


  
    
      Debian-specific information about TeX packages
      
        The Debian TeX mailing list
        debian-tex-maint@lists.debian.org
      
      generated from $Id$


      
       This document covers Debian-specific information for users of
       the Debian TeX Live packages (all
       packages named texlive-something). 
       Further information, especially for
       developers, can be found in the Debian TeX Policy draft in
       /usr/share/doc/tex-common/.
      

      
        
          Copyright © 2004-2012 Frank Kster, Florent Rougon,
        Norbert Preining
        
        

This document is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

A copy of the GNU General Public License is available as in the Debian distribution or on the World Wide Web at . You can also obtain it by writing to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.

Overview of the packages

The Debian TeX Live packages are comprised of (currently) 80 packages in total. The most important are: texlive-binaries provides the basic binaries and scripts, but is practically useless by itself texlive-base provides a minimal system texlive-latex-base provides the most basic LaTeX input files, and will be sufficient for some simple documents texlive-latex-recommended a recommended set of LaTeX packages which are sufficient for most typesetting purposes if you don't have any special requirements texlive-fonts-recommended a recommended set of fonts which are sufficient for most typesetting purposes if you don't have any special requirements texlive a meta-package depending on a decent selection of packages, comprising all of the above texlive-full a meta-package depending on all packages from the TeX Live group and on some other packages to create something similar to a full TeX Live installation texlive-doc-* packages like texlive-doc-en and texlive-doc-de provide documentation in the respective language texlive-lang-* packages like texlive-lang-dutch and texlive-lang-spanish provide language-specific support, like hyphenation patterns There are many more packages, providing extra functionality and extra fonts. Please see the respective descriptions of these packages.

Changing your configuration, file placement Available TEXMF trees for users and system administrators

The following TEXMF trees are available. They are displayed below in the order they are searched, where earlier ones override later ones. TEXMFCONFIG

Default location: $HOME/.texmf-config/

Contains user-specific configuration

TEXMFVAR

Default location: $HOME/.texmf-var/

Contains user-specific generated files

TEXMFHOME

Default location: $HOME/texmf/

Contains user-specific static input files, e.g. new LaTeX packages.

TEXMFSYSCONFIG

Default location: /etc/texmf

Contains system-wide configuration

TEXMFSYSVAR

Default location: /var/lib/texmf/

Contains system-wide generated files

TEXMFDEBIAN

Default location: /usr/share/texmf/

Contains files shipped by Debian packages other than the main texlive packages. This tree contains system-wide, dpkg-managed input files.

TEXMFMAIN

Default location: /usr/share/texlive/texmf/

Contains files that are closely related to the binaries and the specific version, thus this tree has higher priority then TEXMFLOCAL below. It contains only few system-wide, dpkg-managed input files.

TEXMFLOCAL

Default location: /usr/local/share/texmf/

Contains system-wide input files, used for configuration on specific systems.

TEXMFDIST

Default location: /usr/share/texlive/texmf-dist

Contains the binary-independent files that are distributed with TeX Live, comprising most of the input files, font files etc.

If you want to add files, you should usually use TEXMFLOCAL or TEXMFHOME, depending on whether you are the system administrator or a user. If needed, a system administrator can add additional trees to the TEXMF variable by copying the definition of TEXMF from /usr/share/texmf/web2c/texmf.cnf into one file in /etc/texmf/texmf.d/, for example /etc/texmf/texmf.d/00local.cnf (earlier entries take precedence). TEXMFCONFIG and TEXMFVAR are used by the user-specific texconfig, updmap, and fmtutil commands. Note that texconfig creates a copy of configuration files from TEXMFMAIN (or /etc/texmf) at the time it is first invoked to handle a particular file, and does not track later system-wide changes, and it does not know about update-* programs (see below ).

General hints System-wide versus user-specific configuration

TeX Live supports a complete user-specific configuration setup in the user's home directory. System administrators must use the commands texconfig-sys, fmtutil-sys and updmap-sys which act on the system-wide configuration files. Users can invoke their user counterparts texconfig, fmtutil and updmap. This will put copies of the system-wide configuration files into the user's TEXMFCONFIG directory (by default, $HOME/.texmf-config), modify them and generate according formats, if applicable.

There is no such mechanism for texmf.cnf. For a way to customize texmf.cnf as a user, see .

Configuration file placement

On a TeX system, in principle every TeX input file can be used to change the behavior of the system and hence could be treated as a configuration file. To avoid an inflation of configuration files, those that are used to control the typeset output - the appearance of documents - are not installed as configuration files. It makes more sense to keep changed versions in the current directory for a certain project, or in TEXMFHOME or TEXMFCONFIG of a particular user. However, local admins can take any file they want from the TEXMFDIST (/usr/share/texlive/texmf-dist) or TEXMFDEBIAN (/usr/share/texmf) trees and put changed copies into the respective directories below /etc/texmf (TEXMFSYSCONFIG which sorts before all other trees) or /usr/local/share/texmf (TEXMFLOCAL which sorts before the above two trees).

Since the package management system does not know whether a file is treated as a configuration file on a specific system, it is up to the site admin or local user to check whether one of their changed files has changed in TEXMFDIST or TEXMFDEBIAN.

What is configured where?

The central system-wide configuration files texmf.cnf (which controls the basic operation and file search paths for the included programs), fmtutil.cnf (which specifies the available TeX formats), (several) updmap.cfg (font configuration) and language.dat, language.def, language.dat.lua (hyphenation patterns for latex, etex, lualatex, resp.) are handled through a Debian-specific mechanism that allows the basic TeX packages, add-on packages and local administrators to combine their changes (see below).

Hyphenation

Hyphenation should pretty much work out of the box. Please note that in Debian, language.dat, language.def, language.dat.lua are generated files (see ).

The files texmf.cnf, fmtutil.cnf, updmap.cfg and language.* group

In the following we will refer to the three files language.dat, language.def, language.dat.lua, as language.*.

In the following we describe ways to configure these files for the system administrator, i.e. one that has write access to the /etc/texmf hierachy. In we describe a per-user configuration.

The files texmf.cnf, fmtutil.cnf, updmap.cfg and language.dat contain configuration options from TeX Live, possibly from you, and from other TeX-related packages. They are generated by scripts and may not be edited directly. Rather, you should work with the source files in the respective directories below /etc/texmf/.

In order to make updates smooth, you should avoid editing system-wide files as far as possible, and instead add new files to change settings. For texmf.cnf snippets, this is particularly easy, since earlier entries override any later entries. Only for removing settings from fmtutil.cnf, or language.* it is necessary to edit existing files.

texmf.cnf and update-texmf

The TeX binaries are built to look for and merge texmf.cnf files in various trees. That means that it is easy to override the default settings as shipped in /usr/share/texmf/web2c/texmf.cnf by adding entries in /etc/texmf/web2c/texmf.cnf. The Debian packaging includes a mechanism for constructing texmf.cnf from a collection of files under /etc/texmf/texmf.d/. To customize texmf.cnf while retaining the Debian-supplied configuration, create an appropriate file (or files) in /etc/texmf/texmf.d/, or change existing files, and then run update-texmf. This will generate the desired texmf.cnf for you. By default nothing is shipped in /etc/texmf/texmf.d/ since no adaptions are necessary, but further addon packages might ship parts.

You may not edit the file /etc/texmf/web2c/texmf.cnf directly, any local changes will be overwritten the next time this file is generated.

Instead, please edit the files in /etc/texmf/texmf.d, or create an additional one, and invoke update-texmf. This will write your changes into /etc/texmf/web2c/texmf.cnf.

You should name your customization file something like 40macros.cnf; the leading numerals will decide the order in which configuration fragments will be assembled by update-texmf, so it might be important to place your customizations in an appropriate place in the sequence — earlier definitions take precedence over later ones. In previous versions the extension .cnf was not necessary, and all files in the directory were used. If you had teTeX installed in woody, you might still have private files which need the extension to be added.

fmtutil.cnf and update-fmtutil, language.* and update-language

These files are also generated files, just as it has been explained above for texmf.cnf. The difference to texmf.cnf is that the system-wide files will be put into /var/lib/texmf/web2c, and any change made in these files will be unconditionally overwritten by update-fmtutil and update-language, respectively. Only the files in /etc/texmf/fmt.d/ and /etc/texmf/hyphen.d/ will be treated as configuration files. Furthermore, the files fmtutil.cnf and language.* are used on a first-found-first-used basis, if there are more than one in the search path, whereas if there are several texmf.cnf files in the search path, their settings are combined as described in .

Just as for texmf.cnf, the right way to change settings is to edit or add files in /etc/texmf/fmt.d/ or /etc/texmf/language.d/. The details have been described above (see ).

updmap.cfg

updmap-sys(8) reads all available updmap.cfg files found, stacking them on top of each other. That means that local configurations can be done by editing/adding a file in /etc/texmf/web2c/updmap.cfg.

updmap-sys(8) provides options for enabling or disabling font map files. When enabling a new map file that is not mentioned, updmap-sys will create or edit /etc/texmf/web2c/updmap.cfg. Note that updmap-sys's --edit and --syncwithtrees options cannot be used on a Debian system.

For more details on how to disable map files that are enabled on a higher level, please see the man page and help output of updmap.

Per user configuration changes

update-texmf is only available for root; if a user wants to maintain their own texmf.cnf, they can put it into TEXMFCONFIG/web2c and must manually edit it. However, in order for it to be found, they need to set an environment variable The reason for this is that the search path for texmf.cnf, which is the file that defines all search paths for later use, naturally cannot be specified in the file, but is fixed at compile time. : export TEXMFCNF=$HOME/.texmf-config/web2c: The final colon includes the system wide default. Since all texmf.cnf files are read, with earlier definitions taking precedence over later ones, it is best to keep only a minimal set of definitions in the user-specific file.

In contrast to the above—TeX reading and merging all texmf.cnf files—the first found occurrence of one of the files language.dat, fmtutil.cnf is used. Thus, when called by a user, the other configuration update programs also work with files in TEXMFCONFIG/fmt.d or TEXMFCONFIG/language.d, where TEXMFCONFIG is usually HOME/.texmf-config. They combine files in these directories with the files in the system-wide directories—naturally the user-specific ones take precedence if the names are equal (see ) —and drop the respective generated file into the user's TEXMFVAR, effectively overriding the system-wide config files. Note that changes to existing configuration file snippets made by package updates will not be propagated to the user's files.

updmap(1) provides the same options for enabling and disabling map files as updmap-sys(8), see above. updmap.cfg is created or edited in TEXMFCONFIG/web2c/.

Font caching

A TeX system needs to generate new font data (pixel data, metric, sources) on the fly. These files can be saved into the TeX font cache and later be reused. By default, a separate font cache is created for each user in their own TEXMFVAR directory ($HOME/.texmf-var/). If this directory is not writable, e.g. during automated package building, a directory called VARTEXFONTS, /tmp/texfonts/, is used instead, but this directory is cleaned up regularly.

On multi-user machines, it might be advisable that the local administrator enables a site-wide font cache and sets VARTEXFONTS to a persistent directory, e.g. /var/cache/fonts. The variable can be changed by adding an entry via /etc/texmf/texmf.d, e.g. /etc/texmf/texmf.d/00local.cnf. Do not forget to run update-texmf after making the change. To enable a side-wide font caching the admin should edit /etc/texmf/web2c/mktex.cnf and use 'varfonts' instead of 'texmfvar' in MT_FEATURES. Care should be taken to specifiy appropriate permissions for the directory containing the font cache. Either the local admin should create all available font data and not allow write access, or else write access should be limited to trusted users. Yet an other alternative is to bind-mount /var/cache/fonts from a separate partition, so that users are not able to fill up the /var partition with font data.

Usage hints, Debian-specific adaptations Note on dvips

Per default, dvips is in secure mode and won't execute shell commands in \special commands, like backticks in \DeclareGraphicsRule, etc. To enable this, change z1 to z0 in /etc/texmf/dvips/config.ps (second entry).

Note on dvipdfmx

The Debian TeX Live packages do evaluate the settings of /etc/papersize, please configure your preferred paper size with paperconfig. Alternatively, and more portable, thus recommended, set the paper geometry explicitly in the (La)TeX source, e.g. using the packages geometry or hyperref.

“TeX capacity exceeded” and similar errors

In most cases, this error is the symptom of a syntax error in the document—TeX is getting into an infinite loop, and after some time all its internal registers have been used. Sometimes, however, a large document that loads a package that uses a lot of TeX's registers leads to that error, or to a similar error message. The package documentation, the Google archive, or TeX-related mailing-lists or newsgroups will be helpful to find out which parameter needs to be changed in /etc/texmf/texmf.cnf (or rather in one of the files under /etc/texmf/texmf.d/, (see )).

How to install additional or updated (La)TeX packages or fonts

If you want to install additional (La)TeX stuff, you have to: install it at a place where TeX can find it; register it properly.

This can generally be done site-wide (by an administrator who has write access to at least /usr/local/share/texmf and /etc/texmf), or on a per-user basis. This can be done by any user on the system, without requiring write access to system directories. Some people might also find it more convenient in case they share their home directory between a couple of machines, even if they do have administrator rights.

In the following, we first explain the principles by describing a site-wide setup; then we explain the details for user-specific setup.

(La)TeX input files

This is usually quite easy. Put the files in an appropriate directory below TEXMFLOCAL, which is the directory tree rooted at /usr/local/share/texmf.

For LaTeX packages, create the directory tex/latex/packagename within that tree (or use tex/latex/misc) and put the files there; the documentation should be put into doc/latex/packagename. If the package comes as a pair of .dtx and .ins files, you need to run latex over the .ins file in order to produce the package files, and over the .dtx file to produce the documentation. After that, the .dtx and .ins files are no longer needed. Please refer to the README file of the package if there is one.

After that, registering is easy: just run the command mktexlsr (also called texhash). This will regenerate the ls-R file for all TEXMF trees you have write access to.

Complex installations

With some packages, e.g. when they contain fonts, the procedure is more complicated. Please follow the instructions given in the package. The Debian-specific part comes in when the configuration files texmf.cnf, fmtutil.cnf, updmap.cfg, or language.dat need to be changed. See the description above (), the manual pages for update-updmap, update-texmf, update-fmtutil, update-language and .

Font installation

If you wish to install a font package in a system-wide manner, please follow the instructions in this section. If you are preparing a Debian package containing fonts, you should refer to the Debian TeX policy instead, which is shipped in the tex-common package.

Generally, you should first have a look at the installation instructions that come with the font package, in case there is something specific to that package with respect to installation. But you should make sure that you install most files in a subdirectory of TEXMFLOCAL (see ). This is because we are describing here a system-wide installation that is not done by Debian packages.

For instance, AFM files should be stored into TEXMFLOCAL/fonts/afm/supplier/typeface/ where supplier identifies the supplier of the fonts (for instance, adobe, urw or public) and typeface refers to the name of the font family (e.g., marvosym or lm). If in doubt, you should have a look at the system trees managed by Debian packages, /usr/share/texmf and /usr/share/texlive/texmf-dist; they follow the same layout, called the TeX Directory Structure (which is documented at ).

In order for the various TeX-related programs to be able to use a font, you need to somehow register its map files (simply copying the files to TEXMFLOCAL is not enough). You can do this with the following steps, performed as root, where foo stands for the name of the font package you are installing:

Make sure you have stored all the relevant files shipped in the package (.afm, .tfm, .pfb, .pfa, .mf, .fd, .enc, .map, .sty are all relevant in this context) in the appropriate subdirectories of TEXMFLOCAL, as explained above.

List the map files you stored in step 1 under TEXMFLOCAL, with one line per file, as in: # This is a comment line Map foo.map Map other-map-file-from-package-foo.map in the file /usr/local/share/texmf/web2c/updmap.cfg.

If a font is available both as bitmap and outline, you should use MixedMap instead of Map. Please refer to the manual pages for updmap for details.

(not recommended, but possible) You can also use updmap-sys --enable Map foo.map; this will create/edit the /etc/texmf/web2c/updmap.cfg file for you. But since the real files are stored in TEXMFLOCAL it is better to add the map directives to the updmap.cfg in the same tree.

Run the program mktexlsr. This will record all the newly created files in ls-R files (these are used by TeX-related programs as indices to find the files they need when operating).

Run the program updmap-sys. This will use your updated updmap.cfg to generate files that are needed by dvips, pdflatex, dvipdfm, etc., such as psfonts.map and pdftex.map.

At this point, the font package should be properly installed for all users on the system.

User-specific installation

Instead of a system-wide installation, one can also install input files and fonts in the private TEXMFHOME, which is set to $HOME/texmf by default. For fonts, compared to the system-wide installation explained above, the following changes have to be made: In step 1, copy all relevant files to the appropriate subdirectories in TEXMFHOME.

In step 2, edit TEXMFHOME/web2c/updmap.cfg instead.

As for the site-wide installation, you can also use updmap --enable Map foo.map.

In step 3 run updmap instead of updmap-sys. The generated files are created in directories below TEXMFVAR.

Problems, bug reports

If the installation failed, please check the following points: Is there enough room on your hard disk? Is there any privately-compiled TeX system besides the Debian packages? Does the command: kpsewhich --format=cnf texmf return /usr/share/texmf/web2c/texmf.cnf? Is texmf.cnf modified a lot? Please check /etc/texmf/web2c/texmf.d/. Did you set any TeX-related environment variable? Try again. This might work in some cases. Is your language.dat correct?

How to report a bug: Please calm down anyway. ;) Please check the Debian Bug Tracking System first. Please read carefully the error messages, if any. It will help both you and us. Please use reportbug and include all information it gathers Please attach a simple and short sample file which causes the problem you want to report. Be prepared that we will have to ask more questions: You should have time to exchange a couple of e-mails with us It will be helpful to show us the output of the command: ls /etc/texmf/texmf.d/*

tex-common-4.04/doc/texify-tex-output0000755000000000000000000004066712157017604014574 0ustar #! /usr/bin/python # # texify-tex-output --- Enhance the LaTeX output of DebianDoc tools # Copyright (c) 2007 Florent Rougon # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 dated June, 1991. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA. # # $Id$ import sys, os, re, getopt # Call with option --algorithm for a precise explanation of how the script # works (or look for the definition of 'algorithm_doc' below). # # # **************************************************************************** # * Simple customization starts here * # **************************************************************************** # Document preamble # ~~~~~~~~~~~~~~~~~ # List of (regexp, replacement text) tuples describing customize the preamble. # # For the regexp syntax, see: # # file:///usr/share/doc/python2.5-doc/html/lib/re-syntax.html # # The replacement text is expanded by match_object.expand(), therefore you can # reference groups from the matching regexp with backreferences such as \1, # \2, etc. (even by group name with the \g syntax). Similarly, escape # sequences such as \n are processed in the replacement text, therefore we # have to use two backslashes there to insert one backslash, even when using # raw strings (cf. # file:///usr/share/doc/python2.5-doc/html/lib/match-objects.html). # # For a substitution to happen on a given line, the regexp must match at # the beginning of that line. The replacement text can generate several lines # if needed, include the original line (using a group), etc. preamble_substitutions = [ (r"^(?P\s*\\usepackage(\[[^][]*\])?\{fontenc\}.*)$", r"\g\n\\usepackage{mflogo}\n")] # How to recognize the end of the preamble begin_doc_re = r"^\s*\\begin\{document\}" # Document body # ~~~~~~~~~~~~~ # List of (regexp, replacement text) tuples describing which substitutions are # to be performed on each chunk of the body text. # # The same comments as for 'preamble_substitutions' apply here (in particular, # a replacement text can make use of groups from the corresponding regexp), # except that here, we don't check if given regexp *matches* at the beginning # of a chunk; instead, we *search* (using regexp.search()) for the first match # of that regexp in the chunk. body_substitutions = [(r"\bTeX\b", r"\\TeX{}"), (r"\bpdfTeX\b", r"pdf\\TeX{}"), (r"\bMetafont\b", r"\\MF{}"), (r"\bLaTeX\b", r"\\LaTeX{}"), (r"\bConTeXt\b", r"Con\\TeX{}t"), (r"\bteTeX\b", r"te\\TeX{}"), (r"\bMiKTeX\b", r"MiK\\TeX{}")] # List of (command_name, number_of_args) tuples for LaTeX commands which # should not be subject to the regexp substitution (neither the command name, # nor its arguments) . # # If the LaTeX output from DebianDoc tools starts using an \envvar command for # typesetting the names of environment variables (that would be nice), it # should be added to this list. skipped_commands = [("file", 1)] # When processing the body of the document, if a line matches one of the # regexps in 'no_subst', it will not be suject to substitution at all. no_subst = [r"^.*\bgenerated from \\\$Id:[ \t]+.+[ \t]+\\\$"] # **************************************************************************** # * Simple customization ends here * # **************************************************************************** progname = os.path.basename(sys.argv[0]) progversion_base = "0.2" # Append an SVN revision part to the program version svn_revision_string = "$LastChangedRevision$" svn_revision_rec = re.compile(r"^\$LastChangedRevision: ([0-9]+) \$$") svn_revision_mo = svn_revision_rec.match(svn_revision_string) if svn_revision_mo is not None: svn_revision = svn_revision_mo.group(1) else: svn_revision = "unknown.svn.revision" del svn_revision_string, svn_revision_rec, svn_revision_mo progversion = "%s.%s" % (progversion_base, svn_revision) usage = """Usage: %(progname)s [option ...] input_file output_file Enhance the LaTeX output of DebianDoc tools. The document preamble is customized; in the document body, TeX is replaced with \\TeX{}, LaTeX with \\LaTeX{}, etc., except where it doesn't make sense (as in the argument of \\file, and in the SVN Id). The calling syntax allows this script to be specified as the argument to the -s option of commands such as debiandoc2latexpdf. Options: --algorithm explain the algorithm used --help display this message and exit --version output version information and exit""" \ % {"progname": progname} algorithm_doc = """\ The algorithm used in %(progname)s is the following. First, read the preamble and customize it (e.g., to add '\\usepackage{mflogo}' after the line loading 'fontenc'). This is done the following way: Each line of the preamble is read separately. If it matches one of the regular expressions in 'preamble_substitutions', the corresponding replacement text is substituted, and no other substitution is done on that line (i.e., the first regexp that matches 'wins'). Lines that don't match any regexp in 'preamble_substitutions' are output verbatim. Note: 'preamble_substitutions' is a list of tuples; the first element of each tuple is a regexp, and the second element is its corresponding replacement text. The end of the preamble is detected when a line matches the regexp in 'begin_doc_re'. Then, process the body of the document line by line. If a line matches at least one of the regular expressions in 'no_subst', it is dumped verbatim. Currently, this is used to avoid changing 'Debian-TeX-Policy.sgml' into 'Debian-\\TeX{}-Policy.sgml' in the Id generated by subversion: $Id$ Other lines in the document body go through the following filter: 1. Split the line into chunks separated by LaTeX commands listed in 'skipped_commands' (currently, only \\file). 2. Such commands and their arguments are dumped verbatim. This avoids mangling file names that contain the string 'TeX', such as '/etc/texmf/texmf.d/05TeXMF.cnf'. For each of these commands, the number of arguments is supposed to be fixed, as specified in %(progname)s. But it is possible to specify that e.g., \\file takes one argument, and \\othercommand takes two arguments. 3. The remaining chunks of text each go through the substitution process, which works as follows: Initialisation: index = 0 --- which means, start at the beginning of the chunk Loop: (a) Look for the first match of each regular expression in 'body_substitutions' (the regexp is the first element of each tuple), starting at 'index' in the chunk. If no regexp matches, it means there is nothing left to replace in the chunk, therefore we break the loop. (b) Choose the regexp that matched earliest in the chunk, dump the text from 'index' to the beginning of the regexp match, and write the replacement text for the regexp (which is given in the second element of the tuple in 'body_substitutions' that contains the regexp, and can make use of groups that matched in the regexp---specified as \\1, \\2, or even by group name). (c) Let 'index' point right after the end of the regexp match and start a new loop iteration, provided 'index' doesn't point to the end of the chunk yet. The idea behind this loop is to proceed as a human would do, instead of the simpler way, which would be: successively replace all occurrences of each regexp in 'body_substitutions' in the chunk. This simpler way would cause problems, because a replacement text for a given regexp could be later matched by another regexp, and be subject to a second (recursive) replacement, which is generally not wanted and forces one to be very careful about the order in which the regexps are listed. Currently, the arguments of LaTeX commands in step 2 are supposed to all fit on the same line as the command, and they are recognized based on brace matching, with escaped braces \\{ and \\} properly handled (they are not confused with braces which delimit arguments). Due to this single-line limitation, the arguments cannot contain TeX comments. Currently, this is sufficient for the \\file commmand calls produced by DebianDoc, which is why this relatively simple design was chosen.""" \ % {"progname": progname} class error(Exception): pass class ParseError(error): pass class ProgramError(error): "Exception raised for obvious bugs (when an assertion is false)." def compile_regexps(seq): res = [] for e in seq: res.append((re.compile(e[0]), e[1])) return res def process_preamble(input_stream, output_stream, preamble_substitutions, begin_doc_re, lineno): begin_doc_rec = re.compile(begin_doc_re) subs = compile_regexps(preamble_substitutions) for line in input_stream: obuf = [line] # output buffer for regexp, repl in subs: mo = regexp.match(line) if mo is not None: # Replacement text obuf = [mo.expand(repl)] break output_stream.write(''.join(obuf)) lineno += 1 if begin_doc_rec.match(line): break return lineno def find_earliest_match(l): """Return the index in sequence l of the smallest element that is not -1. If all elements are equal to -1, return None.""" # Smallest number found so far, among those that are different from -1 min_so_far = None # Index of this number in 'l' index_of_min_so_far = None for i in range(len(l)): if l[i] != -1: if (min_so_far is None) or (l[i] < min_so_far): index_of_min_so_far = i min_so_far = l[i] return index_of_min_so_far def skip_cmd_and_args(obuf, line, cmd_start, command, nargs, lineno): """Skip a LaTeX command and its arguments. The command 'command' is supposed to start at position 'cmd_start' in 'line', and accept 'nargs' mandatory arguments. """ start_of_cmd_call_rec = re.compile(r"\\%s[ \t]*\{" % command) mo = start_of_cmd_call_rec.match(line, pos=cmd_start) if mo is None: raise ParseError("Parse error at line %u: cannot find the command " "\\%s followed by an opening brace, starting at " "column %u (column counted from 0)." % (lineno, command, cmd_start)) # Start parsing after the opening brace following the command name index = mo.end(0) # Nesting level of the braces parsed so far brace_level = 1 args_to_gobble = nargs while args_to_gobble > 0: while brace_level > 0: if index >= len(line): raise ParseError("""\ Runaway argument in line %u (unmatched braces), or too few arguments for command \\%s. Maybe the arguments end on the next lines, but this case is not handled currently.""" % (lineno, command)) if line[index] == '\\': index += 2 else: if line[index] == '{': brace_level += 1 elif line[index] == '}': brace_level -= 1 index += 1 args_to_gobble -= 1 obuf.append(line[cmd_start:index]) return index def match_object_start_as_number(mo): if mo is not None: res = mo.start(0) else: res = -1 return res def process_chunk(obuf, str, subs): """Perform the substitutions in 'subs' on string 's'.""" index = 0 while index < len(str): match_objects = [] for regexp, repl in subs: match_objects.append(regexp.search(str, pos=index)) match_indices = map(match_object_start_as_number, match_objects) # Did any of the regexps in subs match? no_match = True for i in match_indices: if i != -1: no_match = False break if no_match: break else: i = find_earliest_match(match_indices) mo = match_objects[i] match_start, match_end = mo.span(0) obuf.append(str[index:match_start]) # Replacement text obuf.append(mo.expand(subs[i][1])) # Continue searching and replacing after the match in the next # loop iteration index = match_end obuf.append(str[index:]) def process_body_line(output_stream, line, subs, lineno): """Perform replacement on a body line. 'subs' should be a list of tuples (compiled regexp, replacement string). """ index = 0 obuf = [] while True: cmd_starts_at = [] for cmd, nargs in skipped_commands: cmd_starts_at.append(line.find("\\" + cmd, index)) # Did we find at least one of the skipped_commands in 'line'? no_match = True for i in cmd_starts_at: if i != -1: no_match = False break if no_match: process_chunk(obuf, line[index:len(line)], subs) break else: # Find the command that matches first in 'line' i = find_earliest_match(cmd_starts_at) process_chunk(obuf, line[index:cmd_starts_at[i]], subs) index = skip_cmd_and_args(obuf, line, cmd_starts_at[i], command=skipped_commands[i][0], nargs=skipped_commands[i][1], lineno=lineno) output_stream.write(''.join(obuf)) def process_body(input_stream, output_stream, substitutions, no_subst, lineno): subs = compile_regexps(substitutions) no_subs = map(re.compile, no_subst) for line in input_stream: # print "Processing line %u..." % lineno no_processing_on_this_line = False for regexp in no_subs: if regexp.match(line): no_processing_on_this_line = True break if not no_processing_on_this_line: process_body_line(output_stream, line, subs, lineno) else: output_stream.write(line) lineno += 1 def process_command_line(): try: opts, args = getopt.getopt(sys.argv[1:], "", ["algorithm", "help", "version"]) except getopt.GetoptError, message: sys.stderr.write(usage + "\n") return ("exit", 1) params = {} for option, value in opts: if option == "--algorithm": print algorithm_doc return ("exit", 0) elif option == "--help": print usage return ("exit", 0) elif option == "--version": print "%s version %s" % (progname, progversion) return ("exit", 0) else: raise ProgramError("unexpected option received from the " "getopt module: '%s'" % option) if len(args) != 2: sys.stderr.write(usage + '\n') return ("exit", 1) params["input file"] = args[0] params["output file"] = args[1] return ("continue", params) def main(): action, p = process_command_line() if action == "exit": sys.exit(p) input_stream = file(p["input file"], "rb") output_stream = file(p["output file"], "wb") # Number of the input line that will be read next, starting from 1 lineno = 1 lineno = process_preamble(input_stream, output_stream, preamble_substitutions, begin_doc_re, lineno) process_body(input_stream, output_stream, body_substitutions, no_subst, lineno) sys.exit(0) if __name__ == "__main__": main() tex-common-4.04/doc/Debian-TeX-Policy.sgml0000644000000000000000000014365112157017604015200 0ustar The Debian TeX sub-policy The Debian TeX mailing list debian-tex-maint@lists.debian.org generated from $Id$ This document provides a set of rules for the packaging of applications, fonts and input files related to TeX within the Debian GNU/Linux distribution. Copyright © 2004-2012 Frank Kster, Richard Lewis, Norbert Preining, Ralf Stubner, Florent Rougon

This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

A copy of the GNU General Public License is available as in the Debian distribution or on the World Wide Web at . You can also obtain it by writing to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.

About this document

This document provides a set of rules for the packaging of applications, fonts and input files related to TeX within the Debian GNU/Linux distribution. It is still a in a draft state -- some things might not yet be fully implemented, and others are advisable, but not strictly necessary. If in doubt, please ask on debian-tex-maint@lists.debian.org.

The latest copy of this document can be found in the Debian-TeX-Policy files in the tex-common package. Terms and Definitions

The following terms are used in this document:

TeX-related package Any Debian package that uses or provides parts of the TeX infrastructure, i.e. the TeX or Metafont program or derivatives thereof, fonts or input files in a TEXMF tree, etc. tex-common

This package provides basic infrastructure and some configuration files for all TeX-related packages, including the configuration update programs.

Basic TeX packages

A Basic TeX package is a Debian package that provides the basic infrastructure for TeX-related programs. It should provide sufficient functionality for typesetting most generated (La)TeX code, e.g. from docbook, debiandoc, or texinfo sources. Usually, the Basic TeX packages will be divided into an architecture-dependent and an architecture-independent package.

The arch-dependent package must provide at least one binary that is fully compatible with Donald E. Knuth's original TeX program, and it should provide the original TeX itself. The output formats dvi, PostScript and Adobe PDF must be available, either directly or by conversion of other output formats. The arch-independent package must provide at least the files necessary to create the formats for plain TeX and LaTeX and the input files required by the LaTeX distribution, as well as the Computer Modern fonts.

TDS

The TeX Directory Structure, which describes file placement for TeX input files. The current version of the TDS is installed with this document as and . The latest version of the TDS is available at .

TEXMF tree

One directory tree, arranged according to the TDS TeX input file

A file that is meant to be used by a TeX-related program; technically any file that can be found by the /kpathsea/kpse library. This includes e.g. Type1 font files. configuration update programs

The configuration information from files provided by different TeX-related packages must be merged and made available in appropriate form to the various programs. This is usually done by scripts that write files into the TEXMFSYSVAR tree.

Currently, the configuration update programs provided by tex-common are: update-texmf, update-fmtutil, update-language, update-updmap.

TeX packages for the impatient

A package that only installs TeX input files, e.g. a new LaTeX package, should install them in the TEXMFDEBIAN tree (/usr/share/texmf/) at the place indicated by the TDS, see and , and register them in the maintainer scripts, usually by calling dh_installtex in debian/rules Packages that add fonts, hyphenation patterns or formats, or want to change the basic configuration in texmf.cnf, need to follow the rules in in addition to that.

Meta-packages and dependencies

The TeX Live collection of basic and add-on TeX packages provides some meta-packages for the convenience of users.

Depending on the texlive-* metapackages is only acceptable for editors, IDEs and other tools which handle user-generated code. TeX add-on packages, as well as automated input generators etc., must instead depend on a list of individual texlive packages which are actually used. This is, for example, required to be able to adapt dependencies of metapackages according to the users' needs.

File Placement

This chapter describes the placement of TeX input files, so that they can be found by programs. Files that are not input files for TeX or related programs must not be put in a TEXMF tree (put them into /usr/share/package instead). As an exception, documentation files in plain text may be used inside a TEXMF tree, e.g. to explain the purpose of an otherwise empty directory.

File searching and libkpathsea / libkpse

File locations must follow the TeX Directory Structure, TDS. The TDS specification is available as and , and the latest version of the TDS is available at . It is a bug if a package only conforms to an outdated TDS version. It is a more severe bug, however, if it conforms to the current TDS version but does not make sure to depend on an appropriately recent version of the Basic TeX packages or tex-common (that supports this TDS version).

The Basic TeX packages must provide a mechanism for searching through TEXMF trees that allows different files to be found depending on the invoking program and the specified file format. The only existing implementation is the libkpathsea library. Unfortunately, it was not originally designed for use as a dynamic shared library. A rewrite is under way to create a libkpse library with proper API specification and ABI compatibility. For the time being, the Basic TeX packages can provide a shared library, and program maintainers can decide to use it, or to link statically against their own copy of the code.

For use in scripts, the Basic TeX packages provide the utilities kpsewhich, kpsepath, kpsexpand, and kpsestat.

Directory trees

The following TEXMF trees are defined, as outlined below: /usr/share/texlive/texmf-dist/, referenced as TEXMFDIST /usr/local/share/texmf/, referenced as TEXMFLOCAL /usr/share/texlive/texmf/, referenced as TEXMFMAIN /usr/share/texmf/, referenced as TEXMFDEBIAN /var/lib/texmf/, referenced as TEXMFSYSVAR /etc/texmf/, referenced as TEXMFSYSCONFIG Any directories listed in the TEXMFHOME configuration variable in texmf.cnf or as an environment variable, optionally user-specific directories for configuration files (TEXMFCONFIG) and generated files (TEXMFVAR) The search order is from bottom up (files in TEXMFHOME taking precedence over files in TEXMFMAIN) etc.

The role of the trees TEXMFMAIN and TEXMFDIST in Debian parallels the usage in upstream TeX Live. Upstream uses TEXMFMAIN for the files that have to match the binary executables and TEXMFDIST for other TeX input files that are replaced when a new texmf tarball appears; TEXMFDEBIAN is an additional tree where TeX add-on packages can put their files.

Debian packages generally install files in TEXMFDEBIAN, and may ship or create empty directories in the other trees, in accordance with Debian Policy. Configuration file handling in TEXMFSYSCONFIG is described below in . Packages should take care to ignore TEXMFHOME in their maintainer scripts.

Generated files

Generated files should be created below TEXMFSYSVAR (or the user-specific variable directories, TEXMFVAR), with the subdirectory structure conforming to the TDS. Generated font files will either be created in each user's TEXMFVAR tree, or in the VARTEXFONTS treePer default, this tree is located in the world-writeable directory /tmp/texfonts/, in order to allow automatic package builds to work without user directories. On multi user systems, the admin might want to change this to a persistent directory and set up proper permissions

An exception is the generated file /etc/texmf/web2c/texmf.cnf. Local administrators should not edit this file, as manual changes will be overwritten later on. Instead, configuration file snippets in /etc/texmf/texmf.d must be used.

Filenames and installation of alternative files

Packages may not install files with the same name as a file already installed in a TEXMF tree, unless both files are in subdirectories where they will only be found by different applications, as determined by the --progname or --format switches to kpsewhich.

There are two exception to this rule: Basic TeX packages install their files into their TEXMFDIST directory and will usually contain files that are also in other basic TeX packages.

Packages that need newer versions of a file than already supplied by a basic TeX package and installed in TEXMFDIST can place them into TEXMFDEBIAN. Thus, the outdated file will be shadowed, and the new one is in effect.

The maintainer of the basic TeX package should be made aware of the problem A wishlist bug on the shadowing package, blocked by an other wishlist bug on the basic TeX package, can help tracking these issues. The package maintainer must make sure to follow new releases of the basic TeX packages and not continue shadowing a file that is newer than the version provided by the shadowing package.

The package must make sure that the newer version is backward-compatible, meaning it must not break compilation of any TeX document, and it should not change the output file. A change of the output file may be acceptable if an obviously buggy behavior is corrected, and if it had previously not been possible to easily fix this behavior in user's documents (or if the updated package and a possible fix in the document combined lead to a correct document).

Installing more than two versions of a file will most likely lead to confusion. Therefore, the possibility to shadow a file once should be enough, and the usage of dpkg-divert is discouraged.

It is also discouraged to use a file other than from the canonical source for that file, usually the CTAN network.

Documentation

Packages should make documentation available to texdoc. This can be done be either installing the files below /usr/share/texmf/doc, or by providing symlinks from subdirectories of that location to the actual documentation files. To allow partial parallel installation of different basic TeX packages, these always install their documentation files into /usr/share/doc/packagename and put symlinks into their respective TEXMFDIST.

A package must not install files into (subdirectories of) /usr/share/texmf/doc, which is a symbolic link to /usr/share/doc/texmf.

The entry points for documentation should have names that indicate what they document. Names like manual.pdf or index.html should be avoided, even if the directory name is unmistakable This allows users to say texdoc packagename directly. Otherwise they will first have to find the right command line (e.g. texdoc packagename/user.dvi) using texdoc -s keyword .

Configuration Configuration files

Files that are used to modify the behavior of executables must be treated as any other configuration file in a Debian package. However, files that are used to control the typeset output - the appearance of documents - need not be treated as configuration files. It is up to the maintainer of the package to decide which files make sense to be used for site-wide (as opposed to per-project or per-document) customization.

A typical case for a site-wide configuration file is a file that must be changed if a style file should use additional modules (installed, for example, into TEXMFLOCAL). Options that only control document output are rather used for a particular document or documentation project and should usually not be installed as a configuration file.

Note that /etc/texmf/ is a usual TDS tree. Files can be put into appropriate TDS-conforming subdirectories (e.g. /etc/texmf/fonts/map/), but directories not specified in TDS (or added Debian-specifically in tex-common's files in /etc/texmf/texmf.d/) are generally not searched for TeX input files and can be used by packages for configuration files that are not TeX input files (e.g. the files in subdirectories fmt.d or hyphen.d).

Configuration update programs

Configuration files in the TeX world come in two classes: stackable and unstackable. The first class means that the respective programs read all configuration files found, while in the later case only the top or first configuration file is used.

Stackable configuration files in TeX are TEXMFTREE/web2c/texmf.cnf (central configuration for TeX applications) and TEXMFTREE/web2c/updmap.cfg (font configuration), while unstackable configuration files are TEXMFTREE/tex/generic/config/language.dat (language support/hyphenation patterns for latex based formats), TEXMFTREE/tex/generic/config/language.def (the same for etex based formats), TEXMFTREE/tex/generic/config/language.dat.lua (the same for luatex based formats), and TEXMFTREE/web2c/fmtutil.cnf (for format definitions).

In Debian, by default the respective configuration files of the following trees are used: For texmf.cnf: TEXMFDEBIAN (the texmf.cnf file is a link to the one in TEXMFMAIN). For updmap.cfg:TEXMFDIST, TEXMFDEBIAN. For the unstackable configuration files the respective copies in TEXMFSYSVAR are used.

The stackable configuration files are either static (texmf.cnf) or generated automatically in the background without any need for configuration, since changes can be included in a higher order configuration file.

The non stackable configuration files plus the file /etc/texmf/web2c/texmf.cnf are generated by configuration update programs from configuration files in subdirectories of /etc/texmf. For all of them this is the only method of configuration.

Packages are free to add configuration items to the common configuration files, but they should not try to override configuration items that are supplied by other packages. Rather, shared configuration items should be supplied by the Basic TeX packages or any other package on which all involved packages depend, with a setting appropriate for all. If this is impractical, the involved packages must at least agree on the way different packages override other's settings Note that in texmf.cnf, as well as in the sequence of multiple texmf.cnf files that are read, earlier entries override later ones. .

The configuration update programs should be called without any options to allow for internal changes, e.g. of the directories where the generated files are placed.

Packages that changed updmap.cfg must call updmap-sys as detailed in . Packages that changed language.dat or fmtutil.cnf must call fmtutil-sys (see below). They must make sure to issue the mktexlsr command before this.

Font configuration

A package that provides PostScript Type 1 fonts for TeX should be usable with any Basic TeX Package. The recommended way to implement the configuration scheme described below is to use the debhelper program dh_installtex provided by tex-common. See for usage details.

Description of manual font package setup

This section describes how dh_installtex manages font packages, and what packages need to do that want to do without it.

For the rest of this section, we'll assume we are dealing with a package named package that installs PostScript Type 1 fonts for TeX. package should fulfill the following requirements: It should depend on tex-common but not on any Basic TeX Package, unless needed for another task than simply installing the fonts for TeX.

It should install the necessary map files (.map extension) below TEXMFMAIN/fonts/map. The precise location must conform to the applicable TDS version.

It should also obviously install other needed or useful files provided by upstream to use the fonts with TeX-related programs (.pfb, .tfm, .enc, .fd, .sty, documentation, etc.).

It should install one or more configuration files with names following the pattern 20name.cfg into /etc/texmf/updmap.d/ Filenames starting with 10 are reserved for the Basic TeX packages. However, sorting order is actually only relevant for snippets for texmf.cnf, fmtutil.cnf and language.dat. . Such files will be later merged by update-updmap to form /var/lib/texmf/web2c/updmap.cfg, the effective configuration file for updmap-sys.

Exactly what to put in these files is documented in . Basically, they should contain the pseudo-comment: # -_- DebPkgProvidedMaps -_- as well as the usual Map and/or MixedMap lines that package needs to add to /var/lib/texmf/web2c/updmap.cfg.

It should install a file named /var/lib/tex-common/fontmap-cfg/package.list that contains a reference to every .cfg file from the previous step, one per line. For instance, if package installs 20foo.cfg and 20bar.cfg into /etc/texmf/updmap.d/, the contents of /var/lib/tex-common/fontmap-cfg/package.list should be: 20foo 20bar This package.list file must be shipped in the .deb, so that when package is removed (not necessarily purged), package.list disappears from /var/lib/tex-common/fontmap-cfg/.

It should run: in package.postinst; when package.postrm is called with remove or disappear as its first argument the following commands in this order: update-updmap --quiet, mktexlsr and updmap-sys.

Since mktexlsr and updmap-sys are provided by the Basic TeX Packages, package.postinst has to ensure that they are only called when found in $PATH (unless package depends on the Basic TeX Packages for some reason). In package.postrm, the same considerations must be taken into account, with the addition that tex-common (that provides update-updmap) can be unconfigured or even uninstalled.

Note that even when tex-common is configured, it cannot be assumed that update-updmap, mktexlsr and updmap-sys can be safely run whenever available, because they internally use kpsewhich which only works after the libkpathsea library in a separate package has been configured properly.However, update-updmap uses libkpathsea only in user-specific-mode. In system-wide mode, it doesn't matter whether libkpathsea is configured or not. The following check can be used to determine whether libkpathsea is configured: if kpsewhich --version >/dev/null 2>&1; then echo "kpsewhich is installed and libkpathsea is configured." else echo "Either kpsewhich is not installed, or libkpathsea is not configured." fi

A sample implementation of this scheme can be found in , but the recommended way to implement this scheme is to use dh_installtex.

Rationale

The rest of this section explains the rationale behind the previous recommendations. The dependency on tex-common ensures that in package.postinst, update-updmap can be run and texmf.cnf is in a sane state, so that mktexlsr and updmap-sys can be run safely (if present and if libkpathsea is configured). The recommended order for running the programs update-updmap, mktexlsr and updmap-sys ensures that updmap-sys can locate the newly-installed files (in particular, the map files shipped by package), since mktexlsr is run before updmap-sys. It is also run after update-updmap, because /var/lib/texmf/web2c/updmap.cfg might have been created by update-updmap, although it more probably already existed. And since it would be of no use to call mktexlsr before update-updmap, we recommend to run it after, just in case.

Now, about the "magic comments" in /etc/texmf/updmap.d/*.cfg and the package.list file in /var/lib/tex-common/fontmap-cfg/. When that package is removed, but not purged, it has to make sure that its update-updmap configuration files in /etc/texmf/updmap.d/ are ignored. Otherwise, any call to updmap-sys by an other package or the local admin would fail because it cannot find package's map files. Besides, we want the /etc/texmf/updmap.d/*.cfg files to be conffiles (unless we really have no other choice), because then dpkg automatically handles upgrades while preserving user modifications for them. As a consequence, moving the .cfg files from package out of the way when it is removed is not an option. Moreover, the user would wonder where his configuration files have gone in such a case.

The solution we chose was to add a little bit of logic into update-updmap, so that whenever it sees a .cfg file (let's call it 20foo.cfg) that has the "magic comment", it actually includes its contents into updmap.cfg if, and only if: it is up-to-date (which is assumed if 20foo.cfg.dpkg-new doesn't exist in the same directory); 20foo appears on a line by itself in one of the .list files in /var/lib/tex-common/fontmap-cfg/. Additionally, that .list file should be named package.list if 20foo.cfg comes from package, for simple reasons of tidiness.

With this little mechanism in place, all the rest follows as expected: When package is removed, but not purged, package.list is first removed by dpkg from /var/lib/tex-common/fontmap-cfg/, thus disabling the the .cfg files shipped by package as far as update-updmap is concerned. Then, package.postrm calls update-updmap, mktexlsr and updmap-sys, with the result that package's map files aren't listed anymore in the final map files (psfonts.map, pdftex.map...) generated by updmap-sys. If package is reinstalled later, two files are first created by dpkg during the unpack phase: /var/lib/tex-common/fontmap-cfg/package.list and /etc/texmf/updmap.d/20foo.cfg.dpkg-new. As long as the second one exists, the conffile /etc/texmf/updmap.d/20foo.cfg will be ignored by update-updmapAn update-updmap call could take place if another package such as texlive-* is configured in the meantime. That happens sometimes with APT. because it may be outdated. Eventually, package is configured; package.postinst runs update-updmap, mktexlsr and updmap-sys, and the .cfg files shipped by package aren't ignored by update-updmap this time, since they are referenced in /var/lib/tex-common/fontmap-cfg/package.list and the .dpkg-new files don't exist anymore. Thus, the map files shipped by package do end up in the final map files generated by updmap-sys.

Language/Hyphenation configuration

A package that provides additional hyphenation patterns for TeX should be usable with any Basic TeX Package. The recommended way to implement the configuration scheme described below is to use the debhelper program dh_installtex provided by tex-common. See for usage details. Note that for language.dat, order is important: english should always be the first language.

These packages should put the actual hyphenation file into the respective places in TEXMFMAIN, and have them registered by putting a configuration file with extension .cnf into /etc/texmf/language.d and calling update-language. The file contents will then be incorporated into /var/lib/texmf/tex/generic/config/language.dat, the effective configuration file for TeX and friends' hyphenations.

Hyphenation patterns present the same problem as described in the previous section for font configuration files: If the package is removed, but not purged, the patterns are deleted, but the configuration information is still in /etc/texmf/language.d/, and the format generation would fail if they would be included in language.dat. Therefore, an analogous mechanism has been implemented as described for update-updmap: If a file in /etc/texmf/language.d/ contains the "magic comment" # -_- DebPkgProvidedMaps -_- it will only be used as long it is: up-to-date (which is assumed if the same file with .dpkg-new suffix doesn't exist in the same directory); listed in a file in /var/lib/tex-common/language-cnf/ which should have the name package.list.

Calling update-language is *not* sufficient to be able to use the new hyphenation patterns; instead the formats that use it need to be regenerated. This can be done by running fmtutil-sys --byhyphen `kpsewhich --progname=latex language.dat`.

If a package that provides additional hyphenation patterns is removed, it must make sure the formats are properly recreated without it. With the "magic comment" mechanism, this means to run update-language and fmtutil-sys --byhyphen `kpsewhich --progname=latex language.dat` in postrm

There is currently no mechanism (i.e., no update-language) for automatic addition of hyphenation patterns to formats that do not use the same hyphenation configuration file as LaTeX.

The recommended way for implementing this scheme is to use dh_installtex.

Format configuration

As with font map configuration and language hyphenation patterns configuration, packages that provide additional formats should be usable with any Basic TeX Package. The recommended way to implement the configuration scheme described below is to use the debhelper program dh_installtex provided by tex-common. See for usage details. Note that for fmtutil.cnf, order is important: Formats will be created for each line, and thus format files created from later lines will overwrite earlier ones.

These packages should put a configuration file according to fmtutil.cnf(5) into /etc/texmf/fmt.d/, run update-fmtutil and subsequently create the format with fmtutil-sys --byfmt format. fmtutil-sys will only try to create the format if it can find the corresponding format.ini file (the last argument in an fmtutil.cnf line). Therefore the format.ini file should not be a conffile.

If a package needs to create formats at runtime, it should use a local fmtutil.cnf with the appropriate entries and specifiy its location to fmtutil on the command line, using the --cnffile switch.

Upon package removal, update-fmtutil must be called in postrm, and the created formats and log files should be removed from the directory specified by `kpsewhich -var-value=TEXMFSYSVAR`/web2c.

The recommended way for implementing this scheme is to use dh_installtex.

Best practices for packages that build-depend on the TeX system Configuration

If packages that build-depend on the TeX system need a changed configuration, they should not try to provide it statically. If settings in any other configuration file are inappropriate for a package to build, this is (usually) a bug in the package that provides the file. It should be fixed in this package, not circumvented by a workaround in the build process. Such workarounds have proven to be problematic, because they might stop working after changes in the depended-on package, and such failure cannot be foreseen by its maintainers. If a change is still necessary, the package should use the configuration update programs with the --outputdir and --add-file options.

Font cache data

Font cache data are created each time a font in Metafont format is used, and placed by default in TEXMFVAR. During package build, this has to be avoided. In order to be able to clean up the generated files (and only those), the font cache should instead be put below the build directory. This can be achieved by setting TEXMFVAR to a subdirectory of the current directory, e.g. $(CURDIR)/.texmf-var, using Make's built-in variable. Packages which do not change TEXMFVAR must not create documentation that uses Metafont fonts in the binary target.

Command execution and format files

If TeX formats need to be generated before execution, this should be done in the post-installation script. Packages that depend on an executable can thus simply declare Depends: on the package providing the executable, and only do that. Any additional checks, e.g. for the existence of format files, is unnecessary and harmful, causing internal changes (e.g. of format file extensions) to break the depending package that does this check. Maintainer scripts or programs in Debian packages should always use fmtutil or fmtutil-sys for format generation, and either add a fmtutil.cnf snippet in /etc/texmf/fmt.d/ (with fmtutil-sys, for site-wide formats), or use fmtutil with the --cnffile option and an appropriate local fmtutil.cnf (for runtime programs)

Local administrators can override settings from texmf.cnf with environment variables; this has sometimes lead to errors in postinst scripts. It is recommended that postinst scripts unset relevant variables before format creation or other problematic tasks.

If an add-on package generates a format upon installation that needs a base format (e.g. latex.fmt), it must not load the existing base format The reason is that, in order to avoid other problems, update-fmtutil ignores files in /etc/texmf/fmt.d that have a corresponding .dpkg-new file, and that it is necessary to recreate all formats when pool files or engines are updated. Thus, some Basic TeX packages call fmtutil --all in their postinst scripts. When Basic TeX packages are upgraded together while a package that loads latex.fmt is installed and configured, then one of the Basic TeX packages' postinst will call update-fmtutil and fmtutil --all while others are is still unconfigured and have .dpkg-new files. Consequently, no format information for e.g. LaTeX is available, and the generation of the format that wants to load it would fail. However, since all files needed to create e.g. latex.fmt are available, the depending format can \input latex.ini and create its own format without problems. . Instead the fmtutil.cnf snippet and the format.ini file must be changed so that the process of format creation is repeated. For example, if upstream creates their format by loading latex: latex pdfetex language.dat -translate-file=cp227.tcx *latex.ini jadetex etex language.dat &latex jadetex.ini and the following jadetex.ini file: \input jadetex.ltx \dump then the Debian package maintainer must load latex.ini instead of latex.fmt, making sure that \dump in latex.ltx has no effect, and create the following new jadetex.ini: \let\savedump\dump \let\dump\relax \input latex.ini \let\dump\savedump \input jadetex.ltx \dump and the following snippet for fmtutil.cnf: jadetex etex language.dat -translate-file=cp227.tcx *jadetex.ini

The Dpkg Post-Invoke Mechanism

This section was intended to deal with a once-planned mechanism that would allow to delay running of mktexlsr, updmap and perhaps even "fmtutil --all" until all TeX-related packages that want to do this are configured. Thus, it would be unnecessary to call the programs multiple times. Coding this is not hard, however it is unclear how it could be made sure that failures get attributed to the correct package. Therefore this plan has been dropped.

Sample code

This section contains sample code that implements the recommodations of this document.

Sample code for font packages

Sample postinst script: # # postinst-texfonts # # postinst snippet for installing Type 1 fonts for TeX # # Author: Florent Rougon <f.rougon@free.fr> # update_fontmaps() { update-updmap --quiet # All of the following needs an installed and configured # basic TeX system, so check this. if kpsewhich --version >/dev/null 2>&1; then # mktexlsr is recommended now because updmap-sys relies # heavily on Kpathsea to locate updmap.cfg and the map files. # Also, it is slightly better not to specify a particular # directory to refresh because updmap.cfg is typically found # in TEXMFSYSVAR while the map files are in TEXMFMAIN or # TEXMFDIST. if which mktexlsr >/dev/null; then mktexlsr; fi if which updmap-sys >/dev/null; then printf "Running updmap-sys... " updmap-sys --quiet echo "done." fi fi return 0 } case "$1" in configure|abort-upgrade|abort-remove|abort-deconfigure) update_fontmaps ;; *) echo "postinst called with unknown argument '$1'" >&2 exit 1 ;; esac

Sample postrm script: # # postrm-texfonts # # postrm snippet for installing Type 1 fonts for TeX # # Author: Florent Rougon <f.rougon@free.fr> # tell_that_errors_are_ok() { # Cheap option handling... if [ "$1" = -n ]; then prog="$2" endwith=' ' else prog="$1" endwith='\n' fi printf "\ Trying to run '$prog' (error messages can be ignored if tex-common is not configured)...$endwith" return 0 } # The function name is *try_to*_update_fontmaps because the following # scenario might happen: # 1. this package is deconfigured # 2. tex-common and texlive-binaries are removed # 3. this package is removed or purged # # (cf. Policy 6.5, step 2, about a conflicting package being removed due # to the installation of the package being discussed). # # In this case, update-updmap, mktexlsr and updmap-sys would all be gone once # tex-common and texlive-binaries are removed, so we must append "|| true" to # their calls. try_to_update_fontmaps() { # Don't print alarming error messages if the programs aren't even # available. if which update-updmap >/dev/null; then tell_that_errors_are_ok -n update-updmap update-updmap --quiet || true echo "done." fi # All of the following needs an installed and configured basic TeX system. # If there is one, register the fonts. Otherwise, that will be done later # when the basic TeX system is configured, so we can exit without # worrying. kpsewhich --version >/dev/null 2>&1 || return 0 # mktexlsr is recommended now because updmap-sys relies heavily on # Kpathsea to locate updmap.cfg and the map files. Also, it is slightly # better not to specify a particular directory to refresh because # updmap.cfg is typically found in TEXMFSYSVAR while the map files are in # TEXMFMAIN. if which mktexlsr >/dev/null; then tell_that_errors_are_ok mktexlsr mktexlsr || true echo "done." fi if which updmap-sys >/dev/null; then tell_that_errors_are_ok -n updmap-sys updmap-sys --quiet || true echo "done." fi return 0 } case "$1" in remove|disappear) try_to_update_fontmaps ;; purge) # Supposing updmap.cfg & Co are clean (which I think is a reasonable # assumption), we don't need to call try_to_update_fontmaps(). # Calling it on remove _and_ on purge just for hypothetical users # who would break their config before purging this package seems to # be more annoying than useful (it takes a lot of time). ;; upgrade|failed-upgrade|abort-upgrade|abort-install) ;; *) echo "postrm called with unknown argument '$1'" >&2 exit 1 ;; esac

tex-common-4.04/doc/version.ent0000644000000000000000000000006712157017604013365 0ustar tex-common-4.04/doc/obsolete-tex-files.txt0000644000000000000000000002517412157017604015451 0ustar The following files have been installed with older versions of teTeX and are not longer per default installed by any TeX package into /etc/texmf. If you did NOT install them you can remove them without any problems. As usual in a TEXMF tree, empty directories can safely be removed. /etc/texdoctk/texdocrc /etc/texmf/dvips/builtin35.map /etc/texmf/dvips/config/antp.cfg /etc/texmf/dvips/config/antp.map /etc/texmf/dvips/config/antt.cfg /etc/texmf/dvips/config/antt.map /etc/texmf/dvips/config/ar-ext-adobe-bi.map /etc/texmf/dvips/config/ar-ext-adobe-kb.map /etc/texmf/dvips/config/ar-ext-urw-kb.map /etc/texmf/dvips/config/ar-ext-urw-urw.map /etc/texmf/dvips/config/ar-std-adobe-bi.map /etc/texmf/dvips/config/ar-std-adobe-kb.map /etc/texmf/dvips/config/ar-std-urw-kb.map /etc/texmf/dvips/config/ar-std-urw-urw.map /etc/texmf/dvips/config/bakoma-extra.map /etc/texmf/dvips/config/bsr-interpolated.map /etc/texmf/dvips/config/bsr.map /etc/texmf/dvips/config/charter.map /etc/texmf/dvips/config/cmcyr.map /etc/texmf/dvips/config/config.antp /etc/texmf/dvips/config/config.antt /etc/texmf/dvips/config/config.builtin35 /etc/texmf/dvips/config/config.dfaxhigh /etc/texmf/dvips/config/config.dfaxlo /etc/texmf/dvips/config/config.download35 /etc/texmf/dvips/config/config.gsftopk /etc/texmf/dvips/config/config.mirr /etc/texmf/dvips/config/config.omega /etc/texmf/dvips/config/config.outline /etc/texmf/dvips/config/config.pdf /etc/texmf/dvips/config/config.pk /etc/texmf/dvips/config/config.pl /etc/texmf/dvips/config/config.qbk /etc/texmf/dvips/config/config.qcr /etc/texmf/dvips/config/config.qf /etc/texmf/dvips/config/config.qhv /etc/texmf/dvips/config/config.qpl /etc/texmf/dvips/config/config.qtm /etc/texmf/dvips/config/config.qzc /etc/texmf/dvips/config/config.www /etc/texmf/dvips/config/context.map /etc/texmf/dvips/config/cs.map /etc/texmf/dvips/config/hoekwater.map /etc/texmf/dvips/config/lucidabr.map /etc/texmf/dvips/config/lw35extra-adobe-bi.map /etc/texmf/dvips/config/lw35extra-adobe-kb.map /etc/texmf/dvips/config/lw35extra-urw-kb.map /etc/texmf/dvips/config/lw35extra-urw-urw.map /etc/texmf/dvips/config/marvosym.map /etc/texmf/dvips/config/mathpi.map /etc/texmf/dvips/config/mathpple-ext.map /etc/texmf/dvips/config/mt-belleek.map /etc/texmf/dvips/config/mt-plus.map /etc/texmf/dvips/config/mtsupp-ext-adobe-bi.map /etc/texmf/dvips/config/mtsupp-ext-adobe-kb.map /etc/texmf/dvips/config/mtsupp-ext-urw-kb.map /etc/texmf/dvips/config/mtsupp-ext-urw-urw.map /etc/texmf/dvips/config/mtsupp-std-adobe-bi.map /etc/texmf/dvips/config/mtsupp-std-adobe-kb.map /etc/texmf/dvips/config/mtsupp-std-urw-kb.map /etc/texmf/dvips/config/mtsupp-std-urw-urw.map /etc/texmf/dvips/config/mt-yy.map /etc/texmf/dvips/config/omega.cfg /etc/texmf/dvips/config/omega.map /etc/texmf/dvips/config/pazo.map /etc/texmf/dvips/config/pl.cfg /etc/texmf/dvips/config/pl.map /etc/texmf/dvips/config/ps2pk.map /etc/texmf/dvips/config/psnfss.map /etc/texmf/dvips/config/qpl.map /etc/texmf/dvips/config/qtm.map /etc/texmf/dvips/config/raw-ar-ext-adobe-bi.map /etc/texmf/dvips/config/raw-ar-ext-adobe-kb.map /etc/texmf/dvips/config/raw-ar-ext-urw-kb.map /etc/texmf/dvips/config/raw-ar-ext-urw-urw.map /etc/texmf/dvips/config/raw-ar-std-adobe-bi.map /etc/texmf/dvips/config/raw-ar-std-adobe-kb.map /etc/texmf/dvips/config/raw-ar-std-urw-kb.map /etc/texmf/dvips/config/raw-ar-std-urw-urw.map /etc/texmf/dvips/config/raw-lw35extra-adobe-bi.map /etc/texmf/dvips/config/raw-lw35extra-adobe-kb.map /etc/texmf/dvips/config/raw-lw35extra-urw-kb.map /etc/texmf/dvips/config/raw-lw35extra-urw-urw.map /etc/texmf/dvips/config/utopia.map /etc/texmf/dvips/config/xypic.map /etc/texmf/dvips/download35.map /etc/texmf/dvips/dvipdfm_dl14.map /etc/texmf/dvips/dvipdfm.map /etc/texmf/dvips/dvipdfm_ndl14.map /etc/texmf/dvips/pdftex_dl14.map /etc/texmf/dvips/pdftex.map /etc/texmf/dvips/pdftex_ndl14.map /etc/texmf/dvips/ps2pk.map /etc/texmf/dvips/psfonts.map /etc/texmf/dvips/psfonts_pk.map /etc/texmf/dvips/psfonts_t1.map /etc/texmf/fonts/map/dvipdfm/tetex/cm-dvipdfm-fix.map /etc/texmf/fonts/map/dvips/antp/antp.map /etc/texmf/fonts/map/dvips/antt/cork-antt.map /etc/texmf/fonts/map/dvips/antt/cs-antt.map /etc/texmf/fonts/map/dvips/antt/exp-antt.map /etc/texmf/fonts/map/dvips/antt/greek-antt.map /etc/texmf/fonts/map/dvips/antt/qx-antt.map /etc/texmf/fonts/map/dvips/antt/t2a-antt.map /etc/texmf/fonts/map/dvips/antt/t2b-antt.map /etc/texmf/fonts/map/dvips/antt/t2c-antt.map /etc/texmf/fonts/map/dvips/antt/t5-antt.map /etc/texmf/fonts/map/dvips/antt/texnansi-antt.map /etc/texmf/fonts/map/dvips/antt/wncy-antt.map /etc/texmf/fonts/map/dvips/cc-pl/ccpl.map /etc/texmf/fonts/map/dvips/context/8r-base.map /etc/texmf/fonts/map/dvips/context/context-base.map /etc/texmf/fonts/map/dvips/context/cork-public-lm.map /etc/texmf/fonts/map/dvips/context/cork-var-exclusive-public-lm.map /etc/texmf/fonts/map/dvips/context/cork-var-public-lm.map /etc/texmf/fonts/map/dvips/context/ec-base.map /etc/texmf/fonts/map/dvips/context/ec-public-lm.map /etc/texmf/fonts/map/dvips/context/ec-var-exclusive-public-lm.map /etc/texmf/fonts/map/dvips/context/ec-var-public-lm.map /etc/texmf/fonts/map/dvips/context/il2-ams-cmr.map /etc/texmf/fonts/map/dvips/context/original-adobe-euro.map /etc/texmf/fonts/map/dvips/context/original-adobe-euro.map /etc/texmf/fonts/map/dvips/context/original-ams-cmr.map /etc/texmf/fonts/map/dvips/context/original-ams-euler.map /etc/texmf/fonts/map/dvips/context/original-base.map /etc/texmf/fonts/map/dvips/context/original-context-symbol.map /etc/texmf/fonts/map/dvips/context/original-context-symbol.map /etc/texmf/fonts/map/dvips/context/original-dummy.map /etc/texmf/fonts/map/dvips/context/original-empty.map /etc/texmf/fonts/map/dvips/context/original-micropress-informal.map /etc/texmf/fonts/map/dvips/context/original-public-csr.map /etc/texmf/fonts/map/dvips/context/original-public-lm.map /etc/texmf/fonts/map/dvips/context/original-public-plr.map /etc/texmf/fonts/map/dvips/context/original-public-vnr.map /etc/texmf/fonts/map/dvips/context/original-vogel-symbol.map /etc/texmf/fonts/map/dvips/context/original-vogel-symbol.map /etc/texmf/fonts/map/dvips/context/original-youngryu-px.map /etc/texmf/fonts/map/dvips/context/original-youngryu-tx.map /etc/texmf/fonts/map/dvips/context/pl0-ams-cmr.map /etc/texmf/fonts/map/dvips/context/psclean.map /etc/texmf/fonts/map/dvips/context/qx-base.map /etc/texmf/fonts/map/dvips/context/qx-public-lm.map /etc/texmf/fonts/map/dvips/context/t5-base.map /etc/texmf/fonts/map/dvips/context/t5-public-lm.map /etc/texmf/fonts/map/dvips/context/texnansi-base.map /etc/texmf/fonts/map/dvips/context/texnansi-public-lm.map /etc/texmf/fonts/map/dvips/context/texnansi-var-exclusive-public-lm.map /etc/texmf/fonts/map/dvips/context/texnansi-var-public-lm.map /etc/texmf/fonts/map/dvips/lucida/lucidabr-k.map /etc/texmf/fonts/map/dvips/lucida/lucidabr.map /etc/texmf/fonts/map/dvips/lucida/lumath-k.map /etc/texmf/fonts/map/dvips/lucida/lumath.map /etc/texmf/fonts/map/dvips/misc/cmcyr.map /etc/texmf/fonts/map/dvips/misc/cs.map /etc/texmf/fonts/map/dvips/misc/dstroke.map /etc/texmf/fonts/map/dvips/misc/marvosym.map /etc/texmf/fonts/map/dvips/misc/pcrr8rn.map /etc/texmf/fonts/map/dvips/pl/pl.map /etc/texmf/fonts/map/dvips/psnfss/charter.map /etc/texmf/fonts/map/dvips/psnfss/fpls.map /etc/texmf/fonts/map/dvips/psnfss/pazo.map /etc/texmf/fonts/map/dvips/psnfss/psnfss.map /etc/texmf/fonts/map/dvips/psnfssx/pcr8y.map /etc/texmf/fonts/map/dvips/psnfssx/phv8y.map /etc/texmf/fonts/map/dvips/psnfssx/ptm8y.map /etc/texmf/fonts/map/dvips/psnfssx/README.mapfiles /etc/texmf/fonts/map/dvips/qfonts/qbk.map /etc/texmf/fonts/map/dvips/qfonts/qcr.map /etc/texmf/fonts/map/dvips/qfonts/qhv.map /etc/texmf/fonts/map/dvips/qfonts/qpl.map /etc/texmf/fonts/map/dvips/qfonts/qtm.map /etc/texmf/fonts/map/dvips/qfonts/qzc.map /etc/texmf/fonts/map/dvips/tetex/contnav.map /etc/texmf/fonts/map/dvips/tetex/dvipdfm35.map /etc/texmf/fonts/map/dvips/tetex/dvips35.map /etc/texmf/fonts/map/dvips/tetex/hoekwater.map /etc/texmf/fonts/map/dvips/tetex/lucidabr-o.map /etc/texmf/fonts/map/dvips/tetex/lumath-o.map /etc/texmf/fonts/map/dvips/tetex/mathpple.map /etc/texmf/fonts/map/dvips/tetex/mt-belleek.map /etc/texmf/fonts/map/dvips/tetex/mt-plus.map /etc/texmf/fonts/map/dvips/tetex/mt-yy.map /etc/texmf/fonts/map/dvips/tetex/pdftex35.map /etc/texmf/fonts/map/dvips/tetex/ps2pk35.map /etc/texmf/fonts/map/dvips/tetex/pxfonts.map /etc/texmf/fonts/map/dvips/tetex/ttcmex.map /etc/texmf/fonts/map/dvips/tetex/txfonts.map /etc/texmf/fonts/map/dvips/urwvn/urwvn.map /etc/texmf/fonts/map/dvips/vntex/vnr.map /etc/texmf/fonts/map/pdftex/cmttf/cmttf.map /etc/texmf/language.dat /etc/texmf/pdftex/pdftex.cfg /etc/texmf/tex/context/config/cont-cz.ini /etc/texmf/tex/context/config/cont-de.ini /etc/texmf/tex/context/config/cont-en.ini /etc/texmf/tex/context/config/cont-it.ini /etc/texmf/tex/context/config/cont-nl.ini /etc/texmf/tex/context/config/cont-ro.ini /etc/texmf/tex/context/config/cont-uk.ini /etc/texmf/tex/context/config/cont-usr.tex /etc/texmf/tex/context/config/texexec.ini /etc/texmf/tex/context/config/texexec.rme /etc/texmf/tex/cslatex/config/fonttext.cfg /etc/texmf/tex/cslatex/config/hyphen.cfg /etc/texmf/tex/cyrplain/config/cyramstx.ini /etc/texmf/tex/cyrplain/config/cyrtex.cfg /etc/texmf/tex/cyrplain/config/cyrtex.ini /etc/texmf/tex/cyrplain/config/cyrtxinf.ini /etc/texmf/texdoc-100.dat /etc/texmf/texdoc-102.dat /etc/texmf/texdoc-103.dat /etc/texmf/tex/dvipdfm/config/config /etc/texmf/tex/dvipdfm/config/README.config /etc/texmf/tex/etex/config/etex.ini /etc/texmf/tex/etex/config/language.def /etc/texmf/tex/generic/config/fontmath.cfg /etc/texmf/tex/generic/config/fonttext.cfg /etc/texmf/tex/generic/config/preload.cfg /etc/texmf/tex/language.d/config/00tetex.cnf /etc/texmf/tex/latex/config/fontmath.cfg /etc/texmf/tex/latex/config/fonttext.cfg /etc/texmf/tex/latex/config/latex209.cfg /etc/texmf/tex/latex/config/latex.ini /etc/texmf/tex/latex/config/ltxdoc.cfg /etc/texmf/tex/latex/config/ltxguide.cfg /etc/texmf/tex/latex/config/preload.cfg /etc/texmf/tex/latex/config/texsys.cfg /etc/texmf/tex/pdftex/config/cmttf.map /etc/texmf/tex/pdftex/config/context/il2-ams-cmr.map /etc/texmf/tex/pdftex/config/context/original-adobe-euro.map /etc/texmf/tex/pdftex/config/context/original-ams-cmr.map /etc/texmf/tex/pdftex/config/context/original-ams-euler.map /etc/texmf/tex/pdftex/config/context/original-context-symbol.map /etc/texmf/tex/pdftex/config/context/original-vogel-symbol.map /etc/texmf/tex/pdftex/config/context/original-youngryu-px.map /etc/texmf/tex/pdftex/config/context/original-youngryu-tx.map /etc/texmf/tex/pdftex/config/context/pl0-ams-cmr.map /etc/texmf/tex/plain/config/language.def /etc/texmf/tex/platex/config/hyphen.cfg /etc/texmf/tex/platex/config/language.dat /etc/texmf/tex/platex/config/platex.ini /etc/X11/app-defaults/XDvi tex-common-4.04/doc/Debian-TeX-Policy.pdf0000644000000000000000000045440512157017604015011 0ustar %PDF-1.5 % 97 0 obj << /Length 470 /Filter /FlateDecode >> stream xڅRKo0DS⇄ JB=dSʿB$ioHKݰgrsQj"k8)HZR[V>69>4[_{p%(Mh ?V{L-=ND-8W")XDGC^H#,SkEI YEOz|hqJ®U J(p|S%z<%m*37[غ^8#"0P)&4C5559Yէꙑ*7Rn@"Lu+ێPͯuPp ڸSuVЄ _GB36'DG;63jLiKjjլӪ1O5>b17LgP'|8'_E^-^2&(HY1}=a4c!LX/>O ~;o! endstream endobj 109 0 obj << /Length 978 /Filter /FlateDecode >> stream xڕUQo6 ~\lɲv]QܥDNSߏ.DJ)GDD7.'YnjD2*Zo_,YAGmF,Yޱ2JK%]eˌ w=~六~Un_*ƃ8CȥoDoxrd \}3c)ǝS*çrg+^aݚ&,>٭:>1xQAVh4(yM!7t[ٞ o6{ |>V^Bx(  .Ф. Dz {kќQl1X,]CH} !GUX7N;%Jt-YNZes^@ov7RIs~[/N 8mH12*bG= +W$u=V..n겊70Ps0Ds;"`KvQ~->lFC#[* 2OboSM!mF8)g4) Z4\&Rf86v ,Yk!߃X[ֵ+|VU4e߭ɷn-jdaYN:9%.B 30H@sNpjlNd׍wIwGA/U0RN&Yg;`kaUo,VjV[ź1@),݈vf[yꥁF{u|;eh3m!W rekYO?z0%(%Ko [ \ endstream endobj 140 0 obj << /Length 1034 /Filter /FlateDecode >> stream xYKs6W( ĎL36:tF c>TJ_iY4D ..>"L' *A  %XL|}`@|H$T ,>#?p !vO'P5C0(}LUߦIa"/-gkP DIWnIT,/"Ĉo^֮gʶ/+7;3XeeW}wƏ7'7 R'X+۾EqdoL^5NE6IXlt1ĕ j8]-G $4V YAӒM=6iǦyaN1PM1|{> stream x]N @+4ͺMVBdʠLa{ `5ü3' H٪(Ekawtt͸R͛UEeoCY-0 ޒKK=]I $ endstream endobj 149 0 obj << /Length 679 /Filter /FlateDecode >> stream xڅTKo0+|d JDUժT`ZL$_ U>g%Ή[l,^j9ꕲ:SއQ‘{v麣Oڏ7͛ )$ul @3Ǻ1l:0ơf'(ir`w dl~rL'3ײVL ]_eN c+^AEgf#"}ћ}}*:O|V.cL`a䧝BLͬc]٬gM}}zo0O 5k/,l8Cz-~{%t# r}멿?zxx endstream endobj 152 0 obj << /Length 161 /Filter /FlateDecode >> stream x]@})\•jԄxP@1{| Ɔfkm`5bD aXbdYo]$TmߍHe[Muܥu$=C|> stream xڥYY۸~_PU 1GDH.b/=;2ѣDđw1+O^ b9 KwtzD)}ޝ(j~L]ެ<>|.I(dzA@oW1?oN-nI Pʫ+sfcB8Ts9eY_ꀟf".^TTv屰 :Oyս5jt 0r!k=I( CH&/pN/!_77 B1UO3 @M"r8LtǤC2"nB9i:h= E2"F8L8Mȟq_Q훤Uib~#$'1N &3*3"c~q%m j- ,ޚ1aMr·-)x[o*sPt k2T "ȉ"`nU䖕K^MT*}ow֧S]݂F LHq8J?pm}}hĉ6(MIY"%dLYkdb0A9-lmE, N>pBQ$EG3@'s- ʖCP&X ~PN_߁%ګ*b3L"7T2`&@ePSAp<N{MՐT#-)ɒ$s]> ^=@84;AٽVF h:v^r?O(3.-!T|*1u+" ՞f͌fssH!RY'݈qH4Iupm$Mk3{pw1`;9B+uOkIi=Ҙ4OyRYRb.NvBI gLr?< <=VEj 1z%A룑_]ՌaBeK(^(&mͯRŮɘu-zXКPX1 ڀ#2\Eh$s66L97i&y"r*Mt5ĬpZ? ӑc6GDa==:8cRopRdHE n@6g4_=a|RZE8mp n <&MQ-R'v`4p0]!fX( iUZwatiΟʅYyݞeҶiZq\1PzbсQ Jb1K{0"6 0.igsW o:ou/;oh$v(%!-򹆣Ok7WiS@yK q:0D>=HB-OTm|k')9_<$!' ~{?wb endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 830 /Length 2297 /Filter /FlateDecode >> stream xZ[o8}cPH[[߶yHl:a;UHD13)kFh%LB Π;E0vd* D!{LF":A$IpxB{hFJ:vXR1|Z$-LydBCDePTE jQCcFr'z^"T X%E>TP܏P[2"yYPSaSF D3= BLNCG5L@b95 ϑ@7ʔy/3"oU$[w Yr<4\ty3K֯} tD,mgPrm,~o$ %edz{.l,/|ux}ӦveXcieF-ǽ7In[j=}{WMV6{t G}W :gIG4epޔM[JlMWܬ9ضM0of;^Pymܬg{QӛB9Ϙ:l&u4O1u2f94lw Jg{{[jUU3Xv v.h'ZlՒ('}.gjAJղ?U"lػKڴ>Ut~6Ty̿yȷM.4lNyXyV䨹,M(_|arz||tKrBOxs>f=F矋ROQj>[JGŧr5^T|(''/?wiɤIDkd#YBV5n-/Yc]O[ƚ(zbƻAIWJu\ch&7ķv息䔮;/`Vq9k~#叵;i*/@\q8!Ku7ƐjjȻy|9)RxWBG }ʺ(S"`ht!:>]Cbr8<8U G>gg(Wbu%j>{1U*~|CV&"i@t䥏T /@~]Ϯ|yl]/b}5},5h 4=DD'_uv[( ;qm״qmU+)>2M\sXWkT5u[c붖gjygjyGyԙnUH#^Kÿm =?j8@c<>`o CDsg  Jkcpv=AT;7bC!p 55{tU>QDZ۠-W:u|&*ILKEw[V^*C>{zԥ1\48 B &`MwrX?^+֓\L-wbi>zΙjG"~)z6 ׇ ^&Y/[2q5t+ endstream endobj 169 0 obj << /Length 163 /Filter /FlateDecode >> stream x]O@+sك L!TALL汓,Ɩm`5bΐT eXyCՅ3I85 U> stream xڍVK6WhzmݢiS4 lhKXr%uԴp^ :"~]!E2;4c8$ÄhW0|ݽnw_;(bljUcm#cӨ٢416s1 A,L8#>J7KIQh*6u{VڌPL/2@ 0AQJHx~cD4,`c3pbSI;&N7NVȦ_4XE ǐ C 񽳫l/F W*|ě(&jj~s z@&  fV cSݬ%3C՝*N jkN@*_4|lbp9{w旛WP3l5P ”x( ӌAEP,R_oJjka3:g-@(V_,<5PNV.Q?_}~D&pe}Mlk۶}Dn&]>exv[~<,xS4ém%*s&?h$ǜ+P .ᶃ#EE5@E{(P丩X&˱Hf;p6G *r vڭ';,y4N!Ihe Wzp/ 6 6ش~PyX ̅4߄{|[34ݳ{ q t.w- >M qS>C]}-?4| o˓牜P:mz>UJ1-z|OF(ORskQI=| r i;~r$A=/;xp+1<3#db6Mth'TTXݱʉ&hРep f zQDFx endstream endobj 181 0 obj << /Length 191 /Filter /FlateDecode >> stream x]P 1SjặĤUTSbq@OO=AaX՟h OފEA±%Ū3:uS޻=1є0ta#dAOHǘ=n9\#/Y]lNž|iw62cUͱ4)e`iصͰoQ,jWHǦR5cw30il$ 5Wy?g@3 endstream endobj 186 0 obj << /Length 758 /Filter /FlateDecode >> stream xڍTr0+#aÖ-tȂN$;=Wr JW}F6*{I*RJ EVkR*AKa2QUCnzy.W}!Nn Yz25aTVaa*ZB+3O,L'CK^upswhl%@#$ɹEwe^s5dF ~)S1rtO-RsHMu2=~Q^q2 LJajk]p^E خcN-b%}ߦ[_o܂9yQRVeu`GeeId0JU'BOy)<~tmӉ= #?niJ;?Φ`thOX\Z?EFad(* '48|m'2;EēGD&M;l߯P404MШ #'1sYB_ )xI)%rRБڅ3#5iP@$b>ó|pdw֥cHr4I&?(GķX aYxAsAy ?)n endstream endobj 191 0 obj << /Length 168 /Filter /FlateDecode >> stream x] 0D{& UQA̭XE[}c+fx̰-`ea05r!X9ZU>a E9%J̺K\]3rC}Kj[b.`'`cYdoKMUMcV" i |M]29_)c4A endstream endobj 198 0 obj << /Length 2735 /Filter /FlateDecode >> stream xڭv8Б~ςp훓8=I:=cMAeHʲPEJdr"P / f|ś*%, e8{X΂P g1a1%=rqp Ld̔$*elk8SI<ۙ,P ſ.j$ga-0X]v֝n.2^t)Eq$̓E}ѴMB"1zX\}8Y6kGm׺A=f}f"XEd 4o͊b_?\^[OFW0 VIx%$Уږ zo\ثVMZ8xZ°ǚ}OYuCH8EJ Ž9܎:Z3eqdvzA ChKm;Z3eKFK4}{tt?yC ܂6eWYV61_o]l(i)>X{ett Иυwc}]`qu_2]wyU^f[T 4E@{u$@d^_:+ Xm6̹6_Xhjq(! "k1*bgiĒ 8W KOfDNۦZK `[[M2S2Т̬^)T,r!R>Q [ 5&.s>:Nl+Q(D,VN56A)klm.C.a0G!3 Miij= Fjv4\S1<>ܻ  Y+L3{S;:Ѩ/iI_wՋ%MMb|iF8|H8t}m:e1 >RdOךC^VEU^;2rʇ0+P+cQfH]ٷ0 b44K?`A iF=hF@['o)Xgeΰ {K)wY.4]eƏYpO4_uJk-ϐc@@ijm"BЕ}1"U(b||x;%{2l\m`6}q' X\NRi;r=WDPqruTd,xJ` *-}aBKGMoWˣNX1dAXZ5WO^wV贷sC(|(elWId"`_Hy5%eH9E!2wQN?րM{̶Wa!cۺ,6ٶ ts_QA8  ) },?"h_@АjOx>k Rc^#ζF&:Wo H7?S̷^tGj}M endstream endobj 208 0 obj << /Length 3901 /Filter /FlateDecode >> stream xڝZݓ6oTBfnSn.;u$U`[{pYjǯ[_}}V@w BVP^ 0G `hl) 9m')t]~lx^T%бw٥ӆ&j)OYpqW3wO6඗7Y8)AŔR.(m*Qunڞ7_u.h5)PًL5F?7z[mӹU,8m]YZ4B>!Jya$eo$]{~b{~0bXy19~idǏɎFJU9lw<)5ⱼ2X):0=%O>$N,Iniht4VABSϓŴMX+KBl 1{aax$ ofۚ8{gv(G_ "'_TtH];ůjdvL vC SWP*F$@-ĵ@>vbܙu1. v(.ӑ_Uxr&LЭ``SW>;Z>1 )ɩaKxj)4̺ Ks&&rj9S6iNZfbsTR=1XF`,b~rt| fנL S?xwxLÚ&uךp>1щp$e,!=WJr 7=čJ=1`頝LD(R.zBbZIOgF6R_;->;4"+!Ix@` 6qI5_@*Q`1£yܗ&S0 a^Ͳvy-}* 1꓆-S{'`|1`RF$aLIy dW֑`ި@Ϧ׊S ;f= ߶ߐ(b5Kzn%5Tl4 v$iS0HbBVq}1Zd]fx9@"י(p {h{j㭚rˌN8-襊e`]lf[`/ƪ/LԒؐSUl~x sŏs-tsR4ۂP0> O3`u.6y{<֔’e0Ѻ23 2R?h;DcQ;AVz )ƚW C0js3F&Uo)~}9pdjsE6ftc9@vO+׾kd}ڡCĀ4C|㘎zl h(|e m!C` H[@ׂ%rn$,lG]Wv*1LW$W~}0qPYQ DMюD5*@YprcwN|_4d|D'eVLxfRBݒHH~>c7-1b2]*xcAm!ͮV]=檃i3i, HGcfcHU]Camm0nJٴM2tR:&?V~ST ĥNA$tɽ#ΰNx'/*~(=* D{&Rix@8 ѶrSZ ,Fv$4ʾ2lp4!L)BbYȟ׃"e巑꒎N=/☉ńf c 잨@lW Twy*`!?.4򦰍}k\13ŔgCRgUnLIG(L\royo)gLuՙO*(D!<|-ݾjJzOs7ጘ2B0Q '*RC~G"RwD*vч+QĻVmM }tS^|y~+I6]!^H$cڔAA*u:T4#D ݄|<%|瀃y/>E1^!(XtV =+["׾I+^7?o O-'%F1', zqr\!\2TbJyɨqt䝊%qu ~”H5,ʯޡ?@٫%p=2(2ERI< pX]l$ԣQ ?i'M 7 9dl®n}{KqL$U]tө-!BƔ) cjLtQ48KϬGw~5@1EU'jτ&SG޽rfh`;6veo2XLd>=XG9Q1K?pXpUצ<o|ִ\b)nA]38i̵]ܒ` ~> stream xڝْ6}BoTY9u*Ǯ=l( *?ݫtm!X1BKu+One{M힠)!Nc? :a5o9Ѳa(P6~32gP#P((D=pHׯ[GaEfh{?⧭O Siǡظ#1:C(k6WƸ+4-ܺg,X@YK6VN~j~7D:\=[X@e A:U̷LQv>őEX04-?Zf$s&v],tƊrӑjcܬewNG@_ћ콭˿^L/:#گ/ <"-k"2gx@w1q2 j(qAȿtxdO%ۦz"ISvΉ l C(_2CO+غ(~ԋ77;ZL؏ 'z#$O/cPnK6%RfI̢P1Z`a0B!kõV 2b }3IuFSڂ7mף |1ܱٝ7 _]6vWQОJ:$iA, D>VzHE\,=`PݒpT"VI)Ue-ַE}5i5 ȏ5>:Sd,І![Wо褳 gַ #NL!P,E@hJ K]}طc'Ǩ: v""?ۻ $`_.zBSF@66pT/46BҭV߼y8m("ts_Y@1v"D/Uxeq`s/t]uTai6Y)D(ne)YcKgaq K޲jcĀbx2<ӈu.e>U*~iN q(bIEvdrZ FSnXS*S1qՎCȐlAChc53I ҡ:6>'2ڳ,N4͒Ƈ_c뷋E&A(I6]jݛo޽2Q܎U3=X1{^g[fJo9_ԶmڟwyT9Lt%^)~G~gq)1&NbpK7p!/) N㔥p*1p/`[1/4?Eָ;Cɍ5[Jɱ}r8A"v ۅ kWlriؗ4F;]-\jُܹS~^wgNXMkk ~ j <8b fe”K<z͞sUsg# y^&Ajzb H_*V< xH(݊糑Ŷ[Ըs,tSUwaUmw ڕ4cED34?N+; 줙 ޖevC]WN,y"7E#NO3ۏt{>i< 'c=]_j7ϞgYm+ת[/3\Y'jFٔCB#c EÒS_&bGn*Y'%SV[f)EX `6}p AV6p`mCBA# UD8# A: %ݞ RudYKNyaϫl|y@>`0s+="Kc~+~2,WaEwXd 4 +tX裾=уˆ..MUC0R{2`[4xyDW.ş fv8}ıV}*CL=n!>aD l) X,I~.f[Wl2" D"P4uGVP> stream xڭ[[6~ϯ0 />n@[te cK%dCR$''SEwlv?f?[.g)$͌is9ә$wЙ͂l.2v:]7< Lh~GzsW:3x1[_G6[ûgᅞ=ّ0nտ_e"Y)͸[}z(M J9e-1_mެ.Ef'YA{O<ޏ(-ivvnU%Qj2}n?9s_v@CUm~[ca|4{mtxFS5;4 z(3nkݛ5ߗ~t{rmmOɀ当t |ܵ =\5}Y5/ͦ sZl0c!% & #fA,{VaBNA*i-=ݖZ;5:V?%u?~ rqArɁ¹&':gAvۜvk^eNmSm]]۲VU3V {9a Mv&89pJ$4jVn;%4j c]X^Z?VxSk# 6˭LRg)TPnrHzgU=DDO'FyYh"d>9e@g(ʋ"Ayi6`R<2{@ s.#.JL2 <Dݏ .jYNG 3h=-Lɯڠa\,hG:ݮæx['ѻNk7ohɳ<rT~@`jЫܞUv'^;.d&vM/BfWMMt ;Ӷ~Y0VinGەo֪ID4 ";6הm ]t{G4̋]/˝xoj||Bo}u,!AqSHl!i݈AD7Vq(S!3 ۰,<6CpTn0d$}qU%'a-H}2B~s c[+ W;\??✄ GPQS`e0|rBpZ\ESBfĦ3VܐdPLpLU3BxЛ'ܐj>]||2KGN_@ XW-f 4ryM܁X54R"!j*>{\ub>´ÆH9|-t* NZD.|ZI9P; }OrdP(AW UQ)_$)6+uHTc.tST[ n.(9Pb5E~RDj>[ l6XbWqM5p6澲 {+mvHf2ۉ% 0T̆Ԉ )M+88۲<^5`+VF)Q茺fBI$WtXb(aji QKB))+ IHڨdK !y89ᢘ&ϵ?ya(pp-NX/Y+K7nzpf+5adNdLX<6IvU;xۗ*[Méۈ^'b55̿E;tU[c_s]gr]uV66M#,V^"YFO %yv2vqh}yg")L8*f|TTBFQy=A4w~a֦9վ3Y~; YDnU4XF/vNU }Աiab\>sG~מxwi: oֶVj#E+XOX'n-($ҞضEضuiؔsgqŰ O*l! jHlqhV頩mtk[D<.4"Ly8i[)(B#JtJ> u˕_)^G .[Qu8Jx <nۚ2}U*6=z[su=P2spAG Kc f_9'q0G_&ם0@ x}qDzD>A*PښՃ']?ȡI c_%كsku\X~SL:3*Ӌp1XF0daXfɨ;k˵ o'~<^SDq=B_4K,DAbuh_]z> stream xڭ[[㸑~?Î{ 'ܐf3 3lɶҲXU,jOH,uE/"afq1,ȰHlww+a]]Ebw>mQW -&t Cڧ>>Ce ,6-2h"b2P,?>SI?i °`V/"Iw+EO&͞^W Y\˒oGvaV|4v7?M25|,֟iotlm߸YWilIOwUu;=ק7쿼O0-eo+Y,JXƵ?b/p,s,ÌXT?uf>4Nx GW`0 c;Y(^Wg/JVh:Ggb'7Q0Nzx~h_'g-QfCEZV;Cbbq駍iݱOךoW C& }e(To Hxa ݀LuĢD=]佌eo cj ^ .guD˓;[T64ܤ `9gMCj!nkM{mO%97Ufv4$X+RHuC$Km*# |*7 {a~uV~m(bCΛb]~m)=`_@O LV9G%S`inȮۄ#Q2zf6^+1^On( ? VoمiuIGcTu6^W}]ihNu SWU2W9ޱ os_Zh$&g(*apf@\1*aHg2djA_A6'PfU^m[k3v E{/v2k' "䊋=D!JNWptT`e~WY@Η#f=h[7ȘF#Quqߴe.f3!M{ qצ@EsɱLs֙6eY_zg A{]-ݗݟz>x@"q<@,`x69䇅q<117kfdG&ߩih ~o[oxW+wEOˈD#B[ƭtJqQm0Wș8 Jzd1 !_0*<ڂ͕3QcE ,X$o^, V(R>"S0r8 '{lP#4,|xwaͅ?f[8c]%8# Ƕ U1b2y[4X H~@_ᝄIܘ.d>gL<5/55쀟0l$ 5BaZad^p|rgq+\5$~~۹.ݒyOB|=07/=s/)0c+OzD3FeYhewXhr0L5: +AlӅv OHC+ !Wzw)%7|CX)D`HnL:jFxI`y?/jԽgkMN|0&m1N!*B^ʇtuV 0U!mfj. 6b_NJIYA@:W}=<}{i}8@ƥ7!?+(Ld<`[sW 0=`ֱ jx<2:Uo ~E/J0 |+ :GCeuE^=|/|&Lm`>#!냉+ڞAVClopHnݳ3a% Za}TkGxVDu̱AU(Fy B?]w1heMz yF@@C>  }}MëNR;'Lཌྷ(Z%vg؞?e6?ܸo!?3}$)HRP>I 1mVā?IX>x ~p-R%Om\fzҬ\g7FDI5#[{=W?*Q4AknDep9nu^?d3FrML8xI7I4B69Fbԉ~vv#<_wȁ9M)@S:x ~kCPטr w endstream endobj 238 0 obj << /Length 3762 /Filter /FlateDecode >> stream xZKϯPU֤_v`ovb$N9."!)οO7saF` &",OdsD2da(WyP mu' x)kovG9 D͛n8 ƏX$MypSAݷ<<ꖧM,`n— z \+nl*S3DmQct>6+qʺ:[mUVP?f(i 7lvpH˰7?~Z.v 4-_YlzND>@F%<X'CCۂhu4x#QՇA|QY*+۽gQRFCeN ݠ>wMF8mVy )!wcpE9R'*9<3d9KMQN$<`O#6$H|%HK`IN g'v\UV598ˌJfwx6k;3aIZ<\*,TUquxI=BbTgndhNywp<=% yd _Y ozFNǢ2_g2:YgI dMn`]>JKeӰMdPFI)&p[5 롍L2{I* 'R xmKSHtoF);gf,Y] ]3Y? ,ʩkB7Ks(3Ҙa1}saw1YƮWfLFa, bx=x,D_>>S7k =K_!| k%72 i3c^b/O=P-X6eaOkMq2h+t=b/8rgQ `NJ/ϲyV L^_uE`z~ @]Н Z$hLO`&MC*^8pƶ%%L|ͶuE6 ;SxD~hL'2HOOE M~@rJ8@ 5̓v&x>PxhG8Nm,Q(+x°hzB;f-6q>@.6 {Ve,4J 2\i^oWϛT):IbM>:l&X[@}ݨ3hHr㬁p>Kz|*WތD".VG|M4j) \stH%KP5NֵoQA jh e`ٳė&Ӊ:{=BdIVmW/" rSz(.׌K4ݿzvQ3>"|,)qgB|V!>D9NwcTAau9@1x,L<<ƼPͫ @/:yS2Y#Twe,7x{Ah4Eo,4x ?3eRA?rέbT$[ȷC*%I P4:/!]vzu{ LQF={JBڈD}T,xѬq؏K۞F+p~!VW'HB8qF&d~PHnNoA?=1۫yBwxqS}\Xpk b, 2\<`BԘds(qb?tg*نMn,nXT VU@FKj&5=4 bQ'%/j͕~V|vQ7+.zcGETLBl ;O(7;Ƶyg#aUxRŅwd.cg>ù:Ojxu5.s/j>E+ </j4E{.E> stream xڵZYܶ~_1@$^NAe%ITeKbfǿO7A\VU8}|}`~o0d"emd*BoR?6Wg!}bAmU\z&Q KyAo.~R0Nj7%|a0K7wfqf?.|dK""М$C;}] DtM2r$oq~JdJ245 M3մez; z]W S5TGwnU Q%tYF~x{u)ݥjH v3UOsД7LaW煥*.?v2SRg @]l7zû_^}\# $}s>U(6j%Ҹ./naZ]hϼ@ C΍ŧyx~V.a+ez[#Ӥpt]kw+jsǓ`;fӇfYC{z @hY] DUV{ a`).4$T3l 7ң?_ϩ6nq|ALVH9#AiDY;Rģ%_߼r䃤sUO _Aw[LJ#Dd{d(4C~驍 &=XBuE[ '2zwuYlځ!ozE^2E"h3xClp(˼@"n[ !rk8<_ ,Pzڡk“iU<^=/ꃮI?2i`8Ikz+,}ęߢ9-Ҭ{T)m#)J'c|P"WtieO/68-434ݻv>!/X@Eyt6B9ѵ=?uͺcV)NUJ:f@SsƁ d Н6-},&@Z}u CEmÀ:%!Qyߘ}oה`L 33Uib6p"Y_w?* 5MH'4C4ruܠW?3޾j3PVyMۊJoP=r!`5"s j)āх{4\"tܝk޼gS@l![ǰt3K*j{8B0cgo 7}9:~c5Xoӆ>[ x" ?7r'+GF_Wyvnr4`cL֖wB !,(zExpמXkcn:q19J g#q t|5%,Z$fE:=&6ܞ-Qld|PDk0((-ʉ[0r%#Ao W#6셑4P>&],{jl-fWz c7k;v62aip8`;b4m+d%Z#,Iae G9&mUREoDd!?`h}y^0Shod*{= =uhja*71Г\nn)lo =Xq^=j ֔5E!ٚRUD)jlT_;7=b%77^srDڵucc9ŖTT"Ok2y ]fyB bB@xTrDk'GgLbx:į, n77'Cgj͓sJ 㤺D˜84rI5ۙ8 :E!=hR@g4!!ʝ6oqf%lU@OP&&؀ /'hMr`MXIhҡ\'yOv@i lN?:n,t7!-Tg jLTSUtOZ&|Vu8:seQZ>rfnQSIhwkd$x*z)b:F1nȄ`l(`@3!I k Yyi$s8ÖfbxT-}+ZN+5B3߅/, yKBk=o5ecUvIF%d" w:?X{+.T̄.%r#\~e&EI¢qMw ˜?}mT^Q #K .^rQRo&RX4l Z9=ڦIǑZC˅ \l:&% G>̀IuLMe.]ޛ&FD1"HEqHptyskT,(@,`Ylt}uZŲ=w~bj!|%|y^sbxZG2x "-ăIZH@l7qqj5 UJdSbR|g#}u>an6%;T.3r͇U %)$_'Nն辪qtM]kF̞ň'H>O0|Dp 𼦴5[F/$ AGz1 .n otcذ_Kc%[e]@jx?4M53ߑ\N"^Ș8+TntR!OCUikҹe߼[ N8 ~mvlv M+G}6W^_܁|c-^C!\K׮.)ÝuXUZ*9:dcuVq" ȡصRLe5iXɝ@. endstream endobj 249 0 obj << /Length 155 /Filter /FlateDecode >> stream x]@D)\ JԄxRQ4P=j&3/h|-rV, *H*_suC<ÑUn,cKťa)1i@Ow}t$%RQ2`]latIWhK}__, endstream endobj 253 0 obj << /Length 1181 /Filter /FlateDecode >> stream xWmo4"Z{\-CDBJUwcml߱;BA >◙3dzZZn|r~V г"MT^ ั{herGֺ,-ߍaaN~ݳ=h9:ialq"Ϟ52|f;><)G:5Ql~:ۤ ɧ4Ý J@¨Әw(W"!7ێDnDv+͎ag(:)-K%ʺ #hNh( y G,aqFxт23u%H0>\H 2R7-L&WڌġHJϔ:-bȬdlϱ~V>]Qn+"Y'-j ղ75FH(#OrF41ȱv?˶b˼5"M7.(Õv6KEG5rX;j0 v"Z?ʤ@:]GwH&sV@\}![t'8Ә' O83z ,&7p&Εy季Ά \~'Tte t)1vUsI0x> stream xڵXَ6}Wn-l7Hi:)"(R$(D*4鿗mPʵk8~;{2 &vEhqw_(!}dK#W /2(#Gqˮ7zkvv}ykyw\+k- 6kX[ˀ mf]~VlVm^-`V+. j#*g١>|Pg{ V{w1L>E@mPeI ?s"% R$8A =q̛X;NSXVTVg$\MTYT8*Q0ȵW޼ k\ٞN-Ky[ӎU,Ks-֖]UĠ2Q@Ŕd9I_yaE;/A (R>U1EW@0|x֩SnQ_cdkZ `P? @ s5U(9ݬr碢qctADR+PtR b%BgXpM* K)MAv}ǁm ff%2Р$OƈEc$Rp?/`PAw.?(0Çf'%HL-q hO#8G,0j^1ZQ`JVɦMBDu\6~9~wu4@ew=@th &G &rF8xmpP3Z+9(JG#_=Û'ʲ&<*0ve ]qCw xLlc9 >֙ѤWQs3%00))VOԤC- 0T[Cie8[oUx#efm?pk׼y#Vsƞd+"5" @0b0xwRyXEot=m?e 邟qLXZ9p56ּo [e723,R}! k7Yb0509003:e' 4T2etdF"'JѠn=AԘQ YLP/nܔQװ46DX ԡ %*ޡ!, ==L(di7SF֗AtuV 7/wӦ3x6hV sЎ.6;#w`DWSS_cjc~ޙH|7}T6$ٻX9@ (#ӧ?q9CUU/J,ʠ(0ʰt|>m07foUy!N݁7RАn ?jI/{9;w:/CtSAxh3>p28\̾1s13~ejv}MndIO}Ja  L&6QUO1M8凱ј'ER5-+ `iw`*iSU+,|DⴥԿͼ<> stream xYo7 ~_:")i -؀mAmq8H9;벇$Hr䂋RˎBl[rq1TƳ8~.]\e3&$)ev11j*dvz6]૒}z&H2(ZvvA#lv#%*9J&Eh0&U6R#ᙐcŊR[DFV%xhJ#6}呉*Hul˂gF'xRJ& | BHͬuD،b٘*Ê\4ࢦ a"9 ls+`9$2"b'1S0HٰbA(Q` HqR5Ӑ@ C}~B$q4@,61BLVprqTdN$#Wi5{#d{2dP@N :YYBIY`}hVaE.XÖ3lˉ+!XɣQ/c잟Od|qvyݼi^t;$-< 1D?Xfwg]=NΛ旷oyi:C\__G?L\6O?x{Meuͯa>b*< rvor>u;;كbY{09¬~gx^3$| vj/&ch5\nu11Q ϧ^mrruq3TK\Z uzTeI2o" bdQ}jKuFu +*^/0&עql \7W'ќL o>#@>>ncGYsS"-\O.-^||cD t>QBї*21#B-on8ÖuSczʶ<bzc累&2Fɾ 0pTۍo;C>,1L -"> BkYjI(2BLtd+ fopDaoFFv62t$Y>q|h$X "Eʷe XS*`Ϊ7,߉Q7Z '*{O_shv.J.)*ļUk& bVq<[< Վjol<DȚ %V R#Գ4`ndTHCE{TFx)/{ΞtxIAݑuB^;QjMkhoD UN͑=Woq%k+|7Zݨb_Tn}{ A% #iE&E+Hb$t[7USk}vd6P;u) 3l:` $DP}h;Vw zu3s4J endstream endobj 269 0 obj << /Length1 819 /Length2 1901 /Length3 0 /Length 2486 /Filter /FlateDecode >> stream x}R{8y֪-fq1NX&rZ;Ƽ53dR6vKcGvcKI6d)LDrCھ{?W7] l[CcG; BF # k"Np"2>Ac 0XPMMMDw`1P1J4~>@ $6 1N B &K \E 匰ah⑓&He$-@$!=8-TYt`^‚!Yltgb+O 8&aHzf¡fHgAc 2Ĥ a tA4 N0  0+࠯C ג F{9{yhϵ aF 14L&#&\ EPP6J%`v$@AbddpC@ 2PN_ ru. 59\0Mσa v"p(>PH~_P -1#M#3.)p ^#$󴫼42j"`V3=>_%ڹwq{{Q4qnc;Nq偍)|%78lW ٣xIC*kJŦk]$(yo*Ʒ-bLWMCY7Lsh*.`&*Ԡ.*5'eܩ6 }_ ]쮗{=hj t֊OTx,t8+-XS'bs~oB@gL>okƯιO3F3ط*'dYsiQa8N;R5|c. t9 -]6._ 4< T{q,m*qms"W&VtT;0fW*Y<^'kH 7 $*6lv-f>g"5 VNMFq n>jS79vX-&? Τns5glGWO6ZߥuE.p4ebk)- >2o2}9CqյYUmOFGX,E9d^-S59<سY2Z5h$wÕ$Jxpg>9pE7)웓gZDTٿvM;NtyHM.eV۾J<ظǵ;&z",zt=X,;Q9R1r\~lAsn/zRG̬VG^O [=rƭ԰w\5/b@>yK.E_DY>CACbw{M TjSxn(e^9a:{}s*/Oe.J"1G|hIU$JWp1J[y~DmIgLO1wWթImDyv>^4=aj1UɁӗ-c^?ڛ7Y]nCOum8Jh]Y)ՕYa]RE3dlEj9Tdňc˒X<7OP]G&wDusNyh)i1fzXFyu?ϑ8J=PmJSXpw+w_44/'|ܤ6 ,uQty hwId՛za Kj(ޒ{BAo~ώ+/-7gדw(<iN0~bG+Rmy-(B[yQPR_U-ELӎK-X̻B\ajA3 QRÍZi96\n񮞾O,mWeV[9g;|!Ri+1g f7{#Zß,iD܏WA4{U_^0AK~E$׾&}kx%,\B3:aKG,\aCَos~{M9tg3 ۡ]n !+f$_%C3x&V~Q|waҜedR30L]{*̯"D԰ә-> stream xڭTeX%FFnafa(NE:KD~g}_u+{kyjpJG tqV;qa`SQ"p9 "Їr+**;z 6HK}Vvvy~,=? v0B`pG{|P m +( 2TP(j!rAA5( aX_wCu% ! 1;;p 3t@ @@0o~+B}}L t!H}U-9x"mߵa> nO>BH;w-K uv=k߃9"h8CŀX`t'ttty9 OP3fŅw_m u(Vp/_~?bğ{@0Cp5\9GKVp4 a570D}_ 2x?i{)xxrB Xa3uC0^?cp- s=tBߙ7*_?YZ#_y8>1ddON~'@H "oD"yx4߿,ӿ;[:럎a q矻~??+C@pxmjF2{Pθ;رU^Gxojؒhuy0WͰmԎ͚ zoCsK2 ڛ-dA}=۬ mW?pRmHGo}yPY5p?k9Ù#(*"wg)asg_OwW1fw18@JH i5U؅p9 Ef3; W&l# BҚUJi/cJd\ԲэNW?H\VX(G(1WIA}lkT!?ۻu8~@=gj`C@%džWɹnQkQ$\z#=N= 8pD{}-;~'P,S&ռu&T9O[k~NwGs)"Ozl8%fŠæȆv#9LXDRNG2I3}WY$ڇ!_ĝFS/&b.;ǾPl:}c*ftɯ/Y^_Z/gFӈHQw)H~".u !6rxڤX+S163NB,>a{!ވs`=̆AZ )%3KIQ7e+qn.>R/>2ہsZ˹) d<%)nUѮvh>CF^Cj#=?gcy2zA7űPxQW*~wPQ*RGHf!1_Sil1c_ m](CMR:6!PX \uj+R^DwH^Ĉ sGavh՜u>49+\D XDti~}K%nu6B3_]l08)u@SBfu?GK]G,^VL;"!xKZ7˸K) gA?_82?RY B8ty/#0唔qTSߙPhM VµeFd'm.^9͵Lc{jHOM^ *OzFe5=\wcd/&=SД Gt=}_kfU}^,9s+DI&F sD8 $3i (l`:FXg" ҉\=JN^DJ[X&Csp#]u&}^pU<;@Dʹ'EzmIJַIviS i-({Z p62(%AsZS\IO L8dp 4';MQΝCѻWd*v_*FjT2g /&%8\[g,;.UfI2PAJ _/),rʑD&*눋Am IVxet[=|#yP,sDόq,?>H>U贊-9n:D0ڤӌMs&L"}i m@c͐*;ae|vcp=g'J+qzK Ecc#NH 2a/Q@G]ӕ=^ q1gTmBxFUAf 5smvo129z <ϯ 櫿MT%T&?2^h%ljL@̯f'LkL&E%Y٭F^}{R4@XZ%C;y-4))ٕLzUxtGs+n\O)6 %w,ʰ5Cաh.PY|B<8*xmz07?͡9({ jVRב|e}^@1 Q~㣭<]7H_յQ a1ki:l2/r =Ԟ1l5zYbԧPUOo1`+kх;(ߢuT'fp=WD <=-MO2;qLM_7lv 3ʼn?/- b`5B&Q2mx)pd[V(cYbnlS%> +ֶ>T|/Bq{O>g4Gv6lTEԇYӭ\%Wlt'Xp |^xap!B3܍@`eQ b< ) +7h9S:?ؖU" ך 'qcY&x!)5)όn'vQ qO qOp'S#Œqm.8NU EbJ g3ckEӊziR ۚڼ}~6}2W<@h)fOs X$5nLӿB>7Jh3bZ",,70I%7@d)r69:*^&SmRxJӶKQƾv:܀0QG*A ;H)fj+ Iɨ\9c6-(sr 1vDTژsb&MlҍʉʹmSӽ} _FG*J2P#ZJ[`eT[Y7 όq͟l܍ty[:ίg9q]d#hD+`@A}kؑ|I D=<Ǐ;r,_=s^3 'qBC}LmTdpaxjk >{ 2N\؅aGzT?sbSD&pjsv$\Kqq4D]M7gȵ(^DGw[/&;~5[&\(/ZDs(rzsy7Fpt$z!f@$GA?m\|/ٴ# e]810u=aVMu^#'9}`+ p2] @"C?\; D.(m)3sک trS I @<^pόg#2 5qK,c™Ö́MdmlfսiymϻG} [vAXI_di_A|׿Rۨ*wF '#r0=KrӿyNN!yN_PBc\_$t_W^)<)!!a1K%F|^wIGboXM0nsA^-!⃹̧q[=aݭʳsZt\뀒 ^&ox-!Cwr%)ZjvPF*C:a d)TLbݱ3Kv ?G쭥^*R.] A`LOThrGDXnr v=ky>hɹ?܏y=SFuZ{Svč Gghji eK?Q}x#Yo,+KV 1TwnU˔ퟦ!GzMxANp7swL֦zϖ!/kuM3@B/6QVrXhl 29mi :sF5_ db@eJ8dp5⽇rNoJ5#=aw:ݤzR*R Uױ$HVWov3\ e}3쁾`bc F zUZmFG2NM5bmq5Xqccg-} VlAn nئ6, _{Ԧ tm,tJWlZ1HZ._gR`'UUIYjѨ٘,p<؍;uQ:1jAyUG fkuMHk@K,U^c-1^4&h:FvQ V CgAOAtlX_=Em<[x0ŶʷuRc; <5v#wEo(G`1ߓ2۬z(;*q@Os #3;u7b-y[=-rrD˷ uD^_O%5}s'a1d%fvy 2{DI^fZP$ao6h-ezV[}*&Dfjj u u-R4&wenG_H9_ɶo3JocMC=Y_>@IR'RU|ZF 4x q9Q=/jYBBbD憟>p2c$NDοD$t[Pd7zIR"h^ d :KzCKÁU‹ >wߟئ,Cv`+)(H;ۃ>00E⒨-VOjl$/sAY:"k+Rk|co}0x,㡄^,-QEw?m{!w6*#ꦰ~wzvzM{&x J%գ7 ~<)7h╔aǼmg셸xh(1'Ajk׊3Z."Ar=w_~ۚHpeWmo_76)$lԦnKo=T㠭^ea 07zLkD~'՞V4 7Vr*T1wJ9-||s rh:-"O@?ѻ,;38ey%FX(6 3xnLIa^-ŷ!c,vR2 r< 1e6("dNivz ['Y?g[Z޴`+k߯ ]bnݤzR04Nj0L`կ_ ܊Lٳi ig#èₕ|{f36{Vj|lyv_H*fXD#!V̫H.e2=G>+t s^ݣ!em'#[/ qYK!3=Tbq>vUs!(\͠fM0+ʛnj7{ qg$/y3&?gIl?ǖ,ewr.\NO$L~{|&ozBlLg3z, Yr&y뇢ƫ U_-"/càר),қ<g]//IBneLUeg%S(i7EqKJ 䨟}s|ZkmR4WT)0I ۯ"(/Wf\Ai`;t+]AZS#9(.@?-x :زndX~~p?)$Qh7ֈ}ېVi͎Yn۠gơ~%ߜhWgw>a>O6E&n̾YzJ/xu >Lo+= ,W ˉ2VܶJKv+ME6SՐW<)`5n%X!4:QGq_^A}h+Vm)QݬS`74X)2۬ZeLB :3S8;' C꒏ vSN)D&)zXRv9m {t̲6J Zwu7gY,KJ~ ''=4[myQIcD!tU-'x3E:ٓU;YeK,iIR1ZvI&Z&_Zxy-ݠqKz|A.nom>]+R+(ׇQUʋ":(,)|wjҸ:RNVJHZ* gӻ~JTU*8ΛwJ )^'.EUxׄ D9r+ 뾯%|$LEcV N($?~K2q;ܘ4Nd%~oG{Q 5MQ/p%\\5d'Vy*kG~&["t۔X~B>L2E87-[Gdqo/5 v#g~%s7]UF> ǓcudZSR K'M4u)*s+}s\G},{^ ~8}.Dk~x7UVCOltk~y9@X&A {؞ҽt_)7!tv,: 帟k1/?ohY Ne"D ifX:GQ:=5ʮ& kYZrʠOCIk?eS(3зNuFBC5'OMfў!?p7wIE"ƍ$SxFO endstream endobj 273 0 obj << /Length1 1612 /Length2 17653 /Length3 0 /Length 18482 /Filter /FlateDecode >> stream xڬct_%b[bUŶY;'Um6+ض+v}{ܷ/k͵⫂7!;#-wFn;[oJ@3g_#<#dag+jrԁ&Q1Oww03UiO?<3,l?\v6@[_De 2L-yM)9 *@h t4(8Y[d-N@#?9}%08-݌@G ' '- @v [ckg` vN 'cG {oUQd 3ibgOKZ:@@7? '{kC;Z28 MNNab3uohoolE/ 'wx&5AkY3(Rv&Mt׀$ Ml&@Sx9;ߒ; -_5.}r6 cX: m, 5Po?8R ÿ5+w--܀&  csIˮjktU_|cbd/>s c+Fo俒+ҿ3hhhH7_Q %?[ag` ۹<ߘY8 r21y ?? An-32ϓ53gWA&q;;:U_7oqעn@cE;c Ԍ4P-Nv/p}IJa_]oj6W[M)6S}iڃ^lkde7M_>eA^ RڙOϫy-(-vF E%7/W4~d.~>)1X`g ǏTFz c(x q|N& ?_\8\wxQ+!%\i 5yB p7[R(fʔs,7L72^O(h[1u3DE6.F \Js;GYg|q5O+-cu\c1<r3=NH5myd3T>Å8tL@}%|z]!Lv"iIVɟ-}f24>Y3t[8dnT2U/ kY-?#y fIPo5&ZB= B„+WD;gzţ)L|yg@ǘS5Š&8sK/`&H}έGTo LϥP f>%M hRrY>Ɗw}ɖUB>r<^y) 87|.+"laCIX#XYsׂ28dxcE . σIx>ARS EWfP eKsK9}nI $arZ(|Vʬ-Sf^ S Je$ƺP\3wV/hcˆO2BsuW@Ճzc1?GscV3D'/m8lm%"sb&:@x8F nB2ZjRHej`G;.A*ьjѭ!~f$ct_(|[!lE\$81oo/;O a#1NG`N>UтM.YX74X>4R (j.NͲކSnj\<+FE"P)/)vT ؖ}_ 㶡HYDsqAg}s0,V-V! 4U?S@fel6mlayP)r6YloB˹.Jt#".bZZ!%]N^) ୙&8u9ci S(MRޫN02K.{RoX~>jX 545C%tsbqv'M衎x"r?TiqUhxO.!HfTwmVgip%&"xdg3'Df!& 9LcLnwi0Oֱi@u!D4/6JRQ'ƩwÍ/M+G6`E^ߔۍ: 3`2Vf>\ܧ얂>(( 33 bLB‡iR3N\E90U<)5{:uc^Bۘ\{}^*mN)|L/)*xڐ{")D9c,B6 lG+5w=C\ ;zn2[Զ]g *閴T֐ +A+Sxwu͊rv/&dsnyUOd0pZf)A]ۋ燬 >;vz&zb罯ֳɤP[@᜙L\=8INyKJt|Bm0Px0}T$s`!Iju&1 %EI9F` TW׹ 3i :W@4ڄ^}gj`n/xhM﮼Yy[7֙,lyGӀ{4 bߑ f*@Zb3'vM*fB\ Cݕ[>%=( c92h1\ tuP c'Y9$GpG ˆ.F \_?lZ80HWSܫ@-y.ٸ@SߴH.y/Ȕ8J1f3mq/Ȭj/JISc4k!eh^F%l&z`mxJFԾر) !U1v7~# *`lbS U"L)Z5L?x݄w:C7e ,G&%n \F: X%W? 6&˜i(K) Aqű19&ZszŲ$&eel5.B G3Iāl" V?-!'(eD8lVEFpn?2䉉}C/.Q'Ӱ~U/ܿ v{U܂N߀Vc$=dH-ly|M)M@ ΰSوYz]i0Ҷ%e/}tОGqFb"OW27 Z$0~QxZe~'(.ȟ瞃 t`8stuk$g0u24u(Ŏ2S_8GrP/$͔)UOK^2=݊@AdoZ=Q]޲nSKO!qB0֠W+ORsz[fg)+m$p p]{vOQX@-m'lY.Bh3&+bB.mSj+B%̷ wJ0m,PynvB\ JRoF(딬:7GmddP4P=ENz=>6?N*bDi/5y҉+-؆Y'|=ش"fK^&nn맑p.UAW P- #t,~=-1+ʧ5v!a7OE3 KJqA" Sj*-[ֳ ,wG7$wф>~bpU>VfGا3Zgt;b/Ab"vWjr& Aa2V^/_̝}% U#s3>Lڀ){˞b)x`ƤlWezpE' TEbY# 1KeNŠX8ѡdEsU jMf[?h~"/|cy Aݻg<p{YZ.ys)ȐRų.Kl2Ʊo^O?3O7%c xFt>ٍ^Êa3X}Q}8~6+jlxkI1&Ԇ(:cNJ ^Z+c>w'I`tٌ2Us+7c}?}Mҟ<ԔHlSJL&61k}ƕ*!4YxUȟ.-Ϥ%Ƈ~15Y+qRRFR Ҡ7|Z "ܖtЂ,qHrY$7JnGփ *ͲMuw qi#w,~,]ildSm?yqyɊ5O*ǘT:^ aE%MԿYʣ$kǧ%3L~E~GŞN¿= ig/R㟤WQiP+$yYĊ]g}$_<\YO6q@ɚOI;nHR6V#]8d|v erūy@bro<<_Ω+L72uR]z"U bfy-ayk0: %\N.d_e1! Np1r/ořpi${1$$e͈" _1:ۣ؟KG(jT9 .uR%Au*4H"ץ %>>eᤀtg7P5].ᥛ8D)@:^Q{2]Xy ̮@;&-]ْ;ed͑G4 C5ȼ3Z4 즤#L;k`O/r*T#2j&->mG(v5_8ZDzw{1e!<ԯQڎ(ڢ꼽=a -70rV-^=[iIaBïBlw#<b^: } SucnoE W-3kMJCi߇99ZP2}/KQq4KA/ue6I9SZ*fir}!TB9{R}##l<}wַqsۤV" !2 *<@ c( %̶te7O?mQR )yv0mjxdq(!GfVc5ε1fc 6]F\>T&HOLWcAcjv]/7@̘i)us5>AJi^\9ˇom$,18?"u[ b?ccF!bDlM#fxMxv}9#H&+V 2OC&<42_/SYAGq`~n npXO'F8H*f#FidOamW7JZ0}":iva hA˝1L*}%۪00$1MBRЫ$57kRE4蟁w4r9 Brj]~u٣p EWaq46#[F}TkjϺg;20F-_R)MRӐZ S$yg _})u \nyJeӟ4wk#Jl,q+Ӓ!VG/7 c;3^Q&VyS{p4/tGWVP}Zj+Qu{Lj7.EL;S sC^V[rLfy ;BTg+TVɪuˁ?eB\puQvyEuQ-v6)*~:v|<|38 Aח;Cn6̙ӻ\?)$o 0C]>QԺȬL /=ȁ4j j5z'}qDAzAZwۢQR6CzȺ[x Rߝ_ 9L)IG S򫡳9Ȇ%ͶQ Br07)Ōx wT!R>{W3.O _3eVf9)Jp*`,ק}-9Ym4Mg,U*#ߔwIdS߸nŽ\oݵ4,^0>^0#"}KV0\#h]k^M&'Q&G1Yׄ?p\Pu<ͭpkbel%䝘OdUƀw-ԋ?wRqCfF),'|M4!ڃSpvmLot?>7;`0͉?C^n{.>H4(G-lorLD dĹ2#qe!5'Wt4>_"vMejsv7[aq 䛪Kfj%^]32ލUy[1w}Z:4?2ַ}CUڴ;b/sՍ͓,ofu?ږM}(zevbB 0ab5bL B(SJ| +2NWm'K^kM` ic!D8Ј~)K n^ꛬ.NLE+%8Re*u.ɏDi5Xa-?E;q+̥qA͔OdP7݇Ideŵ9`E:Kj5O18LzPԸ4*&ŭ.ջu6;4E›U8u>]dګPU?tn~\lA' 0U-Q\߲Kz5JR)~)"3@w=~ Q8˅SHP6qӦپ@~he/׸ߣ)N9rJLp( Ep׳#*EpCAJ#Ltr 7O"6YCxYuC|0Pŋ5d8Yoqn;m!(XwxsY"R|y\,k!bbއ8俯@څ[C;g¿ׄX$:m/glVc-^v?6 mzĔ:(^ڭ]w*˖kz hMw&Rz$msE鷿;RO7t2<"O3g R!.7)Z+kAjs(tYvڦ֫$l˛$1CkP}G >Enm 0i|0j2AcL%}. =XqE 9@(|sHcj0&'>v 7gKi=-2PE}tzAFrO5XS<@;d"&gup.5 i7[{+kgWA0D8Q3Kpq%0NSAi^4|+zEE*g@.9\?CL/FYep6$ 2|o > j 7%"H׷uM> 8LWh3m5_`/& msSa"LGn pgs\ f'T9HO!`QwZ}0+AX6^Z3V<*x;<ZS!W۰82Vpj]q4{hRH, t,.s8 pf[!*"X?4w:Q {[Ec74In"UafDFh^Ylm`2@ڎzP'y'+8(a݂#ٮ*W0+~&ʏ rn[_kԹ&VἫ ĐK'rL(n?4 \A^Ȋԯ1`XNG-Y%{ ߧ~Ӡ` ?2=6{D-^#ob:9/i=K 2%pl\NsHPS%xRs߷^K?ҽ\^9XAr!ߢݥt!XG-<ĺe`5h"]y%Tt5D}+.HͲg F$HO1+czOR?j3߃u 9EclIU@ުs2awv %zi847GB!0GnhM{K睢q]p}YI =AMz9ޘ5OcSIu1:kZO-%;g~ .1$g7QnC`!u멷1Q׻l8 2X]0!PJR51xum^k^lx+ Xvut]{Qn Y;͙^GCPH˨R+0BudzU1v$FkhwwIzhC*x01 ۻ_w3ZMٯ`}pmoSE=rR* +3 NJ$$:9;f-lBu;c# hB_&1iA9=TT!XpWn"M1i<{c, [6iKҩL!\nޖĪ&KLM:m'^\K $,_^=x_7L XѨ2_#J10/ȩ*je1t~o!["/D| 5WS]3_T뙯P/90uaF\Z@YhWW9_zĿ}tGgKٴ1R%#P*ԣifՊ6€2a}ѱi̟lP[ Lf|1.ALB5)^#\숿ȩ3uhXK7架4lyp7ĥ7C@P\Ip؍|u[7ugOT96~UAXy9#2I<Qro-DW[ 7h$q]sP$9oIw B.]׵4;8zД@-01Q^?؂6 }5["u ~%`Si_oʙM<1~}\fc^%b8Yzi Y!q}ꉫ#\O~@L<7qVвION[=6fbגŪ K\FS7u'_m+}A,һ ~C𼴱 I0|0.4 LfHw4Ft_Qh^F]i ,w]үID!bFF;[Ր"w4&Z}!C~g6Kە9j[ ҧ/oʊ$=^Vibt]ZZ{^̶,f& NAd>G t[;[=¨԰ W̻Et9&b1xV2O?ع6>236ۼbpVš9|4.n 1D)5BACIP96W9w] xWj^H̒q;#2 ga%B C &=OD]#apO_OXT]nQA#L#3oxSUf2QNZ`q~MۍLWE؞97^݁y^o:^ПϦ(wm2SV+xf5;|*wml e| IVaqNHV4`=M^O(8_rߕf M]rV7ŬO ~ƌP-Mp=` 3Ʉ6hm `8DpԤ` Yh#cMB0H8g:ˉPHBk<>۪'(T`3n8_3JJ lXIR }-{Dřޛ{۶^0`PaՏg}K5Q<9w4AmGm:h`D܀87s])x59""F yl((ד[Y4U4WͅrjA +J'D5m1rb lO".Wvs'P7WJBdQmgəP`Y*M"IDƊ$+_3Gz #xxOie9dg{,Op'cq цl_>'>s NϸvHn|K6_㥫hT&2DG(yo:7f)LS;[=^;G )W~Csbv+AdS0{y,rּe̒eĚ/5L6_;ulOquzo؞` +xR㚅%i_3JWvQcnp:%UnZCMBH["!_>RuDaF]?bp>grxx;<+$NkHks72.j?"qj(ѡ/2ϜȨIƠ])Xwb"a\'QxYpȗ؂XZ8G+YTVQ:w*X~w}{s`)b&JOgD17)|p/.ȧ*K&iA|gfI?Upɏ[6 `m.8|r 6^EE2&cx]֋%뙅m-pN )m~^D橑H? 6U,Q#/|&dW^ؾŁjꌢU':+Yi9 YP/CUC%$Ҵ!g}pLMKXBcy 3tRȟO ZZ0헢D8cdHok^hKڹ]Ha[\vP Aq= _:5.q ^ȴ xi+Fxp8!>A 9ZOq _2ĩKX⎌ˤڐlQǢ|A0yDnB$kr}nAtY6)_tL!F|c֥6(K^^/"$>OXKBܷk l2N5*qox<((\d:a;M2Hrx$t;w/5{`9?HbDD0yRUrPx1M"u!j38Qܿs{!XSe[&VuDٗ`> Jǭ$?|&/5&+{V hNIOͿ< 3%W,]FF={z}7 O@֜ F҂3rؼ]ԕ UQ%z\f}cO$R "KH{5r:8n6OB$yJG77ѕ{߀R?hՕ3'Z/Z隅B}ܾ&Q^L<@B9<)ƫ17!bn`~=C ءk R}VzJ v b  aB KzFFV?Zpj{#V\ڐ<ӌ1$;խjЉwoR{y3G ]=@md-sr_T6d⤨cD}مk:Y)xI"@&k({C+C7?#Y˥v~A-ÿW$⿢[SE,q /A F^M(_yc0GnV;K _ ur\*9vJo\Wm:xv Бw~U3MQ/_[S5Q+͒ ^BS%[vlRww iTNn(e^#U%[R Ҟ좨h>TF>TjX귰 pߐgSꍙ&$Qi,o9-')3ܻmVsőQmXzXE*v G;}dA,V_ț `$1w'PQNߕ9@tz*n\̫Nڽɥ5]!wz|cȵyFmZ2ȳ)Q7Я0oy1C@$Gu;[}W88k-8_m԰K!^bg@v̂[fN15̽0œc2`(WYȨq[,fJ2i>G(W_q\^zZD^ևE{eA}~=;kJ͂p Ôo&cEIʬ[]cb+F)!| :9B4!HNt-.C)V;Q<}NxR0#8˧ m"R:Rދr',O6&./+j|^VΞb07:F+K_*!4n(:[:@<O4CuL<\ KOQWkȺt0:́v9 $5>@ҕU3RQ#@e&2Sɥͫ!|q6~Ϝ^zxת Ri dRbOKݤ kN I!D~Ls5'.y,T#PثsY9_>m-C׭G}7^$8Ϟ`T hS+Po8-슭u*NH0>zX9 b hBK^ŧ)ÚHy7ms*no?f4gO'Oojw뫅k]aȶUoR $&5NkC;)~߫j7D %$E3Wr\%Ndl֟vUőo3(..'{C"4<-YPTn9d=qRg6z,0v)49J7, x 'Sgz4[S0I-QfH5 DH%|Q4nΌ$ W[/HCMI;l1C^Qqe" {h",o<7%v0=3ϒ| u#~azS,RD\qL_ endstream endobj 275 0 obj << /Length1 1630 /Length2 9134 /Length3 0 /Length 9974 /Filter /FlateDecode >> stream xڭweX6ݩt ݝtK C3 R"tww#- +('Pz@H0/aWG( _c}7L vAox~C mcSa1Ԁ[G^ ECƿhu!]S>A?>:7Engs ò>h?=!RՔY@ӞnAP:܀JxeU|R-;w\C]ɐ:_ΏĹ7͋Sw cgW0L 6WGut oۄ]q/8XsȞ;SjIQU첽ݺ8g:A˝* {Ôt=c^^ &)GMjB25xc D6SNg!K( r8{ǘ{.m >-nbTUCL?@TC!94fĐ}s<Nc!X3>&}8YOFzp7*"%}[#{XЀ} zwrF]Ζ`!(fŹd|)e#>d`񹭊ڌPIx's!:W ׫ݽ?F4 MihI8Lʹ_,3`4u֡}+:}WͨDkݘCV1V< lpg*^# p0,G m EYߢP7]#.٩_|{4y>^x%;$\x6 ;I2 L'(J E%{egySj8?$JNFG©/ErFH7xzK9#MCC MpS3jƖgf۶|,I0ӱEkPgF=w]?>YIw=I"Z*R\SptU05Ū?pCsr*څup]уr `9fqr׫KtnA;5(ŀT 59@Q>.qVQu<+GQM} d9IR٦ee~7,e(P-?&n (mJAeI!َٖ/hJ\|{5!4HQ=tU1iO^8PaDIZyڌH}ԊqE׬y<1؛"ZT:5~Xk:}̘d ٌW(!+qY|`ᮬme鬘fޑ^ʲC%Vr AP?*w*Tߠ wh^Ԭ9YlEm5.Y&>댽1A9Ig|pڎ}9m|:k6?E?X9JlîI[g7ӓ'q3n??VqpAQ}OᲳ(-#JΛv{ ߆J92/xe21` m=_I|^v[I#וֹ<+af|ψ- 1[&%DXٖRHQ1#D4NmV@V7_) 0ILvaʶ 9C^V5 )m ΡDv>h)giTQ!֞q|G^ۃ%5Nݲc-,96߶I1l,Rj2XսԼzxGklҼ@ˇ ^@tf-u`-[Jzb(Dvl0aJe.bպD>݃P3'kŕב+ 36Mp_MKN- ssyk_TPK~ϻ*MQq8C}@ԍ!ߺ vI P RdԥJsԉ[,A<|`/|!%I)kfs9n"ʷa5c(O+sIUǫE^NH]gVZQBMѦ}d.-M Az][ ]etptKuf4ű;Ngja!ق2kFdbto$X,uZښ]d?re*Us%1]{IܲR19_ܹWTzlXXh6(Y3FMf4[):5it1}fX M wR0>3BXézÅϬsOO+?󆙧r>a b?W&ik1NR^XowGsY&cc×gm\-y*VeQۋm˄7cDdnk:TOCuߛut# L4̓x82*\)/> FɆ\R`m]fH340}1/)R/]@l?]~;=aB4/S!u}v:9?im종z$s ?'tz5=Q5_+~'?L"FǰTyJ_=cS?EZR`+3b$4,:_U7W)^g1QKB87فVHGt}cu+O>1IFOѭjڅH؊I:oFVE2yj& ]i fgeX;P$>0`vZ41X⎞TY,*˼J#c@[e YOnԋ&[8]z\l">R>Ev&3M.HL}n;KJ\3Q]iOjv w dhIe=℄AK'H &4f91CR3^ _p嶸"ܪ@vR[,k}CVł}[]@4$3gd.wYd(㚖8Y.̎*\4e8I{{+,kXote/8Sܺ)QRנ܅tͷP9Y<C^B.J\GƶXRqY%q"%i1d8v09;A]B8 /HZHC%f1F`9瀼--%Ac -BHu>_KB[y+s*MkgyP)ZBȴt7Z`t6ڗ DȂ h'KYdlLoN}<žmX[ζNF׾>W!|݃@IaݑX5魫#uhACESiY`C={D@f|ƽPӎK{8 JN)I@ד~0T|vc JB9K>ͼR/p5{2m]TVDs&lEm:Ν,dzֆ[4{ љ䱧M^ISl '}r(,)H߬޲zcgU JXxgV÷[ehWm\9e`9&f_ :xihϣ]?6[ ,6vj3:(&zOTB߱Zm*; ]^c?`M2ޤH(HxTɓ1䫿 >*bnQUBz+JFO^yhƆac(6vˁS}Tޤa R=\1r7DJi2M#G32yvJDZQnL#p_2(_!"7-k3p7h2 -aYa'ak 8,_6'WU`8{GjH:ӳOӤZhOnP=.h."WDh53?بݟtWxfqrN몊!0^国t(tJr5(ء.rz<^{*ߟ~sq=tjSa]^|7% !K4%4hߴd%9 W6)vt^:7P3K >__prPD5E}^1{"!iS̷h?ij_ۡ vmu;'z?ntįwZU{E&+0yw=T|߬"7hH-z#INm*vsdx{* ܇A=il.݉ ce 05-Q'ؼLDұ<;s"O%s ҧ$򡨵 ccW_l; q^m~$r}u> BBk83X)Fi,N1^0k`loo%-3wXW#$ԂB$@O==^Q5"(.QP ƶyDC# , .QSi]%l % x rSRjg'33Ui8[ѥct }~,3[ILey~Qb;iFOtx ,v3 Ko0gUmv6iz"Ca󞥳i:!1(фJD~_pq/_/W>=2D 95[xU%U -nexZ nS!g<=[:LX8L|:zE=fh}XsƂ+RY9c_Ϳэhb$uDl _)R?lfx=rw}̉PKNxR.ڹhlk@!;^<}YW73zv`%xkBU!ڍ a=ckL8L#K$KUX́+C0:K˩#+B8Ӈ545nY)MQT/X/k TBQwV#/-leELVDr!{h Xv`XrIr遼ƭP(~Yz8s.6Ah03Χji,4mK!︡ @gL,9&0o,\JiK+V%2t Lz@<swʹ?l?i3Yf$ekX#^'7&38rYVXB{>5.%z"8nkDo\~S"0r2daiH+>~ۛLќ":l4ܯnOHHM:!"ZPGmi6[_ kQCnͱ,#Ju(G-&$ϗݮlǯI\id.M3ؐ^ p$׍cdLǐ"&witXQdg CLB,i/_F^_ƚQ&>1{2Pm뾴;Jm5GLc(. [BC  mIhyx2.yy(aK!/ƪIh D N%( | ~3vOpuMf1kDd`պukoބ:Kq[&(Jo'yT,oZJ)V Qhi;[çP9Q<<;s OejoVse_])A~OӪ7#$2#bSWίGci .'ADRHUPo]X|eCћQ+I勿EdH:dz`H2 ^h]XKg^ zY#Qn;! apzu~aˑQzI@lNa~eC2- ( ($ mV 7s->"yj%2B"B4󣤮ީ[qh=ϥI%1Ú6vZޫ->hnO܍}'tuj>;X &| +s> 6kNKwǀW""H3[{V܋D;Xfuˢvi~6pt   ? 9|T^T'=7#GW{$ 9 Y4Ƿ2&1<4$sٴs3sf\ozaMKQIgeni~On"S/B<ζpDym;Fj2zY>G-Q2h 6 | H_a@YmܶضNci;r;kF_ifrw]r Vt>ȓBۚ/1;qG \nF7ib'#I^}[LM["2s$(ߐ/xelQ݈)$=]ap8f KSɜd[7jjZc+筝f1n)[Tii=/?x޻RzHTJK0T4 I憼_M-3< QWjz$|JxZP,75VKArvj&Q^K] BLKY^EF3X2e `/ƺ\4@~xw쉟Xz^'iAVlħm;t#?2EFYکR\NFϯ8)9]E N-2/ [X 858Aoa:G~R#l>;a RXlڑkcH=}Q$,=}qD='3ÜuζYGK| mD,x݂ov-w5<~eF;`ɐn ~ ReHEXώ8=-ҷԪOX`ʎH2:p;Fe5t Fc$;wp:o<hRA6Umّz44g bw`7_f2jl]5*% &.掲Na||[v_ȳ`/$**@J^I=aǞq[7شxGL/L%|YHPCjP9ߛAqEB֚^ ϭs;M*KN(cA5(qF<|糹&%;ɧ^HuAMQU( u@`{K箤*@(on][V[J%푦3*s @i&}i"#lM8 endstream endobj 277 0 obj << /Length1 1614 /Length2 18671 /Length3 0 /Length 19488 /Filter /FlateDecode >> stream xڬzcteߗmTضm۩ƶm۶J;[߿_wѯ?g/5ך{qǸXI^(aoBPWT21215Ò:\,Č\<M)@ h`a0sssÒD<,-\T1iiO=3-_܀6@;ω@ 0D$T Ijlci49fN[LL-i͙/340:8l-,NFv.gb3q5_98 dld[UILxXS`o7 bdi pzS0tv1[/h:[ڙ':/?>GF6ʶWptqژ12i򷶹,?[EovSW5  _Fv6S,ߒ7DDy7gǾ h/ 4e!/)u_&E''AA9BfՂ6ΤA;$NV''RtGD?x.Ԇ3G_7hayROS\< M>'V({pMn(Dɝki  W#5sLe,P~E?((%T+l49>S [xA7l𒤸l'%MΦ3D;MhCߕv1hU4N PQvE}U28TOAU 4Q#xk3ez6xMWo=qٔ Pb*\I?È 7l.9}o[ϟDnQsR|9cU)=BHz^Y_ú.vj Np2i;f_✰:Ww8`,)CJꞗ1CU@`)AG.b10plM+"Z5*.*G)LS$XdҟZc |-E$ o>CcYi7v@ƙD"5Ջ^TP[7r31xR/O0e)i_%1a=eiI*VOR~ǬvԜ(?;vo";/WנbtOVSp)gLvc leR5zc`v'yI`ۮfɥCl%z099Iح=QwSҡ7;+pьso˄^ъO-#3Z]@e?@>)*4bI)IYׄYkBDܺGLUB /xV)/ס*aՈ"&C@~7 GkEѩf5XBu)ڶJc8ś4Yi_cΖvƾ[\H'9LI@ۗV<^ 2_v$uFGvW:vF r1Bgq{E=t[DL~NkLP/:5qj7rJmlP ,U*zB=A7m'J B ý?Jmwv]+ŻzR=HO&:<́Mb,{!ZH?CZX:$5*4L;`XwA߳r\Jsdu kv*G5#]LhgA}oz[Aטʮ%٭ +~AG&,mDWv䗷_o$A*@|һ;FL,\EGYVڢG):P<$J*;luTW.eX/"lȈ+PN`2QoPĐb{oq iᛵlv/%\TŎYu+,ϔߊ'y=u+'i[(ڻGVD]h(DW_*Qy46Ej-Nt߻-oŬPzO\mbHCx@h$Ѡ'ȶeEg-U,m&e[VyFoE%gfW/o])Ew,=L!6ù驇gb- T>ztcH{U휲ȂsXd@c2?H@䧫ClH)xگX.> |yy<>yKnjם]2?ðH8dp-ٵL4Ռ{?FG1䬿}܎IGM_/Z4Aضk&[-l\.:JCEJu+OC1kN1C7eO<KOnVQnVT26IAz_$;,K}V%/q-h!Taε;9Hގ'-47s3u ƣE#@ǣf#3fO-c4q_=߹GƥXMx *F2Xs@±9;d}$`Y |ULR_Ģ7zqBHQ8wmJ)Ǣ~yj)zi҅ vo:reAܙ I. E c&;؂XƲ,9f^r0LR{7cB؆iF$aj/ =e0IX3|yIψ0+]JY=-mOχ"8C\Y{w^$Y+smUD3^J nʫvl4fPF00^)wJ2n\ :R=Yԫז] ޳y8]<݄4|.uc"5j#֪aSv!zZ|`D'nMnV1KPfS1J~wMmL%3,L暇 {95l_\ )5^| _xWpmÔuKiPQXtԗ~a]  F`t`QScn]A.9vFᏏ**az͆Cr<5|8d_z؟C0lIIJ;XjqJ6o Ʊ8djPo)@\jQ<Ī֡H_ȶ1~J\wZ#nI|sDՁJS>kt1T"H(/v69PS5לQ(tդ8JcC fMejBc҈^0",O-H^q0 }/bPҔڔ=Qi .o/hIN(8UhX6G9ZdâUe] =݃k?8ޠ`YA vyxcn="C}4֠^9}:1h7qr`B;]S۩o`+I50¢cunj3By Z^<LAus&od)HY:6(gDZ:'~k|Px-EyP QG&x_2c6di<"lR 3^<VٍS}Y.PZjvh Tŷq\N^a2@y\DxoW3*tA\{D9@HOJbP}R*8V a烲uMr%< wIZPrz ? K3~~>XgON3vHͪUDܳ@%4,%ZywY)׶j@ˈ Oe-cdDHv6A< Ήf؞)4:$$ ޽"3ۇp<6O<6yȸ ~x~8N5B=p7G+3S)Ɔ(/_2>Y/e*qđ o_oZCY/(fCH'Tx贉0 $3T75DQ\%)?,% Ĩw >o3`ZrBO򾕟CEtͤ35G'&4.|go+wSj9]#XfWƤx}OxzM.gVgR).t riƌ"M|N8̓냔#:]f3𘝹ulaH>F8N &d"Z~ʇ"F<F?3ZRTA2 x,Sz}f?!Kj;!dgUۦÞݟdMx[!ʔY~*P:L􀸻::H4mSSF% X)eHU`lħOUJSD鎱v0 Ix@g)qw+>4oɞ~L$LYopPF6&|~^$} i-S%nL-{I0 lNēgr?`{/<)1V@%+;@r2f8eJr Ho09j]}Hz Tz+ FLɗWEi[Ą bĨrהʹpx{߮S2A]Z ,Ĭ&C1[ozY+='cŁ8`ƭ9r||iHUK‹I؉="14L !JcY$Dh/$3bS`D]GfCtjo0J6=1tЮל &!H%=wdp/cGorF˰~vo⬰L e)(]|.}wOS5d坫rY8I,S01~Ti/"#p V/3דp,ƨxo?Ƹ}vc%jS;4A\VI{{ӃG"3#\:$գ5>:k`% Y)Naz,?G3!Y*q9zds8%* v293Kyv5P:}r\qdf.^NÜz^;o(4>W64SR)pl}q`l0`DO/Ef7_&;l.w_BC,w Bi D/a]C<cKPwmz>U+ox eK& o?k3U-I8}e n Cb3bhUDIL^.}3/4Q[wv{I6WitdiӄD]c5/&)1b|J\qLAa[bjySZ}L-'M7"w B99kgZ/;X9;BV[:Lgmzls,SX: pd@h &w~̶3FD`W'wѲL#!"I3WՓ;`;,m+1H#VHr/Wo `ej_ġ;gI- Tچazi3 @Ǩ׉J"|؛B!?SsGNGIH^y8nXn.Dka-9 ȣ,T&EΪ3qвbrsկVA4%@ < )3">kiqj4QaپIjhn3g|MEµ,:xQU+S¼ɧexNF4idHНZ*kc!5;b<bYVNfOmWgt~LdĮ "i6T݅P~֛ZF≭C[ǽ'qfT0̈"~Y,>uױU9(RKtgN q,SvD="js.8cS/9D|sk[%[j! \'>-$T%Aqߍ/AVv vl6>l\4*kП(i~/" !y[-8¼+S7d4J݆g֚@*X#=$|kIXyI_M:ՃvN"h:nUGt3ʺ1D 4| n?:d( M?כCd8&4)[|fg<Fɢx `yNM* ]w̉KUJiiUb!O Z7$5EE72,aA'sYfyπWIϝA BgD.6Pl?3yBG\h|]"u}Ur 3YWq_&w]`|zk$e3$ "-\Ac q+} ]J@!Chujd样fൢ&Uw G7sYT?a iZ16S% z-n? E*'F6c&ZkDH yk-wȯnk^7g ;j3(ӛ+`Cc6K}W<OuT^䒆zlC턜?݈(: |ثG = %7=RY,޻mhv-T%LEjǬi1g\i/SZvg+|ahv5=Bbu\ ܃^;8"c"xxq ?0Ɠ ;KFJq:g5f`cQ:OT"C 8lMU?l#Ma!3HUbd,rv|?_[hbyX]QfmDkh*^cFšD:߉אhⶵkg8kJg̏BKiCj~G "Og|**NMvsR_! nR* Y:eKyӛ .TtA_<+ߪ\RbxH '%y eU' MwE I|oY>ta(uZs?=gK;LDttF\Q&n5Jx9O4sa~w^ $_ ] |lOB{oYG_R]# `'kکp0x>vI]1PIqgTȓ;$lZ.21Dcw*7q al Јb?CZ)ǧǍ}Zn7J0(fhsbDY#N?Y|%YqC{VYIuVӡv<~;z:KU)F ђ]aD 3A]54aRqG!vYQ!5`X<^35H J7aU6r0"һN=G4 #w FQ)|뽀JE/{|z%H=QPYQ%UW:0O=W2NzHjQJM?~bDZVD iLg"tFsٖmvf`MHK|P.XVNƖe6ML|2\L79kdsIZbӄa] !/#xE#O5чp6,%va2Eq0f*F a"\`-K9G9-=:͊q UCRív+6K<5GyLIIvv*$Duas9l`'X8ZᢚuaM֣: *u6-]{D g󞆯Je;$Q C>?~k8GgֆQE8ۃU:HmŪ6EPwV9jڇj,~-R2Th6h1ȻhG?o Vn)>N| |rTowclF^;UiQ/ih"VxZi[W9'v4z@z¨ۅ/.[ޕW#'fHS%>m꺁/8:в_LHz|2]w6 u'̶҈ z9f{ 0uQFl`EM?Y5h *7ѠA#k` C1;1a7vvB(Zsy]8ǚWݩ]|ɥP5 3Ӈ"gMW"9YOry9[CQf1B3R8 ǑQs[Rg>-I. QMVz%yc#X.F" Yi3dB9/@H1 M/"5hPVުYv뜲 'M3Sbos]'L4Ċec)0i<` L!W1fk)n}C982mj:I@XS>M ٤qUH-~(ߋ9J榱kAkVu (؎! ɶ;rzLK/LGfq4q^=\跨?ڽc:k $tU)gEp1}bR]=9 'DVMC>tl0u,Lۂ+ > 3g ]/yeuc4ϡ>BO%RPYABҐw 閞"fxNI&V6TEKQsaDo4] C?z]V>2]K"gsiC;2% 6Nu/Ci$l2đ9 v%ʚIˮM1B@`^vNb C * }<L=,ymP㦨1܆}SD!;BŜK7ښcPCk0~`RZ˫͎n,QDgTVQ*;71^FB}8x^Iѹ(tV]Rv:,[#QN%;8 kǯ:W;02ˍ(K=LHz^8MIު{/_lڨA#@iʷuQWݼ:Q7~ CiΝoԧ?Q6хż :F*蔼]{,(Fta_X@l`Dª:K3m]|(i~~`h;үXvaͪJ6`7 `*ks(#̔e(\Mk*cɽ $\\FfSO9Ze|nGגɕ =םStpvd}x)Vџc6_wmFw9%ߵL_P{󘧁`]B=7|Ep'ծ*=\ a F :GbeY¡6(a,5,O56C1{D vx CU#?g*MTDg]& ;v$k$JhbhUSvkNJ=(kcҩP{M)FTZ30rg_t}[W4 zw?{J_u~`Kl?oeyOӆã^VБr9,bkӵ58.YpJ|)O&C%Jtrec-G|= nQ2nRlQoMbĝRIu 9omgS{aC .qP W^j `RҢS7zΟ>} P Κ )2X[Ƨy+ᩌNE٦'>3ިFDsل"NJJW~S!"ϩmB-g0INw]1EJ )ެww'^tԓ TJ`]C8io~kv 8}l :OJFS`OuϘST,BOS % XcutoO w n/=,+d05y8>wҖuV94D; Ĥ#ГOUn2?GgV!dF+&ed%ŰpeL4%hh:Q|p6IK"ԼSX6{.foXFFcAH @(Qk y>tkIUƑt2Zm+(ql0)Bru=rAoNV/COic]o%[Ș_\n2:rg ix{Vv!^LN0|Yw@ v~YzPR-nutу#I8D՛KiS]:pv?G.Z.aKpt!l^#R]gi}F_)u!A}{$&y\QJ*?8_DŽ\G7cbs8J1\p"xQ>uAwphT֙ax~_ 橸d"DKAC0޾@hB6?'=3aSaScH_؉dla0GHL(orscާWO|eg^'D]B:a 0{fjn@~*ٮ8R4{DmJJb3.} dqΠ 2[c cF^{KUKh;"Jsz}i!]7 "rDpHx>P[[׀x1&M_B2'!\mahjHTeavT"r5 =pÖL[R/9By#_TTTPd \~Q)T4Љc݁R =Exϐ)+n\2Fv@">,S ^.V$jLɈ.n7%44+dИS~'&0(7'֐ ĂnI8y_Q6}uuaӇM&4&ӱ-u6͢b*KH899w2$rb&Y$a^mY*AD\8iJVuߤDfUq Wξϵ(ਫ䕥h]GMۜ!. Imԧ1F a"DtSUտq +}J UK'7bK=(\!tqy fuX[o͟u4 Zm[,qnZ\ N*z^o]-YhsLaPjlŭk)08Kud !?n~n위R7믞( W(K{zʻ@HGcSd1r:D'~D|=3.[3Ug 7F]ezp ?n`uJ/t1<@V /0J [ s,Ӊ07.v?Rx=txa2?pqύ;L"uע*޷I>ʭ>|Kվv0^W)9eNSj- 8S*5b DI W(cуy>wQʨEǴ[N4P{/W^kfJ:KJה/yXVG4uϯNwE~5]')T'57K`*MK\[ $n3p&US}mu~ DlWp+O*bc\SG .F4GNSpkG? u8u>zKmSsKCwqek4 v鱗eٸSL30^=M֎9 ئ3q2mO{>Wk6u^,9rܜ^U`QuE:1Z-KBI|1mv31d"8h] j4̪"~I)Q,%FۙƠ%uAefsCMU (ǎUkA 뜙EZ࠴<ݡ(>m -Zl?UsY&@dۆOѝr`K+X綹jp})HձYql[+G2: 8磿rt^rD}J!{qej9r5֐%T#l?n:~fOy dZKN;艞x,MEo[ٷ (喇ip+nD/9F`Cѩg20o-lJs6Ce>CIF0I'z b9^+wBbAfvk_pD@qc?N *v"z7aZ>OT/;IڱTw>-mTjUH (лM$YVHVjt[`wW!5q_˟js)\ciTeHLVZcG CqM. ʛ.tBJp~ެIv&rY!jf@&ߦ/`m]k"gv3>#7uʏ?D&AT0Z-3ȗBf wt=Bmg,7QvYcYq Z;-&R=O1k/qM]475KQrUiA`ݳ$$=lěspIvJ2ɛ*~|b &znE`oYV3YFaJ2M 4u<˙VcLuHkjxh8&]gNu_#&06V[vٰ H=ݢEL3,AD 2^bPN_}ƺ;C,"{uk#7BvB3e4>f 븂ҮNML9KiL2&U~sb@(59Bc5Rٔ3oDH?)@@4ׂ!@uhJ@ht |xQ/_*tG>tJlsMmBgΘ  ۦph8`%-V h@[ځ:t9zD,!:c_r>RɎЎVlo`s=ۏ}YyZ F3$-uA*;"E䈬CKPikVv+Qa@@|@>D[oJI`lsy?O$0gDDO_ 6ŀK.gEd ::z4\eƪ:j_H3?ʍc(4`d7ԐU$=9Txmv;'Zg",Gx!aj,V 9b!ZeƐ/CAYܯhFrYKEP5C@e` 5N;W ˍ.+I( endstream endobj 279 0 obj << /Length1 1630 /Length2 6887 /Length3 0 /Length 7711 /Filter /FlateDecode >> stream xڭTeXFJ;.nKD  )A@:{;9>^^ac3!*pO_P`l`tup->+XtA"xllÔ($(A@aa@::w<\<!AaFNP wE 0ߵ r=MM}ջ;߉L~3)(}|BbGwr$uP F Vퟆ0W?f pԌ4T5UNeWFo{qQa~p%=(ْDuUM_k:r'CX:I[xCl ӶM_Oh-bZ /ؼfny? f`=u' QԣUfO<;~չFǓ& Lk8`]z!+kw 1HbViiE^s! -F~+s$P1}+,pz$@?2QY BȼM"A_L2aُ֚ w6[6x,ӽs^헵v-SΏ;MyIXʕZhZ;V^<n(=jpF Vwr%*Ly=HcHG5'$uC^A8/3sЈϞ4VIyE-z/oQDҟ4Z$񱌝T9iE׹r~b)7ld 1NB4|  A,o:⃾p[K+80վcF}%^}^0W5[D }lx { wRsTX*a⃕@IO;,^B(bS\(RQqӨ=sBKݢqv!paŪ'[= 5/nr9Y.>fBٙdx-|l>,W#HEdkk~!ٜaDa* ݕR.fV+]+L#]D!70iDŚ&8һ*pQAE"h s?Msi"mWR1̊2] >(Ht!hU{ºm奝[}~ ӀŁosEbj|ToU| ]Nף+oR |%ckhbw(Crni*p,' tYa-ovzUx&nM'MbȢ؏"mau;O 9bIlb'!Qz`&uwmƀ~5hνú}2JS!/7<5[ ┏j Qn#?&{ j|I//~XDrvU长V_Q 4_OQ6'n6 ?d|[2a+M -Y^lHPɣZEA❠t*ڗB?jy`?$aWI.N_ISƙ,F|`dYax\`4$V Sgy%UZ-e~ڍٻ_k=] 9-FCa [Xpmׯ9g7>#ݳ$)=疅Pݬ G篧WiMZ33G!b?;=^U{-:^isHU,!U 9RuK%m}"\VF)f_4e=ZJLJnL| د塉*!*2 ܪNvm<d?vr}^A n7od\Z_ >a:ZI]\mH]#~-8yҐgmL;yܧ7)=*d--㓯8$q^]֎GݏMI({&U8f%UR & o]uY:.'ΎWz-9kݚ>SHlۆsm# " YgC*haI5ħ(>/2OЩ`kҶqUQnE's$N  /%O[}f@L!)q)ArצteN _t"iy܉)hRי/sT#kj冝;*`yu=e@.SrFjΚZ^w$H1as~kIoxa}2p~ }Y+BNݱ%XVJiɟ5;LyxtN]j<>34GrKԒ:7m4!d-E٠[&lyY@(B.1ClR,PBߌy32NBCx(6&?9_RI.۹|s7 /Phx!+ڶXglE'$^ MoCW~%;qqyڭIܜ+LpϩAf ],,(i|=oGџ٬*y"lآ:KcCuGGDz{jt.\t6cWf+q)[k1%*66_8CAfC'JhI_G ,aej&e-W4_*M2)]v|\Sm+ *L)L@"Bꤌgv|tzV\1Xjf#TBb퇚^p/Gfzstr/}ϲM.zuTw_]cOJqК|Ńe)5NnbV*!D" i!ްm)zKóD)" w—sY=$ֻw@d&Z LKf̰WDe14f nV lDwQg8K5cuG@;D%p Y|O;1P߁|DWU`B.gD6&̦aJ=Fc׽P^!RX}y ={iư+oؿ^a ͐}xi6m-tra UVuTPOupO{~p\`[i@i/LktC6᷏/{/&ń˯̨DoNCJ[ +58TG)ټ0@ޡlTh:w>4O2O!QTY!1gC8c16nfG1mM ;^nU]xxPnU 8-sxyveK8v)+GASQDjK}g8l2?6u$VODUWdj>+Ap=)L[mN-ObթT!(Ut&׉R:T3\|&UH0 (y,) cZ;I^N>S+Ɂ*ɽy"TMIf H WNlcƒweC0&P." /83lb`3+svzvLlI,@tهgpZ$@K.K,6yLT2x*VP+\2 FS܄(&zo_侽9#aCŚ&#e3zyXVX^~7319Ɲ|GV4T,'f:ϯG]>&; r_|{6A}įw)q $M)U'Ǥwv捽:6f *qR Y`@%ܐщ560v;yMRt\Sy zi!C%Z^?+Vr!/]T췒c :ؕQ^ u>jc$b]g}V$y팆 ~ ы6bXID; /Ta5 (o0ll2bûgwvdRݼxU&בR ׹7ű=#TUڢO8voPCDƾkI$3AO mv۬^~=]j ժx2"Q+F(tUSqbjcDKl[) a:o&w7>SlߔNKMw>I⊝:'}_k0=\ B``#YĎZQoOydIWZ}6)h:hniC5ghpq]/)F9WZ )EDqܺ{t0m. .Qh Vńso AxNT9C MRȖU򕷔7)v56;1Nf}ĴcaUc2?Щ4yc_A+C.&[My]bצ$Dpf3̖-_cN=U-YT,b;c6(򪊟jS>{#WUJGn:zcIv-U>t' -m**7FA4d d6 -s-'JmA!t b,7r;6z/XxpTvImJl?]r4+Z*%IJl[WxlN?]0s%}1!*3ng_iuKP%Yueb֊YF'm}L&:{H؇9@+qy6]$T+exoLT7$񔓑UܺR~V.1KS_<^f[l'f"].J'% wmqwe :Y`~~ }j/-mt9_y\MdV2UDMsYGfݏA_ZCdzuEr;yoSO4`eqB"G'8=)*ddk1+o"HR*DYlg21ۮq{Qn88h^X1+Me )8}{f\f=3#-0=%S¤[ 1։)%ZS~=1cʀCnue/;Ͳ 1>u]`KQMkz]=j橿t:r|3~x:^ْgͲE<,8]Eyl{p2]m"!i|t?V ĸFkI9(Z. ^k9:( #$L6?A)_)="̺ p!'6|[z\hmjcC mwîok$?r [7ﲏ74RLԕ%g1炘xPd-E*nvfͩdxs" &_^1S'Be+.cS॓bF) K<"QDMLӝ rP zNb?K URԦz/cJVK&ۢd[sϱ.K%Gz)@>Ni6a~煍-&4ᓔVPXSE~$GbF~j[ٚ%(I<3d3M/ZŬBD4ӬVN8Lx28HA8ڭ7Lė!Vsf}9ݺjs_N􂫅1SŦ{v)fihF Ei^A,LlV0ݻ#_Ȗ¹ĵ[A^F|vnHXX!ц>b_\9jQ33jtg{{@Ջuoƛok#ƫ+56vcc &S&_ŸK~x =7+q?HJ3J-C&F}kkR͘+=0U={؞>'ܻ_W}E8}*!7_[p endstream endobj 281 0 obj << /Length1 1616 /Length2 23135 /Length3 0 /Length 23962 /Filter /FlateDecode >> stream xڬc]%eβm۶m۶˶.۶]]Ν;o~ZωcG8'2I iML\hJ 66&2JfVhRRa'SCK{;CS. @`&;x:Y[(bPRSzt4}p3w5s Qba 01+hJʉ(TvN6W#Kc)% ` ?9tL-n306uEp0utv t;ڹ큋=frpaL7t0t'_7o?% bhi p1p')o`Npu3/4'SsC'Sg0 _7tpwQ4#ߜ.s[A3*vfF:Q33IxLL͠]PߩLN?/yb66rnsoц6n$0.[!hgW:0Z:Yz(X[ m__=m%T,,i<LL;˜^ZT\^ASS_jY{EHMe`{,̾1ZlZ7Q;c{EO?ncW'{Gzmޘ;*=+å#oxRDd8ԡQ0־?=bW(]4Wҙh/ yOU/1e_!Y;a^\ƹzޤ^8t3e[a*ɓqZONĦuEgdI'Oc#C=`}8Թ?H 1R]< X_;+2bw|@vá':g)l;EipNڹf%lʝCETf^#AH=wzh^mq}<㧄P.\<%V&]䴊{LW^=#Ar p7N bƯj4Dp)hV;*5[R! =ERѨ4NVv*|n-~5Zgf0+gp9|Pa61'pЀx7xY HiHG<0lZ /jiE]`UYoכx'[M RKO &RiP{m$a2fkԑbTlT[޽ͻl"M)"vmr'Eޥm+;9B}bo`^֭ok{Uƪo V?3py)n0]])ט wVD$)-8ҥuxFWV 2{6R 4P,'̆w7*-`kIw;"ջx6hI)tvgOLpǯ vt~sfG Gؾ;3tK$(浼 ؞W~j}vbXi%ZN*tlF ʀ,vhU.r[>=5`_^oog]o'j<1 |ImwRԷ~]\ : naؓ Y9o۰<ЍEr 6laa/݉迂t *Mo16(0a~_2ߤT ,&z|3.4Uxx-hmQ=ǞC奬7,OEvNV_BAlߥ% ]6xi +`52_P:Z;b4Y0nE܉{ҩD,F]L^u'#(= N0}/vpXQW1eO"2ϴ' \ݔY*#P8;B/I7!wSXbnUU Lj{x|nGqRzt?QNdTt&xU雿td[ %ktab"|lSU67Lsº;7JDDAw~8YT&㢖2,[O1G䫻ulyT鼘׻cr8̎D5eA`2a`"-Dx룉tP,Y/?)]-dDY ,3uBAy؈4YGQNgd/1W"AAi5OdojjF }c , mCi\".rWda]+ռ B1 l<$mf8d.QJ5Wɸ)HXzq?oΨ+*tPQaF1?`}Rgg@`zB:-ݱ~m SА&'[Ƙ3 F>4 +Fs`2|PG"bܬiA[%?y(0{8Y)Sy](<܈3j-iIWNy>x'O,vySQ"|rjL+qm1 FgF)X%6I Ꭓod`7{zjBt/ฌx]gRjբu̡()ƨo*H5rjZJ AϿ}9蓔QavƗAnlsgKKty#uFLpMxΆXӷ.%ᆟv\k+yA/mC9"lkNoWNvUTͱe0l}lD<5)Sym,2o,f^wAL @̪~By ?q@~o ]îu UȨt nP@x4 ш!XM`i&]`$^Vqw\zP>=,(!hMŒi.DQpYGT *$〾[[2 fSS 0B=h7}5={'чWnڠ~Ph]g!Zdmy X[eA.kX_.o|8A^DYR@ӡs#VXy`k^imC#ۑ/LH/!-OZ]̸ j2u~x\6s?Ja\[<:IL$72 k蹔t-[K:)BVX9% e6tc҉"zݐp\NO/LTlf]Ql[DwED9;aW9/:WX v 5(o>% "f6&G,A~K/x4Oω*7)O+/\}f@Q^dղL {eJC^(_Db9YДx3S Wۻ{a: 7oqB3LYy'OUQ2MD+{K68 }_źdA-*VI5$|HH.yDs2I4tjyM; o G0LR ˶,z=iiW8XZ h ݉WRy79UL嶬۟䛵[x/p^az٧R 㷞2N@YT^`yE~7nVGXJwB G߉GR?b{y~p@Ϛ)dݱIi},l@ ͘N;Ny\P k&.2Σ7>>$>~P_@%#U<&N.o}# j*Qz4q*%/6_6H(0JDHukvS"$!Qg:a̷ y< |ūU. )^٨B>j놬R QU={s9* E0UĦet f?ޗq!1d^1M- 7BNOI,e,?,eRO*tԇ8$AT1'ݡ>/k(4Udȧ az$W([̤˫7zSv-}kāv!(OQ94bI10`(LOBC-A CȓP<(XRZ͎LB`lqT~Nw TSd8z 6mo!)?2'("+e<4H=G2Tq7~dKb]&:#Ηk2m!G u'nܦtj4 o5e_ xp~͝oZh[Apz-ԯ: <L0@f;ɧKꌗa05_ ?u*4x♣F0:҂\SX=yէ2BA[a }?wt>/OƑ`#&w2 5N'T|q";BVɢwCrON1G}n~3}fk ^H}< ,a5Rt%Bp0r̔j+>ɔc~z5fy $ţ)=?w{D[CBq;eclA}j쪭+ R7ɀ%vYjyW}xk93;> /ȶm, E U@`gӦn磒Q:s bs,- O}-N_DC{p*{wVYO hIC\!)2ίXs?-j`|k*Ĭq)1Ý >d35si+͟0!N'7|@Fwh'=h{,]Fǣ5O]Y4j!.HG)\l|e{?MhJ=6lLlޚOoxgh @^e{vE'nRb%W%#q{_1| an7o@=&#x=]q*L.3t~1,Vjv mA-4795WXrEzW*M(8{* t.:sO?cH*+-8O#;a2*Ig3)sA:~i{%kjw )~9=|aYqP]3&mH`ebqJĹlH|f,&,nnݲ0Gy> πA)xU)o n !Iـ;ɇ`Qi~BM 1l faHt-rK{{~]VY둸*>[Xr R{O3ִ@.AIWfkϒ\}fL<:m2 ơ@aމ7+Yih ?݃zY'ru.j Nd?oA35P Zy|F@=GV.Rrfޯ_ +F-*:@ (aƛ>qoϦlփík5. ;0QaZ9 O|ԗ)-)"JHel?A0cj,Woc=0ҾJplrRC{1D%4!BDż*Ueެ-2Sh죆ªMrK97Q5݃)CEBPTLe{hAb<—pk4aD -_GLqgՆA`6զP_Uf7WeF{GM lx6@kqZPtďoYYE&g_SL,Cn~% @hF!1@7O/hEh70JR`k>\;?+=K>JGn9v%*~h}D w .v\ رjO%^?))e*N!.]=OV] |bF ;ΨwfGu1'Oe"V7 !+,m̓NN [o4$!)E؎g|^®nI"1m2Jp9|l! Oy5m?+^=(O^Eh$axNTV&(qF B@3_WTgD$?B=R>niㄚp)!~DŽ=s)S z'N^Px+z-!E 摒%8.,^Q-޿aM"b{WΚr2b2Z)F٤)u;_wpSZ&}hB"=տ MAI>a@vZ@EW$S?y3옺@3g?: ++_3ec2?} !jgбRg3w,K8sЊ7&K%IxpEC)a3=rm*t6w8?@Xwn hIuD͝}$ TV+սl@l8tͫeb~<a@ y3]/gvu7l@`1tZ3}F M cnDbq6G#>x6 t5c >R:T{We+ VOb&ɱŀWG0%@)(!؋L^GΔ_!re.ܥ_'nng8g"K4|DNf%kdY6I!/!r;jJbH12*-fUüv8?ZKb i_z]zXQo~OceT2TE4 H=nG Mzp,QBJDFNh@,T3=?P%>)rN#KHR#c<wM0Q)g,q=bCg"+!6a'Vz} WrH՟YGGq5$1,edXtx0]p.;ήcx_א`q@g^:SlIp)SU凜G;|_umR3k3;/%u-#G>LHɓA!p`8 Fu#@ŗ.ca! Y؟}lK+^R7=Ki<:SVܐӅP-JJ~ʠEj[Fٳ\(!_6/cqCĂ<c'ya4e]qF"*|-[XJI}Q/AD?DoǑΧ !NV.D5*)4:Y򰟙]zzdd83'?HŬQ/`m", nq`Me&z-5oJMz$QW)oDKqHȫܿ{ǫHӼA;@sõ%ϣnd*:hߺo/~aHDpȫ tI6$Vm?Uqɛ?ޔMN]tKmrVBg9MNГё~G 0uΰ3@0&1;ŕhpC, X Ǎc6!}mWON -6kk Ϊ޳y,L3iu9nl]]n!f'^=1Uu]y^ 1R[1z M]0Q-Hjt8v_y'Sբ !*$VaKŏqodNh ^>_{GĦ+fxd5D8! :`"H?I~;qJת_LcC~6[fH xV\+'_fNf$+Ƴ1zĴvWٸ}?u W;, *zfV<!1X/#`|l͍ 5ux2PulW"8EԀZ/N |іVіzFtUhX0IyJ&ZS;Z ۄU++ȦQK}zZ1>^xrW k4uc1tu tQ7羫0TΩ6^{zJ^kv"=C-+HnK A9޶[ Hᗃ Xꭓ׮F׊@F,OiqW좼,oZPS @?M's(aˆbhcg014LQ2EC446y ;u.\;Zɫ尹󅙀[@,P 52Ѧ$ԥkMXO wߵ1Z)/LĢ"3Okbj3چqK4ߡArWQ 2E:\]HS-Ϻg6SxDs+J◹jM!Ɇw2a`ƶ8#yynP? g+\v-h\%_/xQn!'W :tD}&x'o`5>T;] ;J+l B-Y̓\_CX6wet\b1uq kI4D?g$RQ/!} mLTc}?1[KN쓪?$~H.#:d 2zI:6 u ڧSlҫfL McCv'P!DW`2Mʝxr:pӹ_1 ^:/*Fzڳlu YG$ޘ4|`ͬh~Jqax7D )\ߢFĘr/hD7 Pb57yK-yܬXB\Dk1\>13(RcH8ا >*p7Rg)"7cnl(y6 Z2,i !Д[%8;2A1|lcpل,T(΃4M0{9K7 uyCrJD[=k+aRRy!Jk#:(V1jZɑc=h-\]V sȳ;J`޹)Zظ5\R9 'wlc/c@_?K>Y'\ xl,Z-|F - b?dc no>IW`0]_I/W lAR1jgؒzcU'4!(0PoN$mULa2T ƈիzs7i$Sʝep$f/L!w%dB.q4*4_. ;-#+5p3<ů؍ GE ;HVqTD'ij:j5ěpGNcG*Bx;/[G:jD0E#(hpCS S7{g>qA&{%;F:;9Ǖز7Wĵx*{1a8 OʎHu%_<,zFq3: v,A"![~EC$ ҊFE ?F?K1*\Ú:H¯:[vN#}񉙂@X@wx xT;7•+`JM79$+`R$yЖC^ΐ 9Q#7@]LAP]F^*i_4₶~: (S@ _5S}@M_ѳ*˄u=tW -q@FK髽|PfMHGNˀ.$ HmLƌ+KW6r1>}ʂJ*qgׄOh {7YcMv[̙gEfy.wf ~$Bm\wκ3T?gYM(=O/{9 %3\5롎1x>_]C)⃲Z@v^c zHUt>в^6]I0Hu =Ux ={E<'Ox!Qb裐D2_("HJINl>q~]}e3Sk4SY^Q#rD!Vv)56GrKFbP/wCvgF_ծ2R ( |Z2~,(ʚnx"9OyhPޝ礹[JԈ4c1 f9yڶ/PB|JL/䢒f<&wH2{ӐQĀ뵗+]acM36Yk;pMDYڧL{$Tδ$u2ijfbΛ."ɗr{Z݆݈%#%| Kh'q}uV ܡ1Fx+;E[= &_.k3яmRd0xd^d"}T\1mɡ\ ͩow< Z_[boA5K|1<~ eȊ2]UMhQ}Wbv#|/Tp tK8T/^Cxƣy /fqE?{%:5:OCƆT:'A.D]9[+%cHx:{5-a#tEć8_W5I#W9@BX6d`<:?U CGe?hK.ܥzѦ8Iӽ,8gFA\n}Ћ.4d"H~pv֔tho=6E̋(mYx*3rK%fX¶P] ^ېс]@.-[3`QWv>-IdW?=&8gDIbIu>?6o+qF- \qHq9=knj_{% TśaXdTls/>7^Y l J0[`8?ۀB`Q0 Iծ9ְ:CÝvĠ3)6{ %?Ф~D-lӽq~oa@b'Op+<ᒽ\(!I >X߯Pg?DS*w. aHA0![I5έ_v˒J-=l/KݷWpx&va*eC+%u~?qӣ^4 T,e:q;do!.W0vc>e,3_a#1]m1#+oW Ib%X(oHV?xK9]Z24Muh7`fjW_/M8X`gN ;Teui[69fC99Eq1g2zʋ'LYIql~#bEK}wJd N=ښ*v`ҸBp 5ZNgW2qS~1VTV a" ],!]\X*>gъfD䕯 m5ekhc 𰺓?+2/*1e)= XQX> 3UɞÛeBE0K[ꕢ< zYC>]'x㥾wCzW$a1@ z>?,g-?LEyL|^42fM n`OW D]>hft\`xЃV&!׿"\g9%8 8G~U *L QQ۪kB#^ePB5cxq9}Ih∛X9kRw1ywݭRr0\;?DK{#־MzSisyoWW*'9da·ZEZ|XDV@L. ʕn\gB`~mDFsOOc P-ίӋUDJԨx=q&5n^)K 3%/qԻ߾(2njFHj-kIjh*͵Vf~sUJχb!4c 5syeT,ndT'}IG/y!: "I"gm jQ0at6{'GmPt;̬ƕ}ȋwZyNuNXcf8.GDH>̂=orH(e&[yf0A?$,](ƯC?Z^ew5p$Ј2d̢-)G=RAy4iH[ T̋^uem?[yʙk႓ Ͼ(8DRzJg6ߜ-;$A"Я칆 3p= bsV=#>"-~{\}tOk^YQ@`[zWz$ XK{5#eU5E@JQx'RmUxL)^wCAiY&N#8,e yQaf}zi՗fg?u Nq?$&XP?hX8lb@hsWt/dSYJ4SQ[eW*5,h9%_`cqlye~P?epHv$g8> 篒BO[>dV_ ͤfX䝱UQPmI=P.VOzzHY,r:IGRӬFef֌~g?\DžT['Z`@&  A^Hg@''q*FI+:s|tIouw-` ˜+d6fANgt r_.a,Y~=/j3&H9==BxosMLBkUʴ墏 E{ ͢tA}х,i'$]I95窢|EHSsRHPU#@_DR?SOVڭѝ7FS-ڝ~,r`-p/Uг*Z. aW=a np,a?*/@3q cG/'OC/Ӫ@5$S#7JXJz.&jK i: #ҤU-7-jZ̅'Hnm 4qq&K jyKpkT*#RQYe˩E$tPaĜvC5k&߾TdF;}**ظʊL}>D{up`QAN*@F6X,~C h9Ϗx)p;. x`B tT:4-/, n- g|Vj/e`Hj=-!30 WM|crsDv,.=٬hQRݎ<"YΎ]. QgyPn <޷<+_L\EC.r>e3M_fWX8|IU6yr*@ܨQ`* a-ZnLHT]^(X⤁qPg<(J;Zs ou&fh\b710.l)Q1 ~e5AU_nk3p;r'fb"qըF^K4pȺ!4aT ^z(՞%=kcc"zIYNݦ3/z.ʱz9c]S"!i(ȉi'N截µ}Wa128?8kQΒ %rn]gz"Ua/?hcv n.84&-̰(-ea1kV`&y<7è&=YrdkԽ?x) >}ù{=G5FQbH~2Bq1Zn {*4Y^Qp^H~wEK*?Hтӹ̝ux,QzPA2Rפ 0AC/UޝM[_ʈ2kiz,7+Ȋ0.K7ؿC]IGGY'L`>j zBjNF{gYR>EQ&^&d =J,D@N{Ug "+hvIfe|5!%.W8_E4,/t3uA[)Z_޵Чʜyv\ JY|V봿KCuŅBӹ%Kt&ItFM#d m#kT~dr4JOPM3·%yCVO]txg^RYj}ZlϮj͉.+Աv%%1Z̍ S9g >bij0Xo\%<)[tq n$f ůxs¤x h2WJ(|?R>Lk-@h>lN/tQ xHvrtPk `mv"llKzr/]tiEM3'MH&iI|ϡ6Nd*nU(v^=OKO+joq"gzQyKzH[s$yEFTc`oh r*jc{&+2LK{-7Cr=|sh֨:4!ҧ(/$\Ǟy1bGn]o]EI%˸S"v񕎹.23k$%4*ٷFؿ8Vb*ho}Qi^`gH5G_}x΁O Eʍv+ɸF5ow[|Ce6~4  pǾ?{Pe%Irszxțx<2C6yŦX[#>ꓙínsoFf gX1 ;mP-0-݂_- 3.(,K؎9^n})ReBj8\j:xHP緃V yz'īˢЪχJi=ڠ=OLdg3- o1>k?&*ՍN3=Ηqk6Qz v͔߭?\DB#o9MoFŽLHqR`Tq?}Tt AV7eb #ܘ< 0c&-t(EwWq+']6#g}l:CL ֏GƺN9E{xeM`O$N6zreebmD6 gCk{ Rܶ"jU/ ~`@us@f^d-2 Q6BϛSbAt.28I㖹DהS>"UgC-Na6]2{%O;DܽcO-{>@"M9j/jP㷏A1-᥉G,G8Xi҆y8+8Džkw;\1L ÐtRɇܕ4Jz"Qy[VrHߥ&,~ρ*XEcGˑ} Y)>BfwoqIj"KYSEC r|֯>هrZ/L5X8ԓX*B/sF\ED1yE:t&rD0fe3sn)((N pj!" 3n&ƈ$cϏ:*n &L+*K2dڈQ[m% R/Źnߝ8R,_ϒDY͆\N6YW56>;\eu2s}*.޳%L x~4Q4_BWEOB3½q41Y9d5o|MKak=P9\sEd<^__3f.Վ;J2~~="OBTK[o0% ݅q[+0 zy@r4h2D:o\}?Hga{NY53.ZgTew%#jRRn/(Jd,S=h<'!ue^@oDѺ 5,Q?n7AH:1(};&aEH_wY;uc: 2kqJ0=>CW8@rX]Onq$NLBŇ1O6'=whm{i0 eqT=Ϭm0@ffX)Ū>Tk휱o(9b&vj,~ όJ"G"flJ~<`#Y,T _+u~ᔎ . H\!їEq1_G.&ǦưSeբ/@zxҕd۪Nt%@""u! v"j%>EuYEvpQXcx&;{*尿(,ߝ>;~̔>4 QaNhBRMdIM,yҏGx ߠ1dDr 9kD yf Cljҟ^jco$ntR^$ߋ'd9R#JV1OAN \űMyt/Ty'>4SkE?JFђop֐ j$N\*|pkoHv)ƏQf]o_."R.֭Sb437Brr$U`?@`e"Gk#U:*Z?s{R$'Nj3Eyޝ VeE&2H*h6?SL;~:ئg[O$vy@Q%B JGvSu_^jׁ&uMc]TſΜ_JęHj. ʋ&1mia 1~^>D!DMjŮ :_Ð"@ y*߼R:fUzoW5&*ת/ `B3rlHiVzBy9Z3TcLle.']k="?ԔcE8\/%)ㅆ'!ߪq^eVXy6 vEՎȠ²Q8G=v'?eoX$uIǽ<vWtb$Y٭p`) }-tJ1`}ZfFw<[|I  ߌ;Lhcɇ*`WN CR]z֦?" ,decSϔgxkQ) Jqo +9C I=.#f#BF{}`ڍ\Co#=_\ izv#{+clkd4ZbNrc^݃;4u'B&Nkswhlmٌ0q"A Bӹ.p; Fr *@;2Ŋl5bxyN,?[<:_Z&Sȳ~nE Bsc=\%.YV&k8 AZ^X+Dӧw~@pj=gq\Ь<)(𠃏88|㷡ҍXn"DJN<F O4c]0MwD=3tQ۔: GrɅ<&dr6&Viwgǖ`xύ:pEao!O^MD'ƛ10)6KF~BKaIu~g~C>rG9q9啟셜.[)& k:%hӐfP/+☪;{j\vLT-AI[6Woطjidm"d_Mђis·/G1V4H*nAIY~R/z:TEݖAD_WhyD[ *Hl&0yۙRگx8A !,E7UuwE|PgZbc.Y[2Pa0D& J&D$9 ̓|W煯)4>}zaS[l V[wz$U)}1]}ݮYL3Q6 $ l`R?J<ȚN:𱣵MzH(W_Y?Ƚ#Y7TY7Vm6-&8?L bfh?K:YOo9xkfd#^j|2%nG.fGJnc}.8RN ܋`aΝlhEyU3TR#͝UO _"C𖱘eeѯTrPiD)3wD$H2g% k RHyVgs_R  Ӽz?ӳ҃DJn9R0T$wTv,{͊&|%r[]|ڡ‡h@jj[{G1 tMI2d'A", ؿ\6xR#\p-Iă@`OΔ>M,>O@[1_fPrM5Qe| ,U悯reOu_,}MAQYng:W-;]}-FeùTlMM8Z*_W:Nͽ ;]WeբOI8w uWΪ۸mችU2K'"??XOIXˠ(|*Oս_ }J[OߨWiOCy#' a#p7@UW({p3i&S B+IJV~N Rf[AV+q4vɞZD*g2zr/ɧB 몳u(Ȏ-ζ,-@e' c#sԣsȈr:';:k( 7k?pU8Q ʷssCHo-3Ϧق(lYz54ȸtFbo46j7 9(Fe _s*},dmtX^tuҌ>Ky.,w<)Ѩ Edc[b;j0"y/P}O1_WOÉ& ۥ-!7o69"\c"q#Ҟ$6$ "AVL + jgpfͽԍui)`/(.`{7ɔ˞[8|XpXZfSp$ϝK<~!RQS-#+ݡV Xdj?SZ*_+a.#`($ vs]l2Ɠw!a-Ű8:;t[RҊ5A7Iʿ eھ夯"BV,BmL3<5l_> stream xڭzUT]ۖ-.a#]`=;Cpw9[ڭښч9L lfosa`adh*]m>uČ]<M@ h `epss wtYXp ȟHgχh \,s  - TPHNPr5@@;g ` WkΌg)ODp:ق|@ 'c;?3pLm\*x);8:\*INKcr;{?f7b s=\el=C Wgſ*8-lhp5 O;8xmrqژ3~baOn '=v3Wbn@DמS' hIOJLe;$?D:66 ƶcr.q7xw G*@ WcA/lgGnFXA `nlgV̀N6 ;M'05K_3wL22t^O.j@O)ooXDD= ,\6f?fgo2M򯵼шۙڛcT]l0:9s@ʢ)oUjFK Ώq1nPz*.Ԉ-rPƟ<- o{26T]\B_rԐ=m1Ƨ]EfUx\R*5۩)oorbi4Dِ[y .Z8{\ÆiZw0 HNn"Q<)E(äH?< x]!lwD5Y[#.P uZPYk`ݍh(!_6\u=6) (P jE5(5Qշ1bx26`irF FT'ϮG)MHƬո6+T.eGb :ҖO_+h5& e:"셯+ԑ|Pi {-zs#~>}R?zޢhyp'G놪vOM*ލ%PfB{ !unyXv $$@A.!F{Ui=~ Gdh\qI0DKIڟ%f vgtB]B7)vSu3 l?plj}-t p$噗hT&l)RYAkmZ"}lz79A]ݳx4L F'&*×<W'Ek'YJbҢB5t-\J|yw(kk; Xb  (9b:ٲ;Z2V-'Z}26Q;Is[?B_f]nH]#PKs{f?PԶwT!Gh1TBKuTS)AHDr[\U|I2")4SH@WR4^3сڜOI+ .ۮ/q9ڍZmBӌ-3\ZcUuVy_"pwC}/vp6[5ve(voDDM':RLHe36I<KB&vK.՜:avDTo cC~l^!6j~Ag h)ٴjQaV1NxW_Lf2Zyg$^ G 3dF9y':p15U<>勉2pw }&R_,"qzFsV$)%G#iXPR|2"bx7Jk#LaDOgpV*ܫvV21gVMaQߩA$:r>z[d3yMF|}7 -h2Wx ME2euU3~Qk>~}֙%*!i3Ҿ[}IAR3ˬۓk4>YHUՍ\5BW5\tg·OeVe.]֬v"UXb\W\]9evYA177:T-%-mciXLP-Cos+7&->iʳ**ru["+Xrv{aM ʦ)2<+cXhBuF׺\__贪CW\y*{;Ⳃ[kMxLkPuχ8hM|ϵ.">FEj,v%_\\0ZEHi`I_ 1 !Hn.wX<25W2ҡ(V;6`:: &"0aFXš]^n=,p\\L𮆔x mbR_W·ł?CA tnjoh".\ 03̑H?7qK};*BjeW?ewtx>Y\Bնv[{<|_  7/T1~, [ZNꠕ?YnDY$;0@j]_,_L/zh O®qeLGV~/eHH=o})]]hqȍhJt޳ϪqEGJ-i|pob1%)3=u_ ( 2zFt]",$]>ʇ,Z8G5aqW">s45 j<4[f2˔>y NMI֮'a4>˳%S6AHo{cH(m SBѬ!>-K"cP=.^3X[^gfQyo*z#ߋ)ʹؼ)݅K§bgI˔=DRN `^<=43Iu!mo<ȍ僛&pZX?3~3)R#ًktX4o,0.AzrEφmjLR FV6Q0/M=驋g__`tڟ,rp/H"۽PRj;1kʐӇ;HMG c"C-$cea3V~JnX-9遼J2˅UHKV@0p.Xx !F-`%Ix† Qnm̽chj:}nJ&hagEطE~ rj= ܷƳ<׫Sv5T$EH>M/*h_>1r]9ưj"Aۨ,O.3"hl~H4'1 <+i;ucBmM`z#X\/˞dWƒ ?3-a㟶ZT]V0_>Co(SCWz"`Xؑ%>,[3C A @!#AoȚw5ؗo~mf8nl#Pd9_̀gїO3g"Dr痃張HIHP|NB$v%*(u$u9N8F٧^>eOB? ƫ,xʹ`vpj*G^^S?bcc|3^L~jAIzbt@)&uAQ tjSs"z(򭳼vC|S-̱D&ҲCiq _ԿB1c^#靡T Z-#CUK1CLƴoYD\!jh81o ǀb ~jċxN֊~Q S,& ƣ*ڨ?@P"J$Yӫ Ƀ%ze"—a*kbO::RȐr/ҞګnU7!)م>l Mm+U5ϻc M5ޯwBTY`T N0^/f񛳇jۄ`was%u$3ƍ ޣVwږ<}aMmVU>|ۯYOXl3=aD+ a؂[dޣ^S=꼰b')kjWYUՑڼ@`НuҔ05O=f.#zW4r^a7 sxg]b5C֭@n:߅?㸄Rz6 "4g<0Jx,Ω N*]vkhNJ^/$%*ɬSHZє[eRWbۯiod !+JIAgU%p=5L^0BN|} 1]ܒC;lW3r>g@D~1c? сpO| ,vbminhNcwzFy+\#9zNkV+\i570YvF7`lVgp+GE%~fXЬу:*dTYdϤ)Dv>(VnPKkT<GޕD+'HJո7aN}(_7t͚N ȴw%&CqC=S&Ty,IJ~Xg |7fq\4`cV:;^qm!sd-yI-Y"9G>.MfQ.G "caQGmB^iS]ߜA!K\hQ)TWUSuur Islf&`3Rλ#|D&aNdd4ⓗΥsO+2a}6_)IUIg8:~ +^2E}DULb9nO67GCjjd٤ә@r 1W{5>oEihل](->Lk蹄[=seK M69"2mT!j s9M6c@frW4Mce˹_k)h"SyG ]`kqՀ'.1(Wތwh:w?\IR v5 M$&hiO 6m¡u%e+KD'}"%F=g:cITp11j; .I^Kr+]0Nq(͉̉pJ S alGfLsŽB1|d7x/X򴇎O/W ' wdTxo@tۘ:m@b/T}ԡfL Nt%P20^#ES8T J5R%4G%Ȯx_سFrh{$ s3<#ͪ*z*ժ,t2ekvi_aܻiNBvoJ%Ew@8.&^*3œWّ׌Y#oR_P# tUķ7fe+\7>n<*aHWfeۛ 47V]s6e޼_DY P`l/os`ԍZ3dGѯVK7:(#4{NW]`ac]лjP l\vPfث19 eM B0n?: *!v4nFh!s6p r4K\qRާii2uvΦVWܜ~)ZD#cX"0ǥ EY.&2w|WlG01+9y#jY32`V(sbVhmru#LnSZ`մynϖ*`(LoJR)ff|1 -ļPï-rpF[T6îq9.#w5 '?VRAjN:Q i#̿e}玌~J3=2w^8Yb' H"(+/ *=G"p2[8)VEE>e@8mMltfvCV@>򭞮(VzhQt: #0q=!Br3Ӛ&p3lVB~gJ S( QV݅6|S*膈\[Go&a|~_gbUcmj"š.Sz&FT]ܪ"P]6ա:!Q xH¦74\5޷y q#7N9p̚Y/{n3D01OJ:(G=OPȄHq=-dtFIwؿB[b_|ٶmy .BUiozT2:oXj63Ap @+LzS)0r[!|aR0a|kmttFж4]qqVoQA,z%%|QD_2IS*Tݷ쒎m<"3KēbDk-vPQTcvn]~E8gp$ -> 8 #+z5+_zJ*ɚwJv%lF;[P>ǥ}^ ՞P7Y6c}Є‰> wM9Rx)ApPo{CQ  zonyҫw3ǜ"12"Jqh̔r~p#U4HM|iJSKlۓQNLw!ȧY w'+,?viaizZ0D1g7nLMcij{\c9nKX%r6@^.2y` ,^:A, 2(#?Ly!mtaf!ʔJoCƝaAnQvZ=&ǝo9%wDqXnaTo;W&!^K?yXH]i0jZRpDYGct y%zѵ;nLΑK'.lъ-ik{BO[b"lfNTNծDhk|#z{W(*b~ {_P9{S }viGE|wΑD9:%g?m Mtv:̔k19uSQgі/#F,qI ,.2x:RZ*H$M-_/1kd@GaʼnPGdWS4AO`ѺwȑeW)Kf70?ì-N=x|> F Pjb0)@4qZgM<:nU ZR] P5ƤUeӧqJݡo{t,j}P;͖S#~bҷ7,ڱU#֛ -ߡ-g JyHwc'~}Z,ZC,-$θfКk&Jdnwꇠϧho}Ee *Z(FCᑗ_M\E@ Jq'ٓIe;DHp>׮YQ`{Wc\pO1&eg޷GՈrmY,;ǿON ƍg!sF)`uHmU{c?h tCɜ1McVgD$"+,P4Q",D}iCE&g3f#ɯB4j?+$ H,倯=!a?Yp\x m3Hu oݤiwrDPc `%&9ǸUGe?xo\;> [:w []"/d1k3#NB[|5˲ ǬZ3 MsLB^/`2]D\l}c051h)^$,3 4[žXx/ Õ,2RaS;RjԤ\>?AjAw!msBoֶD&m:QTwmXj i҈Ms2̭prA2juN\ji C#gmB -kTP7nJ_h  ?mXd ĩ Oawm`3FdQD2;zɭqkA+IE>Uǣ/~xmF1/_ n B\%)쳘AT/* 7 X0939҆by^xNי7}C_*艻;O#3'K#5%v@osfL$po!y?Ug&g#ZGiGRb};oRY5mk{+)SD _pQ= Yцrn5`!|Qm42uoI :ۜڍQ{iAqճeTi⛽W7gи|(6%sk \t.{X)uzr$Ryj[GCiu7i[ Jv?sWjDzH7/G^N Q) $S5Ba]N>$N%aiW M*s$Qo|e)Oh?Y#kw\OO'+!S?pr㌘\Mdiά{"TbPjdW*V Ʈ:Y[RcΠ\YvzVk$'@|\ %kV3([P䋩 _s׭2Ͽʻ#GGäGq\hx48-0h&S^P#"{^=f}!d I_ogYp/~b^ZgOiTHg5};'oOaIppNޯ!bv%s//ÚQ 1D ޴|1Q"fA\Aui7̦dDqGCnmJ,W)y#?ӒE=0om$+NLMr1Z㲳&1žҸ,p]eyj :+# 9Ez¯uihp>Iy Ñ6! )(YJFDtw38Xg D>DiUd'2c Eh36 "K0.~@̏+M <[Ҟ>t=_Q|A9/ / I$xp`U.9HS`d? >Gq-rFdȇ|T29R6AracS>5(J"UvL|ȿ'YGZ$ \h/)p MOԶl݌9nm_Or{}Hx 쥠.eG,bmSEWiQP',نM䊉‚o!{tE]5IhOۜQCtd͘S[{Z#Vqc SbÒk-WjuזL;Q`}fd.+Rpvg>С*NgNgJ2XF@olnl|֚mU(fu]z+k@pzeG@awP6|8EUOQLzFE|;40o|oأ 2Z}dpnǛ"syv?spŜspV=ݨAu$7'W8ŎVXbתcy"HJ*>kLתI!{E;r<=Fd5%,[I}[0/i'I:frWLJx޴Bz0ϛ ~2Etɾ H.:i z Wۯ,|\P۞.tV]rLSvv(6"9<p9#iՃjY^tHlT~-}4}Gyl(HDw0mQ\ɦ0Z, ;!i?ǥ60[DWqs U 3rsH žjhSH‘T꣏x0Toopv=Am I`ЩFѰ8hCXS=LEH,}!Z0w_fTUM?nZh/g=&.K1-9 hXL ҆13w /G??](sN!On-7|d$`IKh~w2%5Vb<.RzG;ōrt2@lux-IfM"Šo`S)O}~zmBW9kVtAՋENBh8A֒=Dܟq#|Z-d t|M&]a endstream endobj 302 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.13)/Keywords() /CreationDate (D:20121209104451+09'00') /ModDate (D:20121209104451+09'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.13 (TeX Live 2013/dev/Debian) kpathsea version 6.1.1dev) >> endobj 262 0 obj << /Type /ObjStm /N 68 /First 590 /Length 3239 /Filter /FlateDecode >> stream xZ[o۸~f)7(m6=l[AD[N- /2%Np^*j8~pH&ZVK:xBõ.c6Bj^p, /(܈7[H)QHQ" %̤\O4-450ҜQhv(t)F Zk:0r1^&%! ]$F ֭7 x o#ra\€(a3/IG $AS )= o9V)At3#qpN В Tp\܁Lb8ː])Ech@(~B),$Ϛ1'jل >$V`(c~C9b)Aƴ~``U__^/j2[b,Q`6WHʍ4mb`}S')nJ'&Ћ2臃1phkEo|٬ wpLpU,hY N9-_ j$܀6/ozjl?~s-mq_?)q]gۇ6CQqGֲÝ<*>{NGUAg'U3^b_W_'BǴh 4?ϴ9hlYyU_\4/.~[VW#i\/<%+򚜐{ag5 k-ގ=':[5t2Ҿ>;5W/ڳ}a^N W32&RKr|!SrEfdNICdE~t\7.ϣoհpx nrץ=G>&O|t' rDcߐyO ȟPyu]-r6!euKies 9[jZ/Cksjي:d|Ҭ$oS=du]9 ӲK phde ن"xͻdkzdﻖm&3u} X:y]'o^t|;*85ş*RO9:N[;hlL͂JTS:N~ϯE_/E.%oUx%>ΎR| އ!s GX𿘺37>2G&dL d;ϝ}tz2t>8>6CSyH}@xԃg73o3x>8]qr콤mmc9vK©`{S^T ^FMGٜ݆p-e|G:'S0e m8gxoG.i|`sނŷim. K|l!)Xdtj9}yQ$0iְ=Í$t..SQ.)[QV֍HF742Տea妙xD3c&f^hH?g-:#uKۡ+C+gNQ$j ]@%X#PUKf%X4ɜm-6OSĖhݹd9o^ l | 4ff ,.L՛$sm12hc"v3<39b{r?5쎨;gWEύ P2φXWDƓR+}̙k8.0 %a& &!YshiVi *Lٙ#h.F\p5D-^4 Cbrk3qL`PkXaP0H:ÀjLQ$_ٵSzB W=!"Za\oe{ <2}!H x)j'Ft:mB@g6:/dsuͅ=Jml@lð,[7fŒ xixF2p*w9=on̓m~\(Jt̶tcA۳Ej>ȇJ^x\UCzu|xG <9558C82CF758533C7DC81DB299E16177>] /Length 714 /Filter /FlateDecode >> stream x%NUQ:edQfyQFcb|,1V+v&"&$>`cm}=gl3Ybno ]$iDBO2 h@65ݦydd=m!(" -%dd]W@)YY'm(' 렭ddWAYm5F6IJ[jɖnցdd-7@=Y3mh$['kM2F-ʱEy&cDR/n1Ohô~7+zW غ `ӑ~; Ƙ#`Li0f XK`+Xk`x6pKѶ6xvi`}ʎ[хSpD}Vp޷ȵd|+)^ILj BvKS<DrUk@cqQޮI-h[s mHQ9!jܺjJ=E먴Cf-n#kHHHy-<.H~m-j@@@@@@s{rXX(+n//5% 6^n`]F"N2eh:Si> stream xڍSM0a RUU7UzRN 8#j}RRO؏̛7o9F>?Wp'%Hv BR)˒d%}*o1^W̫ڃ|L|o3gh&]pdLV{x΋_Q6DJqK64$UL7;i^R*`8M\D 4yUW]lpl"T N/^$3xL fk6MO]5f,Xێ]>ұ=t>$iKThjb*@$Me./ox\r N Q.z?P\x)F梻φ,|c* u]rQEy-8i2rAbTAA9P}.ss S,_m#И8s:kipfoݳ6P?,vc7t>Z7w" (E漭:W)=TXfl˅Xື`T$?b}7uU-]~NO ey)tbiLn E,^{jx endstream endobj 114 0 obj << /Length 950 /Filter /FlateDecode >> stream xڕUKo6WF40 ZQ+"(/ߗ!eӼ87C<=K?n44H)*8_m{^To=Y\LHIx?"7E꿳f!MTl w.fAFQTI:>铄ϽU-3NU'[} *3y=+Znӡ uFˆg{B<4̚&; ۔d~GHjZ=_tw-*˰tBԱ/1-qiUk:snQa-׶OIFm#6:،UWa_46MVi.ia@/L'̩ą@6gRv4ud4YC\B0ɓmL|!ƿ:1Oe;W8[" {aQpupoUPT%$`Pޞ;}\pu& 驅ZƣX&1c,8V8^q|y]/@l\LoN_5<!+4K _r;i-N-1:;(^jLt)&t93dBADA-}.]4w/M-: +E7 Eá4KkX"`>S,_'L>Xa^bmj J9ןa2'UhξS *H4. )8 s CU(N- !zH MaC$+|Y'A"'8i >>#(if^W:H+ؗwZaXV#¥~Q } nr6oUrZ>?86JHd ߟ::iwQx endstream endobj 145 0 obj << /Length 1357 /Filter /FlateDecode >> stream xZIsF+tԨӻOıgj*$T\噃P$ hDKo/4ҒJo8HJ),FU?|{|{ģ 1.aEio4]}^0bZyʹ'Fwԣ* 뽭L)[In<+NPnxoKcϗ @He2 ƸYvS鸼SS,џĔ{9S`'o4@J[Q4L&q2)OWn&124yS>]?3‘ÛWu3QAp9H3fφ 4߄,mA h|[Jv_|Q֫[/D (xqjx}&QygۇLV#=hH!IRQkl3x2W1@(uR׽k} zQEpap3K*(ȘD gz<62˲wGr (.<$E(^47B m.r5 /)9DDD=( |$|K?P |X33w5oi鲞t MHcw= a endstream endobj 150 0 obj << /Length 133 /Filter /FlateDecode >> stream x]N @+4ͺMVBdʠLa{ `5ü3'H٪(Ekawtt͸R͛UEeoCY-0 ޒKK=]I $ endstream endobj 154 0 obj << /Length 1327 /Filter /FlateDecode >> stream xڽWM6WVofHJE}(@˴MDڍ}ҖZoCNpfFF.~[/^ "ZTp"ʩ z_뷋}4bIX1Nx\Dq#6$.I4.0,G!ASAFuw+Rw%$3fwh$+P=h~A᠕'W=*xzXh6Z8^}Q,ъ8(-$$]mOvw,_9vjrP6 &.tNȊܭbF/xctFfb/ѫ7i1 rCH^xR{e1#3 `֝K?쬟V*7 Q)#7!q<&M[([Ф 46EXby^dUGDž8! #2 <…g F$`'LSM?tm#πYI QgH}ԵgS3<X֞V:y8 Rlv ~$y tہ~A8sݞ'Ǎ0v4 8i C,B">-[MS:*KnȕX+Hc[Vgڰ \1A"!'Y 5SϽ @WD֝] /Z ^GCO@2b0l: u&=*Z=<0S9L 3F b>s8+م>j.УfqguC͢MHjbzVr8#)OPDF4^V7m] MB*PŒCyvF%sluA}Qĵveb<պHsjrnGd}n3fmi$'|ܬMf> stream x]A @+昇qVZT%U$3ѿA͛=94j L $8SAڵE?!XsL=O=zh+M #׸{#"tAkedDTn e42;y8 >7b2 endstream endobj 161 0 obj << /Length 2201 /Filter /FlateDecode >> stream xڵYYs6~V5A7gƓ85G%Je+I$$LHK$gfb _w8ZE8[%h +),&]tG3-=E"I?:6zw9'ψïbH*U8sb/(W\O>ͪwjKS*oo4]6)1p`p A<Ϯ/%=H`#RD! -\"0iNڋ ޅ}~ ƔnLtgt;9hN@%TpTգ΋GK@K)N;\jaO}v,mCsA)|駉Ynjʓ; /:Xu50>a}7[L*2{\d00.Uf(1JxAv&Su9Mk*z }V LE2g e7Wџ79xҬ&by wUe-B7:3֗Ig;\9~1\J6 <_!McbEht92P'MuU&/n@6vߌ@ xVG?DD p>x@%PKzsj-ބqeCL?kivx6̄}2OtUfvٕn20@6?>W}^`E:raNY1o-]wk}Nxy iwWY6ۭtv;~߫s;%n:ۤ>G0zMIko ?-HI{5 |{at7i b(40acJoO^(K[hO:Dh@,&?ܧXɊœ?cצjwLwF\b;>)WwJ ;iLc`[aڬvgi‚.'r[qZ{ D%->OM,ۦ#TEɥm;c1hĝQK18+8]c7.;xe:Aaǝt.Oƅ!on?-N2E3̡jz)GK}6O?M뭆?e;0чwnb,=f[>k#y9rP|l DB$ }Ƥy [u۲Op&`j_)|1[ۖI ~_Q}zygMp`$(F! W^FoNkɡ!_Ku7탌J%CDAoERG?U*WK¼N`:wovꙍ3ٸoy0O"[%죋:4 iq/QncJ lSZw0ȪSpڛ}e9j=cBpN~`'ZYHhPVNU5q;-SZpz4 `J5T87X rS!CO( B9lÑR &KqpPVvE˝[6>۲&׾͗XєP#!}0$lb7!8|\Ș|xc{^Iܶ~H(A}")B ;aO(;soMr:!̘$FN"ƝpMoL1%@]I`(fFФ!Ջ0NkK4)+y%AYȔy(±zHF0p{ы au 6H8e<31᫩v|] dW~y[ Rut7 W]$!lށ!mԙb(Y\6BI6g.06/=һj?ew$!H.Κ C0Đ$Okjn> stream xZ[oF~ׯds.dHAbAe[, ɿPcRlS>#s\H83Lqfp&9g3<i\9pyϤ`ALo4LHHQRQ K)6(4 \'I3-Z3d" L[&N4D:/LzQPFC0ǔ:Hv`%T7-  k88q`VA^EhJhMָ y (Aks/u/h@W 3f([X> nF芃ŰYL,`Wfv ɬ5<7ZGWq'2';K0 $ܯ>vƘx)'p8KM W>7J6 2 PP f<w3HFlA 4) ! 1$ķ txV)\V*ܐb["̐WD/#~-AX~9߳Wb=^f5YWotc:,$^W9s:\m_Y&~Ð#:OcHe黨3&&Zpo͢=(?N'lK60M(:uxglqt0^^49?~I͗ܽjk|nb**]n_^EGx$}*6rBCq*|&EޥnsɡT8d$M M~z-QTgW$cnVmxmʙj;:nId]4LunMw{QNj>>wW4֮g1>zrB .TnNh_=ж/N "Nkd?aۚE, ]cQ簘fsHR$PoEC}xn4_^*~É``6> N3g3IgH N7kH?NfGG4/{u5|Z混d4ƫçy(%03xWhia @4f֫Oy^/.m(ߧu~f7Ki42S\1)`% "U% \ɁQ${$R96y}_}[浔eV)[[e=lKyJyJyJyJyJyKyZԝ2XK͑)G .EXX`e`ƝDcʪG& @%Zn2\+DDZg2 `J>P!]э( YբRa):pȇa\q4K TS]& T0Ufs/fAFcw'{hdp r#Xo;p= 0MR41!U r0,o dOocbFFccR᜾. FX-bH yUMcB*dc(+3}+*4g8ʭBz+[PU3@NA:p?' zwP}GV3]aj4Lk`%c&B@!]{`DQ5UL1Qq//LheF*r&Nw}{S(Ϝm/^IUOXnwn۶ڵc55َ}9?ے/Ĩ> stream xڭْ}B&x=ͮ.d'WBR|}/AYO@V+oW7woEJX~c&dy~߭~^>MۍxkC^=S}4Y]cy]"( EH3U߄x-oo8l[q>EʛV;v1īY0߇fpoz2鯸DDhQo7תRmZyw'Yt O])ߙS>;v>v@=7]i9EkK! Y$2&DH7Kv#<.TݱiN)l +:7B+ƴ ޡ."\nn9k+f{2֠(]ϺjC‚(S 8ZV;MoB8d<zj>æ{|؎~O},Yv,ρ',J]67iyvӧYO ֌.L\5E imLjXsx(WGEmX1oIG J3< /Y8z JWy-DD DD%T"`qa ׂCntʋZͱhre@8jYGW}`fYQpFVSVs=Sg<s߾~w_L87rۚNcѻ;1r( a`]ֻ|42Y7*eD5ͲZe7}ݖi6MgP5`ybQ@ 2oU3.BJͻ~a1@ܳ_U 뷀QNsJe?ZSsn<< @QW.Mґ% xFu>&IS._&C!Xx}f+/F8zDx&ࣥWOSʚ_մyMăi 0Tg,Wdq[5XA@LX V͌b:yNm"_D bj2Oa[I' WT8]dwCT1_ػX;4cs/\@ju?>@i=@K ;Ӣxjrf^sۛq5fS4*mS&!׻:;wgꞠyiQhyA#9# GeV*q ֤rR Hvԍ:-G̑b hAљО8" ֙jT4L m3:\L|5bh c,/F!}q\ZuF&yx"ȱ<.(9_.T39M]m" {[ Ɯ)\iJc3"&4X](Nzp!XDM޿;}AdI 5C7¹t[?Zةvfrȵ,e- TV(t(c +5y:(SX:>hlG̜p`YFo(h}Wu< ]ޛ6ԫs îP>AT@@Q:k&y,:cm`1/4ϺM nᜒW/4s3,&t-n{HVeDނX'* <BHI?xS;v۴3j֍Jq{@NIA2[`V0qG)C p#LBD .61EAOds6?PUag CDtvqS e 3k |D3.W,lS]ꊫ""+Jf96؜{c1u18tJS9P_(j)T69+*1PQ4~picjK~$Z0`3aND*p|8PjUlBB5v{A@xRys4cvMEd/`'e!l~@HTqp5eY]nJ' 58(^)U1}qZVp9h_EvMC_N^ xϵGXB90HAFB/Z? hqL1 "uE3QZf`*SRriT?Q_ sۏ1iBMЊm r8?* BTEHIAk 3kP.n +n#‰[pׅr!]qdq<`xt%d̐=+u >J|UW](+He[SXD gӭN^TD-i6H1͂ud!\"#qsl@pn9(wϏp7py;_ {hQʹMz(訇;;LDP/AXo\xGt1.``2CZZ\V"h5dBlb$OY ߝ6ߚSpa!# igЎpլzRسp|N&+T[ۦ0>SKz,SVbΣ+Crp}axjGמË!!>OAeu3S gQ(0Fap?MGG" -^욏#~GG! .^ y^x`tI?@G"^.%01^5zSw]-e5>ɥj46$moCV0A7[^_`Y4߭WoR-SM[oШ]> `ml/U-jXJw;TM=o|S->DsYғ˞yeWMTVCka4 \THωݽPW[ZJOږt ~n> stream xڭَ}B ,NԨqyfeס/k]NCM z6x{:-5vt 7 6Ni؛@;Bs +@zQÓv5ݽ>cGxֆ52eP IJ(zIn@H~pֽkܙIZl@j* XR=0en@VwO1X\A_GX_qTd|)x~Ny$xXX,!5n纮A^35dm,j+e}DVxݺg ziz,qfIy߹!`&l/Tد<:2,SDaסR$Y4Rv7N2'Whrհ]s-KQc]S{FF-wS( aR<;}(HI5<( e_:5;/c2 ~יC7X,~uǮhҬ{({nKaS ^÷} njuA;dP٨2¬ m2h+O&-شQcaAǢ۠$KNN ,Ɔhnu0T}gjlCjL\Ե$5zGۋ'`t !fOrhd$.@&Ƞ~񸹒qEDo O WZ<2%,)"d8IȱYXzY!~Y1m;`t#a"!'3?`H!3@@/jy%%۽0% J Z@~JN;aID<l0ax|+_hAL|a8WőJҗOI جdNx:=FU#BQt<"SQ5`#ڀB d!+icGQt>>Y9*4ZaԬe@g!% RZ_ZA]ٷqjR)3bb5p/}V@u3,YXLoĶbg~t㖐akTƏ 8sBY>~S4`N5V!vɐus`O!pl_,Vh{v ȶSŦK8!21n)#9 2dS6 e?e|zӤ4t#QhREŽOTY<?H!G1sM4EpI$B}Y/s|pEY f}V}9cFr S߇9+o<-CQFAKPn9؀鰷N7u&*lfk%(6}|ё[cI{u%OjIC ml6e.K3s@ds Z(G]Ԋ-B$E'P@8@b$u|:Ց-Yqc1>eyLLrL5Lmf׭fH Vu71~CkXqq L׳HWi58r|h|+!ivKE1x$ 3>!jJ#41by$\2'o/_v5Rr]0lٌǜ-dHs uП !Y* |*)H7; "(Ծl0wTBplh[1m^AI0E!15B'Z*\r>?YmCrރC li}iȰEY{\s.oe 1bmKCxZva_t,RJM291֎xbCc߾`jE E,4{\Kp ADzn@9f-GvOreBoy.88p܅-L#NF /lԆs_)gI2Uٿ| V_of2FlnU?NcL%6ܿj :x+lb1s$J3-xgK(u.Rי /+XR^_i+}l93hO&$K髰>>X P#g2dv2Ko@4,o"tԈH-DtGRM(r|ua388'k;vc!'E`RQOOR)ǥ h0okqhl#5>R`3Vf؊q2Zm,y)#A){!NTG\,~wMC܂i=w`1ëC bt&?QX" endstream endobj 180 0 obj << /Length 2167 /Filter /FlateDecode >> stream xڍX[۶~V \?nN $ASIqʕh.%3^-N_lr8$͈!̼\JS˂D*6ׇo*|%6;='^/k{6oPԦa0?6?7V <9 sW_~wvP U0, ^jٝzvb\# Epc@yٕeGNB6Doe曢ovsb랻-T_U{]ޚ[K)}LaQd6N,{4[6Ǿ-41tE~ 3LAk)l6,?:ǝGW!>D( J*5 Q>2ZBFۙ@<'ʧ`{4}K:4o: (TȒ16xϭBơLe7t٢[A=іsq.c C>H~cۛa@0pF2kkۮ\L ) ,^bEj]2D0t( {UEy@gc ᰙfbashpHE2>`hKi .KF}|I"T0{w6[5"©fIʓ QA,bb(*Uv- چcŞs:(iI淐Qo\X$Z0dw wF@Ƙ!fD:1qiqrM5-@@kmpZa:BcdFppX>J)&Tzib'歏'tU='|M40 ) Ds8LiD66VLjB=֣u"Oym j/YEr_ Ygÿ?}_H`ʍޓ>.l*EWb@sP?mQTlΜA=h)B})߈W[&=c%õǓNzjQ&8*/ x1CхӇO7.re_,8Lل}}ccvwEF$ǼIx<^9b~JQ OܻSՀ)ܙpe k $ɦst=n [ !/ 9pcm+_;U.AE;5Ő ȌBB癐QJ tZI)pxR?c/P%WCO!v2QH52&ق8y<L(A~K^ťģfd3R0 A@?YA ǔ/ȴ1P^C(k& !iŗ> stream xڝWێ6}W-2sy)=Mhml+ѶYR%z/9lo$p9s8.կ"O R(m)N\%9U,T?ݼYYb&,9ҫqE'T&Dy4I& 9 =w-y)Q;N6U/{;;7<]\3&,#@F[7+{Wv3?RK Ww8fҟGJ7R޹kqcVosBUW}MTUJnͱq/y4w1.$a-~G[5SCWői++WLOȄ I0™3NdR(u6x;S~vu[~7z؉d)-3p es"+z#MoO(m]roڝ]8㜈] U\d 0y+l wa{`uUvޑE1aAOTu>7@>#Ϊ4G㢎<ֹEnBLXYl.EbҾf>!9vs{SSfqR /݈y w¨7̝-ʎ|pX@t={8+i hl &.q(o:Sg+f=zYMrLƌQQCbčc"*}1ƠPS?RvC%z) ێܤyu&1t`2vHHm0D ȾsL7 D-J{ozCp w%kn 1p" eQEG9(`vvf1Q"Zуd4IM 4d_7r9 Pv:T eG^4wk< - uEA,"Bz"]|G৳BG;t> stream x]O @)樐8{/xutS!Zdtz? TK#[VN)sR)(L%Rs³ƈ2/$ PVlD#  6> endstream endobj 195 0 obj << /Length 2583 /Filter /FlateDecode >> stream xڭَF}o,̞x%O3M`5jIH$#ߪn( E$ăM{ cY,`X(nj(XO/7˛odʔF0ɤʂb`3BHeLJxnsǤ $gqgS"f79܆2 |)͒4xa1:^U YVmvVeWUkoVygV;~ :aJ̽qxѮ:MYʌiJ{M^oL;%%&@2'N? WWHz.=Lx,f)j0]bꌓmh<'[WFB)i d4:#b )-Oz4p[ }:d̄̾B"~Vb(20E(RhgO9'1)k,ݪs= !|EK -%11dؘ@Aϴ`蹪+CmٙX{j_V!p븭et<"w(Lj]H>[ :nWsיzC0e9 = WJ؃D4u3t1lȭ¾5!o˖݆1]`ۆ;CʳX= 'ml w,n[#ݗ)our&fUJYK"/>{Csrh9ߵ#^}!uhTnz:" c a8j7l,c;V|*{QVe]ŶLby4ޗ·U}ή .P?-'\ 1kA6#nWH\vd G0~Q4-mkʴš|9-B]#ʊ<E) hz0^1Esِ!AB.APp~ -e3dChOzMߝB8jj&$$!LXmOVFz73GPlQTNkI6>*|P'< #R!MM&& @Tՠ1k -Ak-v΅!%ȯ@W\-^ٱpy(}mqeE6\^(FWFNXOiqWW+ s7w2uIGsl&p>߿9MAqa)kkX=~)AV.̖ސJ8C^#:aZ wX^ -}@W_o+`Xt7ޥw7AoJ1 ®=̵qXP9!p?'$PfFhK;ְ"ZuNNv'wصy"P3_9˥i!dRfιiR>h ՑYm 4)mBb,$YYxSzl 2@","Zne[Lt!*_"SomG=ܽ@&S¬˛'F2yGf""7 -~v!#V}Y/NZF3_oX޼8_z.ܒ,ևk.INEM:+PMH%gT:D&snXZ|0nxACƒC0:$31L}KӍ}tN2/8Bȳ CYs;Cf l`P7߁Dll0hl9lzyOCfgg?׌R7@ ț=N=_.&xӱ (9WLX?kӔݵ?(؜ixwq&Fe1/|W]"9g2ix;oncmv\N#Ӕyⓜ6&CjLᚎXsPϤAJ҅mA+QW.>+Iq()OIV)ct/3P-<bTWȪ2W6ڱ5[mb> stream xڭZ8C%ˣHlIʒζTK^pHasp8 .⛻/VoeXxYI/0fWۼ} p=mzևw;eYusM1_2㮝:Q._x !KE 1-Fa%៉@󧪛i=J%ݛǻqs2[_~ %~2_D2cB@swĖ$ %1Mu =|>X^4biWb[ Bqzz͟+i`4̀o #EMpx.Ou4/fo>=vF GCF@'{.->ppβȨMkDڪqy s'60yK2=heC_3.k oʌ 0};3*͡g>ٽQ.kZ2]6zHy%*7??}Wԉ #euUE9wzW|g3vVO;&klUG3Jjt>/Ua_l* O jԯN9:,^>nk2=*r`HB"+cXzbh=\O~gС1es0/Za꼘ӞeZ"b;EĎql+3*-!0}I<:nQ%Shnv~vo+]P$vnwj] &R>R˒)䥭6yQ(%,|Fi)݉_r?g59UU#9$xkȰ;N\ '1|^67l0M>B@&#Y:}h|%ʭӞֻ1bioN1e᠄t#cy}5>lz4{kT*| $#h.{D|\%G,6$4\~;R&f |iݿhNAOb% 9 -,UhB1 MtHѺAn'CJiE&}ꎫnWIƔ"^ՇƧ T͚H89zHtW?WD<(!H&~W.6xv4Ft:]G"x Pk\B0J[a2|5ɂDp/XofF)N{pw罉/low3!"rƾ|>ĚӪ/ GR5r Ž0ަaB41⅑X7:Fְ(MIrg U+kFj7)+fAR2S|uh}P{u :kݛyK!c} nMKsY2=i/,Yt"kg-~3P5p*YV5>MJ7^-x[n,D!1ĄoEUۡlVGЍ=5C]q\i|@H!"?: n "~q8yfG L 3i1 Bb 9 tZs3Da|(WOWSe!3*6UϹ ʈuگ1M>B!KD"Cfc.AݬD*PݯȦ|Hu(>G(A 9(3%n/>"1S211W?)wDlFZNZc aDgo"6 w{ KnC[VɼnMtb5eh仮/*tS$dAPHbZ_b#ᗏlp>\ {)H:VUYeOx2YfUfc>IE9aI0jFtS] /dRGiUߟ1`K&5E/ȘIjmY#mDQY RS֦=0Cg .sÚOAcS>E"҇D~<ꂲU5N=H36@{,+u *7id5n4ۗCuƚ%6(֨0lf?am28 Ut\Kg:v #ká)xK/bJ hV .抈[8߹QscJ2N5eWM3)zYqJ@qFu]{pƒ$DrZT80=cgVCL|{ p-} :(}-h/>%u}֭?[l އOK)#sVzKS%gI(ʦu).wK/'*b_ 73BXDZ)99nTj*^qwT:Ro{3yC`K"]# pxώ*~Wwb"אmP Of8޼CLTؘ:HE'~џ^?l wНV z$fRϥ']A=h(DoxxSH;Aۑ2]MЪfOCG?i"vwF` Nq)<ŀ7i똜z"ѕz9u R>90e\2.q6?<ٻgJ)auvU.e46X8Uoe#ͦv˺J@|S' d(b|tNijVx+]LI2MsL8(%+Ǽ: =~i?]|H qwV?ITcМfj'i1*zMv]Ÿ'mÝ /$ήJoI endstream endobj 205 0 obj << /Length 1132 /Filter /FlateDecode >> stream xڭWMs6W(uJdM:'wC:v CVZ4'I`w{!7/?A)N#a#Dmrtteqap X s 3?EYBP}Di 3}Z Q4Xڹ7tM'ڕB ?̭IL[yaԜkն{hEN&!<\ a/KIUȭ\ۣY!*KuQo'@8IQX8=u,oh]di͈Z:+Uo-?ͷ\wSKMhcmDy2U5ff3}8 p@[>PŰc =6Z Uy;V#wfߪz()ф{׷ rv':]]k^O&eYIR߽0@I_K0R\$u'+B7ޭBOTK[ suGqE)]Z~ !)H^hk5Y#ctVmu }חq0)*l떻D;։Uml,+f ,zzX\ 8L $$3 6/3Yge좒=\#m{>tt=4Xוx䁖M3t1Ͽqk9 ռ77at]v3)+ܹĝąµͯJOR_{z`^<)Uʖc(T_/jPĄL#ʦ*l !&_dV> stream xڭteT[5.$ݽC7H8 -w $kp'XGwY)9vծs_ihI߂.l\B5[W#TMxr.G ,2`K77KPP X۸uXXXxp5 lo i P')89vBr0Hbi?/.C'-#1CAd$_9dt4tX񤺋C_ ))G7/_'z?T _*?W2,gK]PbO{8Xh)d8gp\Ƹ i0ة^0߿ʱ/-lM:aBwܾӯ-%n"{q;Z|,ہfOfUV85̊P)'y`'?i 鮝p|-Sb_~k@xQS:k3-r@bWI.z(wn8̝a>6 1X{-E@ @N%r[82i *y]ag(%bl3,>*NEqk6ܿ-u@kCJ_i)YzmުB䇛Ta@N7_m[մ$w\6[n _,X# -c/D((=hx4|Q@0Qc1/dyv0t!6 t_9?ڌ9H"-iQ*wZRGi :G+˛~BHɹKAtڐ>9 SJke+cXM Jw#{rpl_dI7#CH`Ӗ~>ēI1)ntͯ!ʹw 0x˪{N=c0/aDЗ٤(d-ȇEڽ+DAggz:iNC]L7i7!꟠#d}6Q׳{| ՜HgiumΛڰϻ_g@^V\xV0^]ٔ,aRD e&0q]+V`]$FI?!)%ɜSVh͋05:U[#\Pi;swފ@7a'(FpDtQ<߅vbQP] S%E-k 7䣖Ŕ PbGGxIHAَU-9LuG5 k8FNVC 3AGV+R+/ }[ZɻsMÜ wSn'P})DI:z㣰۔֧70#^D6Jw"{w: m0͹ fj{}?!t*VW)Oȣ?xcՏ:u6hL$KYb0eZ٦_ff<Ӈf.4ꞃkw> SEᚩǜZLKHyQ mʎ tp|Sr_GuVe|ʳҰ,Nf}mLvӼV^d6AQ³Ro#5r7%DbrǷ>h3yJ'^1N j. viM `H%2\){t1ȺCXã1C6C{C,ߘe_Z@w_k4*ga (1EH%ܽw?Wu9u7Y2a,2F_rc ؝(ܰE!N|,lCG?#goAکCh ޸OM5GN0Ms(^N{a6vAϝD<KɄ)"9t0 \սiut?Ur!+-эt,WUךr”w "(Nv)le`xg̟>2ח[f}û8-_=#G?i0-!KJ `'b;LA~` P&aóe[ŒzeӏmP{c /ޫ'6BU%ene^3=PsU鹈,6~YJ:;OD|5R?EF L`ͫg ܄qe"]ӀR Xb?xT a7Y+˲7 %:Tɷ}{Cxªi@]⬹xN8"g(l :0%^|45D](tv`xubb ݈K>tM_ h-#HYéT_G)l޷׏9+2,*Òv>pɟ暑XFwveF*RsǙz$[rzKvDw0J76+?L>%Z\.np85AS?،#Te/r4T?kWvFf7h["H(g98F7Y1Z/[5ȴL7ri|u2 N.>lk]:;^Ku]̑3(ȕ"8 o/Aʼn")z$i+zꦖ1ѹ;b9Րb/Y#Xr0ϣR|sqry uϻuo(G~FbYDcrH3&D/TeGwhp0((ˑ\7ۛky];M CW\~eݹY]i<ŋ-/h-y1z/te~U ϔQ (ED(/g˷1A]BPHa#jqE)y@8gm_!o[jkfD D6#V͍OlCI힧nچ% u3k UPZBb8)~VSQ}S/!,mù}Dy8X0P9'WТVYE0]d~ҟ|p| P`& ],9|jYvlhb<>F!%x;B⦁i/̟aÜhE|#ĐOϳ0>-avVOnsYo!2Wag<) Kչ{YY!QFi*qj"ýM]OV}zuwXwAc1OG79t>!^J)3V45둀(qB Gߑ_VPg~u_*o%RR3՝rT"&f61nB8TmĄYmO1M4:j#P[.{$$4ASes=ZS'S>5vn.'پ9۔m*5_LNE>8]"}eL:\[`۠ KeA0/gqag{2OJz PГbфIw` pQS, 7aOS3 ln:۠1D5VBr}-tS"W+|Ω%óҗ@c2OX(C{B-uˏc;Jr4 ҏo~-4ˊoxj0zp׷莟- )^# 6==gȢ;z ӂu36\)͟lndHдkMGZlM'=~OwJm ~\ ͪL9sm2IĕwN,}EAi/\6)O'>1H1إq.b~Go uwzrBM 9bͻ #̎|2އbb1V0 Qc%L& &' 4ZwJ굌Vo+ 8V bʛu?=m#cz/:-+{o>(i.S%:mڨ)]/-$ m * ԍ`olĀX[[]s_ibVrgNܓt./6e~'oe;ߒijwc鑽خIuwd5t`i;esL}Z}.%;rߓD2EӐ8M-?E+57;&WofZmGYV<񶚾Y_]$GFECtG~+4S)r@{!ȼ# 8>/zIA)Ԉ{)1hyzw4w(3pU뇸 H|XNHP ~%tMWͫy0ӂInJ(Njѐm)"rHUå"IRC}ueNјhqJ!{s C.JMiBLRZSB^fu +4L9S`id1<  q gܽ 2qfu5=?SЬ#|c-*X| -HI/l5EIHL| %F~:?2b2Ҥ RhfJ2A$C74 z뿄uQ% H/fUuqX5&ܪKW9֗M)rchK=I-XjS~-]>jqH*e;?gtO\wrcW%0ƣ zɚl_W#ۂ9cOeu$MUhХ%(xZ "֯5P@Tפq 80ȭ/6",Dm+hUZv/X4q=@swИ#~[tؼ%Q}-\y>ܜB iz/}6#C;Tvcz/M8JEa$r30 Hg(H>exdh;5^=LĴK,LFdYDl=owjMawHnGxVqϞ}?2Dau&GE'Xy53)s5|!ow>+A/4Mhˏ7~|0[98D1uoxmIEKqXjis';DVnEIJ endstream endobj 217 0 obj << /Length1 1612 /Length2 14598 /Length3 0 /Length 15437 /Filter /FlateDecode >> stream xڭeT&;wi.A XCpwwwwww $Cp33s~~~SOSVSj0Y8@`&6fV~HIh kBpm@` ?@hl|||HT Gg+k0VK],@6K` pqt7:b8m\\~l\VΦ 6 s;W[:`.`sgG0oVUI[b pi`OIڀ\`;\f@mEd_ @+Sg ;_to՛::yÿ ΒoNsV6 $Ed`c܀j?3C`DbQvM SO[ovS6;^0gؙ:Mm<3Po8r`ӿYFiw `ijSk,v6 _EL+4mmA. ?_Yt4%s+J`MǿG)J; dbpM/:+mKfeW_';X3+`S_U׋[*Sy~\;TegBM.@/eg:^W0ܬڇԿtq8#\=v+Ǧ|pD5OkFo/:=N@3<16:w;p@ĐH%`rJ 0qk2}q+^ |3&k )lO1; e()'[nlf_#6#Rq59cm2f#Y qo GqZ$#H?tRȚvA!|3G,`}az -e{(.вݗORDxψr1DqGWG!6%2SlStw Zc+q.PM s3E} uNY~̘qHEStVk.HUJCL֧2XL3'^:bIK;,}et\@2B`[+]\|z`MB͂u ]ĵظFŀm<}黕o25aQS5wrJڔ @a51#CJ譡 2j;zFI FoIuo{l}0"62,;;x| m/aCDUb/ Exdm_V^𝡟 #fS r/`Pg- X i.>.@(F@5'Ud-m;`WXS1S Jg+2GV}{ڦ[pϺS[{/6ƩSvceo¶as˵h+'{ǚm*۳m="c0L+9XtƬ0Y" cm>_<iZZ':޺a%eOwxb#Y?|ȣy^}Լ9?FXq4ywov5 ߊG l-og!N5A끉+uPzv(eҡX*2뻼j|{v^T3Јw"Е UX7E=k vhVpvМ P:"S8d4\wcZ:G_T:L a1wT -rރj%^=vꫮ@۝ GLt7X\myk$Vz!96 p'YհޔfXAıQ"RlD~(gA=WB<,u;%m%FŶŇ 'YɫJID _3 D&Yʨ~A.3P9W2/úg -,ܮ.5}"mP2 h#c2G:^OUy'w 9U"K֛j՜7iQ{CrQ-s>JWBv Wvk ڪqQcko]bDk{<8g; O"T$,#f"AZrsUu?7EB_~|j fD+j6K!;"L p4r`=`&l6x5ŠW&wA"t †U+}=؉9ï)6F)]P(t1nu*$F]u Ee54R;{>~h?ly8M0d5^. ńsCS4H(Z E:rrn25H~hܦi/R~AqQ"?2tZ*#OˬO=lQ{?MkORxݫ@Vw*?zˇTaݖ]U0Il;(VShe:["pmmŎh.ѪUAM9^xKclO ˅{В5,;+]S$-m{p̫+ duKD-ɄdX= @#fYP/-njq3dh/UNKIGs{;Pjעv.h<:j2(enBD87!XToF\U@5n {'h6Rk 2<ګO_yņΐv5$f\׺R Ʒ<\W痂Ͻ0b1f~O^9RԊqkZ\7b=Y%z~TyI/yZN- \T1zoȀ_qce_y0b!GwoX9^&wSFt6;Nyrۧkw 9Xlp6hW:x:of#wOJQ]X^PQEH6(4ѱm>e]K2Hσ^?ۗAZL܌==0l-tI&Y+ɜo$g@Op|`(V@~JNH}+UEE?}9k#:/\Pнt!,Roxױ؞3|C)!حM/I~y,3YUӯj3b-ی21E|{$ d K/&JEl#%VYMapC6nj#b\j[BS5Cq/мv^#?$oTt'5XEg+6:>CЕ}i%ñp2T{ks^XS(VEYk25~7:۷:, F(IPx;tաB?]=}o ,Lu%Ʌg2Wlɘ=8{RecǂAfL}D #qۃY>b(ݡboTOp՜' νKP'gXOXщmtѠ]d$q 2{mk͖:~:?#ta/WEv5j*28IqvIh7Mp`A#T>1VNlsaDI 3HB=h /;S;tɻT_0--̛ecGomtlΘ[fV8u?Qӳ$DJ/BE#ceEZL@U^VHes \~o sńjmq%г&jɺ$Bήm^`i&CRen1e3 QM_?!`uvb[f*?I1Aũ̠[gY͂\(n6%ˇڷUO  %XmTҼ; `q\GdO2JfhE]Z.4<,t 5\ۼ"4O9:nYlEZ,Pmoԯ xx H&F=(nԧzTDHu^VhC2?J"7z]8Kpt6W9y-ǘhn\ 52plխMXyWf zML&KŒAI!b%(. 2* @JHQ*[JE lmA fXf3w*0aUY3VwBg+09g-99חh?u}O'̞E82㷆k۰k 5"Ҏя&^﷏^nYJW9QH2G[^!EtyxDa9 䂛5@O|2-}1S<;5/.x2t6a׮>5UD KN(1U{+l!ߤA+~v.~܍) ͺ3*toJ"VhlӴlTbjuXbCNzқr2 i4F1wi:'L79*|v5|YQ~4cnk'/A0YklLչ~[s[e,* ~D3>ŽUKpF/50REѕf,q+~n{33[P8"DzMYx'_3>$Nd^J wN¢"rnvYz&(3M ie;%d DRi~p?܏.It>}\h#4j2cVP p^B=h'oE o/ V8*ezi*ǂ|hʕFy&$#{qV9;n\eO* P!Bu rچ S2dD]TO~Ṳj`Y<{ R1o5&QQ:NX.+ TPq{U 9?7v.<8I915J\4_D$ "cb؉`5D6|bFo1JǸ}| 6w L$82lgӵ6% ׿ n.o0u0A&=~W VOl88 W x )L]"Ě1SТr`yy˶UaI/H+$9t⇕<̱&UYRe|Uҿ1EKۜҭKSb+ +~ughUOlnaӌ9>WRHU]Şx M?xٔl a 'vOg_qU"ZOt[yURg{=l:(d;fL2tQ@HjN0?KɀA^2Cxn1Lx]ss h]9rpX-%yZd+RuZx\.,fk~D+=GjM l+qY)Ks4DLX{ZRʆglFa#^,UK:e #Y8~&٪DEOFc-c 3GA !? 4A[~l~ʴʖO0٫w ]?k7Tj%;QaPkF5PI JCF9k&?sly,i <;(5 W-ӓ iHJ5z&i"*9d&\)&ʊXtڽLWoG8r bjAF}HRb0{B @1_c1lhQ߱Byʀ]S$kT&m 0Ug .M!W##X F E~:EP $Hqzn y[T㏍%q mz`0ҟ:njf,>evۅO5_Dymv,:13ʀqhiקLȅt.;Nba57=+q|sXņ\3_%X`vi{rh|w!cRbMPy+C(VJiLQ*01Y(j\6q eU$VSz:o˓.%s9 0wA3w>/<2  iUan\zwe*IP~=55.; D3JiyKZwm$&Gqh?5 a=ƒӛ #+>ɢPhjwy|ˋ5O ӕ ոͣoR z?1Ը DHKt7>[7J69;{ESec Ɔ(E84 .7K_[UbI!twEʢ=n(tG2bN/7 }VMjWccڐNڞ7 ƛ`Io6R_w~TQ8>kzO^욌ͱr&Pk)e )xނϝ[>WiI&ŦckՄͨE_ny|R5xsRF_Fg)bJpI_,cܙJU]NA܋#p]d_")ʜYz\u V_0GĴh`)u!e*r7=kr$ٔA[mXJm" [3 sXɧCuJD!9K"kqX3%=5=eoQ{XcjmlkP&}17Pz5׵^](rix*JR?Ơl2P5lyS7FV#& lBN|H]L? !=K :]@ӓ2 9-tb!)Ѻ]qGvJu4\}P6[#ofӴe3%B N1\{)ذYYw~vK238R?2nmƜTI][w@5֐{n\2ׇ׋l5>s07{,TY=!Mæj/[K{Ċ-\3re,>sCd '&GNP & d]tv)g+a[{8[g}oe$(vsVhP`E(FXd5v25"Mdɓ6笠WSh'݊j+/\5x׋ҤU,fM.=::ޝэ˗aX7-.-R)'i!y+ rHã/YڋN#$~1=Ӎĩ* CYIBM 9 %LfQU-kVgmώ_B&u JmRƎFaio@0(~k\0]FOwFǭEV~.a4a M>d^ظQ8W!$ /íN 'e7W==\W rF8d'(ʑ쌯Vsr2ĊY2fH]ȜIlO7mAO3R2fּE"?>Ԛ?U2)- n$%>3=\dU/[ ; # , ĴBrčB7YeY#*xm`ffEZ{7 ICi0pИ = uY KMG w!| zwvÓa?}@{db}msOI/6i%h<8p2N(:U{0y٠,?CO bOvr= i0#ݭg3-Ǣ9m}2qohYg*h+dlw5Z01R.d'J;tgn-H+۞p+0ն|T&%?o#sq*+wK^Yʰ7_x_4q4Nd{_n@K⻺H4{b2֛#d8-}Z' (u "R\mSf'&e./U*nKVB2,.v&׃K!wKle5l e._Ztb".z)Eq zy-5{QAz8T=ZPy znN " O3ା!}>xLJ)sۿʹY:W$1WbBSJªB ij_Kq%dlk\f$$*F\~p K3AzDGq`ʟ۵T?tbrwvB,Z?{Vl~w26RE&SOۡ%iICY^J`ei~t$<n_@qr,8c6j ro U"ċOۜSRp#g< c2m'C̎sc<+iC3߅$fh/ |LE Ezh 8T;LVIG|\"sm:e']=q(.7;pyt(qTV] ıSN^6|< :iw'6AyB%(W(.[1YlvsED MAuAUzN.15m"̐F$ϱd{{^z “3{gCNI~?* 6 ,Hy,5UǙ4O``SH[L%}5#dV )$q3.H>I nևi$;mng?g %}Vm&b0bN#؟lG40G5D2Yi ;rNIN)\ӪIYi=EP-gkkWRҬ#6߀.CD5lBBq\m}ܗ$px:Խn SpD̋ .ɅG4bO3(g="AV%L}ZGsJU5p_RW_vkH*J> cX4`ƞQZV2?Z!$`QAXh }lī]Q+j+# UiQ&HΚO7o&w}ǀAwփ}p1+OVo6-fm^nia? /RꕫgU,g(USe_.NE׽AŻu85?hg1gE&63%hL)?8O]5*1i֤/[f#* YppsXI+N X=RSP5myYlǜqw+Dɍ?Imc o_&rlWy/'$l ,+xtK9)k(H((\?]z^BMJ7Oǰ5tF$4^.Mv*I\GMM qU`"ș䒔(HG$NɉIkIH%lHG0jH|gU<Rj@z8MG Ú*S ñ%_hY[k̴BΚu*%m%=Y\?'-}iXUlz`kJO8 N)Y+\ I3"GjZ,8X]gmٍJ1XVP%8+b%$:잎iMhR`HݘT~kGp0Y/V{~nZ3cBSdEi8,*,{m1y}uWL|$Q]OAB*4YV!bnyJiݏ '{OpTg#e7*{lGܮ~joJ oCt]M8Vqv߆9tN~C49(JDg͝aCٍx@%g,ub#-"M|KvY -j2̌+"F6 m HcEp7\gN HFY;r<^RE%p);ϒ 6kT3YUܴ;uTZ} "QNjS!QB@_c]uvcYl <N2WFKoSrj]O(,)^`0PvʇJ-e)=I9M#Z-QQ@BW շcyAeYdcڴuCڦS%s6SzڶX׍Uj0$y*Gu?xTNbE|xz!AS|m9ZSWrkzi V9/Dq)Xq&3æA'J ?!"ceBnTaÃبl״iZN  yO,:,M")#%U]X1"$ovH]8Ilhh̹RJgdI?(~r_CjU¢px0.+|2?詟l"pD+tAPd5LX62~+ó%0+:46o|]IJ\qJb8-g#qOPaK2bh{?T3;$)S8Amg+"ފ}!=y@MkDVH?4E[?'vՀm9 <~ <0VZM)_5u0'3xw>{? Dk|լ1 ~e%?t +%\* 5e[,~l-y̼Cv# z@r5hqM=89H1wڭNw݆tĢ-vkpQ1k8O\B{I++5߭帐?Q[@EqPk0(ɣ]>Paca;~{iuy)ONž|~v|+s׵݄j5xyEau'63)Z-r")Aj=ã(A U;+C4-+'tമ *$}}d [hBsL\!Qr&jyVkd+b`P!%E*S/.]2K[͉8gP΂mܻp݇£^9Z[>DJ dΓ0%}EߌyY{t E~\]\N $@R}ؗ2 a}>b6<ׯ ,ر*;Ȝ}T,W?mūD J4QR{.8NK"VQdHC%+J02bRdW e[Ld߲iكC~;JEAWKF?bg_UK֯\0"wu9OmRvn*"5M*ereT+0rT__"_Q*VTPdJmM8FSF ԋnbu**LCbc6oA1=CU> stream xڭveX5RJ )^][<`ܽE[qJqbŋ|}̙|\Ͻ׽ז0jpJ[C-AP'8'7KqtAT9A`7 K bd| CNpd YxxXWPg/W`6`eg?'O`zzp9@AN'ۂ6EA]rZ84ݞJB@N0+ p:YC>qI3 98 WG `W 'SPOOv_ 9Bn8>aOdPf qj''6 6O7VnJ {yB'e XC`^OȜ]!8pv`O4O:z gg p  qzgXlnnA5̰>%aa urXl^CO!,;9G_5/}Wjy7u ǧ{  g,\vsp8xh;WX ni'0<@<d [l,z]q=iW[ӵX;od?W/u݆$uA c'S+qspfwxL\\܀|yz/4rNVP?p~6\]4*YaBDC2d&ݝaŵЎwUa1f}MeNRw~]KL[/Mq b| pojiݡQb_һ3\:['i{V@Xa)y꒹whk='QԂ?u6ez^kz.&2 )oNsl']"6X1}R+ ^K31?fVu+]5QcK,i\I#< lb^ !G{PxXy*HMD<8ThR)NV A9Gi`Z!2?UL wkw?"F,"+C[Dj] lBheQ-.EW*o*8JK8q4"ڦ4R!E7Ԓ,vuu7ͨJÊ %^h{0 GXxE߼\sOʹc,/ZŬ Zi"\I]<, cuss%WWQQ&Nm?)}F3I^lluiayFohWz1R `4׸fߓuq|҇(ey$0r\uQRS5PɢhR0U7,}"FESW;jHM+SzIkz5z!)XrAB0eԁ &pR+4|SvF*ڲGgtL|DX⓻΢\Fk'IC.NTgyVׂqP tӰfZc#]T$qqr{E#hޝSbg Jwz?pؐ;DݐP-F./PKwIڽ1Ztv{Xa">VS C$~6uv:z =ʘF:¯W~(#p\65Wu CF%֘=Bd[tS۫ݥ}*9tk5îK$k9qܖuJT,~cj&Z*|T$:,TI4\JL-ʱ,g= *3V|: F[ Q/Ħ<׍PW8ܡONV%uoKBaZi$,>uѐ-'QMS?  nw% {NN@鏗5b!(jITC׀DB:ce/Űeg>usW*@1Tv[v0Sd$_GbK% (StH{xHQ%KFbǒ6975蔇kL`wEywNi1('+c?]'Q> K2FX.ռ+%4F`;>_XXx!ܭ(} xCH.<'EۂyM*MiٽՎU3l)Et]HwmDE6?Ă##3m5Lįnj?ًk? X^}qEZG2DE+ޡd7xPsV"yLJNyLfh@c/S~JZ?#\^3҄gA9{5mbTJ*tvKءL?>p)UĿ&/Eۆ0WM^e" $iyʒ)Ȑݡk&)%̴ei|B3mQ]#yZUE`_VrޝY y'fc(کO_iL:PP ۯ>ZC@)fDiy&tw_9ZCc!Ƈ|tX}uBu̦RkMM "e8uWֹ+RflF!)N7R-{fd ႚ>srOjyoCd a%`va܆BXϘ rfݰ>BJF&_jCk&Y]8uɕ֒@ ZfG6yYPJ!A B@db?ݚzXwgIT4ոCԍ@fY '],|XE?(A?7FtQ&|i+Pg]a/Y~s]^D]ewˊ}=7HDljNӡ;/'d:C[_ g|%UplIy=|&|~%#Mb[+̜#x4Oσ2Z Q䧠ު`T9QFq iF~ye i˄B|1D,ԳHwlXV`X6޲Œ"rwwܣxvq;@3c0(sڸώ_IUUy\_9AO:+W`'Y8QIdCH鷷g.*Ҿ%ѠYZ˹>mU Rs;dbpBHwG˾:]ߠ(uS*m\2΃dS;"Lٚ!}Y~53EK(;HW%I[y4Yݍ0[od~o#jTMscٵڿ .g=&H^KZ'2_lm(,`va?gks~%.#YCYu+>[awk`E4l/3MxH{JL_'Db(~xS/,s<%n-D-g43;1;E'LQ v"k2狽LnNJAt|Öp?pm)(wv #zakUk0<+43g@}u€ r/HoM\ 5D:\,!]?$~id]!懁g,[׿n֧3ԕl2Dֲ[Ͽ?ͅaIJ\mE"0EUSZ?`&-3 jjGRmMlV7Xۃc~:0~tߊ?ihAL &? uhLuK8;HM#mJFnzs#Vc*A",N1R%c}:Í!ͽ.{^`R2J15qd݉$JTȕ7NKEEat oa;h]ߣd*SRF M-YZ3ye&X!gXV~_Ag O|&ؠ(ZRl\Q;5.O{u %"h#~ r"S9Jx.HfY{F 4n#:'<Cqb r|bf:Kp 廓ٻL8lՄgDxDdL*G.@D t[&Hr1P, KiW.76Aqȧn":4SG$EEqQMlV Q]$6"B~^ۓKd[v}xFa_S0R8VY_aW߈_=erPcV4[ceciOfDiJiYXbMnsR:?a_CA#VDO7[4VE ~pJ wn7j/чPįf2/{yN :\&WL>9y{fʌ.5 \L"ρh y ${&`F3J_.';0B<">[62 J<3i}pѾÇD5c 襫u}Y6E?xHt&֛&ÕȔK!5:&׹L͒~{_JtqnSaCRKL)f`yZM^Ђs(o\V\L5/i8zqkaH/<ÊMZ`cx7%o ^M:S¸äa0ttDtSachN(z甼ca]IBA uJLOa[}oZx"9^6IkMNTJI!TYN=0zɄDDifD8n啬bk 7=hoo=,lG:E֡8qi (PA fֈT+`=љ6 $\,n[!o*_9>>B.뫷ϬTb6BOT` ^O،Vz6T"Z5Di4ehͅ'Ѧʣ-ٝg>_34܍61 >Ql7JNzFE:5mSgIOnK98YH!tS~m7lCҡͳ* ډ(`tn+8أqQæ.IQL3w*+ %BeB!Sя*c1ݭӐyfu_̧Na&oY p³D*GZZ+0pSoo׺XRw7f* *Ï4jOɻ4ʏ. z Vip/~s[h=ҟ?6KZFePֿ-TG5PU˃9ee6n-hmfv ,EN5L8ЬK\ą~Ü( &0@;S^ &?ico}.If!3|ғm}TTn>83=u:p(7tcp_f,YV1'|OsMx187p SqͺvH~SpG}ܷgekrortd:w_݉DݱY9%/DsGp۵'ٶ!ל0-ĨL"2~!mYrFGe%txXEOR#Bcg嶕8 [iNYͬ^mrD(F`&koo^ \q[gJJ5XD̲^Y2gt3j^?ڲN*(̆׷:dv LyE?>w~8v[|cnt3vg yW¾X?plGN:Bc׎'0(4VNcn(wd:F`a=wC:6SD~s6Nh4?YDc + wÐ֎ ѭThP4ufQy>3nu6_st {^ZU}<Esg%iqajH+13\lTn{ъ Au6xRC-$~l+Or=ޗۘ!@{1Jl{`th&-/3E$T{GcDEBΗno) +J0Ck?^Gl` ݑqqNhc2~ejYr^XJbdRa%-yt]ᄃ3eH8GTx]L^Qpm;]s!cVUOlڤ=;U-c!dcFeS3z_`%cs2st`ے 6*Ĕ/#$[hxWe* Ԣ;1(ԠǵkV1O< Bp퀌+.Koq,AmsfmȘjv&dO}5fW*|0;^__}~מ/B䣏N@0&l!U$Yaâjrotbiƍxh+'⣮oJ>XN#Fr[xJ|]0:ƕYO)RiW}*:! 6e ,^)!>v;>xli #pP5,gWNEdE-X3 Jշ5.kc(L. 3ehZvݦ# ]Gn^q0qim&ZL$ <3s8Q)rros4sio4 cbO9v} L ,3=G¿L5WɛDWMð*v٭GX/Yw DZEt"1)ICI!8_9i,{@F?-Q OI)v'gp#Xd4|P@JPlHՒ EBExQdi@@ȘMpF,LIR4ͨ|Vӡ1mHvcC\:+^͗(#Ŵܱ ~yV>;+,12 2 endstream endobj 221 0 obj << /Length1 1614 /Length2 18861 /Length3 0 /Length 19694 /Filter /FlateDecode >> stream xڬeTdK%[.CPCݸ4и[yf_͏ZdD3Y(IEA@I+#+ /@CUK$( 35s"PR9M\A&@^ 4Xyxx(b G/gkK+W_ Zzz0Oߙ.֖@;=/D5 jXXbJ:2R)E lbPv36[\ 3?3?0q\f=̀@g{kkfvnkK7/27t2q'_7d7dOIX;\2̭]L l/ 7kbpZ8]\;U'٠'kW+ߜfs[Z; 0Td,@V9ohY3I@ fEߔ;߉@'?]eZN$1y?lbom ZBq5˿b0Ehljf0ۥ@g;k_5m$ԭli;_%ά-$'K)UU/QAy|Y9,7_><~X3)kd`$@5Wq9;UЁ@O2Ȍ/&#;ӵK^/+p%E5J0iޏ63Y^;4e!9m_&UW`fșZ1>WP\,*eo0DpWOEX(f ؝h`ugT'Oԃc#C=7}y|&_SHS\}@qL,W$$➤RU =?? 0"<)'G1={Bc*Xy͸"(-T/7;>W _|2 񑥸n"SHHKKg<5 )(aGbO^J(rsz*x@Ox茂<,gr pEk[8POA+Rvvg<mЮѨw:׊qِ Pf)XMF:ǎ0jYrf8+p;W(Շ 8jQ@qj-7]4A%D5to6Nwbڠ sf5[9nd Æ9"^8+GIUW9 @Od2o1x.JbgX6ב\ E9Lw`Va&:Z,0pDYcap{Ro#$jZͶ]efS[,P?" md1~ڎY/? /\ EMC#x׬j"y8T*\ g3WOU4..7f>Ǭ-U@W)lsxTNg) VL8]Ȳ@3о_XuYA|`CR{HČ_ vyV\5 [6^}ƅJ;uiTR *G ?9|Rtx>]bb|~9$|C)x}+yM.9"I0ҳ^_z]Ml>x-TX'uw:i.+qRɹw0fy'1NHI?T$+YJ | b֡'Y|ZO5 ǺmEɭ?EojGhoҞ ~}a*̆Ww$N73'P P3ƴ8! Z3ZKGm_~atH}rIs%[]*|q@En>@Z f'Ap:|2(fO'Mlbhz A1V!}qgR(=nhq"&kM0s2dj}ym)Iݘu,`Aю\eNBQu- ^<~ ׀^2j^lL'9\x(ֱ9@0w8o Q;,N?f#*A9T;Z >$#P$@:?40EOyLN ]Q /%+h)).XHsOŝY?a a .*q( 0#95Xu]֊W%yE.5kӒQtkOY,j1;n;:wE@5ִ%lnH!IsF8=zL!L-n~Ky K qhڈEHD@Z,\$CНjx>oBPϮlݥiGF2}ڧAhsW&~9[8P16an:"ɪ}JH 43Bƾ`hZL5R`` .aH L6}y%ڃ+Q.1yng}ļ0αq{vEfLOl^&^lV/$6Lu_5QbO56<6`6mvCp>`HCRkcA[#slǮJҨ? :)ATp>,א0GKʋ66-?"{/a>i}fŋ4ϑi/XREcWWSh@ J,Hed!-x"a.lQ])eb!8qU3?HiGZ;pi aT "*8ɯtqK /s"5TiL(JfhS-+?]weDz䐿L,=w?f ["--(~ܻ\3lrgE'y0].7LaΘ; JO/ DW3U6앿|H-lu[׉5ܤ|%ć- * W2H;}J n1"bhlÄR!a)^*b]RYt@7y,FD |9Asתʒ3bw%G5mk!ahd_@ς):WYfo~flٗ,fHJ5H7?;2E`_#Zc;H'kE&߬m ijhMQLiW܂2k0ڳW(!-| ?NMbmnE51U5 Z/*ٙxnPUfk<< ~$kJSURcY%P UKGطƞ%E<ЏK5]ǔDzFɼRuF[Z i~{u#nڜ,BEF\Wr`2]Aw}Y߽4Ni1ȓ#͔Uc/ mK}nhuYV&AHL7v6&Ws ;&Q)%NU> Os^]੮oƨ3} 1ͺمST&d%x4x쳣^n]ې /$X}B^Q.r^z׫$HD-Ot)52gixL8ߍΨTn 4#nY#yTUU4Bў%t B/Nu=HւK+,٩/h`Mh °{ko$jc5 u3G@| $fui]-q|SU퓭P1XgL/'6N+Ա̴*g[n we(-Ajd+] k~.>"w~%y\Y .16?h fx?9r.s4$k usr9MϣKR 5@Dԃ\-D}uޙZ#^܍`~%aAU7^ƑgkDA^GY>6fwC@$zn1;w)%mPYň캉 MG MD` }B_cMO?१ &] &'VE,&!MGzZgO)X5[B:rܳR}ѧbƄȀbNZwm@:X <>=Nm:)PC/dF`h]6> ikfu<3`lBϷ3mٻ(>nF7/8-u_O]/Hi(S\PE1e2$N4'GUΫ>g=Qc;圐ޫk uNg9E*oXMVfsՕy_j&s` i=$/8ہ)ж\(@y#O V$cbZ%XqiY%Cݰ[Fz᷹̪.%VNC0NZ OThg}%齐/91JSt߃y7>8pW\e+ G>Joiǖ4r貒UkaҎ|¿ 9mTzh$(%~yp )e#R]%fHq^y&_.HU"S`d͂j1V5 c֛Q)6hq{ۨKKE_dA7pm{٭g?ek}*ܜouӃ2v1d! QH=̓.|XTtӚYrLid?!+~1li@% kn+@&y>V"ݾɸ1̱̱2 }\Y:'w^ bw{+ڠ.&@$'eˈhҞY<"%mY]㒹oO۹&Riu, v禜yFݾ{cֺTމyC_erW٣Dc~l M=T5y"a C*xk1kX,85^˶6j:&L->e 5iWXq61!d/Qfo6'p5WDy]X42rc^ܣm8ix3qDumSf8_lTh97D_BYN۪(IfP0pk8 oQ3* o*;ENa4q+`7lprc\j?_l}Dkv+pZzH#"3x +ts&ԧIU}oa\*O>)hd?ژp-mm0[gmc4G C *@j##(um:0c $npP87'Ezޙv.3ޟUy$q},(b(6FS9Yn"j9;*4TVPRhMl$G,$nYs#iܕW3e!\]s)]٣_!r[B19ֆ6zT"ȹg \ﰩorr9׾pϞ avoEHUk\){U)') ߮(, E8*l7܃(Jv^7Ā{aՅQ_S? ԛ!VAW7Ҧ$֠>&s(9o!^Օ3p.ZN"}Ufdw WdWN4f x2`iۢ&!ԇRuz}'L{ ^rY!74SF=L~d\ yN.`C.kMN+χuFy R0$7@U5$+jf#g"dcn~-fbX?X:MBD.њ;|sabP8JH 8H ȩK=RZcf{S#l =37u5NnEQ)󨇫B)v߲:joEW4`q*1d հ/2gn Z)BJCieJEssU$VJlSv>Bj&cBIFt|g^3!v10} 3XrlD"]&}w8"{!l{R" q"*͚t<"gf"-3a=b(%Ȗ" N 68`Z08A[_)@Ȏ(O-O,IgLv:9VU Q|R}YݲOG0޼eǜWQȢ<׆e?T&ŌWqZ loR|fм}ΏʟA{ld(~+54AvƸVT0hi>̨oQʹ$3~@%T$0˴G؝nQqb#Qwvw\!ue +'N00 ug4J= \xa> ݼ*o$yҼb+;j$ 7g w-^lA!7-L<4Eŀdz`ߧdhe! EOhM \䳕a%ɼGv_o¦{_N.+ܵkʓ=X-~o+`~;~AЖ$^zCZhR;|at!ӮѱL/3} #?A9.U &= m7$ғ);ڐ!~mO t82G;d=NNPq߽) d|qsWR h\{hāC.秚z;Hg$)ꍒPűѕ (#}"GkV.pI&@X~P OXqBi;l׺5.an1'`-DBLt DPI CA䝓rRC8_} R7ȜRTMXk Yr(1<ūUx?X=-|OY 'RD\6\(aoYÎū!A>&+I_&㽄cU,ݞ^ E0٠bw8ҥFPR4{UnǼz%r!^㴳&q)P٬TurԨJ߼ ˂}fTbn4w[C66(uR?NrJ6uƅ2ٔ7`q/pvJ@^B):D9%5=L0C,wWrMr2',ƺvt2wmn"C vF4ۚ?czOcDN\*]$㏼mfE 0ehFv>IOL<-UkJW'y Έ.T$^p_{|r>{ §cOqfT=ﳝc4X}gI{S6bc ݤt/&usI A"&`NinDA:Uyce>?2Afu#uXb'i g E݆g+ރ=t zA䪅 ľZ}O(i2 I>|+O(ܷyH%qgL~〯aytmuPg,N,_D#?a4uix~΁xe2 "ηE/dMrdcv [hf#;%kafޟ⼟rƨB]٧ݶA=J~q[mNتGOoutN}ڍ権XW"S[L#br?~5$)`8*%V:/ڷQn&ZB!a=һ ׸.i0dI, /l۵DADm{_ڞ/axKѪUŽ? X :3#|.?յ5!i_v ~7SG ܹgC8|$wnhJ5?/s}3j9`m΅D;~ճ@xv 1YD"+8GLm۞6*_oBU8IڤdD|&1gAhbQgo]SJB8OY ;kd,MnoYS:6v^?XӅ+*ThNŨDfL%#΍mJkxqrHݻ>rk'OOh:t,\~hU}(x Cv 2[nQ{g}Hc}蛻ϻ*g!:8u+v(s aξF/\ȀjSd 3MgP GiBAr@!z y"WJ1xS&r6P;Xܜ;9i gTa^3B8J^ N. n7zw}&?B_s#Ѱ3K0ht'Kf}G$y3?YҟWtE,{_0f rvsoX8d =l% ˵c2Mm!qˊd !ƹ.q?k6h}Cf{hXs􍇷v"Ah$}f3?FO϶p-9\6,_S"^ |LMw? vW?.b8z,9"w&@$>a4r?pFy~\䔈#ZNkdsKOe^R8`*(T0\~8Mn,ltO5?8MiiqߌsloISE09\T7E)HŅ] f $.r,jA9$%Σ[y|YӃ1C*9z?SG[d 9]3*BӋO? ed$ujۭ:`Vs\(9#Ds3sCs >W dLvcyi^ژYxm ">XYOA=IҒ0`5k.Y3,>N_\-~zb~[ضOua[ Gsn:]`(yҔKbkc#K O CcuUFV8N-{_G(ˣ¼g\!HHS>IPd?O uxzy,|ۑrd(s .67[NiѡF0/Cy@e )IY$9m0!o 2e~D,;x#w;$6@jQ$Y^ 42I,$oif 8Ue}ex[Ba 1((`tַP\W~Aa<_Di ZT$3ςkFHƜܝur?KQ^ G*Sbh"Tr߲x uXYr]cdkTnQu4es=AGV[j$+025@-e=ePٴq:<"7"?y%tIf;rïmv qa2%gj ^ @:ׇV}Ѣ_ч*4hͭsZin@+UyMXBz.rX+"v^Ϣ .A'g4@,mkfP"6ΩT"lb"hƑ(θǛ ?džᒥf駉CL36ClAX-{Xa^X\)79 9+5:^0*TDh8BTf _Kª?\bùS*ŀwE]ޝ&G%o(Z{|1f?Z;vR( sbeT^\܎ w!c>NWjm>N[֊i/-U#G6FXE%lك澤_uzޝ]9#uܡD{+yJ͐Tε>Ȉ 5 `9> 1qRvcၒݏn=CJ4Cs qHYײStWs/GѱR.\dU]ՃZ*Dp(~a3bkEPSI*M84DUeY &1V !*^Q.ՙ|-_-0ZA2K˧c篅hX[z$c/e"Jq!N}ԚeVc w !ыa2g뺥S˗k>=/k'd`uF "46OSlWP6> ؤ]+J (3|Q@[}=B1v 9nUSYT^>>*b<[ 3ށ'JeXK9z^uCifo0Ti'`s+Ss[rjpy2F|oN@bC{sTQzOWˊȵWs߰W9_ѠF6ZS k7iI;z"Ė˷bGui^X,ҽ5B1Mh*熛&\]4?ExtG*\'nͦQ AuGݒ[0H]":h\b6ml A7b)g&HY%a1h#z*ȧ[xrtGڼ6 ~Ֆ3)h)A^9I3a"ӎ>BT&5JD$Dw@r%6?R⧫b'b4:L3-њyeg;p %߸RyK%/!e?}geTGti_:!< 1GUp@9vScBCMGm+vGkCޅ_;.5Gn;Ajw2 ol7^?r.̧eyWm}"iI,zx{N~fOs( ! wu\vPg aŀ@F,8 Cz`̞2Z%x&0[0I5P%"^>/ ܣ^`X1ߢ;N1GZķ~ r=|^!:))48.̵ςUu=2CYx#-vILXdt2{R)=ⅻt+Ơt\ >_ka=7GHnz &M[_Q]'L34 V][K_u?VML],M]^3m~XJQM䴽e'Η+ZFJ׶!!LWg'H2cqʋC=*EQ0ZdyCCqwO$ ĺHL;sF |:cR9e,ܑ*dK"{7+ISŷX6COAAߐŮOq( XYh}_; @c\:lX>FxhYlRrvao|#aI?˭s)# tzᶓ#;21­9M8w]cξ /2?؃^g (J7٩ۈoeJ'$j* ur6.VqǦ#q 40B;l}&twxHTF".FskϹ~5a΍|ncˈ7"y<hEocf-_#@rlN 5iRrm9G jEE_l[M<`7n UQ#XMZ5L"±Z.KK_.Yb)xY2؞V0z;] hÉyG )R!fchcLJdGA,dXi̶]^={!;-YHx pmCdYvTC'S8jVH )*D?3=8'fyc(D$3̶6+WE`,sANqo}4kh]٢}_rQ#89<@TZ.Wq6g JD`O^8@b$"ӒBKyPS5W؅̶9Q~jXX9*o QƂo[? ˤ'ehqfjoǼk@:!Kj[k-HS7x%#~܁t[k%RPBVKA@o]Nu4$Şs =|H}wb/lh.dp<3p{kcЩ{Eٕqˁ^Z-vϑ ᧾>3!4J>ũP&pS j3sl^2[MɻiA48gvX]%1ht շ\-rq;~ 2׍5SIv.A(ZW5@!?ϥF{/MU魇0'" <,frk$U WQ>VjF⒍|z,ENd "ܣpuWt)=y\FF@ki_>`AqLF[-Z|{oKcyaˎD:s'N!%ҽF71@$aRbCnMz b+r} /FaJc`n3d9**Z|9Q^$jW񫢍kcgɺ UKdOrCN `܁I퇷DBW( <j1 '#? endstream endobj 223 0 obj << /Length1 1630 /Length2 9917 /Length3 0 /Length 10747 /Filter /FlateDecode >> stream xڭweX۶.Nq+Z$ww(P4@`SݡZܡh" uY:wHoww_BC"n1@\X8Xj@;;"w^ TIg q  @HB=V.&&k./"@gϿ%H;C,썦 eK6wuv~_-=2G] |LwB;0*e?X\ 1|C:~\sP]g*8ԇgi'͸#nɬ:{^vQu G$6.W'7 Tn1}j۱ap|:EwsM7<8yؽ)'FHr@i|YgxG"=":C5L㢰څBS$-T`^8;r䞳U@M?f2S ٮ v1~)K2Y0[eXPPMc9w5Q#,toԚ*^v23V{j({N܆>M{5̭˚΀&p:IrǼ`O<iJ `gD7bsOg0eBoC8 RO#3׻{ZtbY%bԯQL]0?Q! `]O-%ODV{ZYJV}W|Y=vx9_l{Y|N .4t]/4-9SvN 3T߄?ҿl BsgɧsHS+ph$DoۊDPjQ&|O}؊RTo,O#TV|ys0bKW&D W}|~ Sc`!ipv\Q"xW^cU{!ÊF,fiд[Ӝղ\(`2c+]&U+2pϫkc2sz&z7Y2=])GɃDw0Ma{0Kg%`[]SCfuKZ}shZs52h=FYնLoa`WT|϶^U)5noКe{5^v!L 2zzLOX%C{.8G^͛:Bp}*ݱ3Y-0!v,QůLXzϽ J(P(ߋRt*Lĥ/hN9$̻vNy vq0b\Gy%O,RUuqݠ&-Q, /uHYޚm=W[H@9\<~鋎 *1MPk6ҵ:4Y`F%r;[TG`kbufT Џ>=(pJ,}@4 RhkCz]8+hH]ߖ=xCϨADr"5[} ]qtQR)}c7*G*6f9U1Z߮,C!#HiNK].%5 Pް%e~T9$$\Ӝۖ)V..s 4p{Nk`Ȗ*7-G0ӭ}J*oZ吒ag-i{(.)Z/XTBݡOgOxQu+R @,s);(HcNM"Jr>4y 6\c\V$,*F<a*X"^w#=^Ej`Qi٧Xb<pkBޘJ([͊nK~`j YjX:H /_Er%wMTSZ_W/݂B2mۀLN;Wmi{uZ[ŢғzPMw,%y^Uy̴&rwb`(G~-!ܐɼ}cTMg5Wr4Fc=ĂBFG` 2EO3Gײ)Zk#k(EH Wbl5UuFf24T2{qS`T~B1t5VEjK.S}K:*4˹qnWin.&ad\;Bj&[qx,3]~4]CI 6w 1YCR3סXl'D`r v"Tqѥ0u:Zk^|6_3C.7%-5KdҊIyk(d7L-CqprvC>D=\*y[fs>{ 0_Ym¢1@tz83dͲlic|Eη@d1d6eI4އc11x(!g~E4hV5YU-}L0c@x,ZkNǢYV:}u4C<=j._pD,#M&G9$ قÊ(3t5e"ŵ#`ǩD3wqmWg=%gX}dGbŘ\"Jb׭4 k:V0mza6pڍtf2,S|c%d4&\q6!vrЙDVO'_]qz |5P=|y'+$aP3B) Sc WQ(<$:*8Xl °ƨ -ͯV76q Kb1K# YT'8 -mIK qD:uWjG_J$S#G?|#&uϲV/&1% ڜ>GHv?j{JHV׭՝NZT,*˒twK&Ĥ:Ց%Cv C闯Gd#;Z ^O$ݡ|{ ]2͚K m1;!PE{߽]=w!"TK8="qYLBK F8Z(p8OeBݷN.!0w1f4E5# LݗChybb)~DN#L~X9GAq 㒴ӭ1&I*ly85-HfAŹ}/u8[u &.k^H(E'k0xхbՁ ?^.棰M :_jHȊ 35(؛UwT,h:MnAj9"; Vd_Kfƒjxuhx0Ļz;Tdb8DLFӸU'>巯ʡRG^,9w2 <'_E`:?RWU {8|OV vI}؍`=BOirlFbxvLxhjg`&x4!9DG͝*@Zo?M.+6EM-`Ý>^]e!Dӛ0t&FI@td<uM·c;C&hOso>-' SR|ҐA975v]^:23)EpX8#Nf5PRl#16z)."*PiRtUĤ)cT4E 20ZM+$3L4 гු^K\ξ28a;r<qHwĖ UUb{IHkfl<6iC9lwtmLs:BtKOSh*,T fPyS@ENt@ DGu%N ٝ@xSe̥!Zu{v0nN(6uw{6M쵽ņ-(6%_e>:)k-Ӷ%$H P]} \.q 8']dl^*Cez4Lݒ'DF31Ʃu-ͯqi)EH'QE^2s{n!C.Eo<(¿2xT3IAϚX1&D.ÒIs`B#+Z*5'g>9 K}:!" &(AP_lUYdé1"hjGD_^'1*VfczNflJAW$/QW1E}o4}[*am6@)xbo0"NJE*4_aYTxH+,3#E>(?&;Ҝ(%QS!0i e1lQĨښu*85w7 Ě4rȴ-:9#ڏFS6C0{IYiP9gI)636 R'\O!ڑ _\V!3,k̓aM) FkDv.#GZN`ԓ$XL&ݗOtcd6~.#g9q0^a,C]*ϽUiȖA?gH{9qg\^!nqG6;ج&*1SY?'ۦ7ݕf S2:Rh1&Ԓi2?iG>}G@!/۟T\R-iN* *)*?i 8zDS.UuvP#= L+fW'9 [KƚV&Sgg1fk6ȯ#3!w^O{ p@uE CEɢ e^V\O4JJnY+B}e-TU(·Xy>eZQRH+Ko#lc?ˋ*_}\<"(E;Y9_u!5;Xb4{lU3WJM,d'g0Ìv+9$坕cg9 ff>̴Orslkm½BYϳč=g)]m&1}->A%Q}lj.g `6vvkZQ>SO8թ3K6riQk%BkЭ8uw$~\{Нf|xi]L!U8Ys&@Pћ̤&k32u%of򉴶H5&OGdߝ~m ޓiqb/ #\ޙx(sL:3ݦx7wϊ*Oj@ 9>O`CknM[&& tс}ag5wb+=Ucc`$PJGޟ~Oq H5s":QoXz N6ehM-[MmQ.ڲ؂׉X 9G.|΁)fHr˭K8X^!jU#Rߘݪ߸ FjX&),<'_c0XI]vo'̄)|䁳7Z)71XFL`bjy%@jITX # /S ]e#<0*.cbƞ~6Ggݰ'X FaȻm Xy1n-DDdCHu _4JW%єHѪZfQ73mU!dkgB<Рf<|f­GxTa>(CTa-Wnv+V)LKc@XJ 2)dox<@a,ٜͤxMqi*A&Gy.cn>"ICdGWqWS ežrPU[vًOt ")Kord HTKf^^XE ;rz<-l:-I9s4pta'ȳ GW/= O xb_u>݋Yc^pjG@ęۏe?gLVnyTeT}icA#ʒ(VzKw%vѼ,`JB9&O-5M0Eˌ*<$yfh{k8i 7](+^蔬J)Whӡ+١xXjK;s[篧+|&B'I|TjkJkZ @۰i:gڋ%3-$@l II =Xcǵm ZUT:ҙez1!V=b"*c&q+do`Wtt 7Ŭ36us c04T8V`nNTl}"2<'ېvRA@wLb=1wl:ehK!ư K;- D;Kh#{Wy0W0УhHt/N7w 5-g$57uq_T;2rL|MrnEP0csؑχP xʫbt ij,Zbc/&e^% R`FWSTDR0[C̾ .~M';~Du}s^ ދ\R,*wJAҊ֋ r)=M4f^i?gg[K0;4l۳qM\әAR=L~}vQˁ?&YV21u >uə^?TލU9~dN>lX^wT xّN(c[Yμ+o[hR8;!oqb*Իxko̖5wNRYduLޠf*'P2L+ ņ}SN Ky1qcG|J@{7 -|g,foQuZb跔oo zkJqiӐ)9j<szdb=$d\ovKS"T-jY<> Ңv{lJkX*yߎwϓ5Ⱥ/T`mYbYcďTRˢPgtE̼}p}ZB_'%!a(b=}Ҝ_F ky  f̀gS?_#QT`ޥ(CM|@]m2"_V)vPxoQqjW[]3;͗ /XdVr.?wgt$rA_k!NQXtUS Ƚ)(=ϥ(#.7#3ѧ 1F#8[†8;!5sfJ8AHqgOs'eڠg4UȾ^Τ7 Oxc+QEc[sG 1Woe%"@I@ͧkC]Oq5ӑ\(3zկ|C!o7ݶeDz3ەvItR_ ,J]H"=n{d2\{0o*jR"<&c *ԅ#Xй BI<Ԁ\Eݺ9tqcn{]9M˒$bf#(mtBv,F]ļ aw=>ю6Ǹ7j7|完 ҷC%@h!=ֺ,_}v.htf={q~e#χTpKJ: efM@!Đ 1/9ׁ̩QeHq1&^d{(E{(urvk]:SPuGQ\@huc6ʼbZy/q ;X#bVfs n(rR ԫϭ7F:4t[t;-A>آ"eWIG,[abNp`vU/UhҶ+72Қ߷EJ}jprYȊs*"WQ endstream endobj 225 0 obj << /Length1 1616 /Length2 23148 /Length3 0 /Length 23988 /Filter /FlateDecode >> stream xڬcxf]&vضmssvK /W+3WK+70 _7svvwӿQoN m FEd`c<\m?3C`ie7%New"?O'9ppP6sw?"KE9|O=R?HaB dWVf0ݤV@w [>kYZ:AV&6VӴZ؃i<@_e΢&(.ߩƩ]/Q\". cb0r=rl>NCkd -_+#pgZ4@q[x3\;VVVk+Nvy9SCl-_KwjL"[g?:}Ϝph3(K7yCY+suYwԍ`g9\SxcQ>:Zd5'aa4Sy鿁< d(H0 8#Kw1uo~J~2OaѩJh܉B(á. !+]۳) qbDy[d1fHu6,ǓYR&)痥7>( $Y y#jdzKa\M}4&8_3ͳ}jC6 `ڌsT&{,^dvۚafu=(Ǣ%{.vַ}(T FqX0_)@hžsJ-άpXW$''l`I8G&ɣ`Ơ& ~›tJW܃=>tavQ$Iu͘Whr4lbt3io!T 9`BU=AXKAZG7m[ECU Cij|"';SWйsbip#zƒF蔻7ұۏډm&Xv5=z?y6s&1'qH| gG.eJ1A8<ͫP$7_;;j;!f=Cڶp({o':FW 72ՇYֶ!yk'YMLːk/?Rc0eNt]p5 bУ^]רؑ N9h/^i4#(b4Yl5wVOzIM%~8 "!zPe1kh}et0t/QʼۏeVϝK=U"0Pb֒"׼Q Y>X jɘc5iRV>E$)Gv)'GvgD7 2F^cϘ Zt60ӗ!·۞_M)L%Gbo>G«. Ib oƀh]gth2 ({֎I ب((?Heh oDz%]mL :ɫo4I^/ ?L귝'8Ch.9/:dpiKgξ+xQ@``K ^ƬNk d#J/jEǕ0t}H=ɭ:d0v469]4k! Cz2;wXvO왐gьyrׅ-=B:],3f#(wږfN [2FR7=`lxv\rPn2y:1E#U6o^"lUs|{{*"f-p 2x*?LM[lb9Q"8Mjو*NM-Nq:sG[$b:z8.oMJ}ҧ*l KCdS<\\?NfN2§Df,QFN#M|,t0|܀M\D`VZF!3fڷI?ù>DD\𨓗0ګ.YF6Xx:0?HW=9W+clto&]Ml`V%faZ$RՌg + K!`\?# >Gޔp9j&FLwXbI`FTry;Y0NuBJx+ \B@TаVEؐAy$3]s)L+y}FhU`TQ҂ETƒvל5H#@KFfх~sSB Qk^P^Y՚#8jl:?>&bĻKk7D2\Ϣt ][ "S+#dYe 8!?ܭqo] M?y HAN X/,'Z6~ LTSjFj q7k)Q*<` YZV^dĉ{5޾n5uF9pEqQ 596RNH?IhxߌtgBP:ZuJCRk,HS6osC͂ CEdH- ]"ݤk^ klV ._wZ3`Lmksؕ_~ؑErn&Asqk .׼/,`~e0=@k(8?No4-I!BtQuЂQ?U B=>e臑*yKd !Ek?ff>CW–( @>T̫pD Gd\{K0xBĴ"A(އh^fZså!) rLB߬t˺;ӶxJQtϡH&LN=TZ§~rw6OHϋkJw_hMeɱtw~r1_Cu>1`_Rzd`+-簉fEҌih|W<*H}0Rpʁ%mta6I07<hbWP#?%('DomQ$\O`Z.p}}!+oxFs1Bn{ҦbD(()5bdB9>v !N7 DžBg0)g .//6QG7@vliy>D_8o=c5Bm732{Krj+Wj^ }ޘhߺo\wa*zۄZcT k*Q%#i 1m)% }b4.:Q")geɚqʞHtCD^pӟ,MSX!?Â9#i.cZx:Å:}zÑfw>|N\b\Jc0^Wͱa #ϼA`tE7͈Be-v@q1%zyuhVIȃ)UaSD?f?cxO6fK#?.\s{u;C#ВhBR#) ! ah=RPֹ -5Y|^x25 @Gl=rn|VJ]I}6)=ߊ“#)5X]GO1R="yyGzӓ_]Uw:$ѽϨ t,rS7l@53sMZhۼ DQlCKkU!}U(wIBgɅU 5_LtI}_ \(0MgЎH F zY`~JPK!2ئa=1iCGjԫk((Ӱ/ 'EYw ~*|InbCs$F}N/&9'EpD9Wf俗WT=AUf/wI1by,diA):zxɅ$(~ EU]a8L+IуrCAU2t;{8W;fV4?2>~f*zazPZ QZP7B)Q1^ޗy:aEp*($R`? W۾ӻ 98nXݭ _'W,AR(C>H|0er wM"jSMP;u n0"=HYj$eWܺo@euH0elE}V qS@D~8!j354NA Ui[ sLyaW%; $qo|C=18#3ِ?/.7` N`6 )3|\)[ 3 `KxSz)&!P> NN"<}&`-]|]u}a.ufkn,n3o,D%\~m-{hiRԁݸD>g:DJϰkTQ)Uf< ,L b 6}Ce$F^;aњn+Pp40Y󾀾}[nN| ,AqǁcQ,&3/qbSڤl޶0YE -'xH#z~~Bh@w#iO}xئJh|W$"0WetQR娝iIըSL6wnC]OqXQRVBݎ2f;-A!μCm@zua*6IYt^ЬK4J(YKj! Uo q{KOOH.G1 ۛJ؝Fc)JS8Kk=Bρsr<7P])GE?~| 'Ŭ[HKm|i $I u*uOM%!..WZKX^=]g.ױH}E"v]rVLˇB#+IA&D*y.* V3xE›#:gVd;mhIY*,K5N 796aCwf XߦnBch5](~FaN7\ .u. l;O_g8NɈj3F9̚c.=8:^EnKʄ#ePC 3MݝN+7Yxdȭ}ݪ&ZGgC̒6mC"#BuRրI"Ң ^0YzrE?WlEP7dt갭ՃnƶK$;VZ #)wUnw 򗛇\B *MKJGIBK^;jhGn;\nߗݴA"qXW+) e,>-s@azO_T4&|!sjat1:/T+qR|8"=P 3ft[ )(dG.BvJv2z?֡Uа(r@hk(2c-f`Zk֖J-j# G6:9g'C{C9/fGi81:}1x-ug&5O{{ "qs'Y|r|({[sշ>nQ N\nbtZ{6b}bkN`VʆH0Wm^ȉqMlu~+b2*bz:g=%Se\k YY6a3oH4cgz۽ ~6ɞ˽` }DD^Q,|g0tk6D~ xv?r\4:FUa-2Y*B`nPs&b s s}*KG J?]wtq^_ LA]jR8n:Lu ˒&oܣ)l9ncWKcu3/MC3BgXRw.-T;!B%Bҕ?CUmz~5 uk?@qRH053#t:f&x ٴώ:twUm#&CfVf{iѰiDɩHϋb{lċ1DԎqgf;o5_ϋb$=>*.)T=ZFED8@URxI#*z{Kuӵlp:8藒W2VmO$e>t|Ҡ38~yD,:3:uc?$R&YzfxS~:q!ǾNR{w)u}r5Wc@:b~KTO@زXLYS=:RmIXAJ@z snː Ba s±_G/uMqLljncazS\!Pq=jbFګ:ҶZoW|?"CX *6gW N3X'ER=զ+X5p9!x8dxGE:S"Nwކ6eV C* *ZiDd&Y̙x޻|= HP4ET(.m#3`dG+{Kg̘uu346km&ʵ ȍ`>󟄘ğn3;9w(dNJZA‘(d-2`]tEIBVYOŝRp=Cs IEU?1%gµ?B|7vvH::E1Ou,E =lԧhLuU>o \XCrI,.Yl(:/OrtfZ>Ex(z, .=}u & i?F.j6poI|1 g&X-jyKJ4 ͛sX;ң4NBY !XA!gUTɌV$*¦ (dO ۅ`n̺:geCw2SS+޲-;9ao)ZVxem}2|҆1՜oU޴[v+_~m #;bf/!bS4#HiУ[L,%1%T[߾]][.0B` ®DOͻ4kͤf):bA+[VjWz2>v|␰^P$2=3"<aC`li og!Jz@xN//op*6ep#jeNDrFԇz,4۲L?d#kW/~y |TWGLq[nu>HزN觳B*жx\l녟>0쑾-2HG?#l /[# :øӹ-NSX5& ܬۤ<#W׈-ѐV z"̌V!W0|!}YGb<>@OS?@,'7f:$*==VG3&'L#&8H@Un]^("`w (?`GFY*EJk7cƶ9GL'MNu! DOV$L{Myw)NhX%(Nat뗚0ګ)\&NFLE2I.K&W#: j"ߕzLrAu_]5CO5[DΥ$ ]_.]'Y|]at[@Нs},V3E8@g@N&WۣF"2zEUsCvfC"ILsn_upyzfȺ2Z(7T |3n*$1U@Fl֘7Yg36qXÛkQ~)jRg:k ݣ^}2U1M1wR_pҷk+;W[g?yp spܳn1$ُ8Qh9ݎžscO—kcXNme|Ĥ[K [6ߐOQV25`چOt^̣ݐr9wXAt.VkkN.s~zCT-p% RͺaXUz(_f[1 !yi.BlD:xAh]~$VEnyJ1Q`'^UIlu|$IX& yJMu-g-t\*NXx^ޗͼ5nG<\aI[{ 6a9$򎌄/ۥv!}R KavUټn統IJ01 {dj kQK 뫓B!>yNUFV4AHj7o Ώ\{yho?<߼ǀtȫQPw>9F,4! (߮(b^I!j^Wsw*#ׁX9[m>}ޚl#CzɵW0M-d:GN=;I -Hz"q#%|}? OWsu$ +ﻷ/_㉌ߟ GG55opLo\ۙ9QO?ڃJkH=54%;CʿI,dR =ɲlӓN5x9ϓG@YD1v{Gj\ܽY7+pe!ap&=ɌLkwTc,[9%պR"gNp Μ%T2St}bgAަ*f v+7vgm".npf޾WX^J3m"C7F)V3Z4ptF&$LFN.TGC}P[[AA|wr_:r&xgo{6DύNUCu!O^/ax)KvP8zjSarb$⢵5?|' ^hcCu[T V9G]Li6$L h]yP@ ()աl~QNĮ`SX6roV-1 UKe),AVfF-Kbz&y&4u<0YqY6.w`z#Si_ک&P0+ _r g d:ޤ;R!/h偃~=(m# ^Y8;"q"ߴVg:-Pz jϲL, e< $ao;Yj](n1Rm <+\}ui)%▪4 juM~Ԙ'"  }Ƕ)ՎeK: B!MoKw|XgPDj8`,)ӫ+""֣ܹC zpA_#Ye,$yE;f$ @; ̡0_Dz{U}Vey; IS$DžqkŪiI5y(=,+鎩#@b!S"鐦*SCPAMlg up (]FW.EtbG3ؾA)?K5 9ڄ^[ZĪ8 M~q<[҆DR9m2ԟ%.3IɼoOq [v}ǎ6wm\윞2`xfTE ksX[rrN֏;f"qn@X;.f}HiN\ft*U|Uu+he4rZFkTyOi{ ET8 'ܬ%jC%RUVDXV\Fr~.4qpzȖ>} L>(WlǑʟ<_j7qǽcۢ1. E09K!ȢU}$pҥN扃1f1ݼ೾8UqڔzD5"͚/A{oKô344|N*6Lg:-&1,|iB}|/@d- R Ekg/+ͺϟIXp׭- /ZKF׉Ĵi-Q(f:K'u槪5˿S׎=jvE)A*HXJ$Y(A1|oY KQ|`Z2.hE]YZ'c FD>cEv|9_%E9αZէ2N"9m6(m<,#VV9)m} n[i9LY,8Ay~)XЈzX%.x,G&='x4Һ_iBfy[#urڈ k} ~k[tJ)" xRɂtpL~i+hjQpۦI U+ `+e,B]IޯPhKH`Z`Hr1 z{fnʑkcWe 4;r:œ̫}D}IР%/|؆"W2RDcYEB7+rQ^5!OWTOgDgIۡ_ ҵ#b ?î{ L 9k]il=$tlj{0ҩO`w$D3S^-P%Vv5Ţl/025,"kt X3;3gjq9Gr]Kb!QNzlHSA{XzǜTxBy&o49vYz50 ms%@E䍅 ,Jv[>iYa)xS䗿I8Bt?zbr ٿiL20EzI)Bn#tEJ[ɻST?(}į)'>RD s9ď%JIE  | $ 4Z+5qFQDJ5Uw~c' Ƶ vYH$fNpH/ 2\4l\_j*_ 눿LuϜJ?nl_硳+݈}lm}/ʯXNcz+RZ[` r#[->DCSnߗ 0 5s!ZiUǶ]]5Lg-Pq7+kP)[( @'cf_$ΰ R2g3Ej/s2v]guhƗsΖy1i9W.<\&6c{g dCR-iݎ d50rC%~5شd!i$&^'Kx3)PSlUG- /~Q* "__m^#pa}s7fDžzC'} 1n:']ve6eܿϏVs0Q_&vDk! QKIN֖~7Pۇ$MM,;JVk:X $QC r;Vzb=90(_וs8Oz$=u'M'7 3dІo`B DN ɥTR$rnwQl>| Ėa,HI a}йʾ ;q̎o .d%AAgسbON|z]j$9`? !hS9/v_܇R9FĞVU5"ɩ~V.fs(Kf\OkBF{V0J^[%!u= q7#nyKR.857ap>%Dx{F]U gxaGkk% 3im?wўdPUBs0A5T"A;fGVuht GHn0a[l7ЧR!b,Ch<j[plZD(^ujZo#m{.[ -rkm6Ǐ2XA@8+ht4pZOW0pIP!C H~뀙{ԀbIsҴ|5}ִ AF[!8QmoVV0XVY?u?ŵ]n?dﻘ:n *w],A>DNgrHxY/w1++T 8R: ( zX^6 ͷ<&qHrVحY*N"G[x}'^8ʋHБzoX` A=ؙiYH ݸٲs~];`E܌?IX- A"amRk=Q;G_Yy#σs}oQ  פ+)xpuɴ&-:m_!5T[E~J;Ҥ_u\~WuwGrL ĄbL#®T _# lHR7<4lQ/WP:]¸6b}Z)LW&zN̢9vZ@HiK},j%]{D5r ֆQm.V{VR͆><ʝ@,#lZfl z}-9"jhFo9)H[:"ʴu\ub<)ݝAuf2Xɸ;Gx[fy+g % CN-ҟ1Ȟ&SM;&q\ ,(2sO_}C:mH]nT{fDqxAOc+U^= Cۉ>Hd'J>w~c=H8"Ce1"F_~[}Q=rF_R&}f]TiQSG:Y*aܧyyVaF-ݺ#(1.Opy!rBu\+~L{Tg#zEA[Qڮġt7/gPh`GfL>l!q?C @ha6 JffM.<@ EE*Ef ?A1[5bW#`_/$5IVsjHR^(vFk:mߓrzV}43Y#>!oz8 N߅y_ܟuTQC ,lxAc*5tL !x[l:`nN͗zYb|z}}#COY Ǹ C;b2^¨ n :r[C[NMya#Jyߔi2}\Ԃ6XE\QVgK酪MܭfQv?1yk)rS- nk1D J* Ѡ;'![BRjUK㿼ND?u0H,J\(іNtX )ۓ8ioG!`6*{Tj:_F$>*_k1`}`*~v`PA EɸԹ&!Rv"gV|Kr@lc(KS_ec)1Q55>UO-M `0-o<虎,eE[փD"n.,ש~f(f{>8Y<}N W-WJNA,0eI#@ZgW )CǧLV3FJW*_oM/iO8~զ\A h^~+WTn|ݢ3osœEZ{CV^ǦAss6^#]2~1:%J煙{aC*CDCs[n"o5໡*n,1}1# 4Cb\Y$vë&4in@~jǖw|OI=5c[ /BEc&$3C:ޯʡboTne{IULo!i>~cYр7 #ηt{)/|n"Qِ} wd骯6m.(Y W&S֑ۚ?J,4|74`?EƬw45Ԟ‡+2B_s#ǃtE~wx&K/RBj=wam'˦Qd&BFD:WwJPHuLfPӪ!0%Br7q/ ,~/k^P4({˯`J~ޙDǯjə)c{oHބ[~) O_(_H;;77'#뜠|FO& 6nj{t)yO$fRcJs%'Ya˪t &lL4ŵlR>g̀Q4 6ұ؛k9&KH_{2fS|&{Q~͵юc&gWF -4r`ٮEg(el~݋4,Y豚_9-yW_I"Œr9 /~YyP.2L8qbm7~k xey_8xQ]W4Sqb( 1R3bʈ#tK4١hUd]vhzzSNܠuJ ,O VN|*ylWCL -v\l q1'd kZ! ]MW-&1D(0Jk*7[ [zZTvd{i+81]G5PMYy*ͨ=5/U/HQ OɥX0U3H6b^SjȦjT>Eч6Kh j9Pz=RiOϗ2021N;3pD1cU:E"Yf+F sYz ^h\w5'!izq1;-"FWTPqfԤ9sno\8J[cOź~?Rxx]saGIȷYC'i3 dXsj{^׿%%格nu+g%tfS]X~X!N/F 1 RX1[ 'F;J᭟!Ǿq5s՞B]XHZ5-L>dS]?"ԓ?zEQikFCs TFmlզZiRl[28OQ{uɶ CuKN endstream endobj 227 0 obj << /Length1 1620 /Length2 14927 /Length3 0 /Length 15765 /Filter /FlateDecode >> stream xڭcxm.۶m۩ضmض:m|73=?{\8uU ʴ&vF@1;[gZF:. 5௚Thlag+b M"@c lghaf AIMM_\Fadaf :T@5 ,))'SmPp10XmS;G?9tÀ@L4{g .&WojzSsrv2vwͪ ": d 3ibgOKku6u8ݝeX8[z_e8YؚW4G5/__} =m/ hmJ7fpI[S;#ÿ&.as:k@ʿEZ{LprvS(X#G#s,>wh1kk9C࿂qd\2){] /hkZN:k-,܁& SC뿳^hma ed`o6s c+o俗O/*+"H߫S˿='Q3O!!;w-#;]862<!bnj.2JBP!GEYy^(`s*[+r6k&8 JM UX2^tV 2[Z+[Y,>膄0TxԽB>>]!~$R#awmR*Ѳ _c@Ojzg=dߠ ;!o.+57. ɎH y}_H*ʏ)n{~5y]Փ$ sZT,f׼Եzy&BwҮR cpc%oC=Ѵc:x"뿭h2ĥF,ͯq{Rۢ9w: 9%5ڭU. h[M3v~b5 dTv{&>W:Dj${'3wB¥F~Sq|FRۇ/):*?2~'x<\OˮVq즁J Rt_١}xӬvГgM+5KLk:&Q5y-H0d0),$|CGnY~ Ԧ/U1jih}b8Y{v GG<lU.>LgDIˈT睞ýURX(0n ݘ3vc_hN%&[-\A-Bx UrjVYBѮ|ʏљTj֋ђ3w. s`t1kN§c0V6BN9ʻ( onߌ%P;r}!l Bmg/:ipRO7dn$c&hjlz&O 4,Nm4a)0eU TۼaܢNՅoZ2 &Q/.(8zDmB55w2(Yv5̣cΜo`m1csV1]KʕLn>zHy-t6ji~Gw'F]U)e2$;:Xz)Y1;;mJ)ryZ9 Z~.tHOak}/[x1e*/mH2V]FVjJkJu#O qJzM$iu4?r=-Eȋ̽+_m16|? 1F?dʚ̜mx[5 cϝeW†p*b5"2^ms N 3)@(B5RYD0t0]QQtF1 C],>;rn uKy(d:KVV!ŷz Y^"2uo* BAT/XV?BP~ dC!+#6N-W>2fa?M d?Ja< 6}U=+Kd)XsztlםKu2X4DΦ0)>@LE^[ >GNAo|~,=gѬs!C8_ uT\Լ2JuSJDLOL-Pv)Qru)4 ^=5F( 15@EE[q)^<-)#rHx*@/" ymeC a3FZ5Tщ־Bo| ).5ʪv߄;`8P.R9S3: H%GڣDp&Y;j >jk?#ڰ3YFn;ؑ8W ۚ+0z)߆_QvAgŠ/͕N)W+"{W&qB0DHc'H,:O<'kE0eo?KS//QMY$;ZV ]BfMvF~9U|'k, oȓ5 O܈Z#}hz83~53717R'q=$Bnހc`A 7Hnblv^Fb:UߖMrLcl yQ!BJN.^E$Jż5 (a>3KRl|Τ%SF,C8N!wʗYX 4MVu9H l#mMMu+6^28BmvSʞ- 6yYdI]*ѡAva JRx-&?5 {RO䤻*4f m'яVjc p-f`Y8Y:'}4wLOHmZtfVweJ^1J+/kla 4TSP;;/[l5 _6hWZMO^)ToyKzŰ K".V4UǾU7k/H;Fvվp(lK/v,"l}QRx]F [T} wFk+DpyK s ]5ePQz6Y2Q,gSi `޽a!1#ʷFc~ev .g wG)Ai1CM]1:bv KwF]!N!(6IJ|Wo!JE  7b]u=2EvXAR7D.M@,.ƕmzy3q\Gu{Cbpֳj-(/1goxV s1I0s֦1 fC3X ̛iZ׶B-`-QIqjq4gYVt3 [&Du%鳝ږp*|:9bg^2'qcN4{J}^8saUSk[ik{4wu\-IQ4 s>ܖAxh"tzL"~s4+%gXa@ަHϬL}y+,gC5b+_2;}39-]FeԽme<KΐɲK΁uKv`m{oTb6AhV@_`(ǵ(w텼OH#͞/Q$LghfF~|rw xĠ‘.WsB8uG-&3>LӝKgçpt=uoTznb5{cB#+67xi((`aPaook :LdP }vW`bB+bMA WL}xSvz֮ԏoK0a,c|S,&tUUC8%i_H&4^0TVE22j qJ 6hJ!iXsEmǴWo9JOr.EO>OĦYxQ ӽ؞BiZMhF! XVxgTYU"^.\;ҦGװ[-l^9"I){󞃎f-ѡG9ɜ KYwKS@WQ,% W&EXRi9؁åEq̆dڟGSmk2kYZ+Dيs$- ~[7QWjhtL1Į%#f ⱒ4] _~rwp>°vXoؙ%CU!톩If lgSf|W I54T1Q4>@秽\eYs>giS&qNP >:,J0   /=9'7\ww.^E;61D^<< r|w #8AK oxd?, p 72-Lv"A%Irݎk {(~Б`0N L#Jsۏ’PB)4_};{qE69&6`8gA ׆~6v%m.NŃ#@G1$I>%-J\04ݛT}4ӎ2nGqlND`&(5 -}O#'{|I䓻mbyp/"qztٲ֙S(w*jœ`ͱWM$),PA N1kb[[aSWYE:ۤ{:UZ׽5 Vşjgց}!~?3]y=vW!kӁV 2 Nc_`mQ8G9j%U:RRe2e(W*i1H$>%&@<>1ree7S mϞKDo&&)=[& d?m=vH|[O># Wubq$*|U pAAas}]4{8oB> SSK w5t[]b<[~ U2 W3u^+~gLQ~qNgc0-~!:Q+uuLKӉ)êiMvzO|Q8q8 KEL9ŴfN+b]ͿpEGNtrj8U`Nձkŕ>g]&/R+޾gKK HIX(ZCV%IgAHWaxJrIeH`=|sT~t+Gg-t5ZmwL Olg4ՅtKwEQù>+G]Uae0[EJWGxn`p9dތ\ М J<: !VWnŵ-^ _e+l(iکKa}פUUeA<9eס ڦW-)uFIa'W5d= KVr4hRF{'| .6KE1ba'yU5 #_:5y5/M2wgl =5svS*K/?S3zڔo Uf~T Ynakx(ZxՂ^:HN$* daS$V_ =דݾNQ jLd8 r#Hj^QƕL ./Ÿإ VGK'OI8]#=_'dN| *u?Z޶oΏo`LpdR̉iѾ +o +܉ac\< 7.ӚW~i9Ϋ 'dG_JnTٺ SkLjQl 441CqAΌ ;Ico .e5/=nh+|in~,48HpRÏKc>R|;NY6LhE$m3F w`+hav94O"awaS TOty-[yOߔ!l w/s @B:eJ檰XUQ FCVNQ}peF 5xÚRzE/ޤsX((R',=ӽ*"@ K o]zCimH6#բҝ%Qo) \qswy]޷* 1QEnebYGiGly@G5 hva"ʨ/"%l2tx(5ژ3eAak#=˅ x=2E{{ Y%zTcGq7%gA^Bl*1fgKUQ1Xs(evܶG뻺Uqvt< D⡉5 IQ ]cZR*ѣr|ѤtεzF- ; 4:-`c {Lԅ,sBoFȤ%<ܽ;Ҫ")6Sq }>ع#C-z]-J'`_T6#N˟]Dy5[DKܝ HU:uעd.BH"a]6CNWԭ,0Z\^mi֑ :"ng i_/+avpdD(hCOCٓtV,]y3gރ[5wɸ-%O ޜO$NífPs U!LxsdwWnw*ZXS" ahfo rEɻQsdg9s_Ly x i+W-i)Ψj&9 YrS>يF%PSz{TᵚڛG^Qo8m"#zwqN$401 2CΘb:@:ܶpH& &Z"y^70{x? Qp"Qh!lݕSSzWٯ '?fܵj-`n1;VuYAA #IH49)!]9E[ZAQDpZR\񰐖*>͏y7GgH&P$l j *r"9/%c*BUMSOKQ1jl)2s?t nޅh禕zY*v2Pu .LpQ0 &Bw27>q-&&Xv\F4IUuC~E\J6L{{k նkS E5Bw<֑3MYlb }o3T$_g~R: \6|Cʙ R+~#s> @K3Y~]X܉n{o QrV1ى !9kKUPt4ϙ`a+n毌f=5gTxt s;'`u+@V}[)}N~k8Gk{tϧ~X NL#~u]QĥM2jtʎR`Lܰ5xdGXNl8q/ a.u~Ha}TD3農0h( q5TF3xgVޑNܺk | =h/` ZhBA T"85:|s'uQۚwklE鼀mƀs{/j,bf4&.HX1[9CNHF& d>7zp"h-y dl,ؼ&wN>kxMyI:Lru:Qm"y {bMClFsRAФ8s!LC{z^m>'lCwǦy_{z:vP()n< lT2#>괉=N@Ű+#鄙A=$;F\vz= ;a3;4Lę)3wEߣmQCM姚=7ԋ2똑&"X"B69 ukc,sE)k@7&5K<0"5y3;juhK G͍y=JXv16n- lgi>=}wc=sy .C{š`FCPk$uA.$NUk={4y󹸭ΆzǞcޟeRE8W֔$yeL𻴅|-d:Y(rsfQ$-@>CgSyηaae'f=`q& ҼEscVs~f! hSldiB:>[6y5$/iM.GAme70\ QHd n}߄67WTM=]Va[Q%Ư7pWey0UP:/} ѽ)4;Dp~zjjr'lgaDc3 l^0^嘰BLP;0juP4l)_V'#hϴo/w7gUߎ-VF(牅[7;ZJ fަ4N¯eF 19"2+wu IDn3QWw3^0IL ؀tZsǨO_k^N4.p-^QUdrT=)a=BD~OAW4n}j˃bFJq{+o=B7x\U,N^l+NYR`[NMl q\@Q7WV>Az!±nT’Pv ځ=j&:7-֓&⏈DVgl#!-xpTIJjdDҋp| 5X\'EZfr9of6oxilso$ɖ}na?y+~X Pt`ska̲|Ư5IVAV"oټ4t']gW-`T{8о`*1" KN{o",~/&{#xAB9kq=MލnbKr7b ;r%oUz;PV26[O?͠n /&—5۷`^]DQRha=St6b׻ fWJex$ 7o1&J/_}z˰}UQ>ח8`uaAHc,5 dؗj)'`ckjtQW%lylcĕNM2C6zaFmȕět16Ls3/m?T8TWVA ݶ[)뚸h-hg}5 1ǓF4sswVh(?z%#K' A|ɢX-qYoC V[=ۨ;/N*=gFaa!(I%鯿Аw8"ġwf4#ܽ F?Wr_"uNQw-YhrE}p/v.Ij3i/Omب4|ƎV$N<`'5potB7V|. 'Z~"@}*e}B!94J]3;R{\zul!=L$='bel0lE ·~8!l* $'E4=eᛌ3Ka:䎟ί!6)S$]4syů{KL,>{7gl,6CݝK5)]i-h{ +i k3q!-GWVb;;jˠ^z⌵n :jIw {HfMy F),wh! vv ii{^toI׈yAeՓJ}ZK}ިEЗ6~o?(ȇc@v0D}0b򎾃E?xh; @>]@C8+=R~hej<%pyu6z#E]iQ\EC@8 baJ d0p.5y0I#{ U*h\d˻H8&$c(2>JE^q$܂f \tRR(猈i w[8$-N \#3FWysi|x'MirFNWŻ ӖSQ>KjpS0XgP%>ǧsw;: oDo$gb; JEH|zo 5_ójt!t˓\Ä8tWW :+*7N;#j[+SxjB'#1? DrckٻJaȡ*eO@>84LEC oHI[_ƒcS@M5TqP+3-3'/8^Sp(7qTRx6/r(A%}icxci|Ʌ'olTPO߭WԴiZ-Q$9sG864*-U(>tO? yP>s%,н(RZC5+ cow˾I2υir'0j D|sտk<%u&$C'μPu/!A+p[~ǎȞ5rqBZLco>Wx#r@3hqc9·6H ǘJHOv  [.{{I޸U}K"3 2]J/fQ ;tWL?k]OմFX_nju^+m=Ya@l&{O@>FNe?Egtgāmd图L%eO#NElݠ;",)rd:>A\!xHaS >ob<̆), $< zs}uep"@Z2X\ER;Rub\eԸu{!+C6.{o>D52o"rnJx%n?ZwA֗~SիMYyCS˙ mB,풁abU[p5<#}>%WS+Jt(m-OŢ`Ya\?Y endstream endobj 165 0 obj << /Type /ObjStm /N 100 /First 868 /Length 3338 /Filter /FlateDecode >> stream xZrF}WcR){+UN,NTzDX"e.^snca RҼL{9L5&0`pL\DS2V9iS k-N1'9'a*09[9:h\ ML?I(Cm{\X8lCCyAxMxV&# %C*gP\I552PRC![5S * rмצGGkj--TU$g.,9ǔ]2(F*[D+s1@ph@R+@"́ښ3 Dtaa%90m >N"p6:X8 1M\bZ் .{!26B2R=I %H[)Xw M*3"OQ0əQtXQ(c$/IQ#!=]@˔/P(%c[5ɜ dl=yT3Ͽp3Sͤ5lz?ekdز=ƏZG@AꎊhW?H@{tr񶘳S1~R|7n/n|c[=~\&E1@,zY 7vJ`y-3[&"diY ޻LFj|'l͐[Z3+EVgڸl_"3%Pz5 ?Oi>ȥ8/O=~0i!?sT&q1@dZҌaQa{ ?<8Y vhj|@729m[tZFr`~@K5(K4*; |])@Lf#q\+Y#7 pz8Ok 0d@A[2 o-MY#ѫch0PK,фhb|rL,7b3G &׆w`25k(`KY\'VKRz r\x%Ao$a=nj*G\$F@{G9-a<`)2sVme-GfB,.c>5\K)[R[Ke\Q[N޷-=xڈE(!4x R[ ;&d7gS'%؍ZOKVGp6^ӡ|Gýu,Jzt{T6Ic.Jg`I23ac lI"mkѥ"Ѯx[_%4 QT^aAvt։Rc*WmPPB4,u'ͽYҕ蒇l+Ǐ"YX}!A^-YCD} $Ѱ氋G:CW\ֺhtT]B5;d_OADU)\e UG/`j1ۼ||I3; epv!ڬP9LCo5B~4A0TR2ՌNvtyH&IU3ƨ& KFE/#0bXSWK ǸWXy#2 W/H,4b#0C𛒰%֦Z*.:J^* ~jvͰPZ麌lppH.Y:W8К-Wk9>:˫il6t`_'I A~eU^I$)&I M M%EKdk֪ކ$ɫwA`8Jba [W+ʠ44)"Nt [`򎿏G^_8/EEF1!mdyQ⣩ϋɼ]4R-HjZmhbZ={pN ax 5.'j9 5M )5fp#t mnZ,{@_<|q K"OI,/Zj}-5.%g7j؋RFƿDϣ =DeyaBrN i1κnۻ/Oz3o&l!8%nKAlυwe6TU3R\f͋ɴ(&_p|x?1=A>QE#L:?xtr++M zIb|NbJ}GB% Ң^Q4b䎬v!A; ra.%o/[yEt|N;ʮ)ӝ #L/A=\z$}<ϊ%w+sp:TꇐY1#n.n]zW=SL> endobj 231 0 obj << /Type /ObjStm /N 18 /First 141 /Length 686 /Filter /FlateDecode >> stream xڭMk0+ dm}[BB)4ݔ==85lZ[ߑQIvJ=Ify46A e 5)p!pd 研QdI^pK.%SQ c8*P -g8ar^//>/kr~:ud~8nؘheڐ6]&f5f(~>vD-ipŒRl,ϕ=p<Q<0y8{D!#DWݣoWm|`]AƚYoSWGkN+"Eb.!<[3կMs*b[Kj14%H!N.:MȼZ" :d)Q(H ('L :OzC ] /Length 586 /Filter /FlateDecode >> stream x%RUAE{E@P.+n,,Wp/VYF>oбU<)TYfjfI{93,[#Z"'r y,ŵ2;pGufvidA#6(RxlHlǐZl-HvH=` JH^!@;$x$JHay Ft!Ux<sdEϐg\HI"X@Kk)\F'+*`]tz :g4 zfcr70Cnp7-0 8epL)NK87 s`ꁚwj]]\v+|TAc7V܊rw7ܚ w/O?ZƭwURW ''TmrIU<.pN**2M'0R4,㶸W>AׂC>ߪn6̙L0`C#nfEEndsSѸTYф;`1MQ s3=?"L37>ss[Աk endstream endobj startxref 138967 %%EOF tex-common-4.04/doc/Makefile0000644000000000000000000000450312157017604012627 0ustar DESTDIR = /usr/share/doc/tex-common TDS_VERSION = 1.1 CLEANFILES = Debian-TeX-Policy.txt Debian-TeX-Policy.html Debian-TeX-Policy.tpt TeX-on-Debian.txt TeX-on-Debian.html TeX-on-Debian.tpt all: policy-txt policy-html policy-pdf tex-on-debian-txt tex-on-debian-html tex-on-debian-pdf policy-txt: Debian-TeX-Policy.txt policy-pdf: Debian-TeX-Policy.pdf policy-html: Debian-TeX-Policy.html Debian-TeX-Policy.txt: Debian-TeX-Policy.sgml version.ent debiandoc2text Debian-TeX-Policy.sgml Debian-TeX-Policy.html: Debian-TeX-Policy.sgml version.ent -rm -r $@ debiandoc2html Debian-TeX-Policy.sgml Debian-TeX-Policy.pdf: Debian-TeX-Policy.sgml version.ent texify-tex-output debiandoc2latexpdf -s ./texify-tex-output Debian-TeX-Policy.sgml tex-on-debian-txt: TeX-on-Debian.txt tex-on-debian-html: TeX-on-Debian.html tex-on-debian-pdf: TeX-on-Debian.pdf TeX-on-Debian.txt: TeX-on-Debian.sgml debiandoc2text TeX-on-Debian.sgml TeX-on-Debian.html: TeX-on-Debian.sgml debiandoc2html TeX-on-Debian.sgml TeX-on-Debian.pdf: TeX-on-Debian.sgml texify-tex-output debiandoc2latexpdf -s ./texify-tex-output TeX-on-Debian.sgml get-tds: wget ftp://www.tug.org/tex/tds.tar.gz tar -xzf tds.tar.gz rm tds.tar.gz tds-all: cd tds-$(TDS_VERSION); make tds.pdf cd tds-$(TDS_VERSION); make tds.dvi cd tds-$(TDS_VERSION); make tds.html install: install -d $(DESTDIR) cp Debian-TeX-Policy.txt $(DESTDIR)/ cp Debian-TeX-Policy.pdf $(DESTDIR)/ cp -R Debian-TeX-Policy.html $(DESTDIR)/ cp TeX-on-Debian.txt $(DESTDIR)/ cp TeX-on-Debian.pdf $(DESTDIR)/ cp -R TeX-on-Debian.html $(DESTDIR)/ ln -s TeX-on-Debian.txt $(DESTDIR)/README.Debian.txt ln -s TeX-on-Debian.pdf $(DESTDIR)/README.Debian.pdf # replace the link with a redirect html document, so that # the links within the file actually work cp README.Debian.html $(DESTDIR)/ #ln -s TeX-on-Debian.html/index.html $(DESTDIR)/README.Debian.html cp obsolete-tex-files.txt $(DESTDIR)/ cp tds-$(TDS_VERSION)/tds.pdf $(DESTDIR)/ cp tds-$(TDS_VERSION)/tds.dvi $(DESTDIR)/ cp tds-$(TDS_VERSION)/tds.html $(DESTDIR)/ clean: tds-clean -rm -r $(CLEANFILES) tds-clean: -rm tds-$(TDS_VERSION)/tds.texi* allclean: clean -rm Debian-TeX-Policy.pdf -rm TeX-on-Debian.pdf .PHONY: all install clean allclean \ policy-txt policy-html policy-pdf \ tex-on-debian-txt tex-on-debian-html tex-on-debian-pdf tex-common-4.04/doc/README.Debian.html0000644000000000000000000000051412157017604014171 0ustar README.Debian for texlive

This page has moved; if your browser doesn't automatically redirect to its new location, click here.

tex-common-4.04/doc/tds-1.1/0000755000000000000000000000000012157017604012254 5ustar tex-common-4.04/doc/tds-1.1/tds.aux0000644000000000000000000001077712157017604013601 0ustar \relax \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}History}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}The role of the {\tds@reduced@size \uppercase {TDS}}}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Conventions}{3}} \@writefile{toc}{\contentsline {section}{\numberline {2}General}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Subdirectory searching}{3}} \newlabel{sec:Subdirectory searching}{{2.1}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Rooting the tree}{4}} \newlabel{sec:Rooting the tree}{{2.2}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Local additions}{4}} \newlabel{sec:Local additions}{{2.3}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Duplicate filenames}{5}} \newlabel{sec:Duplicate filenames}{{2.4}{5}} \@writefile{toc}{\contentsline {section}{\numberline {3}Top-level directories}{5}} \newlabel{sec:Top-level directories}{{3}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Macros}{6}} \newlabel{sec:Macros}{{3.1}{6}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Extensions}{7}} \newlabel{sec:Extensions}{{3.1.1}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Fonts}{8}} \newlabel{sec:Fonts}{{3.2}{8}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Font bitmaps}{9}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Valid font bitmaps}{10}} \newlabel{sec:Valid font bitmaps}{{3.2.2}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Non-font \textlogo {META}\discretionary {-}{}{}\textlogo {FONT}\spacefactor \@m {} files}{10}} \newlabel{sec:Non-font MF files}{{3.3}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}\textlogo {META}\discretionary {-}{}{}\textlogo {POST}\spacefactor \@m {}}{10}} \newlabel{sec:MetaPost}{{3.4}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5}B\kern -.05em{\tds@smsize IB}\kern -.08emT\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m {}}{11}} \newlabel{sec:BibTeX}{{3.5}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Scripts}{11}} \newlabel{sec:Scripts}{{3.6}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Documentation}{12}} \newlabel{sec:Documentation}{{3.7}{12}} \@writefile{toc}{\contentsline {section}{\numberline {4}Summary}{13}} \newlabel{sec:Summary}{{4}{13}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Documentation tree summary}{14}} \newlabel{sec:Documentation tree summary}{{4.1}{14}} \@writefile{toc}{\contentsline {section}{\numberline {A}Unspecified pieces}{15}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.1}Portable filenames}{15}} \newlabel{sec:Portable filenames}{{A.1}{15}} \@writefile{toc}{\contentsline {section}{\numberline {B}Implementation issues}{16}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.1}Adoption of the {\tds@reduced@size \uppercase {TDS}}}{16}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2}More on subdirectory searching}{17}} \newlabel{sec:More on subdirectory searching}{{B.2}{17}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.3}Example implementation-specific trees}{17}} \newlabel{sec:Example implementation-specific trees}{{B.3}{17}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {B.3.1}AmiWeb2c 2.0}{18}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {B.3.2}Public {\tds@reduced@size \uppercase {DECUS}} T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m {}}{18}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {B.3.3}Web2c 7}{18}} \@writefile{toc}{\contentsline {section}{\numberline {C}Is there a better way?}{19}} \@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Macro structure}{19}} \@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Font structure}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {C.2.1}Font file type location}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {C.2.2}Mode and resolution location}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {C.2.3}Modeless bitmaps}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {C.3}Documentation structure}{21}} \@writefile{toc}{\contentsline {section}{\numberline {D}Related references}{21}} \newlabel{sec:Related references}{{D}{21}} \@writefile{toc}{\contentsline {section}{\numberline {E}Contributors}{22}} tex-common-4.04/doc/tds-1.1/index.html0000777000000000000000000000000012157017604015726 2tds.htmlustar tex-common-4.04/doc/tds-1.1/ChangeLog0000644000000000000000000002251012157017604014026 0ustar 2004-06-23 Karl Berry * tds.tex: version 1.1. * tds.tex: make that june 2004. 2004-06-08 Karl Berry * tds.tex: type3, version 1.096. 2004-06-06 Karl Berry * tds.tex: 1.095 (still draft). 2004-06-04 Karl Berry * tds2texi.el [ ] doesn't make sense; changed to "\s ". * tds.tex: use \TeX{} uniformly, not \TeX\ , since that's what tds2texi.el handles. We ended up with "Inputs for, TeX". Report from: Hans Fredrik Nordhaug, 2 Jun 2004 23:01:15 +0200. * tds2texi.el (tds2texi-fixup-texinfo): fix the reference to the "Non-font Metafont" node here instead. * tds.sed: no non-font special case. * tds.tex: specify opentype and truetype under fonts. 2004-06-03 Karl Berry * tds2texi.el (tds2texi-logos-alist): Metafont instead of METAFONT. 2004-05-15 Karl Berry * tds.tex: doc/ subtree improvements from Chris Rowley, and more. 2004-05-14 Karl Berry * 1.094. * tds.tex: clarify description of enc & map, maybe. 2004-05-08 Karl Berry * tds.tex: fixes from Staszek. * tds.tex: check in. 2004-04-03 Karl Berry * Makefile (packages.zip): new target. (dist): depend on it, and include it in distribution tar file. * tds.tex: wording improvement from vojta, 1.093. 2004-03-28 Karl Berry * tdsguide.cls (\tdsSummary): \let\obeylines=\relax after we set it, so url.sty v3.0's usage of \obeylines does not cause errors. * tds.tex (etex): fix in tds example. 2004-03-27 Karl Berry * tds.tex: 1.092, move extension input files within tex. also check in from previous changes, notably new scripts/ dir. 2004-02-11 Karl Berry * tds.tex: pfm text, etc., from feb03. 2003-02-02 * tds.tex: 1.0 2003-01-18 * Version 0.9998. * tds.tex: force line breaks in references, add Downs reference. * tds2texi.el: handle \\ in references section. * Makefile (tds.texi.tmp): don't read emacs init files. 2003-01-17 * tds2texi.el: doc fixes, @tie. * tds.tex: enc/maps vs fontname clarification, removal of some history. 2003-01-12 * tds.tex: first cut at fonts/enc and fonts/map, version 0.9997. * Makefile: clean up directory for dist, and remake everything. * Makefile: use makeinfo --no-split. Mon Jul 19 16:54:37 1999 Karl Berry * tds2texi.el (tds2texi-fixup-texinfo): Don't need to do this with Emacs 20.4, at least. Sun Jul 11 12:55:53 1999 Karl Berry * tds.tex: I have a new address. Wed Apr 21 15:30:34 1999 Karl Berry * version 0.9996. * tds2texi.el: @ifnottex, not @ifinfo. * Grammar fixes (Demitrios Athens). Non-font METAFONT section title (Reinhard Kotucha). Mention Kpathsea as a sample implementation (Paul Abrahams). Allow discretion for single-file packages of all kinds (Matthew Swift). * fancyhdr.sty: get latest version. 1998-01-26 Karl Berry * tds.tex: Version 0.9995: add extension section. * tdsguide.cls (\TeXinfo): Remove unused and incorrect name. (\parsep): Decrease slightly. (\l@section): Decrease section spacing for toc slightly. (\@maketitle): Remove word `draft'. Fri Jan 23 17:14:01 1998 Karl Berry * tds.tex: checkin 0.9994. Sun Jul 20 16:29:37 1997 Karl Berry * Version 0.9994. * tds2texi.el: We can do @ss. * tds2texi.el: Texinfo @url is now @uref. Fri Feb 7 15:47:17 1997 Karl Berry * tds2texi.el: @detailmenu, other fixes, from Ulrik. * tdsguide.cls: Fix : in tdsSummary, more doc. Tue Feb 4 16:27:56 1997 Karl Berry * Version 0.9992. * tds.tex: Replace gsftopk/ps2pk/etc. with just `modeless'. Tue Nov 19 01:24:46 1996 Ulrik Vieth * tds.tex: Fix up indentation in `tdsSummary' environments for the sake of Texinfo, should be consistent everywhere now. * tds2texi.el: Fix bug when combining multiple @file tags. Added some missing functionality from tds.sed and tds.awk. * tds.sed: Handle a few translations in Elisp where possible. Only leave those that are specific to document context. * tds.awk: File made redundant. * Makefile: Eliminate unnecessary gawk translation step. Sat Nov 16 07:16:03 1996 Karl Berry * tds.tex: Version 0.991. * tds2texi.el: More logos; no extra blank lines after sections; handle \url and \email like \path. * tds.awk, tds.sed: New files. * url.sty, mflogo.sty, Ulogo.fd: Get latest versions. * tdsguide.cls: Changes for 0.9991. Tue Nov 12 17:16:54 1996 Karl Berry * tdsguide.cls: Saving version as of 0.999. Sun Nov 10 17:36:36 1996 Karl Berry * Mention texmf/ini loses. * Say that the mode/ level is not optional. * Mention the possibility of doc/. From Sebastian. * Include AmiWeb2c 2.0 summary. From: * Allow distribution of modified versions as long they don't pretend to be the TDS. * tds.tex: 0.999. Thu Nov 30 11:41:58 1995 Karl Berry * tds.tex: pnr10.tfm should be pnr10.mf. From Pierre. Wed Nov 22 11:46:51 1995 Karl Berry * tds.tex: Some periods after capital letters end sentences, and some periods after lowercase don't. From bb. Remove make uninstall text. Tue Nov 21 19:56:35 1995 Karl Berry * Version 0.999 sent to TUGboat (well, not really). Wed Nov 15 19:50:37 1995 Karl Berry * Version 0.104. Public release. * tds.tex: Add tex/generic/images to the figure. Sat Nov 11 11:47:16 1995 Karl Berry * tds.tex: Mention the possibility of multiple texmf's. Fix non-sentence. From Paul Abrahams. * Version 0.103. * Move filename constraints to an appendix; we don't require this. Fri Oct 27 14:04:09 1995 Karl Berry * Version 0.102. * Include package subdirectories under bibtex. * Version 0.101. Tue Oct 17 13:22:08 1995 Karl Berry - Mention what `texmf' stands for. - Info documents might be stored outside the tree. - Recommend PK specials, rather require them. - Try to define format and package a bit more clearly. - Explicitly unspecify when something is local. These things from Paul Abrahams. Sat Oct 14 16:07:16 1995 Karl Berry * Version 0.100. Fri Oct 13 16:23:34 1995 Karl Berry * tdsguide.cls (\textwidth): Make a little larger. Don't bother reading tdsguide.cfg just to get mflogo. - Mention that a format author doesn't have to have a directory. - Don't use makeindx as an example. Thu Oct 12 14:19:25 1995 Karl Berry - Add Christian Spieler to the author list. - Reserve tex/images for eps files etc. - Remove implication the texmf/tex/plain has no subdirectories. - More implementation-specific stuff, this time under `program'. From Alex Kok et al. - Expound on texmf/source a bit. From Alex Kok. - Tell people to go read if we're talking about mysteries - Remove all instances of the confusing word `application'. - Mention that examples are documentation, and move discussion of the alternative to an appendix. Tue Oct 10 15:45:32 1995 Karl Berry - New section on duplicate filenames. - Image files are likely to go under texmf/tex. - Printers can have multiple resolutions. From Bernard Gaulle. - Reference the level 0 DVI standard. - Define `dpi' better. From Nelson Beebe, David Kastrup. - Document the reasons for not using modeless/. From David Kastrup. - Mention the (presently impractical) possibility of \input latex2e/file.tex. From Paul Vojta. - make uninstall or an equivalent is desirable. From Alan Dunwell. - Remove `files are...' text. From Doug Waud. - /opt is another likely root. From Jeff Gealow. - Use dpiNNN, not just dpi. From Bart Childs. - Slightly improved description of MP. From Bart. - Recommend . at beginning of search paths. From DEK via Sebastian. - Include musictex as an example generic/ directory. Mon Oct 9 17:36:27 1995 Karl Berry - mft/ is no longer a special case under tex/. - Move `package distribution' to an appendix section. Fri Oct 6 17:23:15 1995 Karl Berry - Remove \protect. From Ulrik. Wed Oct 4 15:08:01 1995 Karl Berry * Version 0.99. - Don't hardwire version number in more than place. - Use TUG instead of O'Reilly for postal mail. - texmf/tex// does not suffice in general. - Incorporate `subdirectory searching syntax' section into main subdir searching section, and `Expeding the Process' into `Adoption of the TDS'. - Move bin/ out of the main text. - Reserve `local' at every level. - Top-level directories should be a chapter, and implementation-specific files need more discussion. - Make macros, fonts, etc. sections under the top-level directories chapter. tex-common-4.04/doc/tds-1.1/tds.html0000644000000000000000000027654712157017604013761 0ustar A Directory Structure for TeX Files

A Directory Structure for TeX Files


Next: , Up: (dir)

A Directory Structure for TeX Files

Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 TeX Users Group.

Permission to use, copy, and distribute this document without modification for any purpose and without fee is hereby granted, provided that this notice appears in all copies. It is provided “as is” without expressed or implied warranty.

Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the modifications are clearly marked and the document is not represented as the official one.

This document is available on any CTAN host (see Appendix Related references). Please send questions or suggestions by email to tds@tug.org. We welcome all comments. This is version 1.1.

--- The Detailed Node Listing ---

Introduction

General

Top-level directories

Macros

Fonts

Summary

Unspecified pieces

Implementation issues

Example implementation-specific trees

Is there a better way?

Font structure


Next: , Previous: Top, Up: Top

1 Introduction

TeX is a powerful, flexible typesetting system used by many people around the world. It is extremely portable and runs on virtually all operating systems. One unfortunate side effect of TeX's flexibility, however, is that there has been no single “right” way to install it. This has resulted in many sites having different installed arrangements.

The primary purpose of this document is to describe a standard TeX Directory Structure (TDS): a directory hierarchy for macros, fonts, and the other implementation-independent TeX system files. As a matter of practicality, this document also suggests ways to incorporate the rest of the TeX files into a single structure. The TDS has been designed to work on all modern systems. In particular, the Technical Working Group (TWG) believes it is usable under MacOS, MS-DOS, OS/2, Unix, VMS, and Windows NT. We hope that administrators and developers of both free and commercial TeX implementations will adopt this standard.

This document is intended both for the TeX system administrator at a site and for people preparing TeX distributions—everything from a complete runnable system to a single macro or style file. It may also help TeX users find their way around systems organized this way. It is not a tutorial: we necessarily assume knowledge of the many parts of a working TeX system. If you are unfamiliar with any of the programs or file formats we refer to, consult the references in Appendix Related references.

1.1 History

Version 1.0 of the TDS was released in February 2003.

Version 1.1 was released in June 2004, with the following non-editorial changes:

  • Inputs for TeX extensions included under tex, instead of in their own top-level directories (Section Extensions)
  • New top-level directory scripts (Section Scripts).
  • New subdirectories lig, opentype, truetype, and type3 under fonts (Section Fonts).
  • `enc', lig, and map all use syntax/package subdirectories (Section Fonts).
  • `pfm' files specified to go under type1, and inf files under afm (Section Fonts).


Next: , Previous: History, Up: Introduction

1.2 The role of the TDS

The role of the TDS is to stabilize the organization of TeX-related software packages that are installed and in use, possibly on multiple platforms simultaneously.

At first glance, it may seem that the Comprehensive TeX Archive Network (CTAN) fulfills at least part of this role, but this is not the case. The role of CTAN is to simplify archiving and distribution, not installation and use.

In fact, the roles of the TDS and CTAN are frequently in conflict, as we will see. For distribution, many different types of files must be combined into a single unit; for use, it is traditional to segregate files (even similar files) from a single package into separate, occasionally distant, directories.

1.3 Conventions

In this document, / is used to separate filename components; for example, texmf/fonts. This is the Unix convention but the ideas are in no way Unix-specific.

In this document, “TeX” generally means the TeX system, including Metafont, DVI drivers, utilities, etc., not just the TeX program itself.

The word “package” in this document has its usual meaning: a set of related files distributed, installed, and maintained as a unit. This is not a LaTeX2e package, which is a style file supplementing a document class.

We use the following typographic conventions:

  • `literal' Literal text such as filename is typeset in typewriter type.
  • `replaceable' Replaceable text such as package, identifying a class of things, is typeset in italics inside angle brackets.


Next: , Previous: Introduction, Up: Top

2 General

This section describes common properties throughout the TDS tree.


Next: , Up: General

2.1 Subdirectory searching

Older TeX installations store large numbers of related files in single directories, for example, all TFM files and/or all TeX input files.

This monolithic arrangement hinders maintenance of a TeX system: it is difficult to determine what files are used by what packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It is also a source of error if two or more packages happen to have input files with the same name.

Therefore, the TWG felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. A site may wish to install dozens of packages. Aside from anything else, listing that many directories would produce search paths many thousands of characters long, overflowing the available space on some systems.

Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some way to specify the directories to search at runtime. On systems without runtime configuration, it would require recompiling software, an intolerable burden.

As a result, the TWG concluded that a comprehensive TDS requires implementations to support some form of implicit subdirectory searching. More precisely, implementations must make it possible to specify that TeX, Metafont, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. Other forms of subdirectory searching, for example recursive-to-one-level searches, may also be provided. We encourage implementors to provide subdirectory searching at the option of the installer and user for all paths.

The TDS does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability (see Section More on subdirectory searching).

2.2 Rooting the tree

In this document, we shall designate the root TDS directory by texmf (for “TeX and Metafont”). We recommend using that name where possible, but the actual name of the directory is up to the installer. On PC networks, for example, this could map to a logical drive specification such as T:.

Similarly, the location of this directory on the system is site-dependent. It may be at the root of the file system; on Unix systems, /usr/local/share, /usr/local, /usr/local/lib, and /opt are common choices.

The name texmf was chosen for several reasons: it reflects the fact that the directory contains files pertaining to an entire TeX system (including Metafont, MetaPost, BibTeX, etc.), not just TeX itself; and it is descriptive of a generic installation rather than a particular implementation.

A site may choose to have more than one TDS hierarchy installed (for example, when installing an upgrade). This is perfectly legitimate.


Next: , Previous: Rooting the tree, Up: General

2.3 Local additions

The TDS cannot specify precisely when a package is or is not a “local addition”. Each site must determine this according to its own conventions. At the two extremes, one site might wish to consider “nonlocal” all files not acquired as part of the installed TeX distribution; another site might consider “local” only those files that were actually developed at the local site and not distributed elsewhere.

We recognize two common methods for local additions to a distributed texmf tree. Both have their place; in fact, some sites employ both simultaneously:

  1. A completely separate tree which is a TDS structure itself; for example, /usr/local/umbtex at the University of Massachusetts at Boston. This is another example of the multiple texmf hierarchies mentioned in the previous section.
  2. A directory named local at any appropriate level, for example, in the format, package, and supplier directories discussed in the following sections. The TDS reserves the directory name local for this purpose.

    We recommend using local for site-adapted configuration files, such as language.dat for the Babel package or graphics.cfg for the graphics package. Unmodified configuration files from a package should remain in the package directory. The intent is to separate locally modified or created files from distribution files, to ease installing new releases.

One common case of local additions is dynamically generated files, e.g., PK fonts by the mktexpk script (which originated in Dvips as MakeTeXPK). A site may store the generated files directly in any of:

  • their standard location in the main TDS tree (if it can be made globally writable);
  • an alternative location in the main TDS tree (for example, under texmf/fonts/tmp);
  • a second complete TDS tree (as outlined above);
  • any other convenient directory (perhaps under /var, for example /var/spool/fonts).

No one solution will be appropriate for all sites.


Previous: Local additions, Up: General

2.4 Duplicate filenames

Different files by the same name may exist in a TDS tree. The TDS generally leaves unspecified which of two files by the same name in a search path will be found, so generally the only way to reliably find a given file is for it to have a unique name. However, the TDS requires implementations to support the following exceptions:

  • Names of TeX input files must be unique within each first-level subdirectory of texmf/tex and texmf/tex/generic, but not within all of texmf/tex; i.e., different TeX formats may have files by the same name. (Section Macros discusses this further.) Thus, no single format-independent path specification, such as a recursive search beginning at texmf/tex specifying no other directories, suffices. So implementations must provide format-dependent path specifications, for example via wrapper scripts or configuration files.
  • Many font files will have the same name (e.g., cmr10.pk), as discussed in Section Valid font bitmaps. Implementations must distinguish these files by mode and resolution.

All implementations we know of already have these capabilities.

One place where duplicate names are likely to occur is not an exception:

  • Names of Metafont input files (as opposed to bitmaps) must be unique within all of texmf/fonts. In practice, this is a problem with some variants of Computer Modern which contain slightly modified files named punct.mf, romanl.mf, and so on. We believe the only feasible solution is to rename the derivative files to be unique.


Next: , Previous: General, Up: Top

3 Top-level directories

The directories under the texmf root identify the major components of a TeX system (see Section Summary for a summary). A site may omit any unneeded directories.

Although the TDS by its nature can specify precise locations only for implementation-independent files, we recognize that installers may well wish to place other files under texmf to simplify administration of the TeX tree, especially if it is maintained by someone other than the system administrator. Therefore, additional top-level directories may be present.

The top-level directories specified by the TDS are:

  • `tex' for TeX files (Section Macros).
  • `fonts' for font-related files (Section Fonts).
  • `metafont' for Metafont files which are not fonts (Section Non-font Metafont files).
  • `metapost' for MetaPost files (Section MetaPost).
  • `bibtex' for BibTeX files (Section BibTeX).
  • `scripts' for platform-independent executables (Section Scripts).
  • `doc' for user documentation (Section Documentation).
  • `source' for sources. This includes both traditional program sources (for example, Web2C sources go in texmf/source/web2c) and, e.g., LaTeX dtx sources (which go in texmf/source/latex). The TDS leaves unspecified any structure under source.

    source is intended for files which are not needed at runtime by any TeX program; it should not be included in any search path. For example, plain.tex does not belong under texmf/source, even though it is a “source file” in the sense of not being derived from another file. (It goes in texmf/tex/plain/base, as explained in Section Macros).

  • `implementation' for implementations (examples: emtex, vtex, web2c), to be used for whatever purpose deemed suitable by the implementor or TeX administrator. That is, files that cannot be shared between implementations, such as pool files (tex.pool) and memory dump files (plain.fmt) go here, in addition to implementation-wide configuration files. See Section Example implementation-specific trees for examples of real implementation trees.

    Such implementation-specific configuration files should not be located using the main TeX input search path (e.g., TEXINPUTS). This must be reserved for files actually read by a TeX engine. See Section Extensions.

  • `program' for program-specific input and configuration files for any TeX-related programs (examples: mft, dvips). In fact, the tex, metafont, metapost, and bibtex items above may all be seen as instances of this case.

3.1 Macros

TeX macro files shall be stored in separate directories, segregated by TeX format and package name (we use `format' in its traditional TeX sense to mean a usefully \dump-able package):

     texmf/tex/format/package/
  • `format' is a format name (examples: amstex, latex, plain, texinfo).

    The TDS allows distributions that can be used as either formats or packages (e.g., Texinfo, Eplain) to be stored at either level, at the option of the format author or TeX administrator. We recommend that packages used as formats at a particular site be stored at the format level: by adjusting the TeX inputs search path, it will be straightforward to use them as macro packages under another format, whereas placing them in another tree completely obscures their use as a format.

    The TDS reserves the following format names:

    • `generic', for input files that are useful across a wide range of formats (examples: null.tex, path.sty). Generally, this means any format that uses the category codes of Plain TeX and does not rely on any particular format. This is in contrast to those files which are useful only with Plain TeX (which go under texmf/tex/plain), e.g., testfont.tex and plain.tex itself.
    • `local', for local additions. See Section Local additions.

    Thus, for almost every format, it is necessary to search at least the format directory and then the generic directory (in that order). Other directories may need to be searched as well, depending on the format. When using AMS-TeX, for example, the amstex, plain, and generic directories should be searched, because AMS-TeX is compatible with Plain.

  • `package' is a TeX package name (examples: babel, texdraw).

    In the case where a format consists of only a single file and has no auxiliary packages, that file can simply be placed in the format directory, instead of format/base. For example, Texinfo may go in texmf/tex/texinfo/texinfo.tex, not texmf/tex/texinfo/base/texinfo.tex.

    The TDS reserves the following package names:

    • `base', for the base distribution of each format, including files used by INITEX when dumping format files. For example, in the standard LaTeX distribution, the ltx files created during the build process. Another example: the .ini driver files for formats used by TeX Live and other distributions.
    • `hyphen', for hyphenation patterns, including the original American English hyphen.tex. These are typically used only by INITEX. In most situations, this directory need exist only under the generic format.
    • `images', for image input files, such as Encapsulated PostScript figures. Although it is somewhat non-intuitive for these to be under a directory named tex, TeX needs to read these files to glean bounding box or other information. A mechanism for sharing image inputs between TeX and other typesetting programs (e.g., Interleaf, FrameMaker) is beyond the scope of the TDS. In most situations, this directory need exist only under the generic format.
    • `local', for local additions and configuration files. See Section Local additions.
    • `misc', for packages that consist of a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.


Up: Macros

3.1.1 Extensions

TeX has spawned many companion and successor programs (“engines”), such as PDFTeX, Omega, and others. The TDS specifies that the input files for such programs (using a TeX-like syntax) be placed within the top-level tex directory, either at the top level or within a format subdirectory, even though the original TeX program may not be able to read them. For example:

     texmf/tex/aleph
     texmf/tex/enctex

This is a change from TDS 1.0, which specified top-level extension directories for each such program. We felt the new approach is preferable, because:

  • Authors of relevant packages typically make their code detect the engine being used, and issue error messages or adapt to circumstances appropriately. Furthermore, as a package matures, it may support multiple engines. Thus, a package could conceivably be placed in any of several top-level directories, at different times. Putting all packages under the top-level tex directory provides a stable location over time.
  • Users need to be able to switch between engines, and configuring different search paths for each engine is difficult and error-prone.

Thus, in practice, having different top-level directories caused difficulties for everyone involved—users, package authors, site administrators, and system distributors.

Please contrast this approach with the implementation top-level subdirectory (Section Top-level directories), which is to be used for configuration files that (presumably) do not use TeX syntax and in any case should not be found along the main TeX input search path.

3.2 Fonts

Font files are stored in separate directories, segregated by file type, and then (in most cases) font supplier and typeface. PK and GF files need additional structure, as detailed in the next section.

     texmf/fonts/type/supplier/typeface/
     texmf/fonts/enc,lig,map/subpath/
  • `type' is the type of font file. The TDS reserves the following type names for common TeX file types:
    • `afm', for Adobe font metrics, and inf files.
    • `gf', for generic font bitmap files.
    • `opentype', for OpenType fonts.
    • `pk', for packed bitmap files.
    • `source', for font sources (Metafont files, property lists, etc.).
    • `tfm', for TeX font metric files.
    • `truetype', for TrueType fonts.
    • `type1', for PostScript Type 1 fonts (in pfa, pfb, or any other format), and pfm files.
    • `type3', for PostScript Type 3 fonts.
    • `vf', for virtual fonts.

    The TDS also reserves the names enc, lig, and map for font encoding, ligature, and mapping files, respectively. All of these directories are structured the same way, with syntax subdirectories, and then package subsubdirectories. Each of these file types is intended to be searched along its own recursively-searched path. The names of the actual files must be unique within their subtree, as usual. Examples:

              fonts/map/dvipdfm/updmap/dvipdfm.map
              fonts/map/dvips/lm/lm.map
              fonts/enc/dvips/base/8r.enc
         

    The Fontname and Dvips packages have more examples of the enc and map types. The afm2pl program uses lig files.

    pfm files are included in the type1 directory, instead of being given their own directory, for two reasons: 1) a .pfm file is always an adjunct to a given .pfb file; 2) they must be installed from the same directory for Windows programs other than TeX to use them.

    inf files are included in the afm directory, since an inf and afm file can be used to generate a pfm. (Unfortunately, Adobe Type Manager and perhaps other software requires that the pfb be in the same directory as afm and inf for installation.)

    As usual, a site may omit any of these directories that are unnecessary. gf is a particularly likely candidate for omission.

  • `supplier' is a name identifying font source (examples: adobe, ams, public). The TDS reserves the following supplier names:
    • `ams', for the American Mathematical Society's AMS-fonts collection.
    • `local', for local additions. See Section Local additions.
    • `public', for freely redistributable fonts where the supplier neither (1) requested their own directory (e.g., ams), nor (2) also made proprietary fonts (e.g., adobe). It does not contain all extant freely distributable fonts, nor are all files therein necessarily strictly public domain.
    • `tmp', for dynamically-generated fonts, as is traditional on some systems. It may be omitted if unnecessary, as usual.
  • `typeface' is the name of a typeface family (examples: cm, euler, times). The TDS reserves the following typeface names:
    • `cm' (within public), for the 75 fonts defined in Computers and Typesetting, Volume E.
    • `latex' (within public), for those fonts distributed with LaTeX in the base distribution.
    • `local', for local additions. See Section Local additions.

Some concrete examples:

     texmf/fonts/source/public/pandora/pnr10.mf
     texmf/fonts/tfm/public/cm/cmr10.tfm
     texmf/fonts/type1/adobe/utopia/putr.pfa

For complete supplier and typeface name lists, consult Filenames for TeX fonts (see Appendix Related references).


Next: , Up: Fonts

3.2.1 Font bitmaps

Font bitmap files require two characteristics in addition to the above to be uniquely identifiable: (1) the type of device (i.e., mode) for which the font was created; (2) the resolution of the bitmap.

Following common practice, the TDS segregates fonts with different device types into separate directories. See modes.mf in Appendix Related references for recommended mode names.

Some printers operate at more than one resolution (e.g., at 300dpi and 600dpi), but each such resolution will necessarily have a different mode name. Nothing further is needed, since implicit in the TeX system is the assumption of a single target resolution.

Two naming strategies are commonly used to identify the resolution of bitmap font files. On systems that allow long filenames (and in the original Metafont program itself), the resolution is included in the filename (e.g., cmr10.300pk). On systems which do not support long filenames, fonts are generally segregated into directories by resolution (e.g., dpi300/cmr10.pk).

Because the TDS cannot require long filenames, we must use the latter scheme for naming fonts. So we have two more subdirectory levels under pk and gf:

     texmf/fonts/pk/mode/supplier/typeface/dpinnn/
     texmf/fonts/gf/mode/supplier/typeface/dpinnn/
  • `mode' is a name which identifies the device type (examples: cx, ljfour, modeless). Usually, this is the name of the Metafont mode used to build the PK file. For fonts rendered as bitmaps by a program that does not distinguish between different output devices, the mode name shall be simply modeless. The mode level shall not be omitted, even if only a single mode happens to be in use.
  • `dpinnn' specifies the resolution of the font (examples: dpi300, dpi329). dpi stands for dots per inch, i.e., pixels per inch. We recognize that pixels per millimeter is used in many parts of the world, but dpi is too traditional in the TeX world to consider changing now.

    The integer nnn is to be calculated as if using Metafont arithmetic and then rounded; i.e., it is the integer Metafont uses in its output gf filename. We recognize small differences in the resolution are a common cause of frustration among users, however, and recommend implementors follow the level 0 DVI driver standard (see Appendix Related references) in bitmap font searches by allowing a fuzz of +-0.2% (with a minimum of 1) in the dpi.

Implementations may provide extensions to the basic naming scheme, such as long filenames (as in the original Metafont) and font library files (as in emTeX's .fli files), provided that the basic scheme is also supported.


Previous: Font bitmaps, Up: Fonts

3.2.2 Valid font bitmaps

The TWG recognizes that the use of short filenames has many disadvantages. The most vexing is that it results in the creation of dozens of different files with the same name. At a typical site, cmr10.pk will be the filename for Computer Modern Roman 10pt at 5–10 magnifications for 2–3 modes. (Section Duplicate filenames discusses duplicate filenames in general.)

To minimize this problem, we strongly recommend that PK files contain enough information to identify precisely how they were created: at least the mode, base resolution, and magnification used to create the font.

This information is easy to supply: a simple addition to the local modes used for building the fonts with Metafont will automatically provide the required information. If you have been using a local modes file derived from (or that is simply) modes.mf (see Appendix Related references), the required information is already in your PK files. If not, a simple addition based on the code found in modes.mf can be made to your local modes file and the PK files rebuilt.


Next: , Previous: Fonts, Up: Top-level directories

3.3 Non-font Metafont files

Most Metafont input files are font programs or parts of font programs and are thus covered by the previous section. However, a few non-font input files do exist. Such files shall be stored in:

     texmf/metafont/package/

package is the name of a Metafont package (for example, mfpic).

The TDS reserves the following package names:

  • `base', for the standard Metafont macro files as described in The Metafontbook, such as plain.mf and expr.mf.
  • `local', for local additions. See Section Local additions.
  • `misc', for Metafont packages consisting of only a single file (for example, modes.mf). An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.

3.4 MetaPost

MetaPost is a picture-drawing language developed by John Hobby, derived from Knuth's Metafont. Its primary purpose is to output Encapsulated PostScript instead of bitmaps.

MetaPost input files and the support files for MetaPost-related utilities shall be stored in:

     texmf/metapost/package/

package is the name of a MetaPost package. At the present writing none exist, but the TWG thought it prudent to leave room for contributed packages that might be written in the future.

The TDS reserves the following package names:

  • `base', for the standard MetaPost macro files, such as plain.mp, mfplain.mp, boxes.mp, and graph.mp. This includes files used by INIMP when dumping mem files containing preloaded macro definitions.
  • `local', for local additions. See Section Local additions.
  • `misc', for MetaPost packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.
  • `support', for additional input files required by MetaPost utility programs, including a font map, a character adjustment table, and a subdirectory containing low-level MetaPost programs for rendering some special characters.


Next: , Previous: MetaPost, Up: Top-level directories

3.5 BibTeX

BibTeX-related files shall be stored in:

     texmf/bibtex/bib/package/
     texmf/bibtex/bst/package/

The bib directory is for BibTeX database (.bib) files, the bst directory for style (.bst) files.

package is the name of a BibTeX package. The TDS reserves the following package names (the same names are reserved under both bib and bst):

  • `base', for the standard BibTeX databases and styles, such as xampl.bib, plain.bst.
  • `local', for local additions. See Section Local additions.
  • `misc', for BibTeX packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.


Next: , Previous: BibTeX, Up: Top-level directories

3.6 Scripts

The top-level scripts directory is for platform-independent executables, such as Perl, Python, and shell scripts, and Java class files. Subdirectories under scripts are package names. This eases creating distributions, by providing a common place for such platform-independent programs.

The intent is not for all such directories to be added to a user's command search path, which would be quite impractical. Rather, these executables are primarily for the benefit of wrapper scripts in whatever executable directory a distribution may provide (which is not specified by the TDS).

Truly auxiliary scripts which are invoked directly by other programs, rather than wrapper scripts, may also be placed here. That is, scripts also serves as a platform-independent analog of the standard Unix libexec directory.

We recommend using extensions specifying the language (such as .pl, .py, .sh) on these files, to help uniquely identify the name. Since the intent of the TDS is for programs in scripts not to be invoked directly by users, this poses no inconvenience.

For example, in the TeX Live distribution, the ConTeXt user-level program texexec can exist as a small wrapper script in each bin/platform/texexec (which is outside the texmf tree), which merely finds and calls texmf/scripts/context/perl/texexec.pl.

Examples:

     scripts/context/perl/texexec.pl
     scripts/context/ruby/examplex.rb
     scripts/thumbpdf/thumbpdf.pl

The TDS does not specify a location for platform-dependent binary executables, whether auxiliary or user-level.


Previous: Scripts, Up: Top-level directories

3.7 Documentation

Most packages come with some form of documentation: user manuals, example files, programming guides, etc. In addition, many independent files not part of any macro or other package have been created to describe various aspects of the TeX system.

The TDS specifies that these additional documentation files shall be stored in a structure that parallels to some extent the fonts and tex directories, as follows:

     texmf/doc/category/...

category identifies the general topic of documentation that resides below it; for example, a TeX format name (latex), program name (bibtex, tex), language (french, german), a file format (info, man), or other system components (web, fonts).

One possible arrangement is to organize doc by language, with all the other category types below that. This helps users find documentation in the language(s) in which they are fluent. Neither this nor any other particular arrangement is required, however.

Within each category tree for a TeX format, the directory base is reserved for base documentation distributed by the format's maintainers.

The TDS reserves the following category names:

  • `general', for standalone documents not specific to any particular program (for example, Joachim Schrod's Components of TeX).
  • `help', for meta-information, such as FAQ's, the TeX Catalogue, etc.
  • `info', for processed Texinfo documents. (Info files, like anything else, may also be stored outside the TDS, at the installer's option.)
  • `local', for local additions. See Section Local additions.

The doc directory is intended for implementation-independent and operating system-independent documentation files. Implementation-dependent files are best stored elsewhere, as provided for by the implementation and/or TeX administrator (for example, VMS help files under texmf/vms/help).

The documentation directories may contain TeX sources, DVI files, PostScript files, text files, example input files, or any other useful documentation format(s).

See Section Documentation tree summary for a summary.


Next: , Previous: Top-level directories, Up: Top

4 Summary

A skeleton of a TDS texmf directory tree. This is not to imply these are the only entries allowed. For example, local may occur at any level.

       bibtex/           BibTeX input files
         bib/            BibTeX databases
           base/         base distribution (e.g., xampl.bib)
           misc/         single-file databases
         <package>/      name of a package
         bst/            BibTeX style files
           base/         base distribution (e.g., plain.bst, acm.bst)
           misc/         single-file styles
         <package>/      name of a package
       doc/              see Section Documentation and the summary below
       fonts/            font-related files
         <type>/         file type (e.g., pk)
           <mode>/       type of output device (for pk and gf only)
             <supplier>/     name of a font supplier (e.g., public)
               <typeface>/   name of a typeface (e.g., cm)
                 dpi<nnn>/   font resolution (for pk and gf only)
       <implementation>/ TeX implementations, by name (e.g., emtex)
       local/            files created or modified at the local site
       metafont/         Metafont (non-font) input files
         base/           base distribution (e.g., plain.mf)
         misc/           single-file packages (e.g., modes.mf)
         <package>/      name of a package (e.g., mfpic)
       metapost/         MetaPost input and support files
         base/           base distribution (e.g., plain.mp)
         misc/           single-file packages
         <package>/      name of a package
         support/        support files for MetaPost-related utilities
       mft/              MFT inputs (e.g., plain.mft)
       <program>/        TeX-related programs, by name (e.g., dvips)
       source/           program source code by name (e.g., latex, web2c)
       tex/              TeX input files
         <engine>/       name of an engine (e.g., aleph); can also be lower
         <format>/       name of a format (e.g., plain)
           base/         base distribution for format (e.g., plain.tex)
           misc/         single-file packages (e.g., webmac.tex)
           local/        local additions to or local configuration files for format
           <package>/    name of a package (e.g., graphics, mfnfss)
         generic/        format-independent packages
           hyphen/       hyphenation patterns (e.g., hyphen.tex)
           images/       image input files (e.g., Encapsulated PostScript)
           misc/         single-file format-independent packages (e.g., null.tex).
           <package>/    name of a package (e.g., babel)


Up: Summary

4.1 Documentation tree summary

An example skeleton of a TDS directory tree under texmf/doc. This is not to imply these are the only entries allowed, or that this structure must be followed precisely for the entries listed.

As mentioned, the texmf/doc tree may be organized by language, so that all documentation in French, say, is in a french subdirectory. In that case, the example structure here would be in a given language directory.

       ams/
         amsfonts/       amsfonts.faq, amfndoc
         amslatex/       amslatex.faq, amsldoc
         amstex/         amsguide, joyerr
       bibtex/           BibTeX
         base/           btxdoc.tex
       fonts/
         fontname/       Filenames for TeX fonts
         oldgerm/        corkpapr
       <format>/         name of a TeX format (e.g., generic, latex)
         base/           for the base distribution
         misc/           for contributed single-file package documentation
         <package>/      for package
       general/          across programs, generalities
         errata/         errata, errata[1-8]
         texcomp/        Components of TeX
       help/             meta-information
         ctan/           info about CTAN mirror sites
         faq/            FAQs of comp.text.tex, etc.
       info/             GNU Info files, made from Texinfo sources
       latex/            example of format
         base/           ltnews*, *guide, etc.
         graphics/       grfguide
       local/            site-specific documentation
       man/              Unix man pages
       <program>/        TeX-related programs, by name (examples follow)
       metafont/         mfbook.tex, metafont-for-beginners, etc.
       metapost/         mpman, manfig, etc.
       tex/              texbook.tex, A Gentle Introduction to TeX, etc.
       web/              webman, cwebman


Next: , Previous: Summary, Up: Top

Appendix A Unspecified pieces

The TDS cannot address the following aspects of a functioning TeX system:

  1. The location of executable programs: this is too site-dependent even to recommend a location, let alone require one. A site may place executables outside the texmf tree altogether (e.g., /usr/local/bin), in a platform-dependent directory within texmf, or elsewhere.
  2. Upgrading packages when new releases are made: we could find no way of introducing version specifiers into texmf that would do more good than harm, or that would be practical for even a plurality of installations.
  3. The location of implementation-specific files (e.g., TeX .fmt files): by their nature, these must be left to the implementor or TeX maintainer. See Section Example implementation-specific trees.
  4. Precisely when a package or file should be considered “local”, and where such local files are installed. See Section Local additions for more discussion.

A.1 Portable filenames

The TDS cannot require any particular restriction on filenames in the tree, since the names of many existing TeX files conform to no standard scheme. For the benefit of people who wish to make a portable TeX distribution or installation, however, we outline here the necessary restrictions. The TDS specifications themselves are compatible with these.

ISO-9660 is the only universally acceptable file system format for CD-ROMs. A subset thereof meets the stringent limitations of all operating systems in use today. It specifies the following:

  • File and directory names, not including any directory path or extension part, may not exceed eight characters.
  • Filenames may have a single extension. Extensions may not exceed three characters. Directory names may not have an extension.
  • Names and extensions may consist of only the characters AZ, 09, and underscore. Lowercase letters are excluded.
  • A period separates the filename from the extension and is always present, even if the name or extension is missing (e.g., FILENAME. or .EXT).
  • A version number, ranging from 1–32767, is appended to the file extension, separated by a semicolon (e.g., FILENAME.EXT;1).
  • Only eight directory levels are allowed, including the top-level (mounted) directory (see Section Rooting the tree). Thus, the deepest valid ISO-9660 path is:
              texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1
              1     2  3  4  5  6  7  8
         

    The deepest TDS path needs only seven levels:

              texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk
              1     2     3  4  5      6  7
         

Some systems display a modified format of ISO-9660 names, mapping alphabetic characters to lowercase, removing version numbers and trailing periods, etc.

Before the December 1996 release, LaTeX used mixed-case names for font descriptor files. Fortunately, it never relied on case alone to distinguish among the files. Nowadays, it uses only monocase names.


Next: , Previous: Unspecified pieces, Up: Top

Appendix B Implementation issues

We believe that the TDS can bring a great deal of order to the current anarchic state of many TeX installations. In addition, by providing a common frame of reference, it will ease the burden of documenting administrative tasks. Finally, it is a necessary part of any reasonable system of true “drop-in” distribution packages for TeX.

B.1 Adoption of the TDS

[This section is retained for historical purposes; the TDS is now quite firmly entrenched in most TeX distributions.]

We recognize that adoption of the TDS will not be immediate or universal. Most TeX administrators will not be inclined to make the final switch until:

  • Clear and demonstrable benefits can be shown for the TDS.
  • TDS-compliant versions of all key programs are available in ported, well-tested forms.
  • A “settling” period has taken place, to flush out problems. The public release of the first draft of this document was the first step in this process.

Consequently, most of the first trials of the TDS will be made by members of the TDS committee and/or developers of TeX-related software. This has already taken place during the course of our deliberations (see Appendix Related references for a sample tree available electronically). They will certainly result in the production of a substantial number of TDS-compliant packages. Indeed, the teTeX and TeX Live distributions are TDS-compliant and in use now at many sites.

Once installable forms of key TDS-compliant packages are more widespread, some TeX administrators will set up TDS-compliant trees, possibly in parallel to existing production directories. This testing will likely flush out problems that were not obvious in the confined settings of the developers' sites; for example, it should help to resolve system and package dependencies, package interdependencies, and other details not addressed by this TDS version.

After most of the dust has settled, hopefully even conservative TeX administrators will begin to adopt the TDS. Eventually, most TeX sites will have adopted the common structure, and most packages will be readily available in TDS-compliant form.

We believe that this process will occur relatively quickly. The TDS committee spans a wide range of interests in the TeX community. Consequently, we believe that most of the key issues involved in defining a workable TDS definition have been covered, often in detail. TeX developers have been consulted about implementation issues, and have been trying out the TDS arrangement. Thus, we hope for few surprises as implementations mature.

Finally, there are several (current or prospective) publishers of TeX CD-ROMs. These publishers are highly motivated to work out details of TDS implementation, and their products will provide inexpensive and convenient ways for experimentally-minded TeX administrators to experiment with the TDS.

B.2 More on subdirectory searching

Recursive subdirectory searching is the ability to specify a search not only of a specified directory d, but recursively of all directories below d.

Since the TDS specifies precise locations for most files, with no extra levels of subdirectories allowed, true recursive searching is not actually required for a TDS-compliant implementation. We do, however, strongly recommend recursive searching as the most user-friendly and natural approach to the problem, rather than convoluted methods to specify paths without recursion.

This feature is already supported by many implementations of TeX and companion utilities, for example DECUS TeX for VMS, Dvips(k), emTeX (and its drivers), PubliC TeX, Web2C, Xdvi(k), and Y&YTeX. The Kpathsea library is a reusable implementation of subdirectory searching for TeX, used in a number of the above programs.

Even if your TeX implementation does not directly support subdirectory searching, you may find it useful to adopt the structure if you do not use many fonts or packages. For instance, if you only use Computer Modern and AMS fonts, it would be feasible to store them in the TDS layout and list the directories individually in configuration files or environment variables.

The TWG recognizes that subdirectory searching places an extra burden on the system and may be the source of performance bottlenecks, particularly on slower machines. Nevertheless, we feel that subdirectory searching is imperative for a well-organized TDS, for the reasons stated in Section Subdirectory searching. Implementors are encouraged to provide enhancements to the basic principle of subdirectory searching to avoid performance problems, e.g., the use of a filename cache (this can be as simple as a recursive directory listing) that is consulted before disk searching begins. If a match is found in the database, subdirectory searching is not required, and performance is thus independent of the number of subdirectories present on the system.

Different implementations specify subdirectory searching differently. In the interest of typographic clarity, the examples here do not use the replaceable font.

  • Dvips: via a separate TEXFONTS_SUBDIR environment variable.
  • emTeX: t:\subdir!!; t:\subdir! for a single level of searching.
  • Kpathsea: texmf/subdir//
  • VMS: texmf:[subdir...]
  • Xdvi (patchlevel 20): texmf/subdir/**; texmf/subdir/* for a single level of searching. Version 20.50 and above support the // notation.
  • Y&Y TeX: t:/subdir// or t:\subdir\\.

B.3 Example implementation-specific trees

The TDS cannot specify a precise location for implementation-specific files, such as texmf/ini, because a site may have multiple TeX implementations.

Nevertheless, for informative purposes, we provide here the default locations for some implementations. Please contact us with additions or corrections. These paths are not definitive, may not match anything at your site, and may change without warning.

We recommend all implementations have default search paths that start with the current directory (e.g., .). Allowing users to include the parent directory (e.g., ..) is also helpful.

B.3.1 AmiWeb2c 2.0

(Email scherer@physik.rwth-aachen.de to contact the maintainer of this implementation.)

AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible extent, so only the very few differences are described in this section. Detailed information about the basic concepts is given in the section for Web2c 7 below.

Thanks to the SELFAUTO mechanism of Kpathsea 3.0 no specific location for the installation of AmiWeb2c is required as long as the general structure of the distribution is preserved.

In addition to Kpathsea's // notation recursive path search may also be started by DEVICE:/, e.g., TeXMF:/ will scan this specific device completely.

Binaries coming with the AmiWeb2c distribution are installed in the directory bin/amiweb2c/ outside the common TDS tree share/texmf/. In addition to the set of AmiWeb2c binaries you will find two subdirectories local/ and pastex/ with auxiliary programs.

A stripped version of the PasTeX system (used by kind permission of Georg Heßmann) is coming with AmiWeb2c, pre-installed in its own share/texmf/amiweb2c/pastex/ directory. If you want to use PasTeX you have to assign the name TeX: to this place.

Documentation files in AmigaGuide format should be stored at doc/guide/ similar to doc/info/.

B.3.2 Public DECUS TeX

If another VMS implementation besides Public DECUS TeX appears, the top level implementation directory name will be modified to something more specific (e.g., vms_decus).

       texmf/
         vms/            VMS implementation specific files
           exe/          end-user commands
             common/     command procedures, command definition files, etc.
             axp/        binary executables for Alpha AXP
             vax/        binary executables for VAX
           formats/      pool files, formats, bases
           help/         VMS help library, and miscellaneous help sources
           mgr/          command procedures, programs, docs, etc., for system management

B.3.3 Web2c 7

All implementation-dependent TeX system files (.pool, .fmt, .base, .mem) are stored by default directly in texmf/web2c. The configuration file texmf.cnf and various subsidiary MakeTeX... scripts used as subroutines are also stored there.

Non-TeX specific files are stored following the GNU coding standards. Given a root directory prefix (/usr/local by default), we have default locations as follows:

       <prefix>/         installation root (/usr/local by default)
         bin/            executables
         man/            man pages
         info/           info files
         lib/            libraries (libkpathsea.*)
         share/          architecture-independent files
           texmf/        TDS root
             web2c/      implementation-dependent files (.pool, .fmt, texmf.cnf, etc.)

See http://www.gnu.org/prep/standards_toc.html for the rationale behind and descriptions of this arrangement. A site may of course override these defaults; for example, it may put everything under a single directory such as /usr/local/texmf.


Next: , Previous: Implementation issues, Up: Top

Appendix C Is there a better way?

Defining the TDS required many compromises. Both the overall structure and the details of the individual directories were arrived at by finding common ground among many opinions. The driving forces were feasibility (in terms of what could technically be done and what could reasonably be expected from developers) and regularity (files grouped together in an arrangement that “made sense”).

Some interesting ideas could not be applied due to implementations lacking the necessary support:

  • Path searching control at the TeX level. If documents could restrict subdirectory searching to a subdirectory via some portable syntax in file names, restrictions on uniqueness of filenames could be relaxed considerably (with the cooperation of the formats), and the TeX search path would not need to depend on the format.
  • Multiple logical texmf trees. For example, a site might have one (read-only) location for stable files, and a different (writable) location for dynamically-created fonts or other files. It would be reasonable for two such trees to be logically merged when searching. See Michael Downes' article in the references for how this can work in practice with Web2C.

C.1 Macro structure

The TWG settled on the format/package arrangement after long discussion about how best to arrange the files.

The primary alternative to this arrangement was a scheme which reversed the order of these directories: package/format. This reversed arrangement has a strong appeal: it keeps all of the files related to a particular package in a single place. The arrangement actually adopted tends to spread files out into two or three places (macros, documentation, and fonts, for example, are spread into different sections of the tree right at the top level).

Nevertheless, the format/package structure won for a couple of reasons:

  • It is closer to current practice; in fact, several members of the TWG have already implemented the TDS hierarchy. The alternative is not in use at any known site, and the TWG felt it wrong to mandate something with which there is no practical experience.
  • The alternative arrangement increases the number of top-level directories, so the files that must be found using subdirectory searching are spread out in a wide, shallow tree. This could have a profound impact on the efficiency of subdirectory searching.

C.2 Font structure

The TWG struggled more with the font directory structure than anything else. This is not surprising; the need to use the proliferation of PostScript fonts with TeX is what made the previous arrangement with all files in a single directory untenable, and therefore what initiated the TDS effort.

C.2.1 Font file type location

We considered the supplier-first arrangement in use at many sites:

     texmf/fonts/supplier/typeface/type/

This improves the maintainability of the font tree, since all files comprising a given typeface are in one place, but unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find a TFM file, the simplest implementation would require TeX to search through all the directories that contain PK files in all modes and at all resolutions.

In the end, a poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this arrangement was abandoned. The TDS arrangement allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do without abandoning subdirectory searching entirely.

We also considered segregating all font-related files strictly by file type, so that Metafont sources would be in a directory texmf/fonts/mf, property list files in texmf/fonts/pl, the various forms of Type 1 fonts separated, and so on. Although more blindly consistent, we felt that the drawback of more complicated path constructions outweighed this. The TDS merges file types (mf and pl under source, pfa and pfb and gsf under type1) where we felt this was beneficial.

C.2.2 Mode and resolution location

We considered having the mode at the bottom of the font tree:

     texmf/fonts/pk/supplier/typeface/mode/dpi/

In this case, however, it is difficult to limit subdirectory searching to the mode required for a particular device.

We then considered moving the dpinnn up to below the mode:

     texmf/fonts/pk/mode/dpi/supplier/typeface/

But then it is not feasible to omit the dpinnn level altogether on systems which can and do choose to use long filenames.

C.2.3 Modeless bitmaps

The TDS specifies using a single directory modeless/ as the mode name for those utilities which generate bitmaps, e.g., texmf/fonts/modeless/times/. This has the considerable advantage of not requiring each such directory name to be listed in a search path.

An alternative was to use the utility name below which all such directories could be gathered. That has the advantage of separating, say, gsftopk-generated bitmaps from ps2pk-generated ones. However, we decided this was not necessary; most sites will use only one program for the purpose. Also, PK and GF fonts generally identify their creator in the font comment following the PK_ID byte.

We are making an implicit assumption that Metafont is the only program producing mode-dependent bitmaps. If this becomes false we could add an abbreviation for the program to mode names, as in mfcx vs. xyzcx for a hypothetical program Xyz, or we could at that time add an additional program name level uniformly to the tree. It seemed more important to concisely represent the current situation than to worry about hypothetical possibilities that may never happen.

C.3 Documentation structure

We considered placing additional documentation files in the same directory as the source files for the packages, but we felt that users should be able to find documentation separately from sources, since most users have no interest in sources.

We hope that a separate, but parallel, structure for documentation would (1) keep the documentation together and (2) make it as straightforward as possible for users to find the particular documentation they were after.


Next: , Previous: Is there a better way?, Up: Top

Appendix D Related references

This appendix gives pointers to related files and other documents. For CTAN references, we use http://www.ctan.org as the top-level domain only to make the links be live in this document. See http://www.ctan.org/tex-archive/CTAN.sites for a complete list of CTAN sites; there are mirrors worldwide.


Previous: Related references, Up: Top

Appendix E Contributors

The TWG has had no physical meetings; electronic mail was the communication medium.

Sebastian Rahtz is the TeX Users Group Technical Council liaison. Norman Walsh was the original committee chair. Karl Berry is the current editor.

The list of contributors has grown too large to fairly include, as some would surely be inadvertently omitted. Please consider the archives of the tds@tug.org and tex-live@tug.org mailing lists as the record of contributions. tex-common-4.04/doc/tds-1.1/tdsguide.cls0000644000000000000000000006073712157017604014604 0ustar % $Id: tdsguide.cls,v 1.19 2004/03/28 14:21:10 karl Exp $ % LaTeX document class tdsguide % (history at end) % % This class provides markup & layout for the TDS report. % \NeedsTeXFormat{LaTeX2e}[1994/12/01] % star-form of \CheckCommand, etc. % The code below is explained in the implementation documentation of the % rcs package. \begingroup \def\RCSClass#1#2 $#3: #4 #5\endRCS $#6: #7 #8\endRCS{% \def\date{#4}\def\id{v#7}% \ProvidesClass{#1}[\date\space\id\space #2]% } \RCSClass{tdsguide}{markup and layout for TDS document} $Date: 2004/03/28 14:21:10 $: 9999/00/00 \endRCS $Revision: 1.19 $: 0.0 \endRCS \endgroup % default setup \ifx \CatEscape\undefined \chardef\CatEscape=0 \chardef\CatOpen=1 \chardef\CatClose=2 \chardef\CatIgnore=9 \chardef\CatLetter=11 \chardef\CatOther=12 \chardef\CatActive=13 \chardef\CatUsCode=\catcode`\_ \fi %%% ====================================================================== % % OPTIONS % \catcode`\_=\CatLetter % We can select to use Roman for METAFONT/METAPOST logos by the % nomflogo option. That should be done if no current logo fonts (with % `P' & `S') are available. Of course, it would be best to install % current fonts. % The mflogo options is provided for upward compatibility. \let\tds_mflogo\relax \DeclareOption{nomflogo}{% \def\tds_mflogo{\let\textlogo\tds@transfer@logo} % gimme refinements! :( } \DeclareOption{mflogo}{} \newif\ifTdsDraft \TdsDraftfalse \DeclareOption{draft}{% \TdsDrafttrue \PassOptionsToClass{\CurrentOption}{article}% } \DeclareOption{final}{% \TdsDraftfalse \PassOptionsToClass{\CurrentOption}{article}% } \catcode`\_=\CatUsCode %%% ------------------------------------------------------------ % % CONFIGURATION, INHERITANCE, AND OTHER MODULES % % configure this class \InputIfFileExists{tdsguide.cfg}{% \typeout{*************************************^^J% *^^J% * Local config file tdsguide.cfg used^^J% *^^J% *************************************% }% }{} % inherit article class \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions \LoadClass{article} % add more modules \RequirePackage{url} % file names & email addresses \RequirePackage{mflogo} % MF & MP logos (but see below) %\RequirePackage{hyperref} % navigation specials in .dvi \RequirePackage{fancyhdr} % rev. no & draft notice in headers % Put hypertext links in the DVI file on the URL's: % \def\UrlLeft#1\UrlRight{\special{html:}#1\special{html:}} % Don't do this because xdvi doesn't know what do with ftp url's, which % is the vast majority of links; also because we use the url package for % mere directory names. %%% ============================================================ % % NEW MARKUP % \catcode`\_=\CatLetter % info about original SGML files \def\sourcefile#1{} \def\formatterfile#1{} % revision number (should use rcs package) \newtoks\tdsVersion % % RENDER DOCUMENT-SPECIFIC MARKUP % % categories for terms % typewriter type. % `_', `\_', and `\\' produce respective chars. \def\tds_tt{% \begingroup \catcode`\_=\CatOther \chardef\_=`\_ \chardef\\=`\\ \tds_tt_set } \def\tds_tt_set#1{% \ttfamily #1% \endgroup } \def\systemitem#1{\tds_tt} \def\replaceable#1{{\rmfamily $\langle$\textit{#1}$\rangle$}} \let\command=\tds_tt \def\application#1{\textrm{#1}} \let\literal=\tds_tt \let\email=\url % \abbr may be called with lowercase & uppercase letters, actually all % abbreviations are to be typeset with reduced-size uppercase letters. % (That lowercase letters are used as arguments was a half-hearted % attempt by Norm who did use small caps at this time.) `Reduced size' % means one point smaller than the current size. If the reduced size % is larger than 12pt, we issue a warning; if no font-generating % driver is used, this situation will lead to character replacements % most probably. % % This macro may be written to an auxilliary file, we must not use % underscores in its name. \DeclareRobustCommand\tds@reduced@size{% \dimen@\f@size\p@ \advance \dimen@ -\p@ % dimen@ = font_size - 1 \ifdim \dimen@ >12\p@ \@font@warning{% Using font size `\the\dimen@' for abbreviations. That might lead% \MessageBreak to character replacements if you don't use a driver that\MessageBreak generates fonts.}% \fi \math@fontsfalse \fontsize{\the\dimen@}\z@ \selectfont } \def\abbr#1{{\tds@reduced@size \uppercase{#1}}} % references \let\xref\relax \let\citetitle=\textit % aliases for LaTeX markup \let\emphasis=\emph % environment `legalnotice', part of front matter \let\legalnotice=\par \let\endlegalnotice=\par % environment `ttdisplay', used to explicate some fact. Basically, % it's the alltt environment without parskip and with an additional % level of indentation. \def\ttdisplay{% \begingroup \list{}{% \parsep\z@skip % no skip before env \parskip\z@skip \relax }% \item\relax \parshape\z@ %% code below is copied from alltt.dtx. \leftskip\@totalleftmargin \@tempswafalse \def\par{% \if@tempswa \leavevmode\null\@@par\penalty\interlinepenalty \else \@tempswatrue \ifhmode \@@par \penalty\interlinepenalty \fi \fi }% \obeylines \verbatim@font \let\org@prime~% \@noligs \everymath \expandafter{\the\everymath \let~\org@prime}% \everydisplay \expandafter{\the\everydisplay \let~\org@prime}% \let\org@dospecials\dospecials \g@remfrom@specials{\\}% \g@remfrom@specials{\{}% \g@remfrom@specials{\}}% \let\do\@makeother \dospecials \let\dospecials\org@dospecials \frenchspacing\@vobeyspaces \everypar \expandafter{\the\everypar \unpenalty}% %} } \def\endttdisplay{% \endlist \endgroup \vskip -\parskip % undo skip after env } % Code below is from alltt.dtx. I don't understand why it's not part % of the LaTeX kernel. \def\g@remfrom@specials#1{% \def\@new@specials{}% \def\@remove##1{% \ifx ##1#1% \else \g@addto@macro\@new@specials{\do ##1}% \fi }% \let\do\@remove \dospecials \let\dospecials\@new@specials } %%% ------------------------------------------------------------ % % LOGOS % % Some of them are rather document-specific. \def\texmf{\path|texmf|} \def\CTAN:{\replaceable{\abbr{CTAN}:}} % Actually, I should use my logos package for the rest... [-js] % The AmS definition is from AmS-LaTeX, that's more stable in this % document's context than the one from AmS-TeX. \def\AmS{% \begingroup \protect\usefont{OMS}{cmsy}{m}{n}% A\kern-.1667em \lower.5ex\hbox{M}\kern-.125em S% \endgroup } \def\AMSTeX{\AmS-\TeX} \def\iniTeX{\texttt{INITEX}\@} \def\iniMF{\texttt{INIMF}\@} \def\iniMP{\texttt{INIMP}\@} \def\PS{\textsc{PostScript}} % If we don't use logo fonts, both the Metafont and the MetaPost logo % is typeset in the current font, as shown in this comment. The macros % `\MF' & `\MP' expand to two \textfont macros, with uppercase % syllables as arguments. We check for the syllable `FONT', this has % to be typeset in lowercase. All other syllables are capitalized. \def\tds_logo_fontarg{FONT} \DeclareRobustCommand\tds@transfer@logo[1]{% \def\tds_arg{#1}% \ifx \tds_arg\tds_logo_fontarg font% \else \tds_capitalize#1\tds_argend \fi } \def\tds_capitalize#1#2\tds_argend{% \uppercase{#1}\lowercase{#2}% } \tds_mflogo % Use a small caps fake for BibTeX's `ib'. This way we can typeset it % in bold face or sans-serif, too. The code is copied from the LaTeX % logo definition, from ltlogos.dtx. \DeclareRobustCommand\tds@smsize{% $\m@th$% % force math size calculation \csname S@\f@size\endcsname \fontsize\sf@size\z@ \math@fontsfalse \selectfont } \def\BibTeX{B\kern-.05em{\tds@smsize IB}\kern-.08em\TeX} %%% ============================================================ % % TDS SUMMARIES % % Typeset a figure that shows the TeX directory layout. The layout is % input with optical markup: % % \begin{tdsSummary} % dir/ explanation of dir % . subdir/ explanation of subdir % . . subsubdir/ next subdir level % . dir/dir/ more than one dir in one line % . / explanation of category % \end{tdsSummary} % % Directories and category names don't have dots. % We transform that input into a table. The first table column (the % directory spec) is terminated by a slash that's followed by white % space. Directory names are typeset in monocase. are % tagged with \replaceable. Subdirectory levels are indented by one % quad. A quad is placed between columns. The explanation text % is typeset in one line. % As this is a special implementation for a special document, these % design decisions are hardwired, no protected interface is available. % Design changes will be realized by changes to the macro code. % The environment is realized as a trivlist to behave correctly in list % environments. I don't use a tabular environment, since I don't know % exactly how the first column is tokenized. Instead a halign is used. % IMO it does not matter, as tdsSummary does not use table markup % anyhow. If somebody wants to use longer explanations and if they must % be broken then, I have to use one of the tabulars of the tools bundle. % The first column (the directory names) is typeset in typewriter type. The % font chosen hereby must have the underscore at its ASCII position. If % that is not the case, one has to generalize \tds_dir_tags below. % Namely, this macro sets up the special lexical convention for this % column. As TeX will look at the first token of the column to check for % the table end, \cr, or \omit before \tds_dir_tags is evaluated, the % redefinition of the lexical analysis will not have happened for that % token. So we have to check this token specially if it's one of the % special optical markup chars. % After we started the trivlist, we need to supply the item (as this % macro really adds the vertical space). But it does not actually % start an item, it sets up the everypar register to do so. We fake % the item start as we don't want to go in horizontal mode, \halign % needs to be evaluated in vertical mode. % % \par is not evaluated by \endtrivlist and \end, so we don't need % another group around its redefinition. \def\tdsSummary{% \trivlist \item\relax \vskip\parskip \global\@inlabelfalse \global\@newlistfalse \global\everypar{}% \tabskip 0pt \let\par\crcr \obeylines % can't use \obeycr, redefined by LaTeX % redefine \obeylines to do nothing; url.sty v3.0 calls it, and the % ^^M character therein causes a `Missing \endgroup inserted' error % at a \path|...| within a tdsSummary, if it's already defined as \par. \let\obeylines=\relax \halign\bgroup \ttfamily \tds_dir_tags \tds_first_token ##\unskip\hfil &% \quad ##\unskip\hfil \cr } \def\endtdsSummary{% \crcr \egroup \endtrivlist } % Our special lexical conventions are: `.' denotes the next directory % level, `<...>' denotes a directory category, and `/' is a column % separator if it is followed by space or tab, a typeset slash % otherwise. Underscores don't have any special meaning. \begingroup \catcode`\.=\CatActive \catcode`\<=\CatActive \catcode`\/=\CatActive \catcode`\:=\CatActive \gdef\tds_dir_tags{% \catcode`\.=\CatActive \let.=\tds_next_dir_level \catcode`\<=\CatActive \let<=\tds_dir_category \catcode`\/=\CatActive \let/=\tds_slash \catcode`\:=\CatActive \let:=\tds_colon \catcode`\_=\CatOther \tt } \endgroup % There are spaces between the dots, ignore them. \def\tds_next_dir_level{\quad \ignorespaces} \def\tds_dir_category#1>{\replaceable{#1}} \chardef\tds_dir_sep=`\/ % typeset a directory separator % The slash has to check the stuff behind. If it's a space or a tab, % \next is bound to the action `blank-space' (the binding of all % '(space . #\Space) tokens). A tab is usually tokenized to the same % token, but we care for redefinitions below. % \def\tds_slash{% \futurelet\next \tds_check_dir_end } % For colons in the examples. % \def\tds_colon{:&} % We need two control sequencess that are bound to the actions currently % bound to '(space . #\Space) and (tex:parse "\t"). A direct \let % evaluation is difficult as the lexical analysis collapses subsequent % spaces to one token. But we need one space token behind the equal % sign, to be able to \let our cseq to the next space token. The first % token is stored in the replacement list of a macro, the second token % comes as its argument. \def\tds_let#1#2{\let#1= #2} \tds_let\tds_space{ } \tds_let\tds_tab{^^I} \def\TdsColSep{/&} % use trailing slashes for dir names \def\tds_check_dir_end{% \ifx \next\tds_space \let\next\TdsColSep \else \ifx \next\tds_tab \let\next\TdsColSep \else \let\next\tds_dir_sep \fi \fi \next } % We're almost finished with the tdsSummary setup. The stuff above is % not used for the first column token, as it's already tokenized when % the catcode changes take effect. So let's check and remap this token % by hand. Actually, I'm sloppy here; I assume that `/' won't be a % used as a directory name and that no directory name starts with an % underscore. But then, I know that this won't happen in TDS... :-) \def\tds_first_token{% \futurelet\next \tds_check_special } \def\tds_check_special{% \ifx \next.% \def\next{\afterassignment\tds_next_dir_level \let\next}% \else \ifx \next<% \def\next{\afterassignment\tds_dir_category \let\next}% \else \let\next\relax \fi \fi \next } %%% ============================================================ % % LAYOUT % % text area size % We use the same height as article's default, but increase the width. \textwidth=35pc \oddsidemargin = \paperwidth \advance\oddsidemargin by -\textwidth \divide\oddsidemargin by 2 \evensidemargin = \oddsidemargin \hoffset = -1in % spacing \parindent=0pt % no paragraph indentation \emergencystretch=2em % fewer overfull hboxes, only a memo \parskip=1ex plus 1ex minus .5ex % between paragraphs; if you change it, % change the spacing in section headers % below, too! % Our spacing for lists is very simplistic, but uniform: We use (almost) % parskip everywhere, and don't distinguish vertical spacing for % different list levels. Actually, the latter is the thing we might want % to introduce later again. \labelsep=1.1em % increase distance between item & text \topsep=0pt % no extra skip above list in paragraph \partopsep=0pt % no extra skip above list starting par. \itemsep=0pt % no extra space between items \parsep=.9\parskip % between paragraphs in items \def\@listI{% \leftmargin\leftmargini } \let\@listi\@listI \@listi \def\@listii{% \leftmargin\leftmarginii \labelwidth\leftmarginii \advance \labelwidth-\labelsep } \def\@listiii{% \leftmargin\leftmarginiii \labelwidth\leftmarginiii \advance \labelwidth-\labelsep } % Like itemize, but squeeze the items. \newenvironment{itemize-squeeze} {% \parsep\z@skip \itemize }{% \enditemize } % Ditto, for description. \newenvironment{description-squeeze} {% \parsep\z@skip \description }{% \enddescription } % Redefine section headers, different spacing and other fonts. \newskip\TdsPreSubSectionSkip \TdsPreSubSectionSkip = 2.5ex plus 0.5ex minus 0.2ex \def\section{% \@startsection{section}{1}% % name and level {\z@}% % indentation {-3ex plus-.75ex minus-.2ex}% % skip above and don't indent next par {1.5ex plus.2ex}% % skip below {\reset@font \Large \sffamily}% % type } \def\subsection{% \@startsection{subsection}{2}% % name and level {\z@}% % indentation {-\TdsPreSubSectionSkip}% % skip above and don't indent next par \parskip % skip below {\reset@font \large \sffamily}% % type } \def\subsubsection{% \@startsection{subsubsection}{3}% % name and level {\z@}% % indentation {-\TdsPreSubSectionSkip}% % skip above and don't indent next par \parskip % skip below {\reset@font \normalsize \sffamily}% % type } \def\paragraph{% \@startsection{paragraph}{4}% % name and level {\z@}% % indentation \TdsPreSubSectionSkip % skip above and indent next par {-1.5em}% % skip after, run in text {\reset@font \normalsize \scshape}% % type } % Table of contents \setcounter{tocdepth}{2} % only sections on first two levels % Less space between TOC entries, discard the parskip. For that, we % have to redefine \@starttoc, since no hook is available. \let\tds_orig_starttoc=\@starttoc \def\@starttoc#1{% \begingroup \parskip\z@skip \tds_orig_starttoc{#1}% \endgroup } % Section TOC entries in sans serif, and less space above. The code % below is copied from the article view on classes.dtx, I have changed % space and font. But let's first assure that we shouldn't use a newer % version of this code. \CheckCommand*\l@section[2]{% \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \addvspace{1.0em \@plus\p@}% \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \endgroup \fi} \def\l@section#1#2{% \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \addvspace{.75ex \@plus\p@ \@minus\p@}% % was: 1em plus 1pt \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \sffamily % was: \bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak \hfil \nobreak \hbox to\@pnumwidth{\hss #2}% \par \endgroup \fi} % Not so spacey a title, please. \def\@maketitle{% \null \kern-90pt \relax \kern0pt \begin{center}% {\LARGE \@title \par}% %\vskip 1.5em% {\large \lineskip .5em% \begin{tabular}[t]{c}% \@author \end{tabular}\par}% \vskip 1em% {\large version \the\tdsVersion \quad \@date}% \end{center}% \par \vskip 1.5em} % Make labels in the description environment come out in the % requested type rather than bold. \def\descriptionlabel#1{\hspace\labelsep #1} % Headline & footline \pagestyle{fancy} \lhead{} \chead{% \ifTdsDraft draft \fi % <-- space! TDS version \the\tdsVersion } \rhead{} \renewcommand{\headrulewidth}{0.4pt} \lfoot{} \cfoot{\thepage} \rfoot{} \renewcommand{\footrulewidth}{0pt} %%% ============================================================ \catcode`\_=\CatUsCode \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % $Log: tdsguide.cls,v $ % Revision 1.19 2004/03/28 14:21:10 karl % (\tdsSummary): \let\obeylines=\relax after we set % it, so url.sty v3.0's usage of \obeylines does not % cause errors. % % Revision 1.18 1998/01/26 21:26:10 karl % (\TeXinfo): Remove unused and incorrect name. % (\parsep): Decrease slightly. % (\l@section): Decrease section spacing for toc slightly. % (\@maketitle): Remove word `draft'. % % Revision 1.17 1997/02/07 20:47:16 karl % Fix : in tdsSummary, more doc. % % Revision 1.16 1996/11/16 14:23:58 karl % fancyhdr requires different commands. % % Revision 1.13 1995/11/21 18:57:35 schrod % Add description-squeeze environment. % % Revision 1.12 1995/11/14 18:33:18 schrod % Drop draft hint in legalnotice environment, make title more % squeezed. Changes by Karl, to make title & toc fit on one page. % % Revision 1.11 1995/11/14 12:36:54 schrod % Use url.sty instead of path.sty. (On request of Karl, better input % syntax and different line breaks [0.103].) % Rename environment explicate to ttdisplay. (Proposal of Karl.) % % Revision 1.10 1995/11/11 16:29:01 schrod % Identify version of class in log file. % Change layout of table of contents. Implementation of a discussion % between Karl Berry and myself. % % Revision 1.9 1995/11/11 15:43:34 schrod % Replace alltt environment by explicate environment. Change % requested by Karl at 09 Nov 95. % % Revision 1.8 1995/11/02 10:52:29 schrod % Add option nomflogo, mflogo is default now. % Don't need provision for slanted typewriter type any more, % replacable texts are set in italics now. % Add logos \texmf and \CTAN:. [kb] % Set margins in addition to \textwidth. It's a bit wider, too. [kb] % Wider distance between item label and item text. [kb] % New environment itemize-squeeze, without space between items. [kb] % % Revision 1.7 1995/05/18 09:06:39 schrod % Don't parse arguments unnecessarily early, one might change % catcodes in them. % Use \tds_tt to switch to typewriter, also typesets backslashs and % underscores [kb]. % Increase width to 33pc [kb]. % % Revision 1.6 1995/05/12 23:19:07 schrod % \f@size may be a fraction, so use dimension register to compute % the reduced size for abbreviations [dc]. % In summary tables, terminate the directory names with slashes [kb, nw]. % % Revision 1.5 1995/05/09 01:46:24 schrod % Typeset abbreviation one point smaller than surrounding font [uv, % kb, bb], use always uppercase letters for them. Rename the tag from % \acronym to \abbr [kb, nw]. % % Revision 1.4 1995/05/09 00:39:57 schrod % Repair vertical spacing around tdsSummary environment. % % Revision 1.3 1995/05/08 17:14:52 schrod % For TDS 0.72 Norm changed the document to use \abbr (argument with % lowercase letters) instead of \acronym. It's not looking better, of % course; small caps is not really a good font for abbreviations. This % revision just tracks his change, I'll look later if I can improve the % rendering. % % Revision 1.2 1995/05/07 18:22:53 schrod % In environment tdsSummary: Next directory level indented by one % quad, without dots for indentation [kb, !uv, js]. % Renamed Draft flag to TdsDraft, to keep namespace clean. % Headline now features a centered short title [kb, uv, nw]. It's % still ruled. % \replaceable used spurious \selectfont [uv]. \dir & \ext are not % used [uv]. % Subsubsections are also numbered and not indented [uv]. But they % are still not added to the table of contents. Actually, we have only % _one_ subsubsection... % Set erroneously counter `secnumdepth' when I wanted fewer section % headings in the table of contents. That's controlled by counter % `tocdepth' [uv]. % Inherit tdsguide from article class, not from ltxguide. The tags % of the latter class are not appropriate and we define our layout % ourselves. % % % pre-CVS Log: % % 19 Apr 95 js Made a LaTeX2e class. % Use mflogo option to select MF/MP logo typesetting, % support configuration file. % 1994-1995 nw Initial revision. %%%------------------------------------------------------------ % mode: LaTeX % Local Variables: % TeX-brace-indent-level: 4 % indent-tabs-mode: t % TeX-auto-untabify: nil % TeX-auto-regexp-list: LaTeX-auto-regexp-list % page-delimiter: "^%%%" % End: tex-common-4.04/doc/tds-1.1/tds.info0000644000000000000000000020425012157017604013726 0ustar This is tds.info, produced by makeinfo version 4.7 from tds.texi. INFO-DIR-SECTION TeX START-INFO-DIR-ENTRY * TeX Directories: (tds). A directory structure for TeX files. END-INFO-DIR-ENTRY  File: tds.info, Node: Top, Next: Introduction, Up: (dir) A Directory Structure for TeX Files *********************************** Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 TeX Users Group. Permission to use, copy, and distribute this document _without modification_ for any purpose and without fee is hereby granted, provided that this notice appears in all copies. It is provided "as is" without expressed or implied warranty. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the modifications are clearly marked and the document is not represented as the official one. This document is available on any CTAN host (see Appendix *Note Related references::). Please send questions or suggestions by email to . We welcome all comments. This is version 1.1. * Menu: * Introduction:: * General:: * Top-level directories:: * Summary:: * Unspecified pieces:: * Implementation issues:: * Is there a better way?:: * Related references:: * Contributors:: --- The Detailed Node Listing --- Introduction * History:: * The role of the TDS:: * Conventions:: General * Subdirectory searching:: * Rooting the tree:: * Local additions:: * Duplicate filenames:: Top-level directories * Macros:: * Fonts:: * Non-font Metafont files:: * MetaPost:: * BibTeX:: * Scripts:: * Documentation:: Macros * Extensions:: Fonts * Font bitmaps:: * Valid font bitmaps:: Summary * Documentation tree summary:: Unspecified pieces * Portable filenames:: Implementation issues * Adoption of the TDS:: * More on subdirectory searching:: * Example implementation-specific trees:: Example implementation-specific trees * AmiWeb2c 2.0:: * Public DECUS TeX:: * Web2c 7:: Is there a better way? * Macro structure:: * Font structure:: * Documentation structure:: Font structure * Font file type location:: * Mode and resolution location:: * Modeless bitmaps::  File: tds.info, Node: Introduction, Next: General, Prev: Top, Up: Top 1 Introduction ************** TeX is a powerful, flexible typesetting system used by many people around the world. It is extremely portable and runs on virtually all operating systems. One unfortunate side effect of TeX's flexibility, however, is that there has been no single "right" way to install it. This has resulted in many sites having different installed arrangements. The primary purpose of this document is to describe a standard TeX Directory Structure (TDS): a directory hierarchy for macros, fonts, and the other implementation-independent TeX system files. As a matter of practicality, this document also suggests ways to incorporate the rest of the TeX files into a single structure. The TDS has been designed to work on all modern systems. In particular, the Technical Working Group (TWG) believes it is usable under MacOS, MS-DOS, OS/2, Unix, VMS, and Windows NT. We hope that administrators and developers of both free and commercial TeX implementations will adopt this standard. This document is intended both for the TeX system administrator at a site and for people preparing TeX distributions--everything from a complete runnable system to a single macro or style file. It may also help TeX users find their way around systems organized this way. It is not a tutorial: we necessarily assume knowledge of the many parts of a working TeX system. If you are unfamiliar with any of the programs or file formats we refer to, consult the references in Appendix *Note Related references::. * Menu: * History:: * The role of the TDS:: * Conventions::  File: tds.info, Node: History, Next: The role of the TDS, Up: Introduction 1.1 History =========== Version 1.0 of the TDS was released in February 2003. Version 1.1 was released in June 2004, with the following non-editorial changes: * Inputs for TeX extensions included under `tex', instead of in their own top-level directories (Section *Note Extensions::) * New top-level directory `scripts' (Section *Note Scripts::). * New subdirectories `lig', `opentype', `truetype', and `type3' under `fonts' (Section *Note Fonts::). * `enc', `lig', and `map' all use `SYNTAX/PACKAGE' subdirectories (Section *Note Fonts::). * `pfm' files specified to go under `type1', and `inf' files under `afm' (Section *Note Fonts::).  File: tds.info, Node: The role of the TDS, Next: Conventions, Prev: History, Up: Introduction 1.2 The role of the TDS ======================= The role of the TDS is to stabilize the organization of TeX-related software packages that are installed and in use, possibly on multiple platforms simultaneously. At first glance, it may seem that the Comprehensive TeX Archive Network (CTAN) fulfills at least part of this role, but this is not the case. The role of CTAN is to simplify archiving and distribution, not installation and use. In fact, the roles of the TDS and CTAN are frequently in conflict, as we will see. For distribution, many different types of files must be combined into a single unit; for use, it is traditional to segregate files (even similar files) from a single package into separate, occasionally distant, directories.  File: tds.info, Node: Conventions, Prev: The role of the TDS, Up: Introduction 1.3 Conventions =============== In this document, `/' is used to separate filename components; for example, `texmf/fonts'. This is the Unix convention but the ideas are in no way Unix-specific. In this document, "TeX" generally means the TeX system, including Metafont, DVI drivers, utilities, etc., not just the TeX program itself. The word "package" in this document has its usual meaning: a set of related files distributed, installed, and maintained as a unit. This is _not_ a LaTeX2e package, which is a style file supplementing a document class. We use the following typographic conventions: * `literal' Literal text such as `filename' is typeset in typewriter type. * `REPLACEABLE' Replaceable text such as `PACKAGE', identifying a class of things, is typeset in italics inside angle brackets.  File: tds.info, Node: General, Next: Top-level directories, Prev: Introduction, Up: Top 2 General ********* This section describes common properties throughout the TDS tree. * Menu: * Subdirectory searching:: * Rooting the tree:: * Local additions:: * Duplicate filenames::  File: tds.info, Node: Subdirectory searching, Next: Rooting the tree, Up: General 2.1 Subdirectory searching ========================== Older TeX installations store large numbers of related files in single directories, for example, all `TFM' files and/or all TeX input files. This monolithic arrangement hinders maintenance of a TeX system: it is difficult to determine what files are used by what packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It is also a source of error if two or more packages happen to have input files with the same name. Therefore, the TWG felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. A site may wish to install dozens of packages. Aside from anything else, listing that many directories would produce search paths many thousands of characters long, overflowing the available space on some systems. Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some way to specify the directories to search at runtime. On systems without runtime configuration, it would require recompiling software, an intolerable burden. As a result, the TWG concluded that a comprehensive TDS requires implementations to support some form of implicit subdirectory searching. More precisely, implementations must make it possible to specify that TeX, Metafont, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. Other forms of subdirectory searching, for example recursive-to-one-level searches, may also be provided. We encourage implementors to provide subdirectory searching at the option of the installer and user for all paths. The TDS does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability (see Section *Note More on subdirectory searching::).  File: tds.info, Node: Rooting the tree, Next: Local additions, Prev: Subdirectory searching, Up: General 2.2 Rooting the tree ==================== In this document, we shall designate the root TDS directory by `texmf' (for "TeX and Metafont"). We recommend using that name where possible, but the actual name of the directory is up to the installer. On PC networks, for example, this could map to a logical drive specification such as `T:'. Similarly, the location of this directory on the system is site-dependent. It may be at the root of the file system; on Unix systems, `/usr/local/share', `/usr/local', `/usr/local/lib', and `/opt' are common choices. The name `texmf' was chosen for several reasons: it reflects the fact that the directory contains files pertaining to an entire TeX system (including Metafont, MetaPost, BibTeX, etc.), not just TeX itself; and it is descriptive of a generic installation rather than a particular implementation. A site may choose to have more than one TDS hierarchy installed (for example, when installing an upgrade). This is perfectly legitimate.  File: tds.info, Node: Local additions, Next: Duplicate filenames, Prev: Rooting the tree, Up: General 2.3 Local additions =================== The TDS cannot specify precisely when a package is or is not a "local addition". Each site must determine this according to its own conventions. At the two extremes, one site might wish to consider "nonlocal" all files not acquired as part of the installed TeX distribution; another site might consider "local" only those files that were actually developed at the local site and not distributed elsewhere. We recognize two common methods for local additions to a distributed `texmf' tree. Both have their place; in fact, some sites employ both simultaneously: 1. A completely separate tree which is a TDS structure itself; for example, `/usr/local/umbtex' at the University of Massachusetts at Boston. This is another example of the multiple `texmf' hierarchies mentioned in the previous section. 2. A directory named `local' at any appropriate level, for example, in the `FORMAT', `PACKAGE', and `SUPPLIER' directories discussed in the following sections. The TDS reserves the directory name `local' for this purpose. We recommend using `local' for site-adapted configuration files, such as `language.dat' for the Babel package or `graphics.cfg' for the graphics package. Unmodified configuration files from a package should remain in the package directory. The intent is to separate locally modified or created files from distribution files, to ease installing new releases. One common case of local additions is dynamically generated files, e.g., PK fonts by the `mktexpk' script (which originated in Dvips as `MakeTeXPK'). A site may store the generated files directly in any of: * their standard location in the main TDS tree (if it can be made globally writable); * an alternative location in the main TDS tree (for example, under `texmf/fonts/tmp'); * a second complete TDS tree (as outlined above); * any other convenient directory (perhaps under `/var', for example `/var/spool/fonts'). No one solution will be appropriate for all sites.  File: tds.info, Node: Duplicate filenames, Prev: Local additions, Up: General 2.4 Duplicate filenames ======================= Different files by the same name may exist in a TDS tree. The TDS generally leaves unspecified which of two files by the same name in a search path will be found, so generally the only way to reliably find a given file is for it to have a unique name. However, the TDS requires implementations to support the following exceptions: * Names of TeX input files must be unique within each first-level subdirectory of `texmf/tex' and `texmf/tex/generic', but not within all of `texmf/tex'; i.e., different TeX formats may have files by the same name. (Section *Note Macros:: discusses this further.) Thus, no single format-independent path specification, such as a recursive search beginning at `texmf/tex' specifying no other directories, suffices. So implementations must provide format-dependent path specifications, for example via wrapper scripts or configuration files. * Many font files will have the same name (e.g., `cmr10.pk'), as discussed in Section *Note Valid font bitmaps::. Implementations must distinguish these files by mode and resolution. All implementations we know of already have these capabilities. One place where duplicate names are likely to occur is not an exception: * Names of Metafont input files (as opposed to bitmaps) must be unique within all of `texmf/fonts'. In practice, this is a problem with some variants of Computer Modern which contain slightly modified files named `punct.mf', `romanl.mf', and so on. We believe the only feasible solution is to rename the derivative files to be unique.  File: tds.info, Node: Top-level directories, Next: Summary, Prev: General, Up: Top 3 Top-level directories *********************** The directories under the `texmf' root identify the major components of a TeX system (see Section *Note Summary:: for a summary). A site may omit any unneeded directories. Although the TDS by its nature can specify precise locations only for implementation-independent files, we recognize that installers may well wish to place other files under `texmf' to simplify administration of the TeX tree, especially if it is maintained by someone other than the system administrator. Therefore, additional top-level directories may be present. The top-level directories specified by the TDS are: * `tex' for TeX files (Section *Note Macros::). * `fonts' for font-related files (Section *Note Fonts::). * `metafont' for Metafont files which are not fonts (Section *Note Non-font Metafont files::). * `metapost' for MetaPost files (Section *Note MetaPost::). * `bibtex' for BibTeX files (Section *Note BibTeX::). * `scripts' for platform-independent executables (Section *Note Scripts::). * `doc' for user documentation (Section *Note Documentation::). * `source' for sources. This includes both traditional program sources (for example, Web2C sources go in `texmf/source/web2c') and, e.g., LaTeX `dtx' sources (which go in `texmf/source/latex'). The TDS leaves unspecified any structure under `source'. `source' is intended for files which are not needed at runtime by any TeX program; it should not be included in any search path. For example, `plain.tex' does not belong under `texmf/source', even though it is a "source file" in the sense of not being derived from another file. (It goes in `texmf/tex/plain/base', as explained in Section *Note Macros::). * `IMPLEMENTATION' for implementations (examples: `emtex', `vtex', `web2c'), to be used for whatever purpose deemed suitable by the implementor or TeX administrator. That is, files that cannot be shared between implementations, such as pool files (`tex.pool') and memory dump files (`plain.fmt') go here, in addition to implementation-wide configuration files. See Section *Note Example implementation-specific trees:: for examples of real `IMPLEMENTATION' trees. Such implementation-specific configuration files should _not_ be located using the main TeX input search path (e.g., `TEXINPUTS'). This must be reserved for files actually read by a TeX engine. See Section *Note Extensions::. * `PROGRAM' for program-specific input and configuration files for any TeX-related programs (examples: `mft', `dvips'). In fact, the `tex', `metafont', `metapost', and `bibtex' items above may all be seen as instances of this case. * Menu: * Macros:: * Fonts:: * Non-font Metafont files:: * MetaPost:: * BibTeX:: * Scripts:: * Documentation::  File: tds.info, Node: Macros, Next: Fonts, Up: Top-level directories 3.1 Macros ========== TeX macro files shall be stored in separate directories, segregated by TeX format and package name (we use `format' in its traditional TeX sense to mean a usefully `\dump'-able package): texmf/tex/FORMAT/PACKAGE/ * `FORMAT' is a format name (examples: `amstex', `latex', `plain', `texinfo'). The TDS allows distributions that can be used as either formats or packages (e.g., Texinfo, Eplain) to be stored at either level, at the option of the format author or TeX administrator. We recommend that packages used as formats at a particular site be stored at the `FORMAT' level: by adjusting the TeX inputs search path, it will be straightforward to use them as macro packages under another format, whereas placing them in another tree completely obscures their use as a format. The TDS reserves the following `FORMAT' names: * `generic', for input files that are useful across a wide range of formats (examples: `null.tex', `path.sty'). Generally, this means any format that uses the category codes of Plain TeX and does not rely on any particular format. This is in contrast to those files which are useful only with Plain TeX (which go under `texmf/tex/plain'), e.g., `testfont.tex' and `plain.tex' itself. * `local', for local additions. See Section *Note Local additions::. Thus, for almost every format, it is necessary to search at least the `FORMAT' directory and then the `generic' directory (in that order). Other directories may need to be searched as well, depending on the format. When using AMS-TeX, for example, the `amstex', `plain', and `generic' directories should be searched, because AMS-TeX is compatible with Plain. * `PACKAGE' is a TeX package name (examples: `babel', `texdraw'). In the case where a format consists of only a single file and has no auxiliary packages, that file can simply be placed in the `FORMAT' directory, instead of `FORMAT/base'. For example, Texinfo may go in `texmf/tex/texinfo/texinfo.tex', not `texmf/tex/texinfo/base/texinfo.tex'. The TDS reserves the following `PACKAGE' names: * `base', for the base distribution of each format, including files used by INITEX when dumping format files. For example, in the standard LaTeX distribution, the `ltx' files created during the build process. Another example: the `.ini' driver files for formats used by TeX Live and other distributions. * `hyphen', for hyphenation patterns, including the original American English `hyphen.tex'. These are typically used only by INITEX. In most situations, this directory need exist only under the `generic' format. * `images', for image input files, such as Encapsulated PostScript figures. Although it is somewhat non-intuitive for these to be under a directory named `tex', TeX needs to read these files to glean bounding box or other information. A mechanism for sharing image inputs between TeX and other typesetting programs (e.g., Interleaf, FrameMaker) is beyond the scope of the TDS. In most situations, this directory need exist only under the `generic' format. * `local', for local additions and configuration files. See Section *Note Local additions::. * `misc', for packages that consist of a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'. * Menu: * Extensions::  File: tds.info, Node: Extensions, Up: Macros 3.1.1 Extensions ---------------- TeX has spawned many companion and successor programs ("engines"), such as PDFTeX, Omega, and others. The TDS specifies that the input files for such programs (using a TeX-like syntax) be placed within the top-level `tex' directory, either at the top level or within a format subdirectory, even though the original TeX program may not be able to read them. For example: texmf/tex/aleph texmf/tex/enctex This is a change from TDS 1.0, which specified top-level `EXTENSION' directories for each such program. We felt the new approach is preferable, because: * Authors of relevant packages typically make their code detect the engine being used, and issue error messages or adapt to circumstances appropriately. Furthermore, as a package matures, it may support multiple engines. Thus, a package could conceivably be placed in any of several top-level directories, at different times. Putting all packages under the top-level `tex' directory provides a stable location over time. * Users need to be able to switch between engines, and configuring different search paths for each engine is difficult and error-prone. Thus, in practice, having different top-level directories caused difficulties for everyone involved--users, package authors, site administrators, and system distributors. Please contrast this approach with the `IMPLEMENTATION' top-level subdirectory (Section *Note Top-level directories::), which is to be used for configuration files that (presumably) do not use TeX syntax and in any case should not be found along the main TeX input search path.  File: tds.info, Node: Fonts, Next: Non-font Metafont files, Prev: Macros, Up: Top-level directories 3.2 Fonts ========= Font files are stored in separate directories, segregated by file type, and then (in most cases) font supplier and typeface. PK and GF files need additional structure, as detailed in the next section. texmf/fonts/TYPE/SUPPLIER/TYPEFACE/ texmf/fonts/enc,lig,map/SUBPATH/ * `TYPE' is the type of font file. The TDS reserves the following `TYPE' names for common TeX file types: * `afm', for Adobe font metrics, and `inf' files. * `gf', for generic font bitmap files. * `opentype', for OpenType fonts. * `pk', for packed bitmap files. * `source', for font sources (Metafont files, property lists, etc.). * `tfm', for TeX font metric files. * `truetype', for TrueType fonts. * `type1', for PostScript Type 1 fonts (in `pfa', `pfb', or any other format), and `pfm' files. * `type3', for PostScript Type 3 fonts. * `vf', for virtual fonts. The TDS also reserves the names `enc', `lig', and `map' for font encoding, ligature, and mapping files, respectively. All of these directories are structured the same way, with `SYNTAX' subdirectories, and then `PACKAGE' subsubdirectories. Each of these file types is intended to be searched along its own recursively-searched path. The names of the actual files must be unique within their subtree, as usual. Examples: fonts/map/dvipdfm/updmap/dvipdfm.map fonts/map/dvips/lm/lm.map fonts/enc/dvips/base/8r.enc The Fontname and Dvips packages have more examples of the `enc' and `map' types. The `afm2pl' program uses `lig' files. `pfm' files are included in the `type1' directory, instead of being given their own directory, for two reasons: 1) a `.pfm' file is always an adjunct to a given `.pfb' file; 2) they must be installed from the same directory for Windows programs other than TeX to use them. `inf' files are included in the `afm' directory, since an `inf' and `afm' file can be used to generate a `pfm'. (Unfortunately, Adobe Type Manager and perhaps other software requires that the `pfb' be in the same directory as `afm' and `inf' for installation.) As usual, a site may omit any of these directories that are unnecessary. `gf' is a particularly likely candidate for omission. * `SUPPLIER' is a name identifying font source (examples: `adobe', `ams', `public'). The TDS reserves the following `SUPPLIER' names: * `ams', for the American Mathematical Society's AMS-fonts collection. * `local', for local additions. See Section *Note Local additions::. * `public', for freely redistributable fonts where the supplier neither (1) requested their own directory (e.g., `ams'), nor (2) also made proprietary fonts (e.g., `adobe'). It does not contain all extant freely distributable fonts, nor are all files therein necessarily strictly public domain. * `tmp', for dynamically-generated fonts, as is traditional on some systems. It may be omitted if unnecessary, as usual. * `TYPEFACE' is the name of a typeface family (examples: `cm', `euler', `times'). The TDS reserves the following `TYPEFACE' names: * `cm' (within `public'), for the 75 fonts defined in `Computers and Typesetting, Volume E'. * `latex' (within `public'), for those fonts distributed with LaTeX in the base distribution. * `local', for local additions. See Section *Note Local additions::. Some concrete examples: texmf/fonts/source/public/pandora/pnr10.mf texmf/fonts/tfm/public/cm/cmr10.tfm texmf/fonts/type1/adobe/utopia/putr.pfa For complete supplier and typeface name lists, consult `Filenames for TeX fonts' (see Appendix *Note Related references::). * Menu: * Font bitmaps:: * Valid font bitmaps::  File: tds.info, Node: Font bitmaps, Next: Valid font bitmaps, Up: Fonts 3.2.1 Font bitmaps ------------------ Font bitmap files require two characteristics in addition to the above to be uniquely identifiable: (1) the type of device (i.e., mode) for which the font was created; (2) the resolution of the bitmap. Following common practice, the TDS segregates fonts with different device types into separate directories. See `modes.mf' in Appendix *Note Related references:: for recommended mode names. Some printers operate at more than one resolution (e.g., at 300dpi and 600dpi), but each such resolution will necessarily have a different mode name. Nothing further is needed, since implicit in the TeX system is the assumption of a single target resolution. Two naming strategies are commonly used to identify the resolution of bitmap font files. On systems that allow long filenames (and in the original Metafont program itself), the resolution is included in the filename (e.g., `cmr10.300pk'). On systems which do not support long filenames, fonts are generally segregated into directories by resolution (e.g., `dpi300/cmr10.pk'). Because the TDS cannot require long filenames, we must use the latter scheme for naming fonts. So we have two more subdirectory levels under `pk' and `gf': texmf/fonts/pk/MODE/SUPPLIER/TYPEFACE/dpiNNN/ texmf/fonts/gf/MODE/SUPPLIER/TYPEFACE/dpiNNN/ * `MODE' is a name which identifies the device type (examples: `cx', `ljfour', `modeless'). Usually, this is the name of the Metafont mode used to build the PK file. For fonts rendered as bitmaps by a program that does not distinguish between different output devices, the `MODE' name shall be simply `modeless'. The `MODE' level shall not be omitted, even if only a single mode happens to be in use. * `dpiNNN' specifies the resolution of the font (examples: `dpi300', `dpi329'). `dpi' stands for dots per inch, i.e., pixels per inch. We recognize that pixels per millimeter is used in many parts of the world, but dpi is too traditional in the TeX world to consider changing now. The integer `NNN' is to be calculated as if using Metafont arithmetic and then rounded; i.e., it is the integer Metafont uses in its output `gf' filename. We recognize small differences in the resolution are a common cause of frustration among users, however, and recommend implementors follow the level 0 DVI driver standard (see Appendix *Note Related references::) in bitmap font searches by allowing a fuzz of +-0.2% (with a minimum of 1) in the `DPI'. Implementations may provide extensions to the basic naming scheme, such as long filenames (as in the original Metafont) and font library files (as in emTeX's `.fli' files), provided that the basic scheme is also supported.  File: tds.info, Node: Valid font bitmaps, Prev: Font bitmaps, Up: Fonts 3.2.2 Valid font bitmaps ------------------------ The TWG recognizes that the use of short filenames has many disadvantages. The most vexing is that it results in the creation of dozens of different files with the same name. At a typical site, `cmr10.pk' will be the filename for Computer Modern Roman 10pt at 5-10 magnifications for 2-3 modes. (Section *Note Duplicate filenames:: discusses duplicate filenames in general.) To minimize this problem, we strongly recommend that PK files contain enough information to identify precisely how they were created: at least the mode, base resolution, and magnification used to create the font. This information is easy to supply: a simple addition to the local modes used for building the fonts with Metafont will automatically provide the required information. If you have been using a local modes file derived from (or that is simply) `modes.mf' (see Appendix *Note Related references::), the required information is already in your PK files. If not, a simple addition based on the code found in `modes.mf' can be made to your local modes file and the PK files rebuilt.  File: tds.info, Node: Non-font Metafont files, Next: MetaPost, Prev: Fonts, Up: Top-level directories 3.3 Non-font Metafont files =========================== Most Metafont input files are font programs or parts of font programs and are thus covered by the previous section. However, a few non-font input files do exist. Such files shall be stored in: texmf/metafont/PACKAGE/ `PACKAGE' is the name of a Metafont package (for example, `mfpic'). The TDS reserves the following `PACKAGE' names: * `base', for the standard Metafont macro files as described in `The Metafontbook', such as `plain.mf' and `expr.mf'. * `local', for local additions. See Section *Note Local additions::. * `misc', for Metafont packages consisting of only a single file (for example, `modes.mf'). An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'.  File: tds.info, Node: MetaPost, Next: BibTeX, Prev: Non-font Metafont files, Up: Top-level directories 3.4 MetaPost ============ MetaPost is a picture-drawing language developed by John Hobby, derived from Knuth's Metafont. Its primary purpose is to output Encapsulated PostScript instead of bitmaps. MetaPost input files and the support files for MetaPost-related utilities shall be stored in: texmf/metapost/PACKAGE/ `PACKAGE' is the name of a MetaPost package. At the present writing none exist, but the TWG thought it prudent to leave room for contributed packages that might be written in the future. The TDS reserves the following `PACKAGE' names: * `base', for the standard MetaPost macro files, such as `plain.mp', `mfplain.mp', `boxes.mp', and `graph.mp'. This includes files used by INIMP when dumping mem files containing preloaded macro definitions. * `local', for local additions. See Section *Note Local additions::. * `misc', for MetaPost packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'. * `support', for additional input files required by MetaPost utility programs, including a font map, a character adjustment table, and a subdirectory containing low-level MetaPost programs for rendering some special characters.  File: tds.info, Node: BibTeX, Next: Scripts, Prev: MetaPost, Up: Top-level directories 3.5 BibTeX ========== BibTeX-related files shall be stored in: texmf/bibtex/bib/PACKAGE/ texmf/bibtex/bst/PACKAGE/ The `bib' directory is for BibTeX database (`.bib') files, the `bst' directory for style (`.bst') files. `PACKAGE' is the name of a BibTeX package. The TDS reserves the following `PACKAGE' names (the same names are reserved under both `bib' and `bst'): * `base', for the standard BibTeX databases and styles, such as `xampl.bib', `plain.bst'. * `local', for local additions. See Section *Note Local additions::. * `misc', for BibTeX packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'.  File: tds.info, Node: Scripts, Next: Documentation, Prev: BibTeX, Up: Top-level directories 3.6 Scripts =========== The top-level `scripts' directory is for platform-independent executables, such as Perl, Python, and shell scripts, and Java class files. Subdirectories under `scripts' are package names. This eases creating distributions, by providing a common place for such platform-independent programs. The intent is not for all such directories to be added to a user's command search path, which would be quite impractical. Rather, these executables are primarily for the benefit of wrapper scripts in whatever executable directory a distribution may provide (which is not specified by the TDS). Truly auxiliary scripts which are invoked directly by other programs, rather than wrapper scripts, may also be placed here. That is, `scripts' also serves as a platform-independent analog of the standard Unix `libexec' directory. We recommend using extensions specifying the language (such as `.pl', `.py', `.sh') on these files, to help uniquely identify the name. Since the intent of the TDS is for programs in `scripts' not to be invoked directly by users, this poses no inconvenience. For example, in the TeX Live distribution, the ConTeXt user-level program `texexec' can exist as a small wrapper script in each `bin/PLATFORM/texexec' (which is outside the `texmf' tree), which merely finds and calls `texmf/scripts/context/perl/texexec.pl'. Examples: scripts/context/perl/texexec.pl scripts/context/ruby/examplex.rb scripts/thumbpdf/thumbpdf.pl The TDS does not specify a location for platform-dependent binary executables, whether auxiliary or user-level.  File: tds.info, Node: Documentation, Prev: Scripts, Up: Top-level directories 3.7 Documentation ================= Most packages come with some form of documentation: user manuals, example files, programming guides, etc. In addition, many independent files not part of any macro or other package have been created to describe various aspects of the TeX system. The TDS specifies that these additional documentation files shall be stored in a structure that parallels to some extent the `fonts' and `tex' directories, as follows: texmf/doc/CATEGORY/... `CATEGORY' identifies the general topic of documentation that resides below it; for example, a TeX format name (`latex'), program name (`bibtex', `tex'), language (`french', `german'), a file format (`info', `man'), or other system components (`web', `fonts'). One possible arrangement is to organize `doc' by language, with all the other category types below that. This helps users find documentation in the language(s) in which they are fluent. Neither this nor any other particular arrangement is required, however. Within each `CATEGORY' tree for a TeX format, the directory `base' is reserved for base documentation distributed by the format's maintainers. The TDS reserves the following category names: * `general', for standalone documents not specific to any particular program (for example, Joachim Schrod's `Components of TeX'). * `help', for meta-information, such as FAQ's, the TeX Catalogue, etc. * `info', for processed Texinfo documents. (Info files, like anything else, may also be stored outside the TDS, at the installer's option.) * `local', for local additions. See Section *Note Local additions::. The `doc' directory is intended for implementation-independent and operating system-independent documentation files. Implementation-dependent files are best stored elsewhere, as provided for by the implementation and/or TeX administrator (for example, VMS help files under `texmf/vms/help'). The documentation directories may contain TeX sources, DVI files, PostScript files, text files, example input files, or any other useful documentation format(s). See Section *Note Documentation tree summary:: for a summary.  File: tds.info, Node: Summary, Next: Unspecified pieces, Prev: Top-level directories, Up: Top 4 Summary ********* A skeleton of a TDS `texmf' directory tree. This is not to imply these are the only entries allowed. For example, `local' may occur at any level. bibtex/ BibTeX input files bib/ BibTeX databases base/ base distribution (e.g., `xampl.bib') misc/ single-file databases / name of a package bst/ BibTeX style files base/ base distribution (e.g., `plain.bst', `acm.bst') misc/ single-file styles / name of a package doc/ see Section *Note Documentation:: and the summary below fonts/ font-related files / file type (e.g., `pk') / type of output device (for `pk' and `gf' only) / name of a font supplier (e.g., `public') / name of a typeface (e.g., `cm') dpi/ font resolution (for `pk' and `gf' only) / TeX implementations, by name (e.g., `emtex') local/ files created or modified at the local site metafont/ Metafont (non-font) input files base/ base distribution (e.g., `plain.mf') misc/ single-file packages (e.g., `modes.mf') / name of a package (e.g., `mfpic') metapost/ MetaPost input and support files base/ base distribution (e.g., `plain.mp') misc/ single-file packages / name of a package support/ support files for MetaPost-related utilities mft/ `MFT' inputs (e.g., `plain.mft') / TeX-related programs, by name (e.g., `dvips') source/ program source code by name (e.g., `latex', `web2c') tex/ TeX input files / name of an engine (e.g., `aleph'); can also be lower / name of a format (e.g., `plain') base/ base distribution for format (e.g., `plain.tex') misc/ single-file packages (e.g., `webmac.tex') local/ local additions to or local configuration files for `FORMAT' / name of a package (e.g., `graphics', `mfnfss') generic/ format-independent packages hyphen/ hyphenation patterns (e.g., `hyphen.tex') images/ image input files (e.g., Encapsulated PostScript) misc/ single-file format-independent packages (e.g., `null.tex'). / name of a package (e.g., `babel') * Menu: * Documentation tree summary::  File: tds.info, Node: Documentation tree summary, Up: Summary 4.1 Documentation tree summary ============================== An example skeleton of a TDS directory tree under `texmf/doc'. This is not to imply these are the only entries allowed, or that this structure must be followed precisely for the entries listed. As mentioned, the `texmf/doc' tree may be organized by language, so that all documentation in French, say, is in a `french' subdirectory. In that case, the example structure here would be in a given language directory. ams/ amsfonts/ `amsfonts.faq', `amfndoc' amslatex/ `amslatex.faq', `amsldoc' amstex/ `amsguide', `joyerr' bibtex/ BibTeX base/ `btxdoc.tex' fonts/ fontname/ `Filenames for TeX fonts' oldgerm/ `corkpapr' / name of a TeX format (e.g., `generic', `latex') base/ for the base distribution misc/ for contributed single-file package documentation / for _package_ general/ across programs, generalities errata/ `errata', `errata[1-8]' texcomp/ `Components of TeX' help/ meta-information ctan/ info about CTAN mirror sites faq/ FAQs of `comp.text.tex', etc. info/ GNU Info files, made from Texinfo sources latex/ example of `FORMAT' base/ `ltnews*', `*guide', etc. graphics/ `grfguide' local/ site-specific documentation man/ Unix man pages / TeX-related programs, by name (examples follow) metafont/ `mfbook.tex', `metafont-for-beginners', etc. metapost/ `mpman', `manfig', etc. tex/ `texbook.tex', `A Gentle Introduction to TeX', etc. web/ `webman', `cwebman'  File: tds.info, Node: Unspecified pieces, Next: Implementation issues, Prev: Summary, Up: Top Appendix A Unspecified pieces ***************************** The TDS cannot address the following aspects of a functioning TeX system: 1. The location of executable programs: this is too site-dependent even to recommend a location, let alone require one. A site may place executables outside the `texmf' tree altogether (e.g., `/usr/local/bin'), in a platform-dependent directory within `texmf', or elsewhere. 2. Upgrading packages when new releases are made: we could find no way of introducing version specifiers into `texmf' that would do more good than harm, or that would be practical for even a plurality of installations. 3. The location of implementation-specific files (e.g., TeX `.fmt' files): by their nature, these must be left to the implementor or TeX maintainer. See Section *Note Example implementation-specific trees::. 4. Precisely when a package or file should be considered "local", and where such local files are installed. See Section *Note Local additions:: for more discussion. * Menu: * Portable filenames::  File: tds.info, Node: Portable filenames, Up: Unspecified pieces A.1 Portable filenames ====================== The TDS cannot require any particular restriction on filenames in the tree, since the names of many existing TeX files conform to no standard scheme. For the benefit of people who wish to make a portable TeX distribution or installation, however, we outline here the necessary restrictions. The TDS specifications themselves are compatible with these. ISO-9660 is the only universally acceptable file system format for CD-ROMs. A subset thereof meets the stringent limitations of all operating systems in use today. It specifies the following: * File and directory names, not including any directory path or extension part, may not exceed eight characters. * Filenames may have a single extension. Extensions may not exceed three characters. Directory names may not have an extension. * Names and extensions may consist of _only_ the characters `A'-`Z', `0'-`9', and underscore. Lowercase letters are excluded. * A period separates the filename from the extension and is always present, even if the name or extension is missing (e.g., `FILENAME.' or `.EXT'). * A version number, ranging from 1-32767, is appended to the file extension, separated by a semicolon (e.g., `FILENAME.EXT;1'). * Only eight directory levels are allowed, including the top-level (mounted) directory (see Section *Note Rooting the tree::). Thus, the deepest valid ISO-9660 path is: texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1 1 2 3 4 5 6 7 8 The deepest TDS path needs only seven levels: texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk 1 2 3 4 5 6 7 Some systems display a modified format of ISO-9660 names, mapping alphabetic characters to lowercase, removing version numbers and trailing periods, etc. Before the December 1996 release, LaTeX used mixed-case names for font descriptor files. Fortunately, it never relied on case alone to distinguish among the files. Nowadays, it uses only monocase names.  File: tds.info, Node: Implementation issues, Next: Is there a better way?, Prev: Unspecified pieces, Up: Top Appendix B Implementation issues ******************************** We believe that the TDS can bring a great deal of order to the current anarchic state of many TeX installations. In addition, by providing a common frame of reference, it will ease the burden of documenting administrative tasks. Finally, it is a necessary part of any reasonable system of true "drop-in" distribution packages for TeX. * Menu: * Adoption of the TDS:: * More on subdirectory searching:: * Example implementation-specific trees::  File: tds.info, Node: Adoption of the TDS, Next: More on subdirectory searching, Up: Implementation issues B.1 Adoption of the TDS ======================= [This section is retained for historical purposes; the TDS is now quite firmly entrenched in most TeX distributions.] We recognize that adoption of the TDS will not be immediate or universal. Most TeX administrators will not be inclined to make the final switch until: * Clear and demonstrable benefits can be shown for the TDS. * TDS-compliant versions of all key programs are available in ported, well-tested forms. * A "settling" period has taken place, to flush out problems. The public release of the first draft of this document was the first step in this process. Consequently, most of the first trials of the TDS will be made by members of the TDS committee and/or developers of TeX-related software. This has already taken place during the course of our deliberations (see Appendix *Note Related references:: for a sample tree available electronically). They will certainly result in the production of a substantial number of TDS-compliant packages. Indeed, the teTeX and TeX Live distributions are TDS-compliant and in use now at many sites. Once installable forms of key TDS-compliant packages are more widespread, some TeX administrators will set up TDS-compliant trees, possibly in parallel to existing production directories. This testing will likely flush out problems that were not obvious in the confined settings of the developers' sites; for example, it should help to resolve system and package dependencies, package interdependencies, and other details not addressed by this TDS version. After most of the dust has settled, hopefully even conservative TeX administrators will begin to adopt the TDS. Eventually, most TeX sites will have adopted the common structure, and most packages will be readily available in TDS-compliant form. We believe that this process will occur relatively quickly. The TDS committee spans a wide range of interests in the TeX community. Consequently, we believe that most of the key issues involved in defining a workable TDS definition have been covered, often in detail. TeX developers have been consulted about implementation issues, and have been trying out the TDS arrangement. Thus, we hope for few surprises as implementations mature. Finally, there are several (current or prospective) publishers of TeX CD-ROMs. These publishers are highly motivated to work out details of TDS implementation, and their products will provide inexpensive and convenient ways for experimentally-minded TeX administrators to experiment with the TDS.  File: tds.info, Node: More on subdirectory searching, Next: Example implementation-specific trees, Prev: Adoption of the TDS, Up: Implementation issues B.2 More on subdirectory searching ================================== Recursive subdirectory searching is the ability to specify a search not only of a specified directory `D', but recursively of all directories below `D'. Since the TDS specifies precise locations for most files, with no extra levels of subdirectories allowed, true recursive searching is not actually required for a TDS-compliant implementation. We do, however, strongly recommend recursive searching as the most user-friendly and natural approach to the problem, rather than convoluted methods to specify paths without recursion. This feature is already supported by many implementations of TeX and companion utilities, for example DECUS TeX for VMS, Dvips(k), emTeX (and its drivers), PubliC TeX, Web2C, Xdvi(k), and Y&YTeX. The Kpathsea library is a reusable implementation of subdirectory searching for TeX, used in a number of the above programs. Even if your TeX implementation does not directly support subdirectory searching, you may find it useful to adopt the structure if you do not use many fonts or packages. For instance, if you only use Computer Modern and AMS fonts, it would be feasible to store them in the TDS layout and list the directories individually in configuration files or environment variables. The TWG recognizes that subdirectory searching places an extra burden on the system and may be the source of performance bottlenecks, particularly on slower machines. Nevertheless, we feel that subdirectory searching is imperative for a well-organized TDS, for the reasons stated in Section *Note Subdirectory searching::. Implementors are encouraged to provide enhancements to the basic principle of subdirectory searching to avoid performance problems, e.g., the use of a filename cache (this can be as simple as a recursive directory listing) that is consulted before disk searching begins. If a match is found in the database, subdirectory searching is not required, and performance is thus independent of the number of subdirectories present on the system. Different implementations specify subdirectory searching differently. In the interest of typographic clarity, the examples here do not use the `REPLACEABLE' font. * Dvips: via a separate `TEXFONTS_SUBDIR' environment variable. * emTeX: `t:\subdir!!'; `t:\subdir!' for a single level of searching. * Kpathsea: `texmf/subdir//' * VMS: `texmf:[subdir...]' * Xdvi (patchlevel 20): `texmf/subdir/**'; `texmf/subdir/*' for a single level of searching. Version 20.50 and above support the `//' notation. * Y&Y TeX: `t:/subdir//' or `t:\subdir\\'.  File: tds.info, Node: Example implementation-specific trees, Prev: More on subdirectory searching, Up: Implementation issues B.3 Example implementation-specific trees ========================================= The TDS cannot specify a precise location for implementation-specific files, such as `texmf/ini', because a site may have multiple TeX implementations. Nevertheless, for informative purposes, we provide here the default locations for some implementations. Please contact us with additions or corrections. These paths are not definitive, may not match anything at your site, and may change without warning. We recommend all implementations have default search paths that start with the current directory (e.g., `.'). Allowing users to include the parent directory (e.g., `..') is also helpful. * Menu: * AmiWeb2c 2.0:: * Public DECUS TeX:: * Web2c 7::  File: tds.info, Node: AmiWeb2c 2.0, Next: Public DECUS TeX, Up: Example implementation-specific trees B.3.1 AmiWeb2c 2.0 ------------------ (Email to contact the maintainer of this implementation.) AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible extent, so only the very few differences are described in this section. Detailed information about the basic concepts is given in the section for Web2c 7 below. Thanks to the `SELFAUTO' mechanism of Kpathsea 3.0 no specific location for the installation of AmiWeb2c is required as long as the general structure of the distribution is preserved. In addition to Kpathsea's `//' notation recursive path search may also be started by `DEVICE:/', e.g., `TeXMF:/' will scan this specific device completely. Binaries coming with the AmiWeb2c distribution are installed in the directory `bin/amiweb2c/' outside the common TDS tree `share/texmf/'. In addition to the set of AmiWeb2c binaries you will find two subdirectories `local/' and `pastex/' with auxiliary programs. A stripped version of the PasTeX system (used by kind permission of Georg Hessmann) is coming with AmiWeb2c, pre-installed in its own `share/texmf/amiweb2c/pastex/' directory. If you want to use PasTeX you have to `assign' the name `TeX:' to this place. Documentation files in AmigaGuide format should be stored at `doc/guide/' similar to `doc/info/'.  File: tds.info, Node: Public DECUS TeX, Next: Web2c 7, Prev: AmiWeb2c 2.0, Up: Example implementation-specific trees B.3.2 Public DECUS TeX ---------------------- If another VMS implementation besides Public DECUS TeX appears, the top level implementation directory name will be modified to something more specific (e.g., `vms_decus'). texmf/ vms/ VMS implementation specific files exe/ end-user commands common/ command procedures, command definition files, etc. axp/ binary executables for Alpha AXP vax/ binary executables for VAX formats/ pool files, formats, bases help/ VMS help library, and miscellaneous help sources mgr/ command procedures, programs, docs, etc., for system management  File: tds.info, Node: Web2c 7, Prev: Public DECUS TeX, Up: Example implementation-specific trees B.3.3 Web2c 7 ------------- All implementation-dependent TeX system files (`.pool', `.fmt', `.base', `.mem') are stored by default directly in `texmf/web2c'. The configuration file `texmf.cnf' and various subsidiary `MakeTeX...' scripts used as subroutines are also stored there. Non-TeX specific files are stored following the GNU coding standards. Given a root directory `PREFIX' (`/usr/local' by default), we have default locations as follows: / installation root (`/usr/local' by default) bin/ executables man/ man pages info/ info files lib/ libraries (`libkpathsea.*') share/ architecture-independent files texmf/ TDS root web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) See `http://www.gnu.org/prep/standards_toc.html' for the rationale behind and descriptions of this arrangement. A site may of course override these defaults; for example, it may put everything under a single directory such as `/usr/local/texmf'.  File: tds.info, Node: Is there a better way?, Next: Related references, Prev: Implementation issues, Up: Top Appendix C Is there a better way? ********************************* Defining the TDS required many compromises. Both the overall structure and the details of the individual directories were arrived at by finding common ground among many opinions. The driving forces were feasibility (in terms of what could technically be done and what could reasonably be expected from developers) and regularity (files grouped together in an arrangement that "made sense"). Some interesting ideas could not be applied due to implementations lacking the necessary support: * Path searching control at the TeX level. If documents could restrict subdirectory searching to a subdirectory via some portable syntax in file names, restrictions on uniqueness of filenames could be relaxed considerably (with the cooperation of the formats), and the TeX search path would not need to depend on the format. * Multiple logical `texmf' trees. For example, a site might have one (read-only) location for stable files, and a different (writable) location for dynamically-created fonts or other files. It would be reasonable for two such trees to be logically merged when searching. See Michael Downes' article in the references for how this can work in practice with Web2C. * Menu: * Macro structure:: * Font structure:: * Documentation structure::  File: tds.info, Node: Macro structure, Next: Font structure, Up: Is there a better way? C.1 Macro structure =================== The TWG settled on the `FORMAT/PACKAGE' arrangement after long discussion about how best to arrange the files. The primary alternative to this arrangement was a scheme which reversed the order of these directories: `PACKAGE/FORMAT'. This reversed arrangement has a strong appeal: it keeps all of the files related to a particular package in a single place. The arrangement actually adopted tends to spread files out into two or three places (macros, documentation, and fonts, for example, are spread into different sections of the tree right at the top level). Nevertheless, the `FORMAT/PACKAGE' structure won for a couple of reasons: * It is closer to current practice; in fact, several members of the TWG have already implemented the TDS hierarchy. The alternative is not in use at any known site, and the TWG felt it wrong to mandate something with which there is no practical experience. * The alternative arrangement increases the number of top-level directories, so the files that must be found using subdirectory searching are spread out in a wide, shallow tree. This could have a profound impact on the efficiency of subdirectory searching.  File: tds.info, Node: Font structure, Next: Documentation structure, Prev: Macro structure, Up: Is there a better way? C.2 Font structure ================== The TWG struggled more with the font directory structure than anything else. This is not surprising; the need to use the proliferation of PostScript fonts with TeX is what made the previous arrangement with all files in a single directory untenable, and therefore what initiated the TDS effort. * Menu: * Font file type location:: * Mode and resolution location:: * Modeless bitmaps::  File: tds.info, Node: Font file type location, Next: Mode and resolution location, Up: Font structure C.2.1 Font file type location ----------------------------- We considered the supplier-first arrangement in use at many sites: texmf/fonts/SUPPLIER/TYPEFACE/TYPE/ This improves the maintainability of the font tree, since all files comprising a given typeface are in one place, but unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find a `TFM' file, the simplest implementation would require TeX to search through all the directories that contain PK files in all modes and at all resolutions. In the end, a poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this arrangement was abandoned. The TDS arrangement allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do without abandoning subdirectory searching entirely. We also considered segregating all font-related files strictly by file type, so that Metafont sources would be in a directory `texmf/fonts/mf', property list files in `texmf/fonts/pl', the various forms of Type 1 fonts separated, and so on. Although more blindly consistent, we felt that the drawback of more complicated path constructions outweighed this. The TDS merges file types (`mf' and `pl' under `source', `pfa' and `pfb' and `gsf' under `type1') where we felt this was beneficial.  File: tds.info, Node: Mode and resolution location, Next: Modeless bitmaps, Prev: Font file type location, Up: Font structure C.2.2 Mode and resolution location ---------------------------------- We considered having the `mode' at the bottom of the font tree: texmf/fonts/pk/SUPPLIER/TYPEFACE/MODE/DPI/ In this case, however, it is difficult to limit subdirectory searching to the mode required for a particular device. We then considered moving the `dpiNNN' up to below the mode: texmf/fonts/pk/MODE/DPI/SUPPLIER/TYPEFACE/ But then it is not feasible to omit the `dpiNNN' level altogether on systems which can and do choose to use long filenames.  File: tds.info, Node: Modeless bitmaps, Prev: Mode and resolution location, Up: Font structure C.2.3 Modeless bitmaps ---------------------- The TDS specifies using a single directory `modeless/' as the mode name for those utilities which generate bitmaps, e.g., `texmf/fonts/modeless/times/'. This has the considerable advantage of not requiring each such directory name to be listed in a search path. An alternative was to use the utility name below which all such directories could be gathered. That has the advantage of separating, say, `gsftopk'-generated bitmaps from `ps2pk'-generated ones. However, we decided this was not necessary; most sites will use only one program for the purpose. Also, PK and GF fonts generally identify their creator in the font comment following the `PK_ID' byte. We are making an implicit assumption that Metafont is the only program producing mode-dependent bitmaps. If this becomes false we could add an abbreviation for the program to mode names, as in `mfcx' vs. `xyzcx' for a hypothetical program Xyz, or we could at that time add an additional program name level uniformly to the tree. It seemed more important to concisely represent the current situation than to worry about hypothetical possibilities that may never happen.  File: tds.info, Node: Documentation structure, Prev: Font structure, Up: Is there a better way? C.3 Documentation structure =========================== We considered placing additional documentation files in the same directory as the source files for the packages, but we felt that users should be able to find documentation separately from sources, since most users have no interest in sources. We hope that a separate, but parallel, structure for documentation would (1) keep the documentation together and (2) make it as straightforward as possible for users to find the particular documentation they were after.  File: tds.info, Node: Related references, Next: Contributors, Prev: Is there a better way?, Up: Top Appendix D Related references ***************************** This appendix gives pointers to related files and other documents. For CTAN references, we use `http://www.ctan.org' as the top-level domain only to make the links be live in this document. See `http://www.ctan.org/tex-archive/CTAN.sites' for a complete list of CTAN sites; there are mirrors worldwide. * This document, in many formats (tex, dvi, info, pdf): `http://tug.org/tds/' * The TDS mailing list archives: `http://tug.org/mail-archives/twg-tds/' * The level 0 DVI driver standard: `http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/' * `Filenames for TeX fonts', with lists of recommended supplier and typeface names: `http://tug.org/fontname/' * ISO-9660 CD-ROM file system standard: `http://www.iso.ch/cate/cat.html' * `Components of TeX', a paper by Joachim Schrod: `http://www.ctan.org/tex-archive/documentation/components-of-TeX/' * `Managing Multiple TDS trees', an article by Michael Downes: `http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf' * A complete set of Metafont modes: `http://www.ctan.org/tex-archive/fonts/modes/modes.mf' * A large collection of BibTeX databases and styles: `ftp://ftp.math.utah.edu/pub/tex/bib/'  File: tds.info, Node: Contributors, Prev: Related references, Up: Top Appendix E Contributors *********************** The TWG has had no physical meetings; electronic mail was the communication medium. Sebastian Rahtz is the TeX Users Group Technical Council liaison. Norman Walsh was the original committee chair. Karl Berry is the current editor. The list of contributors has grown too large to fairly include, as some would surely be inadvertently omitted. Please consider the archives of the and mailing lists as the record of contributions.  Tag Table: Node: Top198 Node: Introduction2185 Node: History3846 Node: The role of the TDS4648 Node: Conventions5508 Node: General6429 Node: Subdirectory searching6714 Node: Rooting the tree8968 Node: Local additions10080 Node: Duplicate filenames12293 Node: Top-level directories14054 Node: Macros17062 Node: Extensions20919 Node: Fonts22645 Node: Font bitmaps26786 Node: Valid font bitmaps29674 Node: Non-font Metafont files30882 Node: MetaPost31842 Node: BibTeX33286 Node: Scripts34155 Node: Documentation35872 Node: Summary38145 Node: Documentation tree summary41031 Node: Unspecified pieces43056 Node: Portable filenames44267 Node: Implementation issues46409 Node: Adoption of the TDS47041 Node: More on subdirectory searching49753 Node: Example implementation-specific trees52568 Node: AmiWeb2c 2.053447 Node: Public DECUS TeX54889 Node: Web2c 755752 Node: Is there a better way?56974 Node: Macro structure58480 Node: Font structure59816 Node: Font file type location60369 Node: Mode and resolution location61946 Node: Modeless bitmaps62625 Node: Documentation structure63915 Node: Related references64543 Node: Contributors65959  End Tag Table tex-common-4.04/doc/tds-1.1/Makefile0000644000000000000000000000227112157017604013716 0ustar # $Id: Makefile,v 1.5 2004/04/04 00:14:59 karl Exp karl $ # Makefile for tds, by Karl Berry. # Public domain. default all: tds.info tds.html tds.dvi tds.pdf tds.dvi: tds.tex tdsguide.cls latex '\nonstopmode \input tds' tds.pdf: tds.tex tdsguide.cls pdflatex '\nonstopmode \input tds' tds.texi: tds.texi.tmp tds.sed sed -f tds.sed $< >$@ tds.texi.tmp: tds.tex tds2texi.el emacs -q --no-site -batch -l tds2texi.el -f tds2texi-convert --eval '(write-file "$@")' tds.info: tds.texi makeinfo --no-split $< tds_toc.html: tds.texi /usr/local/gnu/bin/texi2html texi2html -split_node -menu $< tds.html: tds.texi makeinfo --number-sections --html --no-split $< check: dw /tmp/diff rm -f tds.texi* *~ rm -f tds.cp tds.fn tds.ky tds.pg tds.tp tds.vr tds.log tds.toc tar cvvzf /tmp/tds.tar.gz C* M* tds* index.html packages.zip # shar -z tds.dvi >/tmp/shar # @echo "Now ci -l -m'version' tds.tex and increment the tdsVersion." tex-common-4.04/doc/tds-1.1/tds2texi.el0000644000000000000000000005216212157017604014352 0ustar ;;; tds2texi.el --- convert TDS draft from LaTeX to Texinfo ;; Copyright (C) 1996, 1999, 2003, 2004 Ulrik Vieth and the TeX Users Group. ;; This programm is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have a copy of the GNU General Public License; see the ;; file COPYING. If not, write to the Free Software Foundation, Inc., ;; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ;; Author: Ulrik Vieth ;; Maintainer: karl@mail.tug.org ;; Version: $Id: tds2texi.el,v 1.12 2004/06/04 17:25:49 karl Exp $ ;; Keywords: TDS, LaTeX, Texinfo, Info, HTML, tex, maint ;;; Commentary: ;; Description: ;; ;; This file provides a limited LaTeX-to-Texinfo conversion function ;; `tds2texi-convert' which is intended to convert the LaTeX ;; source of the TDS draft document `tds.tex', using a couple of ;; special markup tags defined in the document class `tdsguide.cls'. ;; It is definitely *not* suitable to be used as a general-purpose ;; LaTeX-to-Texinfo converter and is not intended to be used as such. ;; ;; Usage (also see the Makefile): ;; ;; 0. load or autoload this file, e.g: (load-library "tds2texi") ;; ;; 1. go to a directory containing `tds.tex', e.g. in dired mode ;; ;; 2. run M-x tds2texi-convert -- this does all the conversion and ;; leaves you in a buffer `tds.texi' containing the converted file ;; ;; 3. edit the buffer if necessary and save it -- you will be asked ;; for a file name (which should be `tds.texi', of course) ;; ;; 4. run M-x makeinfo-buffer or invoke makeinfo and/or texi2html ;; from the shell -- don't try texi2dvi, it may work all right, ;; but it's not recommended since it will only cause confusion ;; with the DVI file created from the original LaTeX source! ;; ;; Bugs: ;; ;; * whitespace (esp. blank lines) before and after environments ;; will be inconsistent (should be fixed in the LaTeX version!) ;; ;; * whitespace (esp. indentation) in tdsSummary environments ;; will be inconsistent (should be fixed in the LaTeX version!) ;; ;; * labels are references are assumed to coincide with names ;; of @nodes -- this is not always true, e.g. for MF vs. \MF{} ;; ;; * the last comma in the list of contributors should be a period ;; ;; * the list of contributors should be handled in a better way ;; (currently: LaTeX tabbing -> @quotation -> HTML

) ;; ;; * the contents of the top node may get lost in the texi2html ;; conversion under some circumstances, or else it may end up ;; in the wrong split file -- this seems to be a texi2html bug ;; ;; History: ;; ;; v 0.0 -- 1996/01/23 UV created ;; v 0.1 -- 1996/01/24 UV first rough version, posted to twg-tds ;; v 0.2 -- 1996/01/24 UV added some commentary and doc strings ;; v 0.3 -- 1996/01/25 UV modularized code, handle header and trailer, ;; call texinfo routines for @nodes and @menus ;; v 0.4 -- 1996/01/27 UV slightly touched-up and some doc fixes, ;; improved handling of legalnotice header ;; v 0.5 -- 1996/01/28 UV more documentation added, code freeze ;; ;; v 1.0 -- 1996/02/20 UV renamed to tds2texi, bumped version number, ;; also fixed a minor typo in "@item samp" ;; v 1.1 -- 1996/11/12 KB no node pointers, no double blank line after ;; sections, allow braces after abbrevs. ;; v 1.2 -- 1996/11/16 KB ??? (see ChangeLog) ;; v 1.3 -- 1996/11/18 UV added translation for umlaut accents, ;; added tds2texi-direntry header lines, ;; added function tds2texi-fixup-texinfo, ;; fixed bug when combining multiple "@file"s. ;;; Code: (require 'texinfo) ; needed to update @nodes and @menus ;; file name variables (defvar tds2texi-source-file "tds.tex" "File name of TDS LaTeX source to be converted.") (defvar tds2texi-target-file "tds.texi" "File name of TDS Texinfo source to be created.") (defvar tds2texi-filename "tds.info" "File name of Info file to be inserted in Texinfo header.") (defvar tds2texi-direntry (concat "@dircategory TeX\n" "@direntry\n" "* TeX Directories: (tds). A directory structure for TeX files.\n" "@end direntry\n")) ;; translation tables (defvar tds2texi-logos-alist '(("{\\TeX}" . "TeX") ; when only doing Info ("\\TeX{}" . "TeX") ; no need to use "@TeX{}" ("{\\LaTeX}" . "LaTeX") ("\\LaTeX{}" . "LaTeX") ("{\\LaTeXe}" . "LaTeX2e") ("\\LaTeXe{}" . "LaTeX2e") ("{\\AmS}" . "AMS") ("\\AmS{}" . "AMS") ("{\\AMSTeX}" . "AMS-TeX") ("\\AMSTeX{}" . "AMS-TeX") ("\\MF{}" . "Metafont") ("\\MP{}" . "MetaPost") ("\\BibTeX{}" . "BibTeX") ("{\\iniTeX}" . "INITEX") ("\\iniTeX{}" . "INITEX") ("{\\iniMF}" . "INIMF") ("\\iniMF{}" . "INIMF") ("{\\iniMP}" . "INIMP") ("\\iniMP{}" . "INIMP") ("{\\PS}" . "PostScript") ("\\PS{}" . "PostScript") ("{\\copyright}" . "@copyright{}") ) "List of TeX logos and their replacement text after conversion.") (defvar tds2texi-logos-regexp-1 "\\(\\\\[A-Za-z]+{}\\)" "Regexp for TeX logos to be converted using `tds2texi-logos-alist'.") (defvar tds2texi-logos-regexp-2 "\\({\\\\[^}]+}\\)" "Regexp for TeX logos to be converted using `tds2texi-logos-alist'.") ;; (defvar tds2texi-tags-alist '(("\\emphasis" . "@emph") ("\\citetitle" . "@cite") ("\\literal" . "@file") ("\\replaceable" . "@var") ("\\command" . "@code") ; defined, but not used ;; ("\\application" . "@r") ; unnecessary, but ... ;; ("\\abbr" . "@sc") ; unnecessary, but ... ) "List of markup tags and their replacement text after conversion.") (defvar tds2texi-tags-regexp "\\(\\\\[a-z]+\\)" "Regexp for markup tags to be converted using `tds2texi-tags-alist'.") ;; (defvar tds2texi-env-alist '(("\\begin{ttdisplay}" . "@example") ("\\end{ttdisplay}" . "@end example") ("\\begin{tdsSummary}" . "@example") ("\\end{tdsSummary}" . "@end example") ("\\begin{enumerate}" . "@enumerate") ("\\end{enumerate}" . "@end enumerate") ("\\begin{enumerate-squeeze}" . "@enumerate") ("\\end{enumerate-squeeze}" . "@end enumerate") ("\\begin{itemize}" . "@itemize @bullet") ("\\end{itemize}" . "@end itemize") ("\\begin{itemize-squeeze}" . "@itemize @bullet") ("\\end{itemize-squeeze}" . "@end itemize") ("\\begin{description}" . "@itemize @bullet") ("\\end{description}" . "@end itemize") ("\\begin{description-squeeze}" . "@itemize @bullet") ("\\end{description-squeeze}" . "@end itemize") ("\\begin{legalnotice}" . "@titlepage") ; special hack ("\\end{legalnotice}" . "@end titlepage") ("\\begin{tabbing}" . "@quotation") ; special hack ("\\end{tabbing}" . "@end quotation") ) "List of environments and their replacement text after conversion.") (defvar tds2texi-env-regexp "\\(\\\\\\(begin\\|end\\){[^}]+}\\)" "Regexp for environments to be converted using `tds2texi-env-alist'.") ;;; some utility functions (defun tds2texi-string-replace (x-string x-replace) "Searches for occurences of X-STRING, replacing them by X-REPLACE." (save-excursion (while (search-forward x-string nil t) (replace-match x-replace t t)))) ; use fixed case! (defun tds2texi-regexp-replace (x-regexp x-replace) "Searches for occurences of X-REGEXP, replacing them by X-REPLACE." (save-excursion (while (re-search-forward x-regexp nil t) (replace-match x-replace t nil)))) ; use fixed case! (defun tds2texi-alist-replace (x-regexp x-alist) "Searches for ocurrences of X-REGEXP, replacing them using X-ALIST. If no match is found in X-ALIST, leaves the original text unchanged." (save-excursion (let (x-match x-replace) (while (re-search-forward x-regexp nil t) (setq x-match (match-string 1)) (setq x-replace (or (cdr (assoc x-match x-alist)) x-match)) (replace-match x-replace t t))))) ; use fixed case! ;;; the main conversion function (defun tds2texi-convert () "Have a try at converting LaTeX to Texinfo. Good luck!" (interactive) ;; get a buffer to operate on and insert the LaTeX source (set-buffer (get-buffer-create tds2texi-target-file)) (erase-buffer) (insert-file-contents-literally tds2texi-source-file) ;; tab characters can mess up tds-summary envrionments, ;; so get rid of them as soon as possible (untabify (point-min) (point-max)) (goto-char (point-min)) ;; do the conversion steps for the text body (tds2texi-do-simple-tags) ; mostly general (tds2texi-do-fancy-logos) ; mostly specific to TDS (tds2texi-do-sectioning) ; mostly general (tds2texi-do-markup-tags) ; mostly specific to TDS (tds2texi-do-environments) ; partly specific to TDS ;; do the conversion for header and trailer (tds2texi-do-header) ; partly specific to TDS (tds2texi-do-trailer) ; partly specific to TDS ;; standard Texinfo functions ; (texinfo-every-node-update) ; I don't like the extra node pointers. (texinfo-all-menus-update) (texinfo-master-menu nil) (tds2texi-fixup-texinfo) ;; all that's left to do is saving the buffer to a file ;; -- we simply select the buffer and leave saving it to ;; the user in case some manual intervention is needed (switch-to-buffer tds2texi-target-file) ) ;;; various steps of the conversion process (defun tds2texi-do-simple-tags () "First step of \\[tds2texi-convert]. Not useable by itself." ;; literal `@' -- should come before anything else, since it's ;; the Texinfo control character. (tds2texi-regexp-replace "\\([^\\\\]\\)@" "\\1@@") ;; fancy spacing -- should come early before we have many `@' ;; "\@" -- space factor corrections before sentence end `.' (tds2texi-regexp-replace "\\\\@\\." "@.") ;; "\ " -- control space after `.' in the middle of sentences. Also ;; converts \\ to \. (tds2texi-regexp-replace "\\.\\\\\\([ \n]+\\)" ".@:\\1") ;; "\ " -- control space used otherwise (tds2texi-regexp-replace "\\\\\\([ \n]+\\)" "\\1") ;; "\," -- thin space used with dimensions like "dpi" or "pt" (tds2texi-regexp-replace "\\\\,\\([a-z]+\\)" "@dmn{\\1}") ;; "\\" -- forced line breaks in references, where it's always ;; preceded by a :. Previous "\ " conversion reduced \\ to \. (tds2texi-string-replace ":\\ " ":@*\n") ;; "\"" -- accents etc.: (tds2texi-string-replace "\\\"" "@\"") (tds2texi-string-replace "\\ss" "@ss") ;; special TeX characters that needn't be quoted in Texinfo: (tds2texi-string-replace "\\_" "_") (tds2texi-string-replace "\\&" "&") (tds2texi-string-replace "\\%" "%") ;; special TeX characters that we prefer to transliterate: (tds2texi-regexp-replace "\\\\slash[ ]*" "/") ;; we could translate $...$ into @math{...}, but why bother ;; when we can transliterate it easily? (tds2texi-string-replace "$" "") (tds2texi-string-replace "\\pm" "+-") ) (defun tds2texi-do-fancy-logos () "Second step of \\[tds2texi-convert]. Not useable by itself." ;; fancy TeX logos -- these are used in arguments of sections, ;; so we have to do them early before doing sectioning commands. (tds2texi-alist-replace tds2texi-logos-regexp-1 tds2texi-logos-alist) (tds2texi-alist-replace tds2texi-logos-regexp-2 tds2texi-logos-alist) ;; acronyms -- these are also used in arguments of sections. ;; There's no need to use @sc markup, just upcase the argument. (save-excursion (while (re-search-forward "\\\\abbr{\\([^}]+\\)}" nil t) (replace-match (upcase (match-string 1)) nil t))) ;; applications -- similar to acronyms, so done here as well. ;; There's no need to use @r markup either, it's the default! (tds2texi-regexp-replace "\\\\application{\\([^}]+\\)}" "\\1") ) (defun tds2texi-do-sectioning () "Third step of \\[tds2texi-convert]. Not useable by itself." ;; first do @chapter and @appendix by narrowing (save-excursion (save-restriction (narrow-to-region (point-min) (search-forward "\\appendix" nil t)) (goto-char (point-min)) (tds2texi-regexp-replace "\\\\section{\\([^}]+\\)}[ ]*" "@node \\1\n@chapter \\1") )) (save-excursion (save-restriction (narrow-to-region (search-forward "\\appendix" nil t) (point-max)) (tds2texi-regexp-replace "\\\\section{\\([^}]+\\)}[ ]*" "@node \\1\n@appendix \\1") )) ;; @section and @subsection are just shifted a level up (tds2texi-regexp-replace "\\\\subsection{\\([^}]+\\)}[ ]*" "@node \\1\n@section \\1") (tds2texi-regexp-replace "\\\\subsubsection{\\([^}]+\\)}[ ]*" "@node \\1\n@subsection \\1") ;; now we no longer need \appendix as a marker (tds2texi-regexp-replace "\\\\appendix[ ]*\n" "") ;; \newpage can go as well (tds2texi-regexp-replace "%?\\\\newpage[ ]*\n" "") ;; \labels are redundant since we have @nodes (tds2texi-regexp-replace "\\\\label{sec:\\([^}]+\\)}[ ]*\n" "") ;; \refs now refer to @nodes instead of \labels (tds2texi-regexp-replace "\\\\ref{sec:\\([^}]+\\)}" "@ref{\\1}") ) (defun tds2texi-do-markup-tags () "Fourth step of \\[tds2texi-convert]. Not usable by itself." ;; special tags -- for \CTAN, we must used fixed-case replace! (tds2texi-string-replace "\\the\\tdsVersion" "@value{version}") (tds2texi-string-replace "\\texmf{}" "@file{texmf}") (tds2texi-string-replace "\\CTAN:" "@file{@var{CTAN}:}") ;; convert simple tags without expanding their arguments: ;; \emphasis, \citetitle, \literal, \replaceable (tds2texi-alist-replace tds2texi-tags-regexp tds2texi-tags-alist) ;; \\systemitem -- a silly tag with an extra argument that ;; isn't printed. It is used exactly once! (tds2texi-regexp-replace "\\\\systemitem{\\([^}]+\\)}{\\([^}]+\\)}" "@file{\\2}") ;; \path, \url -- here we can't avoid shuffling the argument (tds2texi-regexp-replace "\\\\path|\\([^|]+\\)|" "@file{\\1}") (tds2texi-regexp-replace "\\\\url|\\([^|]+\\)|" "@uref{\\1}") (tds2texi-regexp-replace "\\\\email|\\([^|]+\\)|" "@email{\\1}") ;; After turning \replaceable into @var above we now have to ;; turn @var{...} into @file{@var{...}} to get quotation marks ;; around file names consistent. (Read: those extra quotation ;; marks inserted automatically by makeinfo in the @file tag.) ;; For simplicity we first do the change everywhere and then ;; undo it again inside `ttdisplay' environments, where we ;; can leave @var by itself as @file isn't used there anyway. (tds2texi-regexp-replace "@var{\\([^}]+\\)}" "@file{@var{\\1}}") (save-excursion (while (search-forward "\\begin{ttdisplay}" nil t) (save-restriction (narrow-to-region (point) (search-forward "\\end{ttdisplay}" nil t)) (goto-char (point-min)) (tds2texi-regexp-replace "@file{@var{\\([^}]+\\)}}" "@var{\\1}") ))) ;; eliminate redundant quotation marks around @file (tds2texi-regexp-replace "``\\(@file{[^}]+}\\)''" "\\1") (tds2texi-regexp-replace "`\\(@file{[^}]+}\\)'" "\\1") ;; ... and combine multiple @file{}s in one line (tds2texi-regexp-replace "@file{\\([^ ]+\\)}@file{\\([^ ]+\\)}@file{\\([^ ]+\\)}" "@file{\\1\\2\\3}") (tds2texi-regexp-replace "@file{\\([^ ]+\\)}@file{\\([^ ]+\\)}" "@file{\\1\\2}") ;; ... also simplify cases of nested @file{}s (tds2texi-regexp-replace "@file{@file{\\([^ ]+\\)}\\([^ ]+\\)}" "@file{\\1\\2}") ;; literal `~' -- if it hasn't been converted to space earlier, ;; we can now do the conversion to @w{word1 word2} without ;; running the risk of confusion the regexp matcher somewhere. ;; Unfortunately @w will get lost again in the HTML conversion ;; because   or   are not yet standard HTML tags. (tds2texi-string-replace "~" "@tie{}") ) (defun tds2texi-do-environments () "Fifth step of \\[tds2texi-convert]. Not useable by itself." ;; convert \begin and \end of environments (tds2texi-alist-replace tds2texi-env-regexp tds2texi-env-alist) ;; convert \items (tds2texi-string-replace "\\item" "@item") ;; insert newlines after description items where appropriate (tds2texi-regexp-replace "@item\\[\\([^]]+\\)\\][ ]*\n" "@item \\1\n") (tds2texi-regexp-replace "@item\\[\\([^]]+\\)\\][ ]*" "@item \\1\n") ;; insert newlines after @item @file, also replace @item @file ;; by @item @samp -- this is done because it may look nicer ;; in the HTML version, but it depends on the style sheet used (tds2texi-regexp-replace "@item @file\\([^,\n]*\\),[ ]*" "@item @samp\\1,\n") (tds2texi-regexp-replace "@item @file" "@item @samp") ) ;;; handling the header and trailer (defun tds2texi-do-header () "Convert LaTeX header to Texinfo. Used in \\[tds2texi-convert]." (let (title-string author-string version-string) ;; collect information (save-excursion (re-search-forward "\\\\tdsVersion{\\(.*\\)}" nil t) (setq version-string (match-string 1)) (re-search-forward "\\\\title{\\(.*\\)}" nil t) (setq title-string (match-string 1)) (re-search-forward "\\\\author{\\(.*\\)}" nil t) (setq author-string (match-string 1)) ) ;; discard information lines (tds2texi-regexp-replace "\\\\title{.*}[ ]*\n" "") (tds2texi-regexp-replace "\\\\author{.*}[ ]*\n" "") (tds2texi-regexp-replace "\\\\tdsVersion{.*}[ ]*\n\n" "") ;; discard pre-title lines (tds2texi-regexp-replace "%&latex[ ]*\n" "") (tds2texi-regexp-replace "\\\\NeedsTeXFormat.*\n" "") ;; convert \documentclass to \input texinfo (tds2texi-regexp-replace "\\\\documentclass.*\n\n" "\\\\input texinfo\n") ;; insert Texinfo header lines (save-excursion (goto-char (search-forward "texinfo\n" nil t)) (insert "@setfilename " tds2texi-filename "\n") (insert "@settitle " title-string "\n\n") (insert "@set version " version-string "\n\n") (insert tds2texi-direntry "\n") ) ;; discard \begin{document} and \maketitle (tds2texi-regexp-replace "\\\\begin{document}[ ]*\n\n" "") (tds2texi-regexp-replace "\\\\maketitle[ ]*\n\n" "") ;; copy contents of `legalnotice' environments (save-excursion (let ((begin (search-forward "@titlepage\n\n" nil t)) (end (progn (search-forward "@end titlepage" nil t) (match-beginning 0)))) (copy-region-as-kill begin end) )) ;; insert stuff for title page before `legalnotice' environment ;; -- \begin{legalnotice} has been converted to @titlepage (save-excursion (goto-char (search-forward "@titlepage\n" nil t)) (insert "@title " title-string "\n") (insert "@subtitle Version @value{version}\n") (insert "@author " author-string "\n\n") (insert "@page\n@vskip 0pt plus 1filll\n") ) ;; insert stuff for @node Top and master menu after `legalnotice' ;; -- \end{legalnotice} has been converted to @end titlepage (save-excursion (goto-char (search-forward "@end titlepage\n\n" nil t)) (insert "@ifnottex\n") (insert "@node Top\n@top " title-string "\n\n") ;; insert contents of `legalnotice' copied above (yank) ; should include a "\n\n" at the end (insert "@menu\n@end menu\n") (insert "@end ifnottex\n\n") ) ;; discard \tableofcontents -- @contents belongs in the trailer (tds2texi-regexp-replace "\\\\tableofcontents[ ]*\n\n" "") )) (defun tds2texi-do-trailer () "Convert LaTeX trailer to Texinfo. Used in \\[tds2texi-convert]." ;; The list of contributors is a LaTeX tabbing environment, which ;; is difficult to convert -- we convert it to a normal paragraph ;; inside a @quotation environment, so it gets indented a little. ;; Conversion of the tabbing environment is already done elsewhere, ;; so we just have to remove some redundant tags. ;; discard alignment preamble consisting of lines starting with ;; \hspace{0.25\linewidth}. We use \hspace in other places too. (tds2texi-regexp-replace "\\\\hspace.*\n" "") ;; convert "\>" and "\\" in tabbing environment to comma (tds2texi-regexp-replace " +\\\\>[ ]*" ", ") ;; In the earlier conversion of "\ ", "\\" followed by newline ;; was already converted to "\", so we just have to convert ;; the remaining instances of "\" followed by space or newline. (tds2texi-regexp-replace "\\s +\\\\\\s +" ", ") ;; convert \end{document} to @contents and @bye (tds2texi-string-replace "\\end{document}" "@iftex\n@contents\n@end iftex\n@bye") ) (defun tds2texi-fixup-texinfo () "Fix up a few last-minute items. Used in \\[tds2texi-convert]." ;; Fix the reference to the node name with the logo. (tds2texi-string-replace "Non-font MF" "Non-font Metafont") ) ;;; tds2texi.el ends here tex-common-4.04/doc/tds-1.1/tds.pdf0000644000000000000000000057543512157017604013564 0ustar %PDF-1.4 3 0 obj << /Length 2310 /Filter /FlateDecode >> stream xZ[s۸~ϯYa A%Nd3klf>msVUm3"B|/d6P^§(WJd)d':Uy5I3Ȥu=^vfmX4kHT֏&ZT3r4~VբlhGH2J܌& ZU@AW8Tj07[MpI 's 3gGP[Lw$"f ,oS"n4U>2TjtC5ِC2nHTi+MI+MmDѐ[ܒ6-5Yߵ`KM-lUK ȂO"Ҥ,;v:f+h5s쁺HW(@WrZ3ǡkY/T6@1n 8:Y Ʈ@Ufɢ@]yJsW;fBQn89Cu*A<uɇEhCӈ)!b{,б邅J`:k777mPW`[ wjDǕ67nnPrX`#*Ȓ`hezc&CCF4)1.ZAH!z@X%4,~Ux&:`RE-u:L M 0d[I 1ļ ;wIoJ ^@CB)BB.h;BjdSv~I3=W{RGo }„\MA>GsvE1W/ⅉrmZvG5t0Bh0J}1yD22?BbN@'Ve/&yNj6ELrU,KӺUdG, +֓EyG,!I֚IY`P]1kTVPg8{=Q_8Biy$C?v='+\)S-a;vv^óo`ST&9kuXCl;ؙ0KgZL?`laGn7mQ:U '*QR>XOqÇؽ9.1*. X"~pFOLw6bY8;#JцP?}QdsѡK~*Ecͦ.ro*: out|;^z40HEM|^PGThz\^^@WCjendstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 1 0 obj << /Font << /F15 6 0 R /F16 9 0 R /F8 12 0 R /F14 15 0 R /F25 18 0 R /F26 21 0 R /F27 24 0 R /F29 27 0 R /F30 30 0 R /F31 33 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 40 0 obj << /Length 3483 /Filter /FlateDecode >> stream xڥ]}їYE+}M$:[$Gv): XIp8/EXzq]YyH$L ܿy\iO8~TZDEfyUEb~obs-B](͝Qyhy\+A` 26)vL0 Q"+*Nr"@ba|X_$a 'q$yP,q-Cf}&v +ʋH%CF.,Џ< WU-@3=jx ngAe;aªdȞe!v v_1&< ۄUEf g0W 20~l'K[vLp:Xat*8.~ Ep'y#Xe5">f%'UܱX(ㄞ$. PnUS B|l[&Gdž?g#2b,bϰxHEea qnUfN ѼAY#OdkKg=k.rpUh#%ktGnQc(F0_8k\3tX  +͋x*QaVqJSq8o9%ea P=k4E*dZ:fT.sGˋzʃ3nǺkxK$3(!쬁/x 1诺m`bG΢WL@1N1@ɏKDh6a)xTO ʟ1H\rXaswk ɻcIb {3V7FP<|aXߢSDHt(%8 c~'a:wٝ*Pg 2:T"F).PK t->+]FG z\_!Da +.2;RrjBMNA"pSk6`9<7x.[r ~P1QΣϩ)4DOn=a2  CL1?r8'I0`  ]! Gj +}=MRp`_Du! +*z.bQ3kG8\"Jtа.Kxzޞ8hJg9SpyUy|Wjq[ed2; KT G)/. 9.l~,wN&1aQFQݒyScI]SOq`9J](GtPOyQkߋ\z6Ե;r~@*mӒсPÞ_ki^hG>$ή9(sW)WrI:1PZ ]rάGӎ? ;<ŶPoDUjV #WDy|$Ō/7`n=ܻe؁9ɠw߂GbW;͊ +1Ig,;ՠrt8-BljI!\6(xw}m$\4p=Fp0&1j'uѥ%Klp8}58o_]aĆq" .# (`u+#Kbgendstream endobj 39 0 obj << /Type /Page /Contents 40 0 R /Resources 38 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 38 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F14 15 0 R /F27 24 0 R /F25 18 0 R /F30 30 0 R >> /ProcSet [ /PDF /Text ] >> endobj 43 0 obj << /Length 3497 /Filter /FlateDecode >> stream xڥZY6~_aI@g@%ёtw~EJܓY,hIk-L>oEc+x%~OXg /H4V5jQ"'>pZwp*Vk-jk_+ Xilɪ[I?؏K <oVdt'%SAWE*]nfjX3@r|1'A5LD |La#rڝz9RKdh p`;c? i,`zĉ4%uz[(S4 oŤ |&I_K^sLX>(ۡnf_huG~e hUO] a [qY;(7kxHɤb"+UN/6O~\h#S1_`aMkך(ѳdsS>ˎ;p#8IʱZBWKyx^$r2zZ2%) 3p{|QV3S)i !Tym&60BZ:/5}1c`'Vkc &NEFbOQ&N*Mb,WcA?|@[Q a_\.`Q/y_O.P'8-0DSZЫ,j4Xv)|kOP Wc)Z@b =(4f5GQ mm SY:=tM#=\7 %{ @po]NPvtd gz*(=r&$?Kj!(,$H(zywQ  mT9}4=E#gA``lb 'V ;]r0v}ɯI9^G!)h1zA8hI)2?-[>ob@i4 {2?P)n}kA(7/P5O>,Z$_A{Hk5(Mv5ř2!y=,hj0مzp*c}tHQNNa >C^n*kavf;~%jKnWڞ-{sN$b}]}A@nxYhZ2d /$p_=;؅o1GN^TGKi4}Rx0q֏}NRH12bQݗ !o"J#q9*nFX.\c56-f0?kِXR`*o] j y2PU/KM>:KUR_G/:;ܡs竒If$җgxr9B +@ԖM<)m5;goU0*%_.໼x% Qe zkRXi O;" (w=ےix)CuM+lsBTy8dFxHR7]4ɉ+s>$"yM׀X@\Rf M;>@/55:*q/}e2|9ZP?^sq2,#tS~ъQMގ| orKNh=&Y7+%{:K·?wBD6K֞cQ$ ?RhO30vWM4q rTB&Na$Jwc߽t^NA"q8Mqg9o<2cmR4y Vj S]N6V8$7rQ8-mx:$/0{E\ (|`Z 0a ^"d=1ypY>^R,Z0AK$I a?_Vd\:,E v"kNR{6t.tu%DP8=p zrujB?-u6])-ڪJ˪q$DkTދ:E1x(OXn@_i5 Yendstream endobj 42 0 obj << /Type /Page /Contents 43 0 R /Resources 41 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 41 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F27 24 0 R /F31 33 0 R /F26 21 0 R /F25 18 0 R /F7 36 0 R /F11 46 0 R /F14 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 49 0 obj << /Length 3659 /Filter /FlateDecode >> stream xڥZ[~_!\pxMZA$)5E*$e{{n3$Ez0%ggΜwt,6a$J`g3x/o1޻ ʮچ{M${?w)7w2YyϾY9߅:U^߽b WpmVY!v(Q@,Iook{U{N%>$teG l_E&$_㡳V_ $z+ x٠ϼ$1\y)aU-=.`C)O!&xW1ȏTS* PdAQv[<"o/&ľ rX(%aB=`#~& QCk@f?̛7p;Lʎ߽r/Ʋj u4!X}z?"D}' k4Dnl HW=NqYy?4K~*ǿ.cr@J<2 0G~pr//& ˾>t K^iŊ:Uκ7,y˳!,#~۰`5TuG:1/yHB4?_Wo$ß=yW?lt"HÁ9͙#D04$\ŸjiR끿;6xGgf1ZQ2L΄#dΖ0|8~j b9B:̔}P`QeIWU(P,b-Ĩ -bd198˰a>Q4 wB qhSh; aaoZbdd2᠗DO;٨=)_`E`y }#*j] IjyEgI<;݋u5ː( ֢%؃ryN3$$l 3&л f8k?Qq&W )h}}ŰPQ h%O54$K?!Y%S }JZ3mW}jf*G&c$[i^Vd C$`4Un'a6vu8Sd^ڨ=B6r+S2?Dz); Dr@WvfF뒓mW+BTdK]N|NC(KpJ)G;r<h;0~vvMR^ĆSeEN$Ax'u];a{XR~EVF*VM%^00s8Kt'Xyrgh#jMedq0X *%X֡Ԋkoă Т?(1jPϫw5>oIpNt "2J\?{/B^G@Zoˏ%$I$_068XR`,3R^ړA=#'^O*r(sNr8 cJ S=ʪ&WYRmFD:CcH/i*2!, {b$P` jPZ2;5  #ј_b{;H髀JoB(߹uu+]0|ʞsxrnHUSL!g9Yh/819昚r4#tbcrrطS# 2"qBWRi[1H# Qk:\ gRGC 2 #&K6b(o6KRzDi 1ʞƾࡪbMhVA`!ُC` ck`f?8֔›u ԢN H0&0 P ;gԩA >ŐQ16q&_+I<GV+{T'RxA%e@gˊz~[X)SJy,Tk #OnF]GԈ}o3%*ˮ/.+~@ i@d%58(K=2iaµb[8Q]4G&pn-6Lm)u/b X (X]X ^tAa[?5Xv 5 GRzg0xc>kj sVK1:*,zkDMYiibmX Ψ|ōAZpL5d (WXlvXxۭH4Qil}Sp\/Keqc+#R[Om![/G I),Xdl}%)lQP%z o ʼF4 FS%.sS`RQ6(5^RkeLGP~Z)^x+E#j%weyеC)Anur('z6$>bm]Y9G~ S̵7#罻7I| *,#"y&q ił9ꢲunt GWGb ll9 Bx;MeQ8緀7/oW&DT/rPPr^PxWIubEMW22&Xm+^C(%"_04vMcbP2Do|NԶoHVl2nZc9bIҠ[߰}T?¢;xwAatHm; Z@2=Vm"W[vJ)v HKa>0b,Iuz>}WQlxKK9nu0Ko3v[8#8q9~/0w%ZY̦uďΗMY(ךM,^TBh'gV@s(7!撿+naLY.ȲYja3O;K87C 7fC饷@b2uwy*TOYA6ntCiۚ-`p2OP}Ezi%6vBI f+ P^ [Џ㐝*"XSendstream endobj 48 0 obj << /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 47 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F31 33 0 R /F7 36 0 R /F14 15 0 R /F25 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 52 0 obj << /Length 3284 /Filter /FlateDecode >> stream xڭZn6}WHsDR%`b@2þd> ."҈"g*Ŗ9{̢#) )ڄk}Kc Mwۛ<㱮Ľ[!oHv䱙,B0/=ӡgsl5qjWS?<$8!IXBOwJq~K(UV+BX?_!@< ;(OF]jp[+2=}\qo߈ZXI89rvGV@Hf3]?icmxcSPilM0R27/ݷ[{MV  ZGOp>6%?xJ.egk^ȑa̭DԸ=N9 t^T*8LO.ӷEKRe5iZF@)Z~'0Na{ #H-4.#OVY,È_X6fL5Y<]#(;2Z"=u}М 33n081V]CHjF:Yb5ޓ1jb 0c^@(bGq8 {,elwV PYi=3pXގTĸݴ ]?'gbs7[YyiLqqꉨd  88;f91{@q&Zu^Oj:T5ghh}sPLTv G~ n?Ae} re  oIkAs7;ȱ= ">Zr\ &<0j82ݴFJ|jHFw(P]ohSSb0*+?mx]*gx8qoMi/ӿ΄|G񡱔\,CeѽDUN\ rI^)}ٟˮ\%$xeEPsA"fOƧK8 ۄ|A.,wu96'M[@ϕŌ9j[% <khB  ՜9B'X򀥾D@F~"6"I"W*x>ԧD\P3cekdyruբr&ެ̀x9am-oo3[RK{ 8ۓU$%^=c+[OBg^wkq? )lm-b(k'PtlɆO",ܕ.,C#*Sg5+S@曼V`{R: ~sE+tjg^4#p82jV _} VE>1 RK|-:`J&tI̱;OG3.'n5<_pp Z:~׌v G nRT W7/^.T:Me䦓Vq,ͦH F:t=<еdMS'޲[cWpc%ƸOצ i=?;+2g+}+Ҡ3:g5H>L%;VFMsY:]"`vj€ZI|f-o[ 6"gEzTǶNNYM Z%cBsV/0xRb (l*YVӴe naeCؐ(hf6` nni99ayeT/ ||s=(:Q"CWsd}'@t  -:/DEfZ/n rǿR+D16]u7|(-d.und0oEyjKEd L;RD3쁈sp?aˆBvfR-'[ݠ<WXN*zoÑSX;՛:i2A% R9"o,H(_~ ?|A` \)p#]Dr]t{De ?TႨ`?aO#^iYH!G?X1"o(VHҠ̫d(#kS+6PJ#ƉDg}cB]MY9u%+|8MA=fDoen+jЧe)6.ݵL0?{ E i)Xsto:#gTV! YyMS$ܾIqmD<֧ۍgendstream endobj 51 0 obj << /Type /Page /Contents 52 0 R /Resources 50 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 50 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F14 15 0 R /F27 24 0 R /F31 33 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 55 0 obj << /Length 3798 /Filter /FlateDecode >> stream x[/g+ԠIm- Pؒ+"%ڵBqZp8 y?ܽ2[*OiaHeY$y\/6-~e]toevUSsVxӋE4aVi,և}CE"el ϑy89)g>3Z ՈȰIiؘ8S.l4eUey ~p˧G}I#I;Q<^BpJ Η}uʋtK|,L$Q9Z!V1|hGf?ݯD/Ub*Ef洿'md5FxZBK~jZ9,6j LKʢ]cێ aX0}f(fNt$MoqrZ6EUtq,n/C#_Ȋߨ"yaM ^229p;%psxz&FF u.Ͳ9aC`1m5vYu$ymioJ <}Tw%nk@oiSOms`%ER>ʖ=/Q 8ۆeI.#GVߓ:,KӐ($ -OGxL*ͳGgViY+C>XLUk'#W+Au)P}A\MR^˥9YOq Х5(69O;"LeTaLt/hr,H /ѬY0 $n7,Gd(C& glݑ*Y׃@T͏dG& TR(8AK|T6\rYX,X.$KےT仸WM>1H88D`4t!f=38=MnGr~NOxiд/C%I޽ZKIT|:*J픵. NhmfG N epwhMƫ[Zj{5(N֫X<:*v}GV?I}+dP~*FI`HmY/}$'r+_u)_mY2+oeJ%|5By!Uwd[W(5G{[r]6` q"m.b@/TF; F]#qU#Ȍ:ua2LT 1C LdC,QlA?fbY|qC0Uj*DƇ/\0iyé΂$M ;B׆9G,O=R+c 7y87Ceg.-\DH0n1z͢1(C)FU?[x4.ژ"p Xլ.-$dl o{O4j<'FrvC@ OhUS3v b_ a 2F<<M!rVZ"ӌ߈G`Ʈgz?U: Th"%ZO)A@`XeB>9[/v"ǦJUԔ_Blc82iRU}I45Y``]p){ѿA poUjCw1$s7a+' G@:wjb64۹"/#=m`n P?n% j|vz=x_xIBTRQsy,Hgh+B9˔۶R@{vϫ8y}O4A75\=gT~ؖvdupx5fAUw< 0Egz:HVa1 QnX@_f0܇nsL8>?QJ沜ՕKclnȲEEIÐ0U3aDf e#Fb(Y\.ltUBKMmr2쨚(Ɓ@lQ#kt*$%!H.FA hࠪ͜ $z|&1=<0H>19-\p 8 Q|&@\ɧKOEj~bYq~˪e4"ti9׋|FcfZ=Hic9tzs9ě%D{ Q'r3oIIJG5*vU_rxͰ@el2,LŹ|vm6@2< 4 @YRFXo0褰1%D8ՙxIԀX] >T*v ۉԥ]8*p ܁ʏMΑ#Aݒ_X:__2B>ZbحOm`LtY`=*$\( kcˏS|&kc'0m\c!NE:b Jg8 ض˶Z!( i0=HM8j#ct> endobj 53 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F29 27 0 R /F26 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 58 0 obj << /Length 3562 /Filter /FlateDecode >> stream xڵZIFrRZ 6 3{0En`~% bW|SDEj6wQMZ$QZݏnwƘ[oa;Tnݍi WQ}{7xM"ط򡏠CZ5B]Os,^<lv("囝RQ˱rVI Po$};DJYJJ79M8Y!kQ)7:R 0T#1}`v;?IMS=~meãP&3+çd|iݵ(J iVTG2fV4& G! gɳ8( -[^ d{@5yBCI/΀eɝ ZrL3|}Sv>D=Ro %S_76Iʜcձ :3i~uʘjnwͷnsOpaE+nӽ%n}_lF%nt[M[F-irGK勽_hˋXtxg/n*Ax0Nԝ1FOv@@ _ǓIk6<''B:$oCvymB ~`b:M.9q 8u'Ix91af&ppՠoIeCnK3^SՍGbL.qA`G[ ?^H\e'vS[vd?8;;p$Kv€+[:P85a|@96$;\ظ?V3o]hRt\(fur&׻ u@2k5G*j#;|?mRYN.ƉӄuS7ڠf6J l![wM2>w #R+ȨTH)gT}TO](Q^1loV8Wt8K߂M ܩY&SDRjuB4xeGՋj]A"@H´Y` N/8.AVq (ܖA \h f@098}K_/+a~(t\ۯ/΁D A?KѩRx +6֑Nk̹o?0?^!BqCb&޸׽nT.-*ҹ}m#qXazY^I5cp$ Fj&wžDWOt g`DCC5Rx,o+6;۵ݙ> endobj 56 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F26 21 0 R /F14 15 0 R /F25 18 0 R /F7 36 0 R /F30 30 0 R >> /ProcSet [ /PDF /Text ] >> endobj 62 0 obj << /Length 3266 /Filter /FlateDecode >> stream xڽَ6}V 9">9H,d^ll8j::cVH- 5bm߫U’H}XEIȢ߼)y-5m^W4__*~Jˇ?~_Տ>Z·xʇ+HnX`a8gI"0fBcz{WW]hN.6g ̆k:_W}?>5{-&qF$Wv:;Fw4+}^d- 78ɞu7}E3SX,`ts{*13Xք:ͤna # i 4j{(;N".1 ^#haT"_1Xy=%"vF Yl]J4v] s hu:/2 XB_: J;T9."hB.R(ÖH8ry a^2va @?vY>G CAenCaÑu4h܆0Ȁ(` X~Y)7FEZ! - 擹6p T vׇ Ԭ XyAQ4|;{v_ZF}V'֛7 K`R@|H/!X;6d\ŚzxnQ+ER=ɑ@5uĞ!8KԘEýҥCx_7D.KD8t5puef<4r^*a(&r?b) ]`p%d ϥ$2z_%BZ"1|C_?Rс_e5y{gآ`>{o#pX\Q%uSn:%BZv9%׵$ M$2$jZa2o*L8MvyǴ;W]f9M^M5xHnO0~pkUKGL2<@(<)UQ+]m!H\dpY\D㔉R5V4էONMO"]Jm tc 5$7 f/DVYbGēBZ3A nRbaE jb>soE i3&F6<#8 Ul~  P*0ÁF(i_7ZAYr^W>:57嶮>-Ģk2SF03 |o#`ħjS`wn_>ҏ0kFO4>%gr0vnGƉ-9[c?׏XH6_<񾇣/8sF ?=/PHY7+鉿]|ǴUk:WU1S\Ab_qYB.)r%q( cEst&?k9#RN<05n}KI䙤 ~ qqQ1ۚB0GS &pt}7$vљ$Xb0|gL0D`Yg؀$ڗ8$9z52oUq! =LAwdQ2玌cr5d[aZWv=fViGC]P2*-1x`@fW bO 4W(ckrbw_L$3%_ޙRM]:71bMzYۄ҉|,Z7mBf;РCAoi8a*/YR(^,*^ P^B{Zw㮬"*XhA᥂Z-yZ|*I-T1+UlGCRm#lgIU_S*Ɩ43q5klXuRrsQցֻݨv/8m=\1Uc,{/OqZLmlK L@dҜя%gaX$< qlHpf.ׂV :I샓->ξ#-B^)ZǕ(&e21Zzzp'K0!q>*cѲR/)ePH==ڑN MRVE;`{AhU[B'+[(A0ؑ,=R<ќ_xo :g](ke䩶W 4uu叵FƿK =f "32z Cd`. ±g3ol!=yubY4\NڢF Y(LЌDꚵ[1,|,'>)]GLnQ`Lm yj]vO]~eܕeu},FS0fW_>LŠK FJ q5֣قqT SC+VZ3tK .kNտsНv̎.Ј[D'&n-ְG $]l+9KRy#!=UZQendstream endobj 61 0 obj << /Type /Page /Contents 62 0 R /Resources 60 0 R /MediaBox [0 0 612 792] /Parent 59 0 R >> endobj 60 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 65 0 obj << /Length 3511 /Filter /FlateDecode >> stream xn]_1oy;Ov Im gĘ$gWקnCj 꺫}n21l,Rq7w[mwAx&/3wh?}}Fo|ӛ,VIz?뛟nn7 tھYoB0ywk'vh_^!@~D "Ͱ݅A;&'q2 B rxڝsCq%aiP ]~3 (|pQqo{'35}'~?<&2;;;9ÔM](R<9[͘6 8AKK^?Uj,x~4N T8?>"\ BƑ(܂ Èc, !'[!LTG5%,ޏᵤ@DWd,cYm_9![{aWLtd>0]`4HXv \0&1q40 ,A(E*YE@%?6Uk>zRR$1<KQg*eJ'L^Ak GJ"(= -[0`3ZtbM`#˪а[`  \0A@;=pe 2hmCa('=&MbY-USY(a8GT`Ȥfß4dcizPL Yd& bZ&`Ubd &KCzQش:e4CыұͬyGʽR#)YH2Ij׋[}mfR3!T0:AH=ߺgxp+4Ny"2oGiTv⡰ HR̴@ O,r׹&\@P%s1I zTUܚTRw%?PAVRpl,ti$d>0*ӥ#):W"N44Gj db %0A=28@.ED' EͰJ) x>RFHtS%Õ'xY?mfgchD_$1ei]ܖPJzkJ*(-ixdI)>G8u03D2/6* MVTT,%(SsM}0k$(|JlެWy%a !H0}VN /_|.DvK|Opzs6`x%}, i%~\yE!ca!ae{ * mǟqvycs>~ ,TE,xZap+ޜsJMJM67"r1,%8I[tBݍk Hs5wBeEr=Z~:1ÒwfL :f^uCRtPt11sGO/2=Yo3FřOzS)#wLB3!N68*v*u#!AŦ9sU~4@̯y~UgNu&vq=I%EndT,P%G Igur%E*; A\Y⤖87ufPY\A؛h^~T/JV;Iˍժ$pJ&q!Bo|5g~-S^*{Yf2{5Yj&cی߱MW8b_ V#wA1e]J6# iendstream endobj 64 0 obj << /Type /Page /Contents 65 0 R /Resources 63 0 R /MediaBox [0 0 612 792] /Parent 59 0 R >> endobj 63 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F27 24 0 R /F25 18 0 R /F26 21 0 R /F7 36 0 R /F30 30 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 68 0 obj << /Length 3566 /Filter /FlateDecode >> stream xڭZYo~ׯ #`zzUITXOűDIDonowo?]x]\Wz$q^WW]ɮWxeO$TWUky/n5vѾX6V?>lkq}~*mqo8@+0&*|z9*biQvgqi K e7MkqsW'I)p{m:*@~$}W$ŞgOkYNy͵-3.'˳؛BzpvZ$s)T@XMEB'e {3 &Mư=(>.d.R^ U4(n-Î#sEq1apNeA-*Φ\3KN{p6AD߰cC x a!".}VJSkFAiQ@~=e`Wf\NVS򨞨HA"{BW bt9<]קd[i+[ .w†p/'&cYȭCs-{yGtbUа2ɼw'.Nr;a? o߹9 jhE+j"{=@%K8|4Ld\_& 7tt7[$ &Ѥ[ bWT snf_@*/H#eV2DIPSs4JA jUKGz?S@#()b#rq;ޥ9(i5hvT24pgqPiB\JCK"tӴw'Ƃ{^2;&4`dz|NPi{1iF)9Mo܆4(z@ E&Eg$8Y'R.8 ]x%)R_mN\n$FR΅sG *|ȋ%K62']}#F80Pk!Ј{'^ȧX@w=Eb"m ^GߝKѰ꾗bg@5I| ZzN?ȡZ!·bs)$괒 G2j*ݱ Uا%1fisWׅtP a4I8B2d\},B;=sۆ7U*E -=$sUXVc-|n$h,d_45A a!$g/wQs5xK(j>j,!jEԘehrRjnR'~a9ZW"F80%8'sB5FA\TQq*PobK.ΈMpv#m3Xp;>R50q@8Y$]ӿ1/7~gӷC,*6g'}͐!씔.0K3&\'6;ͱ%,MiۻZ4DsxL&t yA_`ڳ o&M/$FFdPY1S$nQ&"JXts|-;C3I@_  z@D'mϮ+Ώ3`Fӗ}`.?W[*<(2rC5x "+(q<,a]\sI2ܧE ?L}hwUwxc7)!ńg S.*Dnx;Ff;AuyпeIƅ/3raNt Z(;]=iQ?򜝦u2NAS6H{K t B`ٯUв0EGzh^= ?b$5_H`HI?4=떔 g{ ^*%0"b 0\#Ay-W˔ ·QbP=5Wt#G'Q+Z~>рs |}W;S53gfrHW E,i$܈vr'?*犠4Jg̐Ae"يB\tPPW+ipل}O2bt\qֱs7x9Rx3Ou{iT2< V Vp7KIYllϹ xaQL ?Ǻ c gذ$?w<`nJik |,\'%[㙙M~TCJ_`L8N篆A>+X[vХK30wK='#^EmEh>s7+ Q^ 'b~9]o ~)P{1\yͩ7 ]]vjMQXY¤NSAƮq$F0E4Mo8@7_XfoP6w?C鋒$TrWZG;@L׋6z&A[OT4#Vendstream endobj 67 0 obj << /Type /Page /Contents 68 0 R /Resources 66 0 R /MediaBox [0 0 612 792] /Parent 59 0 R >> endobj 66 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R /F27 24 0 R /F26 21 0 R /F11 46 0 R /F30 30 0 R /F29 27 0 R /F35 71 0 R /F36 74 0 R >> /ProcSet [ /PDF /Text ] >> endobj 77 0 obj << /Length 3046 /Filter /FlateDecode >> stream xZmܶ~bU di"))b4) ۢ|jFBRIw>ZJ|p83{y]En~Xdsv$IVeQU{)7o&r[fKvshn~xs7?"ɳwH{vǪ:lm@NKNbF^v xHkO8e`ˎ]C:}gٸ7m[:9-U>[p{^aq‰T3[%jy|~iv9rR@u;iҬiMDZi TJ xʞc-x *0kTYKɼaɿ^ԈȺ4߱L("ȽhwE_.\+;C2Q?Ǣ;xt.RG*,+~ vf8+%+vTʯz,Z1{^bҋv2F$//},geI @"5CK]^}G(&ڣVu;%Ax,];C@v#Ê%.~|*KpBYFKLD1@6xSc k`#^еיE{ŚgO&+nEtL+:&rNtj.P#7T$Nkݖnq+wT,!?`OeRFT.zGwX _ gTJ6VoHm3,6T xlŜBQJͬAKeE*q S/,UWqw }*#J2u-,▣CLXBI{CZL0!J҂soOiW^cqAs єg w((2`ؕ%iNGA򔯗貋Eν+w`O\/q;Ɩ%I km6f+՘xI^dil5KB(C,eYD_ ^>6Iu9ʘ O+K}(AQ*PΗ>dRnB{3dZUI(w9WG[Q) #c=Kը(2'bHdg y d0n`#n b=ͥ^}8M^QB |:+yo|‡֙K+YH\Wv%'R.2K LX/QPJRűZ{N6FW Y])< & &UHP,wۧnRZϖO' -HߞM hcAc$XAߌ߂淚.Rd EU,$Y"'0l{4R@_zeX. $|D ѻq.豜dK8|:`nrݐ0):~hn;*dqŠ' !^G^'' !Kơ̒n*p)mpF\"Nl5sDW{µV*`k&O-"7=M@p텫J3-W50J0e?&5&ơ#0CWV6އ+S=vʵ|\0;GwtKӽZk;'|#gn C`ѭ8z4.N2Sl'A{|^#|1ZM%ԓDF8mdpkW82YT\Ыs-O[|<ʛ82;/P4f?! gMǽjTibnxIY_ ^Gkar!i4=3Bۏv#Q<\ REH]oYF0,,^,`sQN 4+񤂼^IqKa w^WwT O"FL$]Km> endobj 75 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R /F26 21 0 R /F29 27 0 R /F37 80 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 83 0 obj << /Length 3394 /Filter /FlateDecode >> stream xڵZ[F~_`MSTEis&[ԭd$ntOOs *i)ps]a~gQhmJ$Lsz<|shU͉Tֿ>|ÍZEO4lUE<~jwB Nb8: wbuxc6 c >˅ igNф;Ȣs}Q{޾U~էNVU}VKo}XC Y۷B jsJ=JF9?<,z}tYޏ]%gFo:BFZgNR )/4O(f~BRa}_,e13 8Ł&$-%c zn!9x`b#, >M@ #^ynl ;p'wpE+O(7[:XmÏh54obwLsAyWR3mU4"46]Bs=mnΣ܉1bx+*~`08F?,ۀmC0ɋ ϯWr@5JѦM8&2;eHht(I=D"eݓG46?MK ֲE>\塔΄4'AFBF~׭@{E(%J-L]Qo!cM W#Zf`Zި4 NB\ ȼuSǦ}]@)8~'2 pFaIlSZzT,;ԧW|~NU[P֠m%Q#\#q . bҲ txTcϤKwAX5Ax'b˻ZZ?:+JbțɃT!Ǥ y$Ba~JƟ|(Ԗz&,Nq'ukO$+9nC.u4b!(Nmg⛑ d;LH`:نbqYHWMH-po];5 #!HX]5?&I>#{ޞ~fDo2U̳`fs5 qC[\G~Kf|!'Z>yZ f2v KBr%z eTAw }5DԖD3I*[w^é3PΡXPoiV~uIbF?s0iI,y"&;-b =Vx Y&=J疘M!]p~e^/yȠX˝fѦC"WaI&^0zrj;݀%K$pY*Yτ Sim $wiXs3J=zuz]FGr%@E#_t]w+x¢\ݎ:?,ε6}hݱhP, G,-Z8}K>7fM.N_J8 C' ]̺.~Ť|jw;go~ԒŠScbh 6ϒB_si?j\nv?LLھ^D`U@++J|7Y:z ybH#j KͨqF|ݒnьrKK*XqPvlp TOLs&<{©4L5 6,ϐ!x}k\?DnP#V? a`Bv 5rR^tetv]j%o;:iSY Ƣw[^dsl_%l}L*'r3o;w,'b{6 #c'Ucw Y=ڐ4s\LH;jv3@leb]sn/J1 ㇥$MBg2C OLu,P]N/93=Oe\?[Ynfl{3x T. 6J<&A5.˄#^mCSȄ@F`1FC> endobj 81 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F26 21 0 R /F14 15 0 R /F25 18 0 R /F29 27 0 R /F36 74 0 R >> /ProcSet [ /PDF /Text ] >> endobj 86 0 obj << /Length 2289 /Filter /FlateDecode >> stream xZK6Wh1#R)bO ɢ}X ,赖z&﷊YڙYƲIUUW~׊(5c*"Bf. ͧ-7ٹ@ ~~ѵDO :-W]K>*^PӘa~]l7X Ԛrr"#IXiv<VXw|-l39sC Y(uϾV5|A< wJ"m 9~MJ-H!E&F.RKw@Fc>]~j"3^XJЃiHBDAheygZ%6En$7F1"Qn f뿍yX>[ PCz,$!clIVܫjuL$&XБ6KXp -XAQ9@CHGQP!:EѢ 8NR&,$ǚyhcȋ5(lfuד)L I,6VL?&tfrC>UvxO$Ҟ ^b')m$6#=zj UK=>K}zS$yEmݳZ;$-k+:/2>0a8zNrPc%pу.z-I3 G9 5U  cfDcܧ9aҖM-{gť藱Eۃk !xKE_c֍C}W'^@  * NP9q9zB#|D8a|"_/2N@^1F^ X1TG w_ו&7g"R%&0k%Ξ[et 7J KSd 1Elir dnPT*J[82IBq퓉~/Dbœq7rϑt):C$-8K9&:mfUU >Su B}hBG>iG3a|Y:C]ty~t9}SKt"+K֓e2;0"hyq[jplD 8p)5><`m6($9J( R@ˆ%"Z\NZӢcnɉO:ɪ 6< :TVޒ-c`[7?ӌ!# n]USݟFVMI_"02&F+FfR 0RS4c'CȎYK ybzWX3GkM~vǣ͏rC;,̀⨎]zJ|';pXd.ҴNoS+86t(~)Uo0mw笸$Y0>]ttPٽ> endobj 84 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F7 36 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 90 0 obj << /Length 1997 /Filter /FlateDecode >> stream xڵYIDW Rc0h8 !4qĴ`;t7jqؙiR*{fZj#,RliI"Mݧ`ϫ5%q-rp[!Z-_`\ϋzZkGl=fzI)RȞ H,@UjMzfQ\fv+$κ&쪵JIP 5(\YH$P,^T]x>k!" 'ReRR &Ffuv9j2VW7y2 V;+u, AH+K^]NFVki9ݼP`YwN`/ыfM qLxv]2뜋 $ ϐgEO_z_ۗJ;&_y-ݶkb֢gc]{P"s@g< ,8{rprr/(RmOw4"LXN ry{V[ A 鞴@Kh2{hcuNssuw P-}rq&jnDhA qLymmpuH.6Ćc'ep!cѾ:8_0 ='L2+gL#*ʅcʡf\$.f=Ɩ- a{8lR+b뷬i_į|kX^ Uk:(XXOOގIdcxKPש2kb,4DXwm 6%SrƩ`)2ڤ'zX[%#MBо P)$|$f]YS""%AZ7ϧ >XgDT5>T^BcmSY>uHf !x[~h8Wv&v |\[d#ɑf Eh/!&@c1eT݈>8tƵ d& P[,;h(TGweަ փN1( l[HE$=?dj+CK.=紒YNq)n̥3n0nIrb1qIq'3'iS `]A(7 ^#f]~[$a6(mMmv+9V}1$ξLFt٩n/*1a_"%.#L=&IȯĖb?پ{hLc]"fwNo3e^ `fi4PcF!bdl-YǏޢ 353”]!,endstream endobj 89 0 obj << /Type /Page /Contents 90 0 R /Resources 88 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 88 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F7 36 0 R /F25 18 0 R /F14 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 93 0 obj << /Length 3387 /Filter /FlateDecode >> stream xڭZێF}IX-v'{m &v6yaTHc#?u&)0`}:Uu8/ooU6 W+**J^o_ބatmuUpV^^U&*bU$ϫVU*PVvutPտZYl3Y%ؕT%xdc*tMwF?:* 8IǪĮ] f2VU%0*! Tf0| c]4^(h.:=m ?*<{f) Co{!S \m*쐕n+ZH7p^*;,K?l< eѱ2&Z$M$x#.CEggrBAw8v*@ ˪[^Ǡ(h4qwW%{RK|;Llvx=6Sr044||Vlpډe8䔁Dv#LЖlTT`L%a↠P&yQ|'ɯC[ <>s-`$ ai/h@ɶk~0kZyͨ8Ipc,![ͺƘC, GcdEpH^<EasqBfhe wδ QM\y/uTYp*OЃA&dS &H SJ$N k3rby~^)sG&d9$Bd>CfWf1F+yrj ="% tϣwqe{y GN)vSɲ Gadh7ΐμa#ܔ~*',c -q_ɸa/ D yK7ű -S(TsOy:u6# S~6]8Nw7\gg؍ R]g*%uƶ wsW$s1A$khL%$Gx= .MˍN esHʱhSFO54(W: l=% DGT084>qND+Y(t P,o<˩+%z6çٞI<ѻV8V,ɽN{G/X뱢jy؍͔6,řuⳄ Lx=7YP-M/Y]<;4a' IVYj w?-f &`iӝu9tsH3 4Hن |:Td_`"@_QJDrd"reaT$BI䫩ȈF7ka|$^T:^–uzS gDaZ)YQ p_$Qsc oIKffu3$yF{A9-,?eE>BdG8Z"GT䅄/I>"ްxoʘ# W\qwpq;s~@~D/ڳ_X(ST,r?M⢆_M%g\,' "k v& :I>A{? zd:),~N8z*.{JMēM2W8 }!XIzs/$VA;hr2\}aj }l  M Ƣ787ZMiEt 4 .TKxT9nVu̅:R$ d5TJa}jO|+Xs5իkREhKryFzCd|ir.9P}>r|RMR_Jy/~z¯MNR&pQviFO ͗P`ڿ8&XI?e&\wd),6<# Ab@O*I"G/*/A|H%dƼIhm`, YjA ʍs -[;wxkba:}d.,\YKl?\k.耞=P GI8e4'C{ԓvy(c/ nR/4baQKvGHvpy,1zg>B?Q(",*I>n6QAϗL*WloM7ml{m߼{^1.Ac!m1CyF3gdFyyEy}bS뙨eW |3[zK†#E vy{cCD_ ,w#.g_/^+4?4igsFt,]N_8RJr1tH4$|=2h 5El^ &_YIɶiJ +t|G*̨N O9 "0UZg9uQ0kuUܸix{cWޮ!FdCW\ }e74NS .7T^'#/J vrٮԃNXj\L5.@Gzvce?;%~s+`K-U$v4AD2eQ/4*CZendstream endobj 92 0 obj << /Type /Page /Contents 93 0 R /Resources 91 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 91 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 96 0 obj << /Length 3427 /Filter /FlateDecode >> stream xڭZ[6~_QRR`>L)FnZHVE#SQOC&VbH64vٖYTGEmwi65KGhTni)a;&1M®^σL^Ȃ}u]ܡ9AG1$+_,M ;g_17݄BPt(?&:~UlLD[6FsyX|FȽ"62:8c[@Bœ7EIJE!! tIl[Ʀ,^_Kr(\(1ӥLjNY&%ЙlLP;TLIE\eS_E͒>xr3[2k0q>FXzq4!F/q\3wT> GQd墫{}J8bʋ|#%1%Mב5(dt"}ԯZ;˻P$]XK\2œ3~!YAw54}K!`?#HЃڑhH23wf[zR&][WP F9SVhj$ztYZu%Rxܑ]L="@]KWR] &)[<h9 amϳ>{Ԏ;duju2cɡV(xa` |R UTEPPi9L0(ԢYm0b" ^'hdWx',e8H8IN<~n=}\9!t6w#(=XlsB ȞNps6dNV(6V~'W2!ǽۀfwoD<>Z^s*Xg4oX|ۂEdkxL ܈mԐ9AYJZdBrZv%K^tTQŵ 1xH<+ZA5ba'Ie E扇,ǺqYY =o3UӇh KR"IKB]~2톺p׃yR⃖6!Po¦Ll9(LǏ e'B(g?B%L(S~ \8I$k!D,둀$l59sfLBGdv |;jU32.3LX*G\MJltI%xb!1coP (ؐrTx,q|} xUD~}&.ZrAU*T?ԫh% hR<$OҚd}D^qe19?ZYzA%%$E%/HV$ǛCERbE's( IHL\|[2{MJ +aCCQ/yq1 w%짙F5y1# /)iIGNh_} 9禒^"R` g׌rI˹G _㗙o~j#5Vb.SS\zDBcp.>ɬeP_JBM.#ka0H'*~ R& P[:"qW/o>>@/nT|)PPZ{onb9HtL"TjUOl|{;zJ?Fp7p6Fbmj=*NWk̈*Uf!F(gعZyן>YA "kҊeYP`YHB}#R7LF 0C\ QL X,\WB: 4߉YuiZIn>LJ ufΌaE#}7-21oh-,%"mЃD? )gTC.]nwh{M buDJ˥ u)MDsuyHd$L$v\S+  RUޣ2_yhTIQA8r7CU\EK#7]6_(ٮ[3B>fF":D?`ѡI(R=s KȮ`N+xؕGřu:(>(,ngjY8/S` ^%c%g7{d 2>%XZ˔(scߛ8T)׾n12Ũ3kfirp'":5|@k_ֽ>թc @ T*N(H鳇}k?ƽfyI//W $%mv Q/I\F j^Z`R{_VU*}$'e>Lb_k^O qG6\iYвt ^qbSxx߈N?ta`<6YˍzH\Y{VvY mcp6H7 A hH{$ffk\θ1!4᎛ qݚm^'Ǻ"1XR";ҧ +) >܂2Ƙ$d[Nͅ2 ]\x?͊{p7XTH,u^Y!/bV+K }Wd []ù@!:ɄQendstream endobj 95 0 obj << /Type /Page /Contents 96 0 R /Resources 94 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 94 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F30 30 0 R /F14 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 99 0 obj << /Length 3618 /Filter /FlateDecode >> stream xڵZ۶~%2> )~dI3-N8Hl_ )יtnb|~u|Q"5"""-zqmyevUS o/^]]EzQ*U⏋~hEL/>B;R( se߻.sd8.Z"Ieb$s.XYee f͚qu׫KhoYopI]ZVMO-.H%?kwڎBKwҕ:g9*]ƉU Cnx: Iw /va!h5fH+*F[7=7dawǃQ[YZ@'-79"IPۉoy@ 3 ð{3*kf}{}$YQX vB2 hqdW ,)9:# l?u(tb˒~zSoX'f#]@)EJ6QI )Dӥb`2tLXŎ,'x#;M-QI빅QYp67 _YQGz<%'ӕ-?G'` $鉶B| ԑGޣhHև{i(2m }iqd7bÆ)%l~ElP!W~u:scJx A/1;6SFGJoW:~ Z?ع̞?p sO 1J1}i "J U_p'8l= 9XLsӺ=;;J `ڒa O*jN~!dANzp =Fc8C{hLG9'y&D(' ~8_0(͠H^i N X9JU@X;z.Qk;~K Yj4ֻPx=DG - ̍  5Î6V:JP9cJ l);0 zq8mj=7!cFg#iz-MöY5@ZQ,~#ю9&X9M04-]W1lSjZyA*a] s"t>ډy @< @g׳#ފ0,%@}a'tmFzXBZ2Pd َPlغ?58qVI@[!wC"Tq~U6"^榮_-zقkHs1y s ȤP^n2Gz-;0yT"u)āv AmjQlw͑);|]q Ĺnˈ[@WZRRnwD~e0ߗ Nrl,7ǢmY[ n=&/C'Ɲ;ya =~TlxqX(A SFơҞ@pR*NfOx_7,K \Rܜщ (Ҕ*lqȫ"3w>4ZƤ ~.bE0!ZY1pu0,:z=Kd ?? }w;skP=hi96<^m@ vW7J\DA!F+ @O' F}ȁ5l g.W&*1.$ΚNAo ~x^2/mp߸rǿPo *{0 rg$w/\s>c rB NFl\OsT lJa RAZv6Z3TJJWtےҎ -#ۃ`"CeG)5YMz7Itʳiަ#XD:*~ڲӨiUw=FsKș)5%;GS^z·B44;7R6t(5pŐKtuCCI@dK*tч.Ϝ+xk״][||&7֣S`GR jD>v_Ipf!hW FHbQaFB,^vdJIJ ۩:}@ggEܤ68QiF6rQrҌW~O_q]UJ`c TxZBTr)9+yK#x O ŏI飐k)s#6H]x1S1dNjr_ݻ|U`/V ݳy1\Q%ݞ) /Y@{EբK `vߖ|o*2`-V`lC%p: T-aN/xyl(5Ϟit햎 S!q@FfT9TEZzLE u.AzBӿSÏJʷ>}Nas6VF.L04D#B.JL(ws&Jەc OR$ ߖ E x)ÿƁp'vM3}N5XXX+r-߻ɏ+p[tw/a%1ubz>:zΦVkO)U?E)Hdù69,Gy&aHU}dX"7eB5v.aqiùm-q{T_ Y 7h|> endobj 97 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F14 15 0 R /F25 18 0 R /F26 21 0 R /F27 24 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 2971 /Filter /FlateDecode >> stream xڵYK6ϯm5U WN;ou6[g]@2 Iyf!3=l x}wuCIDaGc&޽pSJm^mx@ yOWoƃ$Ky&o_y%g%5nv2 _$Hz=L'!&翲@&쫂K/LdoWGǮHdžY0}y`wKm :嶻dͬ+s'eZQ" qyv|Eǐd&:Pަ8!G2I}Z~M/_e*mrsҠDM'.ٱG@KN#|а2=U9,DTM$g t']I9Ɉ!3G֖޼ IĿ=(+r%2)+V Z)QZRVPlp/+ \6Ʃ[+ ϣkvkHC`L Xw&1)WYfP?CĈK' ClFOK)+ά,\IUY΄#+* @i*4ݗMZR;;y̖xdm货PֵVy`HI8=MGBCW dli'P<ԇ%!u/fMކnN1(l;[&1V#5 }DE+f b ~N@v5y?ix`e=򕚚D|g"uiMjuJ߄$Ǘ{)PE2\N:64kz!j 0ҫj)Iq:+,D-EJ(O,MK6]Ԭ&}Ru_D_% O\1} !~OZ׍I2u cI@+nr @0-MTvUȞNB1.ir!>O&=X!>o^N+(xy

wZp~=_eάtk܃VA~~ȆO0~)u{ L ȯ%hɜe dܳk'+!3o7/1b3N^4c$bzxLkƝPR02fu#ty^$\ܤOKzL=Ithޘ?Id1s%ӜKkv}篕n1wKA]^ʵ'w O' 4JSo{୶=維u+a\+cġUcBBf/m.ܚ=!AYo/sYJ JT!J`)41Ѷ硟TK;e$n#i;GxK 6j͖ 0R>:kO4Ȝ?s^ѕI;ΝݵM(*LtdԱsc'8,`:߹kHL`hf0ף^K@~a]p^ʥ q27!Mͥn4pJc[P_G+Oۢ4qD掏æ2& *HWߙ#Ŋ: Ȧm _{eendstream endobj 101 0 obj << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 100 0 obj << /Font << /F8 12 0 R /F30 30 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F26 21 0 R /F38 105 0 R >> /ProcSet [ /PDF /Text ] >> endobj 108 0 obj << /Length 3265 /Filter /FlateDecode >> stream xZKoWT*pHoE*n-b ,hS$KRy͈4kB<Μ9oQ|6?jY7ȒNyh*'wQo+fK! 4}hTe[S xNhiʻ nVs*'p/Z2٢VUot& 6$N4EušA<P<–NV&d˼4q "܂(E7Z_X݂߆*2bynUGda@KOEbH$oAh"pڦNTkYaN"Q< *$@Q0U4TNt?>(gmB$JVOEp}0 ah?>>>c}QMwmE8zwe(yPv98Z1 3X-4_,]ߑn@JCMM*: SFk"t齯twN󈨋qc+//iu@$CB>dtjI2 & L}.s~? uKOԞCS:g15".ld3e&%DZD|),OJ^ܒ2P 8v{Ǜ*{[/~:<cIj} qc>v>*PѼO6U+_ªu)\lBTI 3hj uuzU̻fy)5-0~HLe+X^Ӥ) u ģ @p>,|=?`=V:z-~wq24ɔRbO\ЪuDv[ :yQ+kL%ecD/Dlt9ǎ1\D\GI7Ō$\:HH:"){a !Z $EUi@+4'S6yZ22-VIw[_|>6e*0@ MW+(Y4)<PcIE#x5+q˃?h{9QIa0JZQ.]6qy wC邎xM ?l 7@ 5$W5{8H (Sf4$!|p WcZ_/(IҞAXK<|3tE|6-}̀W}#mObPO4f*8٫kB 4)S2+XZ< v?/c9rw@R{,VqVݰ@=?E%U5G\?s J h8oRkՃ1odSS'O@9K}4SpDkza澛\Fendstream endobj 107 0 obj << /Type /Page /Contents 108 0 R /Resources 106 0 R /MediaBox [0 0 612 792] /Parent 109 0 R >> endobj 106 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F25 18 0 R /F27 24 0 R /F26 21 0 R /F29 27 0 R >> /ProcSet [ /PDF /Text ] >> endobj 112 0 obj << /Length 3019 /Filter /FlateDecode >> stream xZێ}#Xf7/ɓx88DI)R&)Sn#z5 X}:u8=>yo U1Yl©Л߾$~ٚ91.{`A^𺟹-x\(5Eљ.0l"/B~g~:Oj=0 M D}ؐ]練v f{Zҍ6­1G :pzC\q*!y}{YٜEϒR7"r~,l/͇q0 a/0b9\mxo=Z!~DK*-,TҶLHS0!gݲl(xًs#43cE7՛xU 䱊]hYp ÔzZ< &Ӝ/ o#8کwTa| 3碐`LZ a;F{B 1B5u8eePā=SG<੩yPcI()`Jc ki3&^(#Oȉ*J1Ѿ/)xIas>"(qqC@&g)p=o OhMjRX(rY_)= ,LCg)@(/-qwsr a}ޑi(9hBҝu$J-DO[^DHe;ߧ}[r8i/}rtOJÇi,} 'BHx¬?s$ɽ-Wyzo `|`3a'IV ũl t(x-)y% ƾޏ3yGe}ާ#/vYN3eB/D[k} O$ZFw,;k^px&Q n(hx19x'^(c*= E\` wK%Z% tFlzIZ$K@JK3;ytQGZX5#?M)iD$_d= 8}T. ^V3RJx[!~Ya:ޙ9Ko=*,@BnrkP=T9M}>_qgœ9b4,؂Ux> endobj 110 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F29 27 0 R /F26 21 0 R /F30 30 0 R /F27 24 0 R /F25 18 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 115 0 obj << /Length 3061 /Filter /FlateDecode >> stream xڭZے}߯#X%1~%+Sk+q, (Z}6pKv*%f1ӧn.[*OaePeY%y\o?7QkeW;_NBWy,Jdks˯j Ug'xUsgul]}k#m&}qn8U&ioQkD0]o`.{ zC54ťܨ \mLL&?,aU" i $z^aʣD _p 6P[Jmp3tUON|KWK m,J55*dͦbt,bb88u碑C B;+)a 'vk'5櫍lcy.b zpP8C9lyC~4VF;F9عmgOW{w2V`:N2Girn0Mho\QجG);=Ut -3E%w -/Mӂ֚6{ĵ Y%E'Eщ:s ,(hCāyϤbhЮ@pTP\oϕj_Lt=)TR6H}-PYxT A eWGE?`^k5#Zem;A)@ `0?D_:k!L ah/g>%*6GÛF{>藼:RijdKo6Xy4RNotz7-U:lH#q&lؘ7a㈍C$B#Jq&?3*ag0 k'"NZ$n\ɶH!Cc͎Ps^ ae'FEeqWd*.,os҄j|83\eVni0rkN^%ԨgAKvC䇪]WC+ -(B gnA8@p2/OkE OY61^b+_N"l9)rsm&QVt)~Asf[Vh66R*984sS|y ~ͥfBF`6"8(l oFZKU~ژ5H[[IK'R}{\*oי[ec6Le0*G3q@ 栀oqOP"u= aW$8+Sl߂n#/D5nr"%za9QtO*A;8'i2 9p89—߾6Eup[kLwBWXV>6c }P2*J -k`D$Cj0qa42΍d4Aơ?I]._kJ=QG!}e~„*z3 >襂 15tEuI->K$2Z(8 I }QmwVQYh7 񡽐 O"{{&X_ٰwXh$qg'6GtWX'h;P~ )GH:UwZ9S֩eAۡĚ!vܾaXe|ImØ;xl QlPsj_?.ְ݁p2O*VcE'7#kEVB@! snIQ= N0 xݕ\Gԫ|ua)'C82PW P  #en߀.n4~SEU[8#Ër(c_T{/ RItVc\e"S\m4Nfߍ*&YpR~IMqKļ%wt' > endobj 113 0 obj << /Font << /F8 12 0 R /F30 30 0 R /F26 21 0 R /F27 24 0 R /F31 33 0 R /F29 27 0 R /F14 15 0 R /F25 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 118 0 obj << /Length 1202 /Filter /FlateDecode >> stream xڭV[6~_#H`c0/IΉꤗCJiYl& G}Vb/|͘r=^A,g9"%YAo0IkrQs7v|)bQȈS8O3v>z{w1I;8&(aiNxB{{a,@C)?{L㔈zY*KR_1Xҋ))8G9C7 4/=B{dv MoN498$FC Q% *r :DwIbtkoH 0Ƃ!ڸd8da쥉3m_Lpt1]05ھL*`c&lM}08ʁ,Oܙa B n曼1t:JѐikYk=Oah$L[/աdV~@H!8B$p?]$K[64z) 2Bu~Nb-܃GҦqjSȯ6\Q$Xy6y'nɢeK^㲏t-wȡPKrh$𗒸pq(73%m K]Wq 0 {lg$rblpy ]ᰌpʷedjckXJ 4hƁP ?=!tӸBp}mq y@AT0'Ջt}gChjt0 l+aEoSg{h䎡 jQfZ5dt0=egb0 ̹?LjX#ಟ[z- 'J,IgV M ~krDd4]P֪-g4Iإo'W0L[jl7vu3^T2Zmd\CãM=4z1VR|uV\Cb`4ά/rw':̯7v|֕sN릆4߶3r4uVt0 Vg;kvfSx)~mrUkހ^^.zz7$W\,B,}'^VRM5uCaݙVZs0]hDendstream endobj 117 0 obj << /Type /Page /Contents 118 0 R /Resources 116 0 R /MediaBox [0 0 612 792] /Parent 109 0 R >> endobj 116 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F25 18 0 R /F27 24 0 R /F31 33 0 R /F7 36 0 R /F29 27 0 R /F26 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 119 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 104 0 obj << /Length1 814 /Length2 1482 /Length3 532 /Length 2071 /Filter /FlateDecode >> stream x{<GK.Q۱=&M5Ca""c1ph D33"@C@$Q)譀 `?0پTDAfCAr E8f@pQ^(?},[a01@7CLp"sPɁ8—D~NSY }Td9gemPd#YϿnm25vY$dJ8X9@&.G/|,_A @0?USi[]UfJqqUtrS0Vzk1-6$4s{xqLxt삸ng ޯj5(/M?XԖ}ՀR.ꎏN)S70FuqƱáDGĪz4\:ݯ]qIfCamp}a;wd[,[i}ɦv\}0 ]0\˿%[=jnQ,yf<"5tshڨnj TqtB`.`d`{>K̼[7*Qj:S SENyy1VvNaǷxܦ:d #Ëg[^Υj$m@t;b~a5 =ײo&3uު"N?@7RbK2Í&n.ygur6q4́7#)Q59,mԢX6`!;5"g=ShٻdTqڪ@Aۤ Q9(<H1ma!F.(Qm|OjӫKRnױܶu\) ݖXfEBV(s~(SPᵠՖKoNW:,TH<2ԉt候-]Uo74en9+̃p@W$ .P,99@SUF?>1Gaj7:[.Nyj  >TBNT6$;cp.jAv3V=xW4'$:zFܪjޡ=',dWOhWGSI_ z+4&Q:EUC<̶,-ߜ"ӵ%xs}AǨֹ_VIʈnEac)**5%G}0aXu~EccUcSSM:Y[5B(ǰ>ĕ94'/n%('ʌuS%ZDNMX_$Gjcy vu[tBUSo׋=+!5]씴[>` KHoD/~P ղ'5c2,ohK.~0qp[37` I, 1G6hٜ2/H蜰hhez w+An=堰x&`3ex_ßϘ,ԟ48|QM}&Wg82h𣏕SV[{˟ٷ)wұԢ)(y7q=J'E4|@ʋd8=qV{0ȉX*-t]Td^C f,s[=dImJ@DJA]w+FvTh_Ôof8[MF,02\*W[- <>ѿNPjendstream endobj 105 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 67 /LastChar 85 /Widths 120 0 R /BaseFont /DGQRJK+CMSS9 /FontDescriptor 103 0 R >> endobj 103 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /DGQRJK+CMSS9 /ItalicAngle 0 /StemV 83 /XHeight 444 /FontBBox [-63 -250 1027 760] /Flags 4 /CharSet (/C/D/E/S/U) /FontFile 104 0 R >> endobj 120 0 obj [657 743 617 0 0 0 0 0 0 0 0 0 0 0 0 0 571 0 707 ] endobj 79 0 obj << /Length1 772 /Length2 1128 /Length3 532 /Length 1693 /Filter /FlateDecode >> stream xRkTSW%U " DTJ b$'q/`bAQ." ?BB!F 9OP`D8l A$23 bRgMܻV$Ԕ)`OP%8 ҙ85 RN~ S}4Je WmD*u!8 K ͦn3ըfw}ID=0L UZ( DIq,"J5CL2۴G$:t/A12TyT:,GM/j֬M <S/B\g@-Z0Ij 2IRO]'Si4<=q9>0 @_oeXkY3Gkbz(-Z(Ů{9ITpRz-R2hʯ<(-1YsJYUb-ӏݝIUn%z뎳WjIsi7(Wu}'CοҠ:2y{y|O2,m_gecg8s̹?6&9tUӑ'&6GZIxC~8%%vl C,enE'̭iy -X]r\W:Ƶs~t7^^\:۲\HŵQzieMzvvw9wr VP˶Js,'DM(noJ /-c#GSVfnqqooLt9om19i[jm\{Tq*6&-2;q\a#5 gXɦBW [ZK#_XShuG3ĥ=LP02*Am s V9fngnkI^RkQn3Bw0c2pxGiYb#{kvQ&rK땟Jrو\s{hݚA<\VoNnCY+ۃKy޺nIT#x;{18Qv#|r;- nd7+Lږ=wv7 KFӫB6j!_ в!c}a3AM%)xdE˳F+_T΋f" EĊ)>~Tkay}ݡɎB^.(-pOo{9[Ya;Svt{qӖ^et޳W-1 !/i~s=ɮŠ,VenK^t@髑z0FPQbeB|r-B xZD3I~ݶ|K]!H\ iendstream endobj 80 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 66 /LastChar 73 /Widths 121 0 R /BaseFont /XFXOKO+CMSS8 /FontDescriptor 78 0 R >> endobj 78 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /XFXOKO+CMSS8 /ItalicAngle 0 /StemV 87 /XHeight 444 /FontBBox [-65 -250 1062 761] /Flags 4 /CharSet (/B/I) /FontFile 79 0 R >> endobj 121 0 obj [708 0 0 0 0 0 0 295 ] endobj 122 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 73 0 obj << /Length1 881 /Length2 2417 /Length3 532 /Length 3036 /Filter /FlateDecode >> stream xy<Ǔ BɒGc1 aDc8BTb0˜2ʾD*YB҄"$KTLM)89ZNu;޿~y<_-W#kӘF(8 p8@$0t b9 f(3nŚCt=8A`8 2@*A$PW: 25R CAFHCP(D&2_ПL X̷0=2B}I H( vхgB' S?7eQ(/oL N f1AD' Rw;'DfQ3 2њO9ԖI.d&1#PBqFلpr_- p<|׬ Lc WF 1lDB4"D CGHh i$ leFg KT?:efH%Ldn  Px_@ kC>;a1Z#H QG#@{D _DҘ_op+ُ,!A"D-bkʢE}ajKcWO?XϨ j$3zX:N+c;2 3kfooKhn}PXx+LX#BtgX C<ƅx;fnC'>%JϼYAРi|'с>I"al=tꓘz̥Kn.9F9{C;Wض݇!7=5*D:lmYᮄ$݈5tlrIMC6]ϤSu*֣ nZԒQNWpiG"ReqؖVDP E)D(˼hOn݁yvmhJ9U&f{XnqjOΔ+Gd ^W87{Sbvb{ N.Fin} D==r#P Rq30>Ի/׬׶"Qr( PQs eYn{dL.'}uR+.n@Ǎ:κSpJ!9Ō#7'C]ϘiL|rDϕ{1)y&Q됭@ލ`d`_ Eaf'NKKV]d kXnqRƹ0b^'-Yeh:IJc|d(O"&SXY XOȝ^zՠ^^Հdv"zD lnZh)[ 'vJ7+.WG7$S5ݭzVhajERK _Xr';TrS:w GT* R?¹pe܆6fǒ20iLqKՕ.d7CRҘ=V e3KE*wKnDji3%,\ ̰#y3"\VU}>m_io3#VWt)qEf㬨FMyvYcH"oQx nhS {˝o;w|Ev/d?,ս#d/bh+wcsuVK_YaX\l;\)#Smַz7~YU{7WFE=sgIƘ?zɚi5,NTkR"\PG|L#8ٸc->.:U~5['=)^|'*)6"iEC874]Rt(飓cҞro{Q%W(Rc_ 0zCv>A|4lrUyfwGͫ͊8#K Wя5MQ st"E i~RN1!I~r /r)~TJsC]PykK>Xx4vG̅U 9~YS%wgs&U eŘŗ}:+8̪ZG96/Թ*r}3he.a`tu/6Js`8şu<+g>DŽ7q8UqR75&ek߿x>%+M6mĕWܔM0/4z9kTƇ^BecjOmήRlr+5 :vQNtMU )e)42Ӌb>~3[|hE'ACƴz"·*-=+ z^ʊ M )A*998r?s-VS ҚqtE9TN`%Djhl6Zg;,򹓄E>dIz$x.'l,n߂':yԳk#kuɾ$G<)l;b\0p>##C55XkR? >ݽ~`˟tN2݊)Yй7["GkRPbr+]Jz hl0o|q uf+Z 7W$[Vh͈^!{x03Å+N'JϷQ~/ApZ(){C\g%ʮytM^5:!vMtnX؜]JW˔z5@$Q/椊j6 I,+R,&vb4pRɌ%FjoG ') S ?#Bendstream endobj 74 0 obj << /Type /Font /Subtype /Type1 /Encoding 122 0 R /FirstChar 80 /LastChar 116 /Widths 123 0 R /BaseFont /CWZIGY+CMCSC10 /FontDescriptor 72 0 R >> endobj 72 0 obj << /Ascent 514 /CapHeight 683 /Descent 0 /FontName /CWZIGY+CMCSC10 /ItalicAngle 0 /StemV 72 /XHeight 431 /FontBBox [14 -250 1077 750] /Flags 4 /CharSet (/P/S/c/i/o/p/r/s/t) /FontFile 73 0 R >> endobj 123 0 obj [742 0 0 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 591 0 0 0 0 0 302 0 0 0 0 0 636 558 0 602 458 591 ] endobj 70 0 obj << /Length1 830 /Length2 2089 /Length3 532 /Length 2706 /Filter /FlateDecode >> stream xRk8G7g"[1.풻Q1#w1f^yyg\&$(ZR*[BV KB{b=i}so9[kZՉT4,uXٚ[ah4BAd bY 5Mixd_E֗ Tx490ovjPw_03yoձ6bAl J$( |%2@@j_hD:a0A8j=InCe04:?sYd:BdA@f1Mh ՎƢ|t&~Aa:ALڗBxL@.'[ 7 wټ!7w"TW1Qi _ aFCZ@d`(O8Jx!@@+`ėmik(7 D:he(lDxrډ`9@[Y0-pC G}hz 9ƲOͯۅ䩚ji~ڶ=cAQhKֆ{TCH6z눚\5kB [Ɲ+*g7zwIV/I'/MIk%x$].-Cj 㞘7 PN}k@N((7v[îbC T TVlӨ]|h( 4Dj@>r3JF+^&ǔ/Fj׽Mأ 6YǮik5ؒ+{ڮ߉豯>po7KEoU 9!_u !$Fg }il 3]N[Om|TLo]sǔvTέ, $loCrbiz֯˿\<2}gBa\Z\<7/1KM"jM)73VA@j.$'깥pNFRE];a{|RF󻭹f]Kf]x#ЮFvބ2Žvlٌ|)"3{6֛U ֆ]Rjѥ>I1,${&`ikŠbG]uZPG5 KlS?]t~Ulrv4kI{6!IJ_9ekmP<ɿCs)w4>k&|mx=sV~6 :sw6ę8<|Y t /u(6kTLZP6@{?MoJ"8 cゔ~5=yM\TET-%%FG*"qMVƞm84㌧ImŜ[n^1h6t,á=3ΗBS>aQ`u FQUI53{|6vʹ1kv:YH_~M8i; M >/ᖉx2NH) {9'rᩝ{/q,STje& BճS5vMH6eؤH\6镙K$"oяbO\ƽ5K @?8~cXHc?:Ե&3WU9h@kZ#qO O :MNlVQxI1tAc݉5`4, Ku"c  ~`ENVժgtꂁ,?y]oܷQ#85HzS\+Py^hmWUn<79U1׸o=ު1Vf6)ی\B2gƅrUfsv9d!ﶁ'=]Ə边[B:* |}y05ޒ8pA40#/ 'P fAd3endstream endobj 71 0 obj << /Type /Font /Subtype /Type1 /Encoding 124 0 R /FirstChar 65 /LastChar 84 /Widths 125 0 R /BaseFont /NSIWCC+LOGOSL10 /FontDescriptor 69 0 R >> endobj 69 0 obj << /Ascent 0 /CapHeight 0 /Descent 0 /FontName /NSIWCC+LOGOSL10 /ItalicAngle -12 /StemV 66 /XHeight 0 /FontBBox [80 -11 867 611] /Flags 4 /CharSet (/A/E/F/M/N/O/T) /FontFile 70 0 R >> endobj 125 0 obj [667 0 0 0 622 622 0 0 0 0 0 0 800 667 667 0 0 0 0 578 ] endobj 124 0 obj << /Type /Encoding /Differences [ 0 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/A/.notdef/.notdef/.notdef/E/F/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/M/N/O/.notdef/.notdef/.notdef/.notdef/T/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 126 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 45 0 obj << /Length1 795 /Length2 1199 /Length3 532 /Length 1785 /Filter /FlateDecode >> stream xRkXSWEֆ%C!G I @! /%&7p%7s@xPc A c-By)**8RPd s|=k:k W8(;ҩt6t 4B !؀b@0͍tf3HS08.~v $7+0X$D_C2H(*JAD%BX$t E8iA5,Vߤ ,lu2!R" $$QDh_Z\J?]^()2P\CbCS#VgP |8).TkNJH,qQ<b%:N[A\ï%BRb$ V(FDb9,jP11LB">1`D )$;Q'™t A1\]$OPc'91.T~ PљL1iI G( ?`ݜݙ:T0uߊ0M, !H Hۨ#{ѺݕWgw9WA}a|;- Z>m?;$0XiTN{zɚv' C=޶x{{φ;ݵԲ&h1s{eFBfbAy}?t#Zj:̢ 'L~ZI[Q=׿UR2E%r^Ӫ`WC=lu;֠Uz7Ep'-+O*,,@m[[e^}CjGy9 1?ZTVzK#܋lu,Tc)bo.{ ane>AaOˎ|p^s8:@NJP˭Emئ;U\(7gpJmꗣ̬LV{7z( ^Qzߜf̜^sZpr5L8@}fr«MvZuGaiGNW*RɫdD/Ik"95 {vUqCYu,njmC0dzZhd;#:ec︬l;m8;ȲggOnT;pe' k-g>jO#, SѤ9Kf(ʔ"6 ՚k&戦AS4SP9W+4&oJNN}Feru4럍| >*4/L^\Q6Sײ|"=f{u[}9g^[{ln{g53`6E؇,K!_SUh)iVd }nse} <ԞYӦk{;?c|Gz{`=J lsSm5xr@>]``ݽ;$eWZ*]c5*f}jrϬ`feC牙eWGNi g#Nj1cJ.Oja%m&̐o-{svfWyު™oz3I}7]Q=#a %i> endobj 44 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /UZPLIK+CMMI10 /ItalicAngle -14 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/epsilon/period) /FontFile 45 0 R >> endobj 127 0 obj [466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 ] endobj 35 0 obj << /Length1 783 /Length2 1384 /Length3 532 /Length 1961 /Filter /FlateDecode >> stream xRiXSWarRvHI,KB#EY {Cd)HQ-F!lBiDDPA 8 ;П3s~ygd҉A , V{Ç8##>b0dT$x@ 8#pD$.Q'.ćY xX$ĕs@e&8gF @Xm#6€0(FpzH8 P>ާT,ďL"MD6pD YA .=C?(' >!>4(b,90 @caBcH @+qa!mEu{o@|EIkW0_X x+< /OZʆ8"|."0†$뵶BPL~[|gIr#"ο# `\A|3*pX3 !n.ʢGhʨH%Ygq!OMiC8ݣUhHI|sw/c2%:Eil$oLLi+G=AWO2q}ƶɔ@F /H6>j'+l3G +%Ee*]40,И;TVyΕⴭ,t1qYTW'V\-'TQ]Ίm׾V؍9m-`T^&!+9uᮚˉGl9-}-iCI-?}e-fJ|I0ΤP OJ9&vLg«tɎ5$烑Eډp!#O?NwVyN$~;M̹pm#v|mߕ77xo'v_~qxb~ HU¢<:K~i/$[HQf>^Rj=,*#[ڊ7^.JbRU{ɮVǔNS E[u_鶣'h3gt) 3/$(#ݷof%E?Xn98 K gIFصVܡU*}B'(:ևU)Wd {/өLtDhFE޾Ix:ggU7TX*qrYL͌88u*u߅hg?n-VYWsҋr=E[eA a`rǮC6nFqͽnffscǪgL*S;Áa˪'f~EW;[J2jE/A,^D&s|.&mW.US ڢj̿zRaä|ikО:8t`(!Q׵w~@gwhqtf͸(eq_cuj Ԍ iV7VͳMN|[FUͯ_m+ޣβ|󌩒1u¦hr[9ʒ9Wi{O1JoF^2: <:X0Ѭe 5]˫_Vc M.c4ŏgm=!3ژ-$qڝip3>mL@ϮfZT8 ULT;}JWԪs瀑P; "t?9vUOc v VX֨w+VTV0i^T+asVƵF hzt٠`Tf~Pj]6HEv7fR O]<,QFG5r hE:3:gP=nkr. 'Xc(Wsendstream endobj 36 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 65 /LastChar 73 /Widths 128 0 R /BaseFont /XRVBKY+CMR7 /FontDescriptor 34 0 R >> endobj 34 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /XRVBKY+CMR7 /ItalicAngle 0 /StemV 79 /XHeight 431 /FontBBox [-27 -250 1122 750] /Flags 4 /CharSet (/A/B/I) /FontFile 35 0 R >> endobj 128 0 obj [843 799 0 0 0 0 0 0 413 ] endobj 32 0 obj << /Length1 847 /Length2 2260 /Length3 532 /Length 2885 /Filter /FlateDecode >> stream xy<MrIEfLvB4h̛1BPS qKl!rmYZn,)Kr:9>ˣ䢋'ɖ C;G+G$@ @@͘d"2̉l2= F5T %DHH4_6pL1l@IAGqL0{v Mt.@"SpM%\&jD_G +d|+G70Iz?dz ˆ߻=1F' 6N3t2.,idPt|?Dfi Ȣ}(D ~ҹ|0,`ʝQ{2S~2s~+fii`$ 0$r5 E4a9XX6\. v@Я[pWwp-!AF "#.? ]{t"lWѿFoD6 x! )4~Pp'H0Hd|L2 'ShՓd_hswi+|uM^wˠP˕6J(5 1բۖ=<MGtxZ¡(˯ڵÇ SMcfl3={SkJ޲tgXvgWj66&rMl%f6!7WĞOdbh=uk sI59Hkc*FmߣS;K@J' }%ɏ,w6wỞ}]x k3[r bMoQ>"JӺaxn+ E?s)KFfq^]V}K GJf!A2cBڢp J#U8O^y0rW*f/g{K4` se [:b伜b>{ʑz5,o uӎZ۩?*czemtې`[99:mXռ(qcY6PpnrkD֡sRCo_D%lWj˖ҒCBNQU** LJMטcD얏1/yXM6cZkZudpact%fPRS _HH`c_$8ϩe063ts$G^[^sgf Y/k:yƓN\ΜYќVE%R\57&J|`fؓAl+ ¢u~@>{!0 fTBksEbNqINw%8l715%DmҨϳNݥdq֝{ -!ܑ *G5bxŕucw5#'k?d7+$.j\h=Q/w1͆-D{@^4gZr?i0 Q&j^ &LײKB>Ž f7\`jXcnT2zi]hM ?mRu59/**cd, h-N߼P+Y1yW~"P)`͍J~}Ae=0%06>c᧥GIBϹͤ(JK9h_/ :/N^/VJk5WWS6ۣXqkJ2RѼj|a5F>L5 pͶwn e"l6٣׵T4VrY&_I*ƫh6(_^kbjXdL]ϙ,(2KJֶky*a(igB_yV]ӉJ˛j4,Ku,n^1klzEcJF<ظ07\]y[VU*v,ӱ{`,ξK9&fG Q0,n'Avy2қ4Rr|d1|HjSc> endobj 31 0 obj << /Ascent 0 /CapHeight 0 /Descent 0 /FontName /VFCKOP+LOGO10 /ItalicAngle 0 /StemV 66 /XHeight 0 /FontBBox [0 -11 722 611] /Flags 4 /CharSet (/A/E/F/M/N/O/P/S/T) /FontFile 32 0 R >> endobj 130 0 obj [667 0 0 0 622 622 0 0 0 0 0 0 800 667 667 622 0 0 622 578 ] endobj 129 0 obj << /Type /Encoding /Differences [ 0 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/A/.notdef/.notdef/.notdef/E/F/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/M/N/O/P/.notdef/.notdef/S/T/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 29 0 obj << /Length1 1522 /Length2 6412 /Length3 532 /Length 7301 /Filter /FlateDecode >> stream xWXjҤ#zW Bҫ4қ "u;g/w&yg3oyfh"A9@QH/ HgbH99UPT{A ))@ c"""sp(ApG0ras8#'PB ƿWxP7"H  pG/G+B:2C0vyCўXQnHV"D P'R> [ U!1>w`78?#Pn/(@C%N c#JH  B ^'0SvpI()4Ñ^~;4`%$($bebjHG 1qb  X@A$  M{CA/ܝ+87$ CѨ+BBf1!/²3G( ['v3V'eb GYql 2b)]+fP"l[WIov~E~4[V늰9&I:+vm|Eu&W􊰪ͮa+_V߄e@a}Wo aA@lO?Xu VABnW=@-@l!{@ @l?+B 2~{Q 0(Ka'!&ƙ!س=BBB"Y1h4{}Np3BIgQ2\Қ˃ԊF+yqa dgq%tumz So՝-p S,rlr_ĆcГH\B=a1UGyhļUJA.-|s Iq~OxjΑk Rs oһ%׎O$|LҘը6T-~"J/.ąYLcZ3pW*dPd~QG(xiv&Fz0S)tJ:n=o0QpVk #?:gyd/3+f괨OҌ}<ƾ/Q0U,Qx7c6Zװ%?J75Io}$戡m+ڶ꛷},1lHi<]5zET]*_] ~H?AoAnF<@zK؟2U v{}DThaY΄v }o,7:?;I€-T(lN)Ol1ŸC(MdB%8ZBRMlif9=-mj;nQw#ɈS<,vOo褀0gi1]­ /ɞԪ=#rF zgc!޺(TA~!@{rAJӫv ʎ#Y1Tdn)It:~fM:S^tH xrS8kƁ'祽AU9dފc֢Qx+ ?{^qXS\اԜ7J'8Ɔ`qIi 3է̹J+}0/v6|m7ꌒL7xXDbH qN19x .HwF[U9mcƿ+_%y#.b9.ga~`W O#t7S $HQ;txJBS\}.BxK5*ՄǠw-^*9"'6RmKyũ|l^ɹliIאHdEu/'_ )vΓʦ-t 2Mh;NN)PV iIXἿk6I]t}GsTMc8O7prow`QGqZ 쇒_Zc9v:+bۮ5 " 5>~v[D:yŋv$U1i͍.Uo]0bY>3_nv`iMXT}Ni!t"A ջ3Iyش>%й1#Lk [uˏ@ݗ3,D܏i(Xc.y{{ nK2Qܸbw-sCj v7RX$>ׯy} 4U /uG컎t3'Ա=_y&㽗>ignu8werGo'FUZ#U;QH|K$ynmj/nf0.e{yLQcX_,މ!֎"} KޛRnnK=w̺z%Lp0"=C{#fƢ{5 `rXBtthTXmY'Mv`Z0t$`* {TpC89/(TNHƟy29.Ƒ;*TsCvs9q]?Ҹ 2F-m#N_]A<ɜrmӫwX1Ê숚H[,z"yw:u=lg$Yͳ)q.SW#g=87 N)jYK9*e:Hf!~ . %n?L>yh<ߴ_ep:\Z"+p{y#BQh-ado86oCz7lF阡7A31fsf馦lo;y/SZ:γЦ#-ƘOENV'hrW#/1{/i3㭈=cݰ>pUC7Ć вE&W#NQI)^q-Mn Ŕ^0pI?y@jbq &@ CtNVPwpZ>WDNr8ۓ5Aq -lſ|}5 DahOoDjCg D*h4-Ci`Α(a-;{{9JP>7-a ~^\0YYaJH01x̔$RE*Q^Cz~<EŚS v\6Dm 1YM"c{/qt'mO[ "O|^Yռ-VOkZ%sƢ}8)۴\pMOt\J"яߴɯɻ ͠q5׍?|KW'P3Y{Iq[?ƪSsBG}{RV7|ѕ^T7?C kvr`QbA+(a XȬʸB+1u#s8GOm嬤ִ,=PpMJ"-oy,U.AUPa'AwKD̻ԫ asmeGt Ư~w4w o]L^xL3sV ?Fzr yU,rX~GAj1e4>@ Cc}m it-?]dgkKL SG}}Lil@U9:C)Kn>,FWE1(YLoOD~陋=C. N^2ȮBWpj[.q;*B4G;ϰ;'9ef)~/_{B9*ƓR/5*~~k"@=GM#ՙ$C8'a-I?썏b-y0!_?|UUrʟq? \EZS}*~Ĝucckqh)f'CQpcdUBdB~^ KÆ}τr Pu^v[x-B*_BR۽Ma lOڸwjt- H$`$ը}(|1/ͽ6q,'Q9 y2ូ"]=[z,GT~XV*2bHa fLM޲zJt[2Tb %_l-,yD2+IC}ֵYTx:$RuiSCgQ:X '^ShIB:Dŕ` T 46AYDN)[!T>Y$2v:6,]"?ְy̧h*zvj`0KrlRN˦N. f/?Uwq[]"iQELRT9w3p73rǥHLJiˎ^dVH= eW䄆V&:|KDFeܽltiiRSIcY?~t2wNAR@díK-Ff4QYlMee 7hVʫ%x}~վ/^f0f VW`d*bUY& 'VbM(7?FEvܵ>uVr7lX,2ERJ٦\(Pnwִv ]5xsq|KZnC JQAҫ/g15#r&:K*'/B 9>8w zϱg-5H:ɔ໮m$}Y[97M&לF}vM# rSL[j:6p1mEW+U~i5[#VBa5[ komDhJnɷ|9 5AwZf1fU5JYƿcS nJˉ,f4O: ZԪW,N $}ʴnjuGȨWxIN՘gJkP0i)}7lړYžr"O:0SYto$>Z1@-oSM%SJfK}M̬6}Nr((>TT˴Lg +=bF߅:%!@A[=:,UL@ ޮ`P{V2u%^wTԨ'Hvem1AvqOCVoq5Nz_^bO")ʨ~ѓEG燸Щw0%7悽):Wy$<"qޏg׷%K٠D ^q"Kp2 IP ˬh&M酧dOo9waq3~WjKLkx`BL׺j8n)p( C:1y{y*[[&̋vU$_ Jp" Y( Nk\V<;oHR7kVy[PQƬd̶=O2֖u6o tmW6Fky|i{\^BjEP.ASߺS̡>KΑSAU~iЬtkNAʬЩQS8^31 V@wͼeZ.EWi5y?45h'&NO(=+ 쇠qlf52eyS.7#vi'wCSsZzJiU]M8wl-(HFtGO c!*3h!j2HJ ՆJ2deTb VU Ũ+ԩ]EΥ|N{bp}DTZ݌|E)"?FZJשX+ҝ䢤- ?kmS﮽u4|L>0x'gF0x{:ۭ<,s&1 .ɧ=jNjkbbjq^v5[Wsw4-n4Sӗ z h.e/\Ǎ%BQRC0NձN`~mycz=KUf"?Qҡ|Ŏ 31YEpX!Ji)Tlް .wͥ!WW+bͣM5."evнI#zBC8J@d`gqwHJ*)K"Ŧ/6w+)l3,e5Jٜ>|V>b}LWFyY2 Gq35lh29sBi-i$uRX4zlAbDr2NdL "Z2Sx=HM1Q NH9H^(70ڕ?endstream endobj 30 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 12 /LastChar 121 /Widths 131 0 R /BaseFont /KRSBEA+CMSS10 /FontDescriptor 28 0 R >> endobj 28 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /KRSBEA+CMSS10 /ItalicAngle 0 /StemV 78 /XHeight 444 /FontBBox [-61 -250 999 759] /Flags 4 /CharSet (/fi/hyphen/period/zero/one/two/three/four/five/six/seven/nine/question/A/B/C/D/E/F/G/I/M/P/R/S/T/U/V/W/X/a/b/c/d/e/f/h/i/l/m/n/o/p/r/s/t/u/v/w/x/y) /FontFile 29 0 R >> endobj 131 0 obj [536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 278 0 500 500 500 500 500 500 500 500 0 500 0 0 0 0 0 472 0 667 667 639 722 597 569 667 0 278 0 0 0 875 0 0 639 0 646 556 681 687 667 944 667 0 0 0 0 0 0 0 0 481 517 444 517 444 306 0 517 239 0 0 239 794 517 500 517 0 342 383 361 517 461 683 461 461 ] endobj 26 0 obj << /Length1 1517 /Length2 6350 /Length3 532 /Length 7231 /Filter /FlateDecode >> stream xe\]FTrADaFK$iDi{s>_uipK[ 0(O 13f *gDE.~ OX c=kMw0@ XAjf=@f#d"?C-`(H p3<@ Z`wc^( | H[V߱P@khޅ}YޅD0(oxn;C Go .Gߌt vÈ'.L#W;ޑW-Mi_֕iBzwS#$Tм#dM;BԹ# t߳;B_!ٟD[~@!?"e@!u R"u@}@ y?iDpCu"mxÕ{q X‚">5]gYo; .)liӖ55svMvGpK?ZIN|lUs:+׭&/%HHɏifTKݚWJHJU?ϩrē.E\&uE_x,IP!0vEUiywMAǤ9H{Gm͎VݑQ>`o/zO!n1Kn (g 6MXqXu\Q Cr2 ቀ!F|*83mXgP1zrB+(:yL08|JM {omnTyC*CyN%s&:U1Y TIF||",/6ZcB\*G%fL0*-]G.#S+UZSj]w\0y~V_6&4P0>2rH$lĈ{b/ʵUqd9 ~K5h96l-6Ve C#Z 7/k.]ҕ [\V!#darqRYռcy.ΒRGýV,3 '-Qs*=;PȠV؉cSr\^"\2~ zE-:R҇OB/6^%tBQ_0N^AZ> ak[A0nGo%w2j>hfnzyK&qeL7wZ8LcrP4&뚯с8 oQ"'罪{=JM"  րKofW%e4ы%KCX:(_/xiU<'!ilk1}2hWXG44:bql VK/@r+:aRefUۯi6  'Ixzx/ +B?/|s{D޲sT[5&%x_`MWcJD[b8") h{%6%$$k1[M[{$u% gm+u#T?Wc (T t !"sE!vV`>Zi |Zܳ +sMNFaqN!l]igU^g|&IU"ܬ<xbN/.UbT$?c't.9eM+{8N2#=iܳ3攖Sj4ixCd:GEFݢhA/,Mع'YK${HwDY̵LM9h̗b^PRRG;~ٗ#.el{f8򆵱OJ  >(~# fHVH\b,kM3E)F t;ʪx*f+0_Ɏʘ[ugIie T5;";Nm>On2oVqZءLd)aiJ<)\covm nU1M1}*hˁYyFUbcmǵ あdhn:UntEi]ts8՞n%գ#ɹc(Y1kkIan)4oB{X^ঢp4p6FX7Wf˳04zHa-!mp244D/ݠo沿9l<|cqV EHj:͈׸wO:+S $y-ʁ&I^np,Zy|NkT)O隉Į{ժwD 8C7HqNjyoȁ0Kբ4,C^:\WSkUu|%zjIA3z%\1{i)|T1Q'q>*ypܳ\= 9cz@_֚@xI?mDqTU0ղT= W"xqd{l}ۡ7er2T_Ѳ>N U7]s7h*x 4g"Ҿ;,خϦyE:'Z m< 𛂰OYS+&ᾗŕyֵr%M/YԎ UH3RW2ŕ5Tv d}:'We`h2NdŐ )+D\H)˺٥Io ʊIw7I6VMEp|ӱeh?moBWٿ{n(&7e+.Ʉq UuN_U*[Sw8$B7Yd5:P3ўҪ[/xq XbsPH2ݖH'V={^b_ȉ[7]VK>Ց}c7?`e4c(_z\H~ n^\YaJDӭwLot5>={ 5dtvE 4=خ:AX "or# h(*R+_k0xynW^͕=aE,I ?5wPr=!|?TUX 4H8X.>0DuYݔYyߒ!؋)6hDM4uonG:TuhU/`, 7!ܺ]M<10mAgө\V+W$o#0(yÉ-oj\HjXد IA.I:3 ӞZEOmzB{Pޕچ! E}ɍ|Yx0#uժ`N_%+:'FPHgf[Ef CFQcnŬI+O)-9=I١kU?3[( ѡՆAJM sQ:֋[ ZQ211_9?$s Sѧ~0IctBg(&p^RmYWkĮ`ZەxHsf^ aݎJNrh@'(eCuj뤞(RiԉGm~|2cfeC؀305b N_Y2fI StI/`>g"@sW2aliZ̬y6#J,Sи_Hxl/#@,Clp5lhAqshe[e+M/#V/ )b+Sֻ>6L5&\'s:>1HW0pfb@i=]晵x@_A4 8klwK:i{ڃᴞkkS |rK V(6k I|l4RT; }uc+Cx/~{ϙmXγ[',TN΂ |\“*l`}o~/ ²):Bt=bwRc2v܆v3d6c 4@pT:9,`K`raR6.R ޾<8,9&*\AT$=0}.U7n'ؼSw/9j 9"YS>.7D1dn lro#'QgtY(J,@t В?/= 9_~endstream endobj 27 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 12 /LastChar 121 /Widths 132 0 R /BaseFont /MTPEYT+CMSS12 /FontDescriptor 25 0 R >> endobj 25 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /MTPEYT+CMSS12 /ItalicAngle 0 /StemV 76 /XHeight 444 /FontBBox [-62 -251 978 758] /Flags 4 /CharSet (/fi/hyphen/period/one/two/three/four/five/six/seven/question/A/B/C/D/E/F/G/H/I/L/M/N/P/R/S/T/U/X/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/v/w/x/y) /FontFile 26 0 R >> endobj 132 0 obj [523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 326 272 0 0 490 490 490 490 490 490 490 0 0 0 0 0 0 0 462 0 647 650 626 704 583 556 653 686 266 0 0 529 850 686 0 623 0 630 544 668 667 0 0 647 0 0 0 0 0 0 0 0 469 502 435 502 435 299 490 502 230 0 0 230 774 502 490 502 0 333 375 354 502 448 666 448 448 ] endobj 133 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/dieresis/visiblespace/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 23 0 obj << /Length1 1826 /Length2 11421 /Length3 532 /Length 12463 /Filter /FlateDecode >> stream xUX\Ͷ %kC% Npw nAs[u. obzb5 % 'Y_3 .!.@\!b Dol"8(7<ܐZbRGAjH!H?I.otAAzA+ SCzJRO VCz\? tM|z3h_| ფvl`9@?ېRAdobcX_6 !V!d!D//8)bb,! BB_bBB_+ϿbBY'.a0spA&d/i6n@YI ttׯ o@'\ 69_pZܪ%Aw %d)˘3zcE&63KTysB랻^wU׮}1zG xYnC*P}}Y<:ҙa4jek)IkBm#[V.AnXyɯP9K-l"2y $b P _zXͲ2t/LoyA=o!O+"Lh"THU=jTİs ce/OR>2/mM*?Bքi&0.rM*JOMWn]/NqWDߘpN viwzi'>ߑ٢WO-)?DaNOq`@U9 -fGbR0ؾ|jq ICU"qk@8f.~w:aymC=-хQ)_{m}p+,r~OŠpcne@V6TEytqo%5mlGLӰƨqJ\3Q\.r8f}sr…ڻM(2vʕY4܇vVR/>柝_\,RI2$t%/~P#OALO)Fym+_<溇]ݾPh@ج+)jcOs81h0:S$~]jT2Eי#d"JҤv'akHݭR{6ROMjdw^=I TP`:>Z.Uet)8 IEeV$PҴ,}ԎBwY+S$Db[Qk3A`kB3;n;Ee1vɬǪﵕLU8LU;Obt;bܩt/Z_ k@e@k{_Kʚt.lB-T18!jO=Pd\)U9;0}OJ8D=1"e;GtSń=4%ӓ*Ђ8cˆȮEvJ#24Eu bhbyԄ$uvAԙ/Wcp:ճV :RXWG S7x*L5ˆfNeMbݹ*fjpGTxzو8zapn>CϿeWĮ9*,efxJBa,ID5y>ܦT^&H5HW=bwVM7RO\`5^ⶨ'M3S+X@i:5Ih28Kc- 23QR:P3Nbb`YNXCX O@hQ=vY =w"ΜFA?sl.gz4XT#0?%b?YM6ʪfWQFp#먇t< /M8=4yR[b Qw=vv#Ѥ&vjx4>լ,yhGl(El4s.'X0Ɣ~]oCp.(x]ڌ˵A7Uo{ Hֺ gB㾒U(GLT"MPt°wIqTemIgT0.*)2ٙ%ŷ6b[g7tK?7Vw(4NZW>Dʉ\}AiOj.,$fY0%']74uz,h4l,uCQO[=ϴ ljdמv$!cahce /K;{V.F#`7/N6+zoL|D •ӎEMU"YW ]{حi/swLy;dM?H..@RúXW[Uܧm>7 Q!R'}w ay+uR#>+Ȳg:PbkPe|ɊTH_`R *|=oQn"@c-t@\+V7S=(}`=GXE`z(u۫UґYҥ/B5=t?`h8+iy ĝz(^{viyKƦw cxјȍN1-( Q ?XISe Ɩh- ozkj"'p,qc?xn<GX]we W=ėԢzD}48t  pW̑~\ (M=Z,Ρy/=X2`ѥ !C5?x{K6?O1dOdw%8O?dH~;X@YQ[6x)M=Y(4C&zHQdyzW*5.wbٚIa8fk, Wdp ^!/ 7e{aɷЀze.hpwPۘBmy?gٜKӎ%@ͺڐi7,Iğ P7^6%%?I Hrm.iIMv6R"*ހo#Ek5Z[(o+7V,he'ˑH&A>œ 'En=V<exfݭ\ܤxM}~k*#Nq8Dz *BE.>Duh\4t^Q09d1@+>)|V+wӺЇDeozs'ޞa#Cꊿa!2}^j]xE^]_5V7tbQStMQ4( _n  wmTw² {JM5q0n Ue%6EgNIJzD@\3;Xg׫r48ٞXncwS!ɒ<<ڌisfM NM5؛M[wrPהd/#2o1Q.VjㆇyaH0_u17wau\))5%Z?쓘h%FP=sm&sf_V$N_̄@?lPq)='mSclp!ӺRjnD++-h " Ue /!-mࣜ863W8 ?̀"QT߳/xG\Jew\WVSŦ~AJd8Yŕ|m*$+7#L@q{ yZ:@˫<tGǾH0Pnva4n520ӂyBDlršyQr^[(y(2@>UnOkj5c'\Ĕ}Cъ'DoB96RX?]e+}u{ݍ{Sөss5<}>i eBy`ةPFoM8*D:ou3jcux/e8c5}+wX<ظP+?*eDJ닖?@{>j2xJ%W/Q*?H\}EMRF?Gcƈ!_Ǻ".ۜLR)-w%Mc2ߏWK4DIWW=dU:ʑ&r< T4W9ѩpH[M<*z:sV;z 3^(qxEdZfjT@4_}W'n^O0jx8!*d_擄cqbI_=!9;itr)]~6>C^BPg4C m ]h'7O Sks`y~Ac/<-X+YIݜiم(wvͿ5GYu׃J>v>̽=<&rDR<>,g) A4 A(kQlE<,|&vCA&<χIpBDhX>=JPCttcZH cDhf';ꋾ ~ {lz'-Dl|C>Qzv)38*.Lq6 h?KMݍښ).3nkmս>ȁ'-0JB6x)'Z(ƫ*%eQꃅ6{y򼓁{E$j=2| .` 3և3 \*-$)Hr~aŃIx^Λ &J'&z1*!:{I4iּTJ4{yF-<[+O-+P~3Ys0X .<iHuD bj?=,]ǥPi92V&[sU༊ǃ2{M&)w 6d uyr3ԺDa,4AXCVOLk ^4gn}vO*d[ֽQ*Vmdg! =5$ B>-Y*4K_~myFv?v\OossgM;\g`BAyRw])#P@S>-lw2~;\PoV!̲6k/'DIld4?@gR=fMB"wjXdRx۟:_~q0v,0(|φOƕOQF,O\kac&q7T\&7KBfq]`Z+򃇅hZTmdKMFe'?RVPkj,%ZzAԂZH3<<|MG_|y7̓PeS*IgM[pٚ01zB2Fz*ԬiSºGGkп+@9KnLBWjZ:$f"ܧ,^_$Rd֡壗UTm>xTA;hd(8HlA%ueKAAgY9sB0nv[1`Ua.p˸61Ճ1K0`+F"ǎWѽ.y)ngs풍n5J2PL/ŘY>,BIԣYр t݋Xo/gqپ|TXfU]G:][וu@~\'`둅Q V~7~nWtzmln(4gZ75[]&Rsé'Cʙ J^e_~~d)\^a8% Rw#OMF ~Gʛ68@5r\}2=&J0pf6S2eYc 'gbSD] NY%x0I %$K7&AńYG,b O(qkQnyZNrn9xkx7;*'`|"]*n*C T,rV8cN9+2e(zUk+o>Ҙh.Dv>cʡ3=bl](%Zǥ&= gɆ[Zg'.\즃w35w>) gI:uBgd1\~\99Wy4[%WƁGQՅI+ ]V)Iv"dKzp ZU)ܼ"uñE@Sv]1&ຏiUX*oΞ{N\ęt '񱞫bXqؐ~=i}~ L Mh[ovgGlwgH(5q˃%CL9Hg`N;tG pV\8kX҂,dǣ4,ȓ#o$9&z䔜//U #<|#sA< "練Zry2kDs BF3~U-q ڜ7]P|Xs>M5>_?.>iP~h{c=ޠU9I&׋cYcUdiDCC쮘r/Avޙ |gVH?@ˡ_.,jyɸd|ЉsBuAhdyF4JL%g6<3D"iAeK|ZI<6{t|Xi։+(yܳ'EsSOD<$t3(T!U=|7H&K$y>sGVИnR =| I| /L {BOW= HFF6Tk,zE*BMFZy:QKTh1-иBKy@7q^֋JUƷ>aHb?lQxW+5T( 3z3 -PC OJ*9Vr@Ďf専hj{v\&tz'!k P>9Za8cteS%j́)BOA$Y =.hQ2i6ҷ]㳐 OǓijuUw31\;h+5H;LHHFEgE_ެG1ÕIeaSgkjW3zYU*3n iš&M;͡bdK/23X f(?g@aRTx ܺhpxS؟_iYFb2sol0edYbK8#4&HhmtR2] fB- Ih6tƻ,^3_I̺a 5_@Yh"zV꣈2ZRZ`By7}W7PPZ(Ż#Hj3wE) Tdp1mEW)ͼ޺(1c͏\a0,nsD`3mKuQ00^"(bc8TSO!q?(;p]k=L/ۨb/q|jݦ;ͦR{<-Ο<5p{3im2dt"Я ])º55:m9m`Զѣ֝7&=qqi~Gyi$GŽ+TVQcVMv+^ؠdPfY#Dn}JX ཎ̐ ( W8uF</%Yvn\ m-[p%շr!;mϫ.bPQDYf?&VNJj:)ٽPe)ʶ&ڪd"$3?O 0*k5۷ʸ{xaQVgi}|5/E9<< q~v!6TQ'PHo8 _OM(݇극:V:bo$ğli r-<0D@^8ZW|ꜽh{z12Q\xqSFlr~ FĴCPm%-mC_.={&{.%+3n9#\;kUۯ#mMKZz/Jn^VйUF8ٺqKRix؊򝪙IN(d<ȎĈ*=B`;IүuLͧmoynRdWӂ^ٚɿL"bmV1 2l)D&:ÛPN>{sopK}EFbB{M0 Em=1?^G|nS9LykFG!AFZe WS1So8>fA%}{;}cƙ^3\0.|_N8<_;*Gqvr8(K3oS{|!W$0]A`;endstream endobj 24 0 obj << /Type /Font /Subtype /Type1 /Encoding 133 0 R /FirstChar 33 /LastChar 122 /Widths 134 0 R /BaseFont /ZAHUPU+CMTT10 /FontDescriptor 22 0 R >> endobj 22 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /ZAHUPU+CMTT10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-4 -235 731 800] /Flags 4 /CharSet (/exclam/asterisk/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/at/A/B/C/D/E/F/G/I/K/L/M/N/O/P/R/S/T/U/X/Z/bracketleft/bracketright/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 23 0 R >> endobj 134 0 obj [525 0 0 0 0 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 525 525 525 525 525 525 525 525 0 525 0 525 525 525 525 525 525 0 525 525 525 525 0 0 525 0 525 525 0 525 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 20 0 obj << /Length1 1074 /Length2 4761 /Length3 532 /Length 5480 /Filter /FlateDecode >> stream xy9_>eb.ti#hqQq@Lxy5P0(DhB0@\^^Pu$<@zaPpW74pCC"Y@ w"C( v #04FP:|`(?(H\p;G+ˏ + 7O s!Z0 SliW{[zI.34GR34ɉ3GF6&0>uj&i(`zs cWj&jVH&z<drbzd)du+s{蛃[D!x+1YQiL]yw]aϲXbp`Z-M}6(H'2Y4.J︚\0=KS(D9xWTvJJwKlz >(i3zl+?%kQR;uЛ^ȴ$_!}wS>{ t*ֲ^lf.Рg ch9R[vAN3SX$˵j#%tO2ŲBHa (U+.#EyJoU ( odd~G.[L/Li59Xi͵T5x\ #PUv3HtL_.t]ŷϺ\}[֬YE9,W;[*/j`{K@+qƙ7XpkUJj~vXJLe=;Z,dUyr@Շ`NݕO<9aK&hWL{c43DbtHǪ5tn-L۲3I]s ՐJ:7,ol2Οq ?~c^~Ru9zv߇QzF(V2=a{ӟs?Ȟ^?6Q )a{;ggtBrъ&}$6c<۷P|qlkIe'AtI懋52GCUȢBfA.̰yL~XS1F+#Zs&[* )_$wف@iʍ:G V|p/Niu3Nxu-a{t`a޿P'-?)OA:װƭ_t44R&sIIW,ugJl6[e#FfOΩ YqHǛJ;cAD tdzXM o h[aro|s9NI pp)n>JG~^~?]N8RoG+[+̻4 M>)̖1."[j?ݯ.>5m\s/g_VE֬Q{'\T%>S|uc`,y>F _-~X#<%Z63ߧ?W25Yqa}wR^%9ߓۦUWj,CGŷ)>8p |TLζu9j(q;NKLpw)ljMN,O10&lbexnE)\Ip2{e 1O,%L 3輭oEvurj ?)Un@ _|A:[xKDNm0#a|PЌ";?.Lsϟ2fvSvME=SH چkH^5+$9+XN{+o&j$ImM R-w+gE UAIZ_rl E^f)Clѹd%K,GU{(FSzV4_ xRjaîԿCfIT{ApW2ﴶu۱ ƘVjy>/Qɽxa ba.|`Ɉئe6懔ju•\P8VCƛHI~K7^6eZx!7C;iTU V=͔݅@/^"XM±d]t Kn{9Ky d}Řñk'C.SfPϽ+Fzb&|8#,)YX+D#bsEȭ"]qfTܒlKʕd]^"kӟ^t^rbyWMk5Tb7i.vf<zktlP)_=H]rϿ$8e3<ةFkv#_/q\m,z$DzD9@}]٨jɅgpw>ڮ[7m^d%NXl#_8qO==[K_a[yAuyVwxy_T,8Ӓh7ϻMt\;sȓS3CQTKpT|=jxxWDfOw7$C;e$Xx`΍c-Y΍TΛϽf;~Qk8{M`>|}j( o}X0~"a&`ݜ@Io]r)N>P\2C&I-#\s{_"# Fd> 6/ܭi{hҀ6 EMT*@x% Rɚᇐp9{RQZPVH"zZdӘ[V T2> -:X*ABkڿSvݙΔNˣï2Y_Ny'(2LnLr4L{hTF)(sk֦z~[wLoOL Z9ϑ68~2aܱ{F~ np׳]f]/SΣǮ"+y B%$If:\,+] B;Ez+f M{lU]#̰ô ֕_6KjW_1 "ȿ-٫ac=HjU\?G[Cnb?Ɋt3s,KPH[xͺ,'ҿ$`R^tS?5*__7~g̜ Ni0e}&MZm˪6z9ջUiS)DT7IT&bfMZ DwŸM.5{QpIYK Eiәv&"+s/ϱgMeJZ:b8lDKՒ=F?Dyߚhu|ܰ[l"\n훽צHgpH`d߆ 9'l-K: LVS"mT&wfcArݥGͿuzN:4pf]_(o :lI.ׄ}W|wτ߸wǼ)PY4ݸF^WW>C:F&m H̓T6uHj;, ?%'(|V m-lPz \x9AsWhdPtN`]:岮Oꊑa~ u'8y (4:Sendstream endobj 21 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 45 /LastChar 88 /Widths 135 0 R /BaseFont /LJHZWM+CMR9 /FontDescriptor 19 0 R >> endobj 19 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LJHZWM+CMR9 /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [-39 -250 1036 750] /Flags 4 /CharSet (/hyphen/slash/two/A/C/D/E/F/G/I/K/M/N/O/P/Q/R/S/T/U/V/W/X) /FontFile 20 0 R >> endobj 135 0 obj [343 0 514 0 0 514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 771 0 742 785 699 671 807 0 371 0 799 0 942 771 799 699 799 757 571 742 771 771 1056 771 ] endobj 136 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 17 0 obj << /Length1 1285 /Length2 8814 /Length3 532 /Length 9618 /Filter /FlateDecode >> stream xeX[붨)wkq)ViݡxZ(^Zx)^x\ջ{&11}f5$-fP9 $VR@< Yہࣅa>5ǹ?q?Q|>zKI=@|.^,`A^sr*xxxy"P@_fK[z@ͱf!6) a%~h4iE!cui{ˢDӈ/ZP_6ʁ >ޚyA<G{F&C9=Y GW:*wABy%sw~ 8~$c*'AuvVލ^ CF =ߧlQ9*(3iX<kؠ [lCU6۬zڼ*PQSSZ)4b8}Ai2:wn㑠OgRN%Y0qG( q8i|'/ڵA.1F_7 "˝:6<&;#~|$l\BSI!-[|\{$[7VɄ|ǿ$4iJM7*ek_>Յ$u^PKar^ZfdwJL~ ZHc8ɌA9Rm"!J(h]B.|tB-bk u-*R ΩH 0'<-奼7_&omozXB dWr2'ѼES)>BdtdU[&]nSz'`)7{՚ew UJO`5wpM VKVS/D[oШ}`,[tk9'DgUc;e3eKCV(o!QCcx%[ˁz<+XZ)T\޵76&/1=kDm:J9$%zbdxQ,tkvo⓰5VJUjVq$S;+sb׌Z,B^o|j5 Eܨx/{ K>e6Sգ.9e5!}Ez܅ZFbq~i8=YuCVMvL0cY(GdpXnFaKU><@{F@a76|iv(V!sI67 Zl9$6sr &)9:n61ɒKheiUaM?sO}[H_e*0_q)ӯ6e]ͶqcԘ6ZXzHl>m{{LDEO%CmHM#SǾ[t\Ō ɏH?>ΐThģ(xX,nA K鶯3;A{`ec^+>#a.s Ѯ%c"JO_Ssm &0-y HEgJ5a:pԧ7CPO;\;.ЄA=$YFXǀD/yfp9}@Gm!7߱̃~K[tuTMѺdO~hD&\*` wuN 9SRSe9U8'bO CY0g~__N6)r3 oU̔& ի&% R/@*]Ԩb""K2,\z*WZĐsJ%(bX`@lJ}(%I* U (4mgpbtn کf4>X?^zW>r6%kIgly 0垢7~5Ľ^e<KҨ(a 7TZ;ePW9gcYR}7\%1c<\q2ޚ ,'[GVJW74fO%RD47Ionl*Ak︹Rۼx}vX*,דT(iҜڨtCRe$c_N}qɑMVwK #*tJ Uk2A::M)&2zֵb%bS5A{'ؔLШ]~%u &GffEu9[>V--nb=D+{6ub64N9OS90NDdZb*m11x A9 NQ6:ET:B:aWNXWdÉ}}s1KXp'f( 2o2$"j`O_~T#LWpNۑ侼S8܇ .kꑪ'ol T4UGb^ҮQM|Prd}{u2Ჽב!6]~)2t 0OͽuԍKy5kb6tIu[ku'*F϶,;] ('tDvίs;ʶ6,5t6lw̶U6>ioQcRN+vXةMZБE[y|x^}T5\ ,nS;g݋kʋ{¸p"Q[域!)Ͻʾ#OuRt[nZ򗌍T ksí4 g)7LϾ4G` cPkGM8NtN4"1in]B(H|JpyjIs@\ҳVHtK{p${,~R eS8ۚbŪ*òm"j\ PMWX4F7^Z/2F*W% 'dCߞ{6)Eky y}6dxι- 7r/FrY7a\ޜ|YzsxAu=5yuwyTYgy?iF_fʹWF4lʕֈwe6r|Ok 4Mx:a$WM*T7Bd^,aM Tpo6ZaKpw\(8urNzh qldo ȊZ-4]~Uƀn#aW"MH&ꝷ^8ॺLy7RSmȥ1EfNȣP`Y"TND\DBg$ʭBhTƭiBLGQ$Ն/F>h?k_c3)}|UU5x|i.ǥz׌0mU+ -QIm &}{Unj0%hRB/?v7i~ }Q8]]uǯ;)2IcW3Rl=SCp`ٶ] ZB#M/5(<4E0+Z=AO%U`J|.w( &} S,VQ,(t\@)ICõ [,[ќ7YYJUd/*̌o4(,>6CM4sTNG'q:o鐺52:f~EG5}eSUB%dH ]"]qf;;28oK2dQibSӒڇ6e)]ƴ9mj[ZY\"6g%K}ڡsBH7 po]Pۼ Hs]jM\c|JtvQ]-UlbӟN&?WJRBWj̋YǾHt Kh<-.zb.7ȫDeܹL eVW~7U84QeYKI6η!q@WQ݀a kGotuIxMz.kF9r0 ]+k~3ߤL^:s7M[ a4&y'Cm>=Q!N6BwFJ6$,%gr6a Zxoh"LF>Uۣv<qucɋuyW?pk[ hJNhM'X(?l{:U2?^2ʆÝckU;asIO&fVO&zww{hSnByʸts.g}-]ǣy?}z0R$$+.m譙XLμG1I˘ô߆Gٶu:7(\wE|2Toݺd@ScV2}\9`6~+Eœ+fV~wW:wZ#N,(lLBi*j&W} 9[T?RMza'Fǭ;c߬+Kϡl~F@aKO$Ap a-i,2F3X(^u;'˸s\bv>/|5\l\*&یy 48p"qLR@qɺpEDՒ5_A16ILin18D9A~YVXF5>g\ 0>]-TYZR~vZOȯUSkswdeq1Ɓ"ӸBX*ʹ?`U)ɝ bD>HX!+K  A=MAi7BO*:*v! jH p<ޒ5m`Jjߔ$Sw$\4<㴦7"p!c\>HÓL PE麟RbA z>'I7N1#%^jKֳB(pdj-WlYU %/UJZQ/btP~P4 na.lO\'}OsnF1;ϞO&-4"I`FO|o;|9:}Gǩtd!%!(y2fzҮmSWU#3yKG}dYȽ) SΫ~H!, #7@i;|:[>Z]h)}nK_鸙D| &uW]+@Q|'-aoPFJ8Gh `7j SU똥b"|=|uFLNc_ǿjSy h;84li~\qeIYÝ>a601;zz]ҞORZ*jYgOeq6n\y90 Irvd|Pъ:anmXKhq|O8rZfH5`m/H =kۈ'(S&t&oY0{bTJpn]rt)'D BG]^" 2Ck]U%+C\zw[l hRyI}ZO{>cyr ꊰYKOqXMTfWDgE;r3؛%RlMA.%֐Rw㛘::J%#%^%ӕWR5>x[gIOGX]뀂>6nj;oޯVt?OkӞmf v=6)\A_N zҚrYBp2yI_|k&8ba*іcAyDpYh'/^T&}NjɳsY/$vli2SوKv^7II 5V͝o?VX ?>iƠc[zxq7Q$F][:(4 ti˜t?1MgVf/S*9Jz|rZJҽ>y"bY_9r=ʓ9!=5DmE2lh}œ8CF^aYzU_N -02[m}Kѓk-yI^"XlK{4hD*?/u%ʜ's.IV^G|)"/um'C\bz{r\j&.'%͵z&*XEL9f^)sL:L[4C#k"jnW1gՈ`'iVseG_ Fd.>dmp#< FJU |Z=ǼTnJ}~-6Z*o&xtH Gkg]hcZ@Ro5MS;1=]d-^BCAj|@#spj7f!{M=q+/"s7r@@,-GBE9cHeVT$kmw1Å6:hoq}J_*C0/ЯH?UVnQQ\`a r`("AT`MuQ72"ooF*NSIVtf'6) Yn} MPfAvS+Y*EWk UTg{ɮ́e!1i:`McqLp4$L 6x§N{M=j@` KJz / 9[ P}(.n I5_@E'`.9]SRr m2U'`Wزf=FqޛO,/)>]tU`YnzV1ec:<`L)t9By=i4BYOdxju[d\.Gb3CT9#˜[&cr) %n.+3!py*CE3 [/Ѝv~> U64{Ȭ+A<"yMkzh9bnAX v/Em¶ iK>]f94S3+g(Sz vյpg|hK"<JW"mw"X^N/Q1CLjjPG*7$8 zass{Х I1>tݕ~'A!=aendstream endobj 18 0 obj << /Type /Font /Subtype /Type1 /Encoding 136 0 R /FirstChar 12 /LastChar 121 /Widths 137 0 R /BaseFont /RNEUNU+CMTI10 /FontDescriptor 16 0 R >> endobj 16 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /RNEUNU+CMTI10 /ItalicAngle -14 /StemV 68 /XHeight 431 /FontBBox [-163 -250 1146 969] /Flags 4 /CharSet (/fi/comma/A/C/D/E/F/G/I/M/S/T/V/X/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/w/x/y) /FontFile 17 0 R >> endobj 137 0 obj [562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 743 0 716 755 678 653 774 0 386 0 0 0 897 0 0 0 0 0 562 716 0 743 0 743 0 0 0 0 0 0 0 0 511 460 460 511 460 307 460 511 307 0 460 256 818 562 511 511 0 422 409 332 537 0 664 464 486 ] endobj 138 0 obj << /Type /Encoding /Differences [ 0 /minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/.notdef/.notdef/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 14 0 obj << /Length1 940 /Length2 1917 /Length3 532 /Length 2583 /Filter /FlateDecode >> stream xVk3`sL2HasH"""J9mrHݐ6-Mڶ}ۏ_wGM׵ -E#& LM͊,2f ml,&z( XC r@ дZmTA&4dBTx: B\VO0 1C$ Hd" @d ȎO$v0` LZ"NpC:wA' Sߊ۲)G*?xJpSC,8ImٜD"߲v,B&Z(6@1 2Ӗ́H82&Vho[3tsk$$X@}^X|P -h_|̆Fȴ@c ȅ 6H0@8 H8HDtlu2fR46sY+$ R (Y_ $}- J!,@::Q 1bQ 0>o_ ;$A@0) 3p--p]=c@Pm(0F79 Y eyD6Xk.O,q "ldNs<(Fl ϦT)YbDųM&E1*6?meT'9&Zd^gJ1ƜLQGc֮- &͌gY?YP%Xz4Gķhц\}NVuẅ=1mOj',&au-Zg&¶vJl)o8'y ᏺBD_&/u5+Y?k;~gy*j_b3:2Q*仃&ݮ_C}q >_d=w$ь&8pomC[:tA̱G䤞]z]`K+}ϢB9G}kaING֩фw7#xoLfM5GAiW"9ZRۣ2RfpVfBU. kC4cMϼNVMDTUy>e|:N[?5PҬ݂pƚnYϯv/{o7oa=S=F!k1b]9RW FXk$E3e͑hNm\tTD-cK"";{; %(%0b^?[myn|JqH`tmRb^*D?Ŕ񋻊*Wv4nUIXfx) }{h""(1O ƍ/>-Cg <$ZeLK {lMW9XmܲFUeKT&.G"lRVk מo`tz~`'wj߬wIM\E!3wyѕ+7.^+7bLFM&)VuxWׇ" 9̛v5U(8oWmRɞwQ=3}kR!t2{yv@$(>4NҮ~ᐍ(>?1rpekY=9껄;-oZ7W_'f]sme.,>;W*odpфCUub}9~k$_E8}myW\c`’a9f ɦNw=oP0:""w8=bx qO#v{LAg^wȍ~ڙsȏ1byI1]јRCa)oҡi<!z< T;t%}d&l]qw(>gkqYy# ! AkcLHqEE~y>U4XZ+% GОjkZKL5|5URn~~߲Tng`i9&w m>7+<@Kj7dwaeH+TWz-az0Kopdp(X y3"˳Z.Ѻձ<駆E6 ٰWS=49{kTK >\Tضsfol 5RoFscjۜ?)ZuyN= [ϟi%1Jة܎F#F F$7:h>uR]m@kzչg耙hl[k &^[0hvhx_^3 ,ax1\:@ܝ̖0 W(K^:Q}\: h97{l9_%dTeZ4]ݦd32jh1$Zʉg).(vWbϛ ߏT }xy斒҃4aYZ./w\sfoH3yj_Tj(Ͽϒ> endobj 13 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /TCLAXD+CMSY10 /ItalicAngle -14 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/plusminus/circlecopyrt/bullet/A/M/S/angbracketleft/angbracketright/backslash) /FontFile 14 0 R >> endobj 139 0 obj [778 0 0 0 0 0 0 1000 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 798 0 0 0 0 0 0 0 0 0 0 0 1201 0 0 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 389 389 0 0 0 0 500 ] endobj 11 0 obj << /Length1 2112 /Length2 15506 /Length3 532 /Length 16654 /Filter /FlateDecode >> stream xeT]ͶhwwXCp{pw %Xpw osvޯV[}ԘcfXI^(aoBWaf0301:\,Č\<fnn;; ,9@@%JO'@dibd7r~01ڛX]<66pNn@SXff hni=¦3trPK!ijog 02*t~K(Sl-m<;7:T M-]m _!Kg K8K|ܿ$>kמkL峧ÿ/fdaX^ďzۙ؛ZڙX9FNNFwv@Cǚ`Џ=g4W쿐- A ́NFv6~9ڻ?0:LvŸFQ2]? 1}0r2w%x|[x:X8di7ۇşȇOCofrq3ab+㟕wugm-u3/׏f?T,g6]O[r|CEGQ?QQ}T7q~L[}LZ}LX}V}LU}?">\Ї⿉E}tWCUG裻>k裻ֿcNF&@5?? 9 +3}ab>LLԬ'C꯳~vᇕ_a~X9VN?_a~XVnᇕ_݇_a~XyV3ˇ߱= "bMq ||0;[jv@i'jqzM`WMxCҚ + h@E[z@mJFei6i>Uf!IƾNMLo*lɉ6¡[i׮;]Q t1PL:XUviUOˊ‘FjN*ha9^3Xntmįz%E2LU1^o_;eɶ.|\ bu!ڬH3ѽop`I߽]2}Ka-D_srdT cvDb=juUP_f?n2R)Vm2n'!X Km QA gG#M&YU@ݨ[goiP9j6dY A8_g؇u^S53 œ^a۲Mju3)+çB<GֻpK \&@bvp'f6^_uoټqvNP!e')-pOc4[Yww![mC[k 劍ΉE)+#'Iki/"{ɟ-@ɐYw eY1VzUݸSg) v!u:P{j +d : m}^in&CN;#/},:ϝZ36MyQ28KgPqw&t,oBb?<ϸWX\ ~Y}ۛkvͿH)sSa㥧ՔŞE߳:sHرytMo܁BfyfL¶ypXl (;qxXHK?"D`zVtO~b, + -E1.H14qᅉfYl>ڃãۂ0kVK{!,qﳾtc:(X U#硌Bdԯ6xMt@c_NkK] CgYSrr7bkg*]\V EΡv/ٷє'YѰ%5$KkQE`XGT<9 zosZYQü!B[h4{w]yR8Uta1ڎgO!`=y.''9eǍUObP:_o@Xpvf/tayt~s:%Οiz&؃Ox eii|OPR&)fw0BU5[w,3J9ڜot-c!O8|Rً\6tlʾz_S-F7\>=hQhx", yjh>V1z7inȝGQmgI$\?֬k/Tt;fqԢQ9Ȣ_Ŧpvoͣ l,uFUeV,/t1Xc|"=x8yގ=icw$ UƵ13Qք&[!Dꡦ#1oM/e|W/&?ӛ`aOxE DĜ5)g^9 ot,y< @:Ǜd"z,~_3^*U%F0{) bF" }I2Y9.["GΤ0 ]U a[iܚ > b|PD"2둬|M_A|c`Vk}P:Ff@ʰA/61b*/ =ذ-s30>Zd%Nv<.*))Fz]*<6e2pl{X+˗C; 10Ѥ~hJ;uVN`!OFݳF`~ B}KI1ITnp2;ɀ"!^ŒP F/wx&jgQo3[D,F1KaU#sju4fRbXi*"`>¦$~N)T2wurN`0]Z]M" w>C3\"b`>ő. #tƳHuUqq!I_4D,>;<@硫L{f5gĦlq?aV-W%8#vf@K,bP ϟ\ٝbT xiw"6l<9U8!՜qIK {-Mq+F9I_t 9QY0[^;jsn*~M_2)gPdX8#~f K?TxP2U ' rP2#j)uUg89$_)+l}1(*aeo }TX4BشtO('ֹCgs6|wPp@-[{!cd#^Q }P/a@ql$|Y~^tV%w[Awr=n@[WB`{by)-N@u>B׿J?6j0j6#P|<D~=b{+m*畜[<4h]6!p}=^N ,!E}&0Te bOaM5L"qFiJA^M:JD.3NȘMҌfԡ> a'ڶ^ꚾZ|0I`ǣ]8^-Pw:ZB_5pgc f}w#KO!cJ)nzhcG?0j `puF=9~@s!K4{ &>W1Ku'fSrf͆ x,rtNI3çNe|۴'&c[?Uz%oA[I}#dAak:zkGMxwWr*T[RJVMqq8um Vpe7`0ۚ,+T qF ւ8C" BaFjfuF?kf^FB HBHI ٣*MUZ1e^a?Je'HW@ )gQLcwL\D(9G\[G W߈vPߖf\-G<^p@A498Qzx+>68>oerjSj g Dz%[ˊ1RWNj?$j͢5Ψ/F^<$nv %ȋGXy J=xeR5ìԍhi L|S"B+E19&\kHмP6V@!E@Z)MY ;嘪^PV$g}8+88zT?*Fܳ)9LȊ䄏 5cE\]&]и*eF1OW!.n=Jk{ӟBqGwPg3MD0k_bwƗn ʺ_UA}Č[G]3|; >KQI}L*qjW,[|?N~g@E$AWu)a;f|3D: ?&2;wx_(֐Ѣ#!&$DcV- -6`m5,5nX*xi˸b-":9Dhw앐PNe@`8r/ȉkO2N/%CUjbzB9sr I'!-U|Hk"bӅ$#f^wV`9oXc .YBI'A ~jl]wc[eF.Z·)UcMhWi}ƫ@۽-XWm2(eTtdD;Jd-u%E՗jvvœ X~DXSynP?We;052m"|p+ _0nZOK׌c.|<, L&,NV&?1k V}MG\x@ VvĘV{R˭/"ȭy^A2HciX{%NU>w7:M( 8JZjA3e_e>j`S.G:U_fN̾S~zP;CfWnʆ@|1mw s6`\4ߥ1#fƚ PR0-;[rLB3[8Y;NMb,AI߸ ta$I'pՇj̧cl-݇jZZ~ )`IistWpLBSZc_K\!QtѴOQ9nh\TF(}A鹗*$b&} j1v(Sf52klS9 [*X?A+/ XywJf/zs"WhWI |-!aZCYOİddgG7H"*m,0Y*Bp^PϖF-R"l`3O.o*S LӻN/m}ck= ,ǂiKs,~*u1 |@JG oESPiƙ"3t*"YȊq\?7y wq U#Jt&f!aMZӢ6ծfm]]" $C|V9M8q|6; gBe".>17Tc%5$l'!3(d=D9qj啹@9=i:,NaŚOzdW,.|<nya1A|׾NeҥM|@yR$ 2ݭu 7l|xYap.%()*kv/}JE_wX^b?ئjG2%h -ˁ z7B1ROjг7 hΓ Z9Br4?:P>HcV)yGԠEe=wwd.`Na⊣n}`8nŋVeN'AZƦ=*:_Zt她>謴qlM6ZWV(*pj_Ky&c4t2c'٨AHHɜeFxb'[[s=OI}diKqxӨEM7Fϵİd2͙YF]ErbjҒߡ1(͙ u064;w7_#3cWE#ΫK WӒS .O`} fc=:Y+vPy{"*Y8 P ,aI.?}G=SMLq[UOR NĒ$_CDk.3xlz7r-ъ$ b\eI_YN <?AjHvB-˗Z#}e9S:a)#%نd3d-p=;Vɟ. ʍG"ϵ8I>\ჵW]H]Pljýi\=7Qt9265܌3K|WIh63!*cā3$ԲL~ouLO?&'0:I1Y;AZЗ{u/æ{)7yGD&]-s$^1ʄ}'Gc7H{\&5 j !'ʚ)` Y )[{vlzKHKlEեI-35}TWz?t@vf9XGl NҜڅ.L7h鹱9w*bl ™hyD,j}na8/xa])EGX%QjƗwV~_@&/iD888 Щp4 ȭ4DA`&gRmXa}yd_.2*)Q A0ԯ4Ddl~ F:3i *UD*ٖ?W?[G-a3En*Ӑ Nڵe4i+mr\14 W S"Q2B}KnySݒΗmߣֹѱRN +N֧vP$zu8#^Y-{fo5pzJZhD8el72{~҃LEW61E*-)Nj-ȂL-2E_B@2 k8&ʠ7{tķ DBAͷY/ Ɠes4p/Ef7 D'E^}q%ע<}n]]_XA9QFz%ғ;%&gpa,]c w.O('0hT^P}'3e¦H_<S"LSٷHLD}$V{ 2*l ī=k YDزv 8TMXe"1hl[Kw`4 A}Q;6(8gx5)!"r=p rRp )V[;wFCW<-%pp|֍`W}!X[h6#fS\D8ą+Γ1oc} u 2eU`3(GnQ@UiNqp8&UdKoH G~^utڻk\4j&Ԅd.=HY "{ۆ<s/T|X 3HBCYNcN[wq\ϡ&x]*#_oVڡN;1. 8w(oVbZ^umIX9|Kx (~bMݳӕNXP,K?2~pg. Rn,;VnfCA'Ct eh̪<uGmӾ }TȪ6Ҷݩ zRmZ7'm2J³ZK7"oPBܛ8f3U'JUF8Qbp;>=oմl8\JO[DQަ% &@e/^6XhH[ +FrVL,/.sִY QE/{6ɽPMR|vRt^.T¾.v&[L#JFKCG(ڦ&)Im},A$mxHd9a Dp7͵B7T5UefQyjleJ'- Jd5p>fC.rAC]H->F4=m/on:\\%GoAtQvy< qϸrnp88FhMnE&IJi\Q%W:0M''‘Kk|HbxjEnMD5]3~4 ݚ~N: +%^O_V$ZZ2x;ܹ{-ӴQg΅PzZ'$1u%_1=!=$}jttHA漿ex/G^*Ӗ67Re2ؐWwO/DJܗ팑(5sE&iWzY:ܹ}hǕ:rkp 0p@p)/ &_WVUJ&ŜwUwjN87_-fXŸ~'KG\x@d(%CO'﯑s-!@V;@r<ٺ$˺gEG:eMQ86`3{;N ֦-䅕4Q+fl&aFz|8Ըi Y !lU{qNgXs3̈́ZK9AL̺4H߳X߬8C2 s_4,5i1Z-NS\``˫MNNB8YM>2őV>=4Vi3TrDZju&W᚝mt x@,wk>;tqͯ:t$(y+pigJ*/d+4;')qՌ*hCїD7"Iݢ._Z#{@{"m̘GjrPJ9A^<_>Ƥ B!HiV(7\Q^n{wEJZ!;Ǔ9,CF"o܁u\/o_`H)m#ֹ!'O<%'F jg&-bxV‘uډ{.ͅB~;U@Fh-dշkuϟ=>;bv{sU#|e.ϛF"aPhyz˂uj"Xrz"[Q1͊e2<ޢ/T/MXJΨĜZ Ռ)NG$@Wy0 kJkaPŎQ:sI&$7@ ®[HU0H3Er'G Kv餬{#h/ :^Z5H1+CY$ɬA%47vx*fDy#i+iS᱗ƚs~F5W^}k!ԛ+y3%K$7&4߻ԩC躗֋2;VZ=j^ba ؖ5Pݘ@fkѮrńQNwSn<:ޡ|:`2v,{I$'͠ 1E-\~kyC*1TKM-^jBiC٣ump5-^D|Jҋ_mSٔ] 'Rd[Z-7áK0ڲ/y jCyM_oD4R@WtT FG"E6KhWTv PT2Ĵ߫U$vӣz BET',cZInx鴁}iD^ڔƽX*c$yhl<P©dx([P,v878yFU[@9!WtR\7L[NRc(Z+D+wߌDWe6[1ϴƏGWBSs5ܚ?Q/NXB,BqvZUY*S-Z&k޴Q wwz@Z~X6[R.v w4Qiv[;hfﳘN2F0Bx wf౛E2+ZJԬMRcx7,D2VzPc$AG\ 0AÙx AXte UIL UDzݹt"y2Hb;BO]qz u=m;6!.|#@{`:/G7kwr T'WF.sbBoHI$Ϧڭ6Cdۥ+7cv+:SSNU5˩<+޺9}G0 g 'ܧ }<mTj/Oٛ=1fD10+ޥMZ4GݔBfyrz|>nOH1 Cp%!F) z/>Tە1$~@[sz놱~J9K#a38<8ewGql E&@D.Ep n,+#p/gwxfa̮ƩS)u> yzpON|vGg-yPLht.}d"8'">Oh8B|Y3Ir+@مM:FYtu`pt&2x O8sIe"ߙi|u9W? mCS]= BBsn^z+*9^05?! vܛ~͑y= E@6޳h&Z=Xs9CDpLulygvIDԚT67OIilgP(lyzfbXbO黃/mOc?&qj|1e<__|XW Y0/;#T ;f5j1ܨKZ(XIEYR$~XS$Mбah/xah3+ս&jÃ8K2#aP(-q)izC^Eͷj*W+-8!JA#h,Vl= "+" ),4@ixIx5:)Rot?m@(?~7F{!9ikjҔvZۅxxE!{́@TuZ/-j$gCT8OWCcirL~Нv8;0a356dzXuK$Q,>l_wfL,:_U ܜq6$p@= Hij׶&52Vn"o⪼N7]Us_\e748m +;Awr6\+ăi:p\2DLH__Rl~xyEW0XW(ru"i ?D< #miZ0Ǚc]2Dt]2BgKh*GF 3QkugbrA V9 hWO| tEUnտwu*60m5l_122:w3glҷ{'_bLJO,1u]ՠa^8=F2.EqxsdV[1HŽFGKA/Y)Sm`̘lT8en6Kv?,A>'Uf_-r^Rx.Z-š$WT  URi0s68Y[+2^vf88ΤvMFF]BoHi0Xri7.!NC\7Vq`z 5M*qU4E((I ƺ2j$g)`Ůlg,5hWm BƜ+V6Y xO/'Mc8'8AOu(~~mj>VQhk;%| WI,w+ΑT?l)k}):ŰvS2Xd.>CWyb. Tp> l*\ͬztƋ8]_)g"jqe4W+'̨D[5cBy9 \g6z.ܿ( Gs\æ׾#{X b|RXF#Dݱܐ 笚iG4/6`^ fܓOn@c!%+r)U=N/&6@#'{[#'k[endstream endobj 12 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 11 /LastChar 124 /Widths 140 0 R /BaseFont /LGLTZE+CMR10 /FontDescriptor 10 0 R >> endobj 10 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LGLTZE+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-251 -250 1009 969] /Flags 4 /CharSet (/ff/fi/fl/ffi/germandbls/quotedblright/percent/ampersand/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/bracketleft/quotedblleft/bracketright/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash) /FontFile 11 0 R >> endobj 140 0 obj [583 556 556 833 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 500 0 0 833 778 278 389 389 0 0 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 0 0 0 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 0 736 556 722 750 750 1028 750 750 0 278 500 278 0 0 278 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 1000 ] endobj 8 0 obj << /Length1 1277 /Length2 6195 /Length3 532 /Length 7005 /Filter /FlateDecode >> stream xgXkADz" `{wPzC@H ^I/wi@A^%Uz~?i_;=ܙy΢gȯh VÐema!;2 DB0 , (z8DҢ pW R3IF@@@@t`jP!#}P(;  A@HSF(!M= l'1˜`,aP؞PP8aP/WYI /*,F 3 Iq;qk`V)$$)% @`S`)0 "9ׅ`+9|@TO$bC_KD &}NǼP8ה}*w`m4 ~;+ZY?̥YSם}YZmRp x?!Cζ,tZ嵐kCSIݽ7tgS󉀧/vz q7 -e&*#SdϽmP)9|MNzF2LӆFܧmN\4ٻ+k\3G>捹pxj%!妍H&/\+ mP,q^ܱq?ۛ[bzׯwOQwյPᰜH5D1Dvvrԙ6uAw^@EIqshճK4[n[ԉI2@XHVo IQ.d~7-$'@-^zțKm?CT39%U>&*Cd$AH1uZp,_sX]eǾ`52}O*7="єL9_x38:/>8W ry|TY36f0gXX9g#A/=)5 ETXdb_z<-ɼ&} '3 7';"6PݘbwN ^ =uDO%q6T\:~AD2LL[|%@Qn=qb2! Aki.nG* 1f$ٹkkq@f"1ܪ1k9H- Bwۮa_7F'l{ijMx)uYw,f)J ZV&FVȢ\)<+GĦ](X)>ud;4_õ:am5}d2TS&"tS8iɛk[%$F"t&IsLK23G9Ŕݷq@0U Kz&r"fNa)f{f>O' зL_cq_: 萤h#N?>EthT]\婍R\c4gUUń3q'zC7!)4&~AtyIBҶS.v}'qpOai }%並/cq/ߘ9/ݵ=fiБStI'ÃGhuZn0؃Ew])\)euƛK pOd_?&/U=yG*nUAw;av&l¹%oFGݖv'@,,&[J"GT~~ylېUrߎg: в%ڌ1vYUGG,rDC(4^ÈpI-Em<4z{ `bOqA i%)q)/3\ :$?ECL$](Ƿ7 ]zK% j>`'i_-TK ݙso|ى`+fԾA-{{f+6ՎD;7.Gm ߅e3fǤC<% wqD?L+&oGl.F۵ otUo] 8CxeTˆy_fk&W1R|t_ȿG}(vXt'-[ɺY74=T'a>S2ZUޢڽW[2B>=ցChv^wݗ6 be(0{3&{Wz87;J+CAZ=)wK,H=~At'"0ҍn‘'2[:O 9)kU&K~P{7nw_$|h)qA~ >VeN"IC^BojQ~/Ǝ8EVi9 n=!d M ?F|^ȏ+k50-8~007֑ 5#mG':؄e=兹!|+‚Xt|.OUGcޣ R5~"3+*GWC_TV VVnCF$gQ7 ĠJ;|'mzLLm~4YZ/W64a7bQY3*&p!ӿIǡ0~`*oϚ&ʊ91R fAԹ˰"k ksPdžVA'up5BI2xܣ8?Z zrI~Yuo(|+N9l|k@E7J"%i gWyv]ڶ$cy5]Ӷ, hy~pŰ^\j8d݃93qUPpj\^dp+˰ 7~uwLiYb8G<ؿce&鸮|p$D# ~$?f!'OÇjyV|=.o&`dt0e3oFe e,1dR})uI]w}'`';V=h'[_&QW":Sgs (CǜZ]E0['! ۼJ & ft/QinruXb9I^ ˓[LFdv|B,_Ⓒ)"Iy&s=nm<\;@_ Sh# *6N^ZRY g6/_׷*o-5WBVrƦ#3}3H.͕<&NvyX8h$j]_1"%K~gl]V~Sò> cã7R##]_귃aH~ X~6եžx$y/5W9zլalM(2^ v ̈1yI.(٦]zHpUZ0ܞꭌ0׎{ F=E4qoSgr'ȃ] O^;=:id//9xE8{pmA",SAMb0o7eGۄ}-r=:mHkZyH˘WUUHm*xep=XK [%b{X suNӛzшB˝$+Zi oy.{=-giȖIڇWEf2O|hm'N&'MW jK"bNTkr1$akoaslU¯&>F38{riZن ?^)4k3[М>Y;`]YFxR{{*q/Ж5 hA+mҞCw|];v]Ge…rkdzG4}GX}j=%ڗoq gJjh-x|1vF%%.a$gc^ pB.ꅝhʦ 2]R+dM6DjxI &t H㥥+A{[9qkekeI9OR7w ԵURͲnww0t0*^%NQm|5;͕avWYd 4줰it=A{ *XEfbiZ1f?Z\Ym{p.]'&8VB{-솻I0xMX6SRRzScۧ(QBL-}-;RA-랮E$lz b#-Nܭ._6%yrkt4l`1%d#xH(g;7P~*0fɝ0 }Yhlˆ)=q S`퐄߱fc wCrVPD㉏6d$Mqeq?(Ȅ5v wp1g\D蝄 r1ҏl֎HXQisn$nd}uߝo]١ ($p&?[> endobj 7 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /AURUUV+CMR12 /ItalicAngle 0 /StemV 65 /XHeight 431 /FontBBox [-34 -251 988 750] /Flags 4 /CharSet (/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/D/E/G/J/S/T/U/W/X/a/c/e/g/i/k/n/o/p/r/s/t/u/v/y) /FontFile 8 0 R >> endobj 141 0 obj [381 381 0 0 272 326 272 0 490 490 490 490 490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 748 666 0 768 0 0 503 0 0 0 0 0 0 0 0 544 707 734 0 1006 734 0 0 0 0 0 0 0 0 490 0 435 0 435 0 490 0 272 0 517 0 0 544 490 544 0 381 386 381 544 517 0 0 517 ] endobj 5 0 obj << /Length1 1005 /Length2 3637 /Length3 532 /Length 4315 /Filter /FlateDecode >> stream xi@AUEp@ IG95l"xʎ!wCيPcCQv,ӐmNdS ٤@h:z(4#";0Oq .&Gq3- g)/o-Ϭ鈱Q9BW VCHGWԯ8 kOQj|_+` ƞ,LXCɅOKk`!% x'<dkPd1,@^{ qx㔖"do \hM27IDV1d*6 ?l#y2y{;U7aA?^=ֹ]R^})F!fǓg4ZDl}̺ziQu\%?$5]zכ5yBGxb)^/, ?L;$/e]5-WpfELpۼb3ݥ3k#3:0CTg1b##|tZ1ͪw!2x0/Lv$اtkCA# .1@f3wS/ni0}~XTt||x+gIcH _'c/.$V=|5{,EF::/G:Jȼ\j!ԔĿ/o?==nPؼ<]F.dT&BsLIƫS\HEz P)EaQG4Vio7vni䩦o?(Oh8^#ՁzwTh'Kg?\j#喹Ftq_Y+a~GoT t[{$֚SS5cm|aeF!3+ጢ`6|#2j,w8fn/}M~46o!#/PHV[c]}| =[}Qqnv&˷g dr)=-4P߭/XHC7+HOv6>$q M;XdiBVX;,|2b03~IwHK&;Go2PVs%d5H >TOu뀧tF gYOu@ A5e);S]HFp|D2%7OK[{˫ň?W<>?a3溚¦,#GΜUt"$j\yѽ )))7Bfgb1u'@}r.jsNƍkHbgH|Ddl1 b٠QwiZT4,&zHqx292߽J*^%l (=}.y SͺjB܃m͚{MSbaRrpi"ВZq_䬖청Hx'*훆9v IjHxi^{GQw&nyAbC%zyY-&%l#Z1VVe^5_>" %Qns?]ƞN_$wP ި1UBgs :f,4̼+(8{0 OcѺOzPIr.o Ǯ .BľkNxNp\c@~"AAM5HiOElSfyKc-Eɽ(KRUCZ)gyE>:F/gcMsϊBCf^WKT[+\ i :gǽMYcl> endobj 4 0 obj << /Ascent 694 /CapHeight 683 /Descent -195 /FontName /AHTLTV+CMR17 /ItalicAngle 0 /StemV 53 /XHeight 431 /FontBBox [-33 -250 945 749] /Flags 4 /CharSet (/A/D/E/F/S/T/X/c/e/f/i/l/o/r/s/t/u/y) /FontFile 5 0 R >> endobj 142 0 obj [693 0 0 707 628 602 0 0 0 0 0 0 0 0 0 0 0 0 511 668 0 0 0 693 0 0 0 0 0 0 0 0 0 0 406 0 406 276 0 0 250 0 0 250 0 0 459 0 0 354 359 354 511 0 0 0 485 ] endobj 37 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [2 0 R 39 0 R 42 0 R 48 0 R 51 0 R 54 0 R] >> endobj 59 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [57 0 R 61 0 R 64 0 R 67 0 R 76 0 R 82 0 R] >> endobj 87 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [85 0 R 89 0 R 92 0 R 95 0 R 98 0 R 101 0 R] >> endobj 109 0 obj << /Type /Pages /Count 4 /Parent 143 0 R /Kids [107 0 R 111 0 R 114 0 R 117 0 R] >> endobj 143 0 obj << /Type /Pages /Count 22 /Kids [37 0 R 59 0 R 87 0 R 109 0 R] >> endobj 144 0 obj << /Type /Catalog /Pages 143 0 R /PTEX.Fullbanner (This is pdfTeX, Version 3.141592-1.11a) >> endobj 145 0 obj << /Producer (pdfTeX-1.11a) /Creator (TeX) /CreationDate (D:20040623102456-07'00') >> endobj xref 0 146 0000000000 65535 f 0000002502 00000 n 0000002397 00000 n 0000000009 00000 n 0000191151 00000 n 0000186560 00000 n 0000190994 00000 n 0000186004 00000 n 0000178723 00000 n 0000185847 00000 n 0000177771 00000 n 0000160837 00000 n 0000177612 00000 n 0000160314 00000 n 0000157453 00000 n 0000160155 00000 n 0000154510 00000 n 0000144612 00000 n 0000154350 00000 n 0000142568 00000 n 0000136811 00000 n 0000142411 00000 n 0000136044 00000 n 0000123300 00000 n 0000135884 00000 n 0000120915 00000 n 0000113404 00000 n 0000120755 00000 n 0000112723 00000 n 0000105142 00000 n 0000112563 00000 n 0000102813 00000 n 0000099650 00000 n 0000102654 00000 n 0000099408 00000 n 0000097171 00000 n 0000099251 00000 n 0000191547 00000 n 0000006357 00000 n 0000006249 00000 n 0000002687 00000 n 0000010182 00000 n 0000010074 00000 n 0000006498 00000 n 0000096886 00000 n 0000094823 00000 n 0000096727 00000 n 0000014192 00000 n 0000014084 00000 n 0000010346 00000 n 0000017815 00000 n 0000017707 00000 n 0000014344 00000 n 0000021940 00000 n 0000021832 00000 n 0000017955 00000 n 0000025818 00000 n 0000025710 00000 n 0000022069 00000 n 0000191656 00000 n 0000029411 00000 n 0000029303 00000 n 0000025958 00000 n 0000033250 00000 n 0000033142 00000 n 0000029552 00000 n 0000037155 00000 n 0000037047 00000 n 0000033402 00000 n 0000090798 00000 n 0000087812 00000 n 0000090637 00000 n 0000087491 00000 n 0000084175 00000 n 0000087330 00000 n 0000040577 00000 n 0000040469 00000 n 0000037344 00000 n 0000082237 00000 n 0000080267 00000 n 0000082079 00000 n 0000044322 00000 n 0000044214 00000 n 0000040741 00000 n 0000046939 00000 n 0000046831 00000 n 0000044463 00000 n 0000191766 00000 n 0000049275 00000 n 0000049167 00000 n 0000047091 00000 n 0000052989 00000 n 0000052881 00000 n 0000049415 00000 n 0000056743 00000 n 0000056635 00000 n 0000053129 00000 n 0000060665 00000 n 0000060557 00000 n 0000056860 00000 n 0000063956 00000 n 0000063845 00000 n 0000060794 00000 n 0000079994 00000 n 0000077643 00000 n 0000079834 00000 n 0000067556 00000 n 0000067444 00000 n 0000064099 00000 n 0000191877 00000 n 0000070897 00000 n 0000070785 00000 n 0000067686 00000 n 0000074304 00000 n 0000074192 00000 n 0000071051 00000 n 0000075852 00000 n 0000075740 00000 n 0000074458 00000 n 0000076005 00000 n 0000080199 00000 n 0000082434 00000 n 0000082474 00000 n 0000087700 00000 n 0000091072 00000 n 0000090998 00000 n 0000093136 00000 n 0000097097 00000 n 0000099606 00000 n 0000103090 00000 n 0000103012 00000 n 0000113062 00000 n 0000121248 00000 n 0000121590 00000 n 0000136475 00000 n 0000142817 00000 n 0000142972 00000 n 0000154784 00000 n 0000155096 00000 n 0000160587 00000 n 0000178307 00000 n 0000186307 00000 n 0000191377 00000 n 0000191978 00000 n 0000192061 00000 n 0000192172 00000 n trailer << /Size 146 /Root 144 0 R /Info 145 0 R /ID [<3756089C72F9951B769F90D099E1CF20> <3756089C72F9951B769F90D099E1CF20>] >> startxref 192275 %%EOF tex-common-4.04/doc/tds-1.1/tds.sed0000644000000000000000000000062412157017604013545 0ustar # $Id: tds.sed,v 1.2 2004/06/04 17:11:34 karl Exp $ # Written by Ulrik Vieth and Karl Berry. # Public domain. # # Things that are too hard to do in Elisp. Run after tds2texi-convert. # Indentation blocks in tdsSummary environments. s/ \./ /g # References that are too hard to convert automatically. s/Table, ref{tab:summary}/@pxref{Summary},/ /^Copyright.*Group/a\ This is version @value{version}. tex-common-4.04/doc/tds-1.1/tds.tex0000644000000000000000000017761212157017604013606 0ustar %&latex % $Id: tds.tex,v 1.43 2004/06/23 17:24:42 karl Exp $ \NeedsTeXFormat{LaTeX2e} % compatibility with 2.09 is too painful \documentclass{tdsguide} \tdsVersion{1.1} \title{A Directory Structure for \TeX{} Files} \author{TUG Working Group on a \TeX{} Directory Structure (TWG-TDS)} \begin{document} \maketitle \begin{legalnotice} Copyright {\copyright} 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 \TeX{} Users Group. Permission to use, copy, and distribute this document \emphasis{without modification} for any purpose and without fee is hereby granted, provided that this notice appears in all copies. It is provided ``as is'' without expressed or implied warranty. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the modifications are clearly marked and the document is not represented as the official one. This document is available on any \abbr{ctan} host (see Appendix~\ref{sec:Related references}). Please send questions or suggestions by email to \email|tds@tug.org|. We welcome all comments. This is version \the\tdsVersion. \end{legalnotice} \tableofcontents \newpage \section{Introduction} \TeX{} is a powerful, flexible typesetting system used by many people around the world. It is extremely portable and runs on virtually all operating systems. One unfortunate side effect of \TeX{}'s flexibility, however, is that there has been no single ``right'' way to install it. This has resulted in many sites having different installed arrangements. The primary purpose of this document is to describe a standard \TeX{} Directory Structure (\abbr{TDS}): a directory hierarchy for macros, fonts, and the other implementation-independent \TeX{} system files. As a matter of practicality, this document also suggests ways to incorporate the rest of the \TeX{} files into a single structure. The \abbr{TDS} has been designed to work on all modern systems. In particular, the Technical Working Group (\abbr{TWG}) believes it is usable under Mac\abbr{OS}, \abbr{ms-dos}, \abbr{os/2}, Unix, \abbr{vms}, and Windows \abbr{nt}\@. We hope that administrators and developers of both free and commercial \TeX{} implementations will adopt this standard. This document is intended both for the \TeX{} system administrator at a site and for people preparing \TeX{} distributions---everything from a complete runnable system to a single macro or style file. It may also help \TeX{} users find their way around systems organized this way. It is not a tutorial: we necessarily assume knowledge of the many parts of a working \TeX{} system. If you are unfamiliar with any of the programs or file formats we refer to, consult the references in Appendix~\ref{sec:Related references}. \subsection{History} Version 1.0 of the \abbr{TDS} was released in February 2003. Version 1.1 was released in June 2004, with the following non-editorial changes: \begin{itemize-squeeze} \item Inputs for \TeX{} extensions included under \path|tex|, instead of in their own top-level directories (Section~\ref{sec:Extensions}) \item New top-level directory \path|scripts| (Section~\ref{sec:Scripts}). \item New subdirectories \path|lig|, \path|opentype|, \path|truetype|, and \path|type3| under \path|fonts| (Section~\ref{sec:Fonts}). \item \path|enc|, \path|lig|, and \path|map| all use \replaceable{syntax}\path|/|\replaceable{package} subdirectories (Section~\ref{sec:Fonts}). \item \path|pfm| files specified to go under \path|type1|, and \path|inf| files under \path|afm| (Section~\ref{sec:Fonts}). \end{itemize-squeeze} \subsection{The role of the \abbr{TDS}} The role of the \abbr{TDS} is to stabilize the organization of \TeX{}-related software packages that are installed and in use, possibly on multiple platforms simultaneously. At first glance, it may seem that the Comprehensive \TeX{} Archive Network (\abbr{ctan}) fulfills at least part of this role, but this is not the case. The role of \abbr{ctan} is to simplify archiving and distribution, not installation and use. In fact, the roles of the \abbr{TDS} and \abbr{ctan} are frequently in conflict, as we will see. For distribution, many different types of files must be combined into a single unit; for use, it is traditional to segregate files (even similar files) from a single package into separate, occasionally distant, directories. \subsection{Conventions} In this document, ``\path|/|'' is used to separate filename components; for example, \path|texmf/fonts|. This is the Unix convention but the ideas are in no way Unix-specific. In this document, ``\TeX{}'' generally means the \TeX{} system, including \MF{}, \abbr{DVI} drivers, utilities, etc., not just the \TeX{} program itself. The word ``package'' in this document has its usual meaning: a set of related files distributed, installed, and maintained as a unit. This is \emphasis{not} a \LaTeXe{} package, which is a style file supplementing a document class. We use the following typographic conventions: \begin{description} \item[\literal{literal}] Literal text such as \literal{filename} is typeset in typewriter type. \item[\replaceable{replaceable}] Replaceable text such as \replaceable{package}, identifying a class of things, is typeset in italics inside angle brackets. \end{description} \section{General} This section describes common properties throughout the \abbr{TDS} tree. \subsection{Subdirectory searching} \label{sec:Subdirectory searching} Older \TeX{} installations store large numbers of related files in single directories, for example, all \path|TFM| files and\slash or all \TeX{} input files. This monolithic arrangement hinders maintenance of a \TeX{} system: it is difficult to determine what files are used by what packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It is also a source of error if two or more packages happen to have input files with the same name. Therefore, the \abbr{TWG} felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. A site may wish to install dozens of packages. Aside from anything else, listing that many directories would produce search paths many thousands of characters long, overflowing the available space on some systems. Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some way to specify the directories to search at runtime. On systems without runtime configuration, it would require recompiling software, an intolerable burden. As a result, the \abbr{TWG} concluded that a comprehensive \abbr{TDS} requires implementations to support some form of implicit subdirectory searching. More precisely, implementations must make it possible to specify that \TeX{}, \MF{}, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. Other forms of subdirectory searching, for example recursive-to-one-level searches, may also be provided. We encourage implementors to provide subdirectory searching at the option of the installer and user for all paths. The \abbr{TDS} does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability (see Section~\ref{sec:More on subdirectory searching}). \subsection{Rooting the tree} \label{sec:Rooting the tree} In this document, we shall designate the root \abbr{TDS} directory by `\texmf{}' (for ``\TeX{} and \MF{}''). We recommend using that name where possible, but the actual name of the directory is up to the installer. On \abbr{pc} networks, for example, this could map to a logical drive specification such as \path|T:|. Similarly, the location of this directory on the system is site-dependent. It may be at the root of the file system; on Unix systems, \path|/usr/local/share|, \path|/usr/local|, \path|/usr/local/lib|, and \path|/opt| are common choices. The name \texmf{} was chosen for several reasons: it reflects the fact that the directory contains files pertaining to an entire \TeX{} system (including \MF{}, \MP{}, \BibTeX{}, etc.), not just \TeX{} itself; and it is descriptive of a generic installation rather than a particular implementation. A site may choose to have more than one \abbr{TDS} hierarchy installed (for example, when installing an upgrade). This is perfectly legitimate. \subsection{Local additions} \label{sec:Local additions} The \abbr{TDS} cannot specify precisely when a package is or is not a ``local addition''. Each site must determine this according to its own conventions. At the two extremes, one site might wish to consider ``nonlocal'' all files not acquired as part of the installed \TeX{} distribution; another site might consider ``local'' only those files that were actually developed at the local site and not distributed elsewhere. We recognize two common methods for local additions to a distributed \texmf{} tree. Both have their place; in fact, some sites employ both simultaneously: \begin{enumerate} \item A completely separate tree which is a \abbr{TDS} structure itself; for example, \path|/usr/local/umbtex| at the University of Massachusetts at Boston. This is another example of the multiple \texmf{} hierarchies mentioned in the previous section. \item A directory named `\path|local|' at any appropriate level, for example, in the \replaceable{format}, \replaceable{package}, and \replaceable{supplier} directories discussed in the following sections. The \abbr{TDS} reserves the directory name \path|local| for this purpose. We recommend using \path|local| for site-adapted configuration files, such as \path|language.dat| for the Babel package or \path|graphics.cfg| for the graphics package. Unmodified configuration files from a package should remain in the package directory. The intent is to separate locally modified or created files from distribution files, to ease installing new releases. \end{enumerate} One common case of local additions is dynamically generated files, e.g., \abbr{PK} fonts by the \path|mktexpk| script (which originated in \application{Dvips} as \path|MakeTeXPK|). A site may store the generated files directly in any of: \begin{itemize-squeeze} \item their standard location in the main \abbr{TDS} tree (if it can be made globally writable); \item an alternative location in the main \abbr{TDS} tree (for example, under \path|texmf/fonts/tmp|); \item a second complete \abbr{TDS} tree (as outlined above); \item any other convenient directory (perhaps under \path|/var|, for example \path|/var/spool/fonts|). \end{itemize-squeeze} No one solution will be appropriate for all sites. \subsection{Duplicate filenames} \label{sec:Duplicate filenames} Different files by the same name may exist in a \abbr{TDS} tree. The \abbr{TDS} generally leaves unspecified which of two files by the same name in a search path will be found, so generally the only way to reliably find a given file is for it to have a unique name. However, the \abbr{TDS} requires implementations to support the following exceptions: \begin{itemize} \item Names of \TeX{} input files must be unique within each first-level subdirectory of \path|texmf/tex| and \path|texmf/tex/generic|, but not within all of \path|texmf/tex|; i.e., different \TeX{} formats may have files by the same name. (Section~\ref{sec:Macros} discusses this further.) Thus, no single format-independent path specification, such as a recursive search beginning at \path|texmf/tex| specifying no other directories, suffices. So implementations must provide format-dependent path specifications, for example via wrapper scripts or configuration files. \item Many font files will have the same name (e.g., \path|cmr10.pk|), as discussed in Section~\ref{sec:Valid font bitmaps}. Implementations must distinguish these files by mode and resolution. \end{itemize} All implementations we know of already have these capabilities. One place where duplicate names are likely to occur is not an exception: \begin{itemize} \item Names of \MF{} input files (as opposed to bitmaps) must be unique within all of \path|texmf/fonts|. In practice, this is a problem with some variants of Computer Modern which contain slightly modified files named \path|punct.mf|, \path|romanl.mf|, and so on. We believe the only feasible solution is to rename the derivative files to be unique. \end{itemize} \section{Top-level directories} \label{sec:Top-level directories} The directories under the \texmf{} root identify the major components of a \TeX{} system (see Section~\ref{sec:Summary} for a summary). A site may omit any unneeded directories. Although the \abbr{TDS} by its nature can specify precise locations only for implementation-independent files, we recognize that installers may well wish to place other files under \texmf{} to simplify administration of the \TeX{} tree, especially if it is maintained by someone other than the system administrator. Therefore, additional top-level directories may be present. The top-level directories specified by the \abbr{TDS} are: \begin{description} \item[\path|tex|] for \TeX{} files (Section~\ref{sec:Macros}). \item[\path|fonts|] for font-related files (Section~\ref{sec:Fonts}). \item[\path|metafont|] for \MF{} files which are not fonts (Section~\ref{sec:Non-font MF files}). \item[\path|metapost|] for \MP{} files (Section~\ref{sec:MetaPost}). \item[\path|bibtex|] for \BibTeX{} files (Section~\ref{sec:BibTeX}). \item[\path|scripts|] for platform-independent executables (Section~\ref{sec:Scripts}). \item[\path|doc|] for user documentation (Section~\ref{sec:Documentation}). \item[\path|source|] for sources. This includes both traditional program sources (for example, \application{Web2C} sources go in \path|texmf/source/web2c|) and, e.g., \LaTeX{} \path|dtx| sources (which go in \path|texmf/source/latex|). The \abbr{TDS} leaves unspecified any structure under \path|source|. \path|source| is intended for files which are not needed at runtime by any \TeX{} program; it should not be included in any search path. For example, \path|plain.tex| does not belong under \path|texmf/source|, even though it is a ``source file'' in the sense of not being derived from another file. (It goes in \path|texmf/tex/plain/base|, as explained in Section~\ref{sec:Macros}). \item[\replaceable{implementation}] for implementations (examples: \path|emtex|, \path|vtex|, \path|web2c|), to be used for whatever purpose deemed suitable by the implementor or \TeX{} administrator. That is, files that cannot be shared between implementations, such as pool files (\path|tex.pool|) and memory dump files (\path|plain.fmt|) go here, in addition to implementation-wide configuration files. See Section~\ref{sec:Example implementation-specific trees} for examples of real \replaceable{implementation} trees. Such implementation-specific configuration files should \emphasis{not} be located using the main \TeX{} input search path (e.g., \path|TEXINPUTS|). This must be reserved for files actually read by a \TeX{} engine. See Section~\ref{sec:Extensions}. \item[\replaceable{program}] for program-specific input and configuration files for any \TeX{}-related programs (examples: \path|mft|, \path|dvips|). In fact, the \path|tex|, \path|metafont|, \path|metapost|, and \path|bibtex| items above may all be seen as instances of this case. \end{description} \subsection{Macros} \label{sec:Macros} \TeX{} macro files shall be stored in separate directories, segregated by \TeX{} format and package name (we use `format' in its traditional \TeX{} sense to mean a usefully \path|\dump|-able package): \begin{ttdisplay} texmf/tex/\replaceable{format}/\replaceable{package}/ \end{ttdisplay} \begin{description} \item[\replaceable{format}] is a format name (examples: \path|amstex|, \path|latex|, \path|plain|, \path|texinfo|). The \abbr{TDS} allows distributions that can be used as either formats or packages (e.g., Texinfo, Eplain) to be stored at either level, at the option of the format author or \TeX{} administrator. We recommend that packages used as formats at a particular site be stored at the \replaceable{format} level: by adjusting the \TeX{} inputs search path, it will be straightforward to use them as macro packages under another format, whereas placing them in another tree completely obscures their use as a format. The \abbr{TDS} reserves the following \replaceable{format} names: \begin{itemize} \item \path|generic|, for input files that are useful across a wide range of formats (examples: \path|null.tex|, \path|path.sty|). Generally, this means any format that uses the category codes of Plain \TeX{} and does not rely on any particular format. This is in contrast to those files which are useful only with Plain \TeX{} (which go under \path|texmf/tex/plain|), e.g., \path|testfont.tex| and \path|plain.tex| itself. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \end{itemize} Thus, for almost every format, it is necessary to search at least the \replaceable{format} directory and then the \path|generic| directory (in that order). Other directories may need to be searched as well, depending on the format. When using \AMSTeX{}, for example, the \path|amstex|, \path|plain|, and \path|generic| directories should be searched, because \AMSTeX{} is compatible with Plain. \item[\replaceable{package}] is a \TeX{} package name (examples: \path|babel|, \path|texdraw|). In the case where a format consists of only a single file and has no auxiliary packages, that file can simply be placed in the \replaceable{format} directory, instead of \replaceable{format}\path|/base|. For example, Texinfo may go in \path|texmf/tex/texinfo/texinfo.tex|, not \path|texmf/tex/texinfo/base/texinfo.tex|. The \abbr{TDS} reserves the following \replaceable{package} names: \begin{itemize} \item \path|base|, for the base distribution of each format, including files used by \iniTeX{} when dumping format files. For example, in the standard \LaTeX{} distribution, the \path|ltx| files created during the build process. Another example: the \path|.ini| driver files for formats used by \TeX{} Live and other distributions. \item \path|hyphen|, for hyphenation patterns, including the original American English \path|hyphen.tex|. These are typically used only by \iniTeX{}. In most situations, this directory need exist only under the \literal{generic} format. \item \path|images|, for image input files, such as Encapsulated PostScript figures. Although it is somewhat non-intuitive for these to be under a directory named ``\path|tex|'', \TeX{} needs to read these files to glean bounding box or other information. A mechanism for sharing image inputs between \TeX{} and other typesetting programs (e.g., Interleaf, FrameMaker) is beyond the scope of the \abbr{TDS}\@. In most situations, this directory need exist only under the \literal{generic} format. \item \path|local|, for local additions and configuration files. See Section~\ref{sec:Local additions}. \item \path|misc|, for packages that consist of a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \end{itemize} \end{description} \subsubsection{Extensions} \label{sec:Extensions} \TeX{} has spawned many companion and successor programs (``engines''), such as \abbr{PDF}\TeX{}, Omega, and others. The \abbr{TDS} specifies that the input files for such programs (using a \TeX{}-like syntax) be placed within the top-level \path|tex| directory, either at the top level or within a format subdirectory, even though the original \TeX{} program may not be able to read them. For example: \begin{ttdisplay} texmf/tex/aleph texmf/tex/enctex \end{ttdisplay} This is a change from \abbr{TDS}~1.0, which specified top-level \replaceable{extension} directories for each such program. We felt the new approach is preferable, because: \begin{itemize} \item Authors of relevant packages typically make their code detect the engine being used, and issue error messages or adapt to circumstances appropriately. Furthermore, as a package matures, it may support multiple engines. Thus, a package could conceivably be placed in any of several top-level directories, at different times. Putting all packages under the top-level \path|tex| directory provides a stable location over time. \item Users need to be able to switch between engines, and configuring different search paths for each engine is difficult and error-prone. \end{itemize} Thus, in practice, having different top-level directories caused difficulties for everyone involved---users, package authors, site administrators, and system distributors. Please contrast this approach with the \replaceable{implementation} top-level subdirectory (Section~\ref{sec:Top-level directories}), which is to be used for configuration files that (presumably) do not use \TeX{} syntax and in any case should not be found along the main \TeX{} input search path. \subsection{Fonts} \label{sec:Fonts} Font files are stored in separate directories, segregated by file type, and then (in most cases) font supplier and typeface. \abbr{PK} and \abbr{GF} files need additional structure, as detailed in the next section. \begin{ttdisplay} texmf/fonts/\replaceable{type}/\replaceable{supplier}/\replaceable{typeface}/ texmf/fonts/enc,lig,map/\replaceable{subpath}/ \end{ttdisplay} \begin{description} \item[\replaceable{type}] is the type of font file. The \abbr{TDS} reserves the following \replaceable{type} names for common \TeX{} file types: \begin{itemize-squeeze} \item \path|afm|, for Adobe font metrics, and \path|inf| files. \item \path|gf|, for generic font bitmap files. \item \path|opentype|, for OpenType fonts. \item \path|pk|, for packed bitmap files. \item \path|source|, for font sources (\MF{} files, property lists, etc.). \item \path|tfm|, for \TeX{} font metric files. \item \path|truetype|, for TrueType fonts. \item \path|type1|, for PostScript Type 1 fonts (in \path|pfa|, \path|pfb|, or any other format), and \path|pfm| files. \item \path|type3|, for PostScript Type 3 fonts. \item \path|vf|, for virtual fonts. \end{itemize-squeeze} The \abbr{TDS} also reserves the names \path|enc|, \path|lig|, and \path|map| for font encoding, ligature, and mapping files, respectively. All of these directories are structured the same way, with \replaceable{syntax} subdirectories, and then \replaceable{package} subsubdirectories. Each of these file types is intended to be searched along its own recursively-searched path. The names of the actual files must be unique within their subtree, as usual. Examples: \begin{ttdisplay} fonts/map/dvipdfm/updmap/dvipdfm.map fonts/map/dvips/lm/lm.map fonts/enc/dvips/base/8r.enc \end{ttdisplay} The Fontname and Dvips packages have more examples of the \path|enc| and \path|map| types. The \path|afm2pl| program uses \path|lig| files. \path|pfm| files are included in the \path|type1| directory, instead of being given their own directory, for two reasons: 1)~a \path|.pfm| file is always an adjunct to a given \path|.pfb| file; 2)~they must be installed from the same directory for Windows programs other than \TeX{} to use them. \path|inf| files are included in the \path|afm| directory, since an \path|inf| and \path|afm| file can be used to generate a \path|pfm|. (Unfortunately, Adobe Type Manager and perhaps other software requires that the \path|pfb| be in the same directory as \path|afm| and \path|inf| for installation.) As usual, a site may omit any of these directories that are unnecessary. \path|gf| is a particularly likely candidate for omission. \item[\replaceable{supplier}] is a name identifying font source (examples: \path|adobe|, \path|ams|, \path|public|). The \abbr{TDS} reserves the following \replaceable{supplier} names: \begin{itemize} \item \path|ams|, for the American Mathematical Society's \AmS{}-fonts collection. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|public|, for freely redistributable fonts where the supplier neither (1)~requested their own directory (e.g., \path|ams|), nor (2)~also made proprietary fonts (e.g., \path|adobe|). It does not contain all extant freely distributable fonts, nor are all files therein necessarily strictly public domain. \item \path|tmp|, for dynamically-generated fonts, as is traditional on some systems. It may be omitted if unnecessary, as usual. \end{itemize} \item[\replaceable{typeface}] is the name of a typeface family (examples: \path|cm|, \path|euler|, \path|times|). The \abbr{TDS} reserves the following \replaceable{typeface} names: \begin{itemize} \item \path|cm| (within \path|public|), for the 75 fonts defined in \citetitle{Computers and Typesetting, Volume~E}. \item \path|latex| (within \path|public|), for those fonts distributed with \LaTeX{} in the base distribution. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \end{itemize} \end{description} Some concrete examples: \begin{ttdisplay} texmf/fonts/source/public/pandora/pnr10.mf texmf/fonts/tfm/public/cm/cmr10.tfm texmf/fonts/type1/adobe/utopia/putr.pfa \end{ttdisplay} For complete supplier and typeface name lists, consult \citetitle{Filenames for \TeX{} fonts} (see Appendix~\ref{sec:Related references}). \subsubsection{Font bitmaps} Font bitmap files require two characteristics in addition to the above to be uniquely identifiable: (1)~the type of device (i.e., mode) for which the font was created; (2)~the resolution of the bitmap. Following common practice, the \abbr{TDS} segregates fonts with different device types into separate directories. See \path|modes.mf| in Appendix~\ref{sec:Related references} for recommended mode names. Some printers operate at more than one resolution (e.g., at 300\,dpi and 600\,dpi), but each such resolution will necessarily have a different mode name. Nothing further is needed, since implicit in the \TeX{} system is the assumption of a single target resolution. Two naming strategies are commonly used to identify the resolution of bitmap font files. On systems that allow long filenames (and in the original \MF{} program itself), the resolution is included in the filename (e.g., \path|cmr10.300pk|). On systems which do not support long filenames, fonts are generally segregated into directories by resolution (e.g., \path|dpi300/cmr10.pk|). Because the \abbr{TDS} cannot require long filenames, we must use the latter scheme for naming fonts. So we have two more subdirectory levels under \path|pk| and \path|gf|: \begin{ttdisplay} texmf/fonts/pk/\replaceable{mode}/\replaceable{supplier}/\replaceable{typeface}/dpi\replaceable{nnn}/ texmf/fonts/gf/\replaceable{mode}/\replaceable{supplier}/\replaceable{typeface}/dpi\replaceable{nnn}/ \end{ttdisplay} \begin{description} \item[\replaceable{mode}] is a name which identifies the device type (examples: \path|cx|, \path|ljfour|, \path|modeless|). Usually, this is the name of the \MF{} mode used to build the \abbr{PK} file. For fonts rendered as bitmaps by a program that does not distinguish between different output devices, the \replaceable{mode} name shall be simply \path|modeless|. The \replaceable{mode} level shall not be omitted, even if only a single mode happens to be in use. \item[\path|dpi|\replaceable{nnn}] specifies the resolution of the font (examples: \path|dpi300|, \path|dpi329|). `\literal{dpi}' stands for dots per inch, i.e., pixels per inch. We recognize that pixels per millimeter is used in many parts of the world, but dpi is too traditional in the \TeX{} world to consider changing now. The integer \replaceable{nnn} is to be calculated as if using \MF{} arithmetic and then rounded; i.e., it is the integer \MF{} uses in its output \path|gf| filename. We recognize small differences in the resolution are a common cause of frustration among users, however, and recommend implementors follow the level~0 \abbr{DVI} driver standard (see Appendix~\ref{sec:Related references}) in bitmap font searches by allowing a fuzz of $\pm0.2$\% (with a minimum of $1$) in the \replaceable{dpi}. \end{description} Implementations may provide extensions to the basic naming scheme, such as long filenames (as in the original \MF{}) and font library files (as in em\TeX{}'s \path|.fli| files), provided that the basic scheme is also supported. \subsubsection{Valid font bitmaps} \label{sec:Valid font bitmaps} The \abbr{TWG} recognizes that the use of short filenames has many disadvantages. The most vexing is that it results in the creation of dozens of different files with the same name. At a typical site, \path|cmr10.pk| will be the filename for Computer Modern Roman 10\,pt at 5--10 magnifications for 2--3 modes. (Section~\ref{sec:Duplicate filenames} discusses duplicate filenames in general.) To minimize this problem, we strongly recommend that \abbr{PK} files contain enough information to identify precisely how they were created: at least the mode, base resolution, and magnification used to create the font. This information is easy to supply: a simple addition to the local modes used for building the fonts with \MF{} will automatically provide the required information. If you have been using a local modes file derived from (or that is simply) \path|modes.mf| (see Appendix~\ref{sec:Related references}), the required information is already in your \abbr{PK} files. If not, a simple addition based on the code found in \path|modes.mf| can be made to your local modes file and the \abbr{PK} files rebuilt. \subsection{Non-font \MF{} files} \label{sec:Non-font MF files} Most \MF{} input files are font programs or parts of font programs and are thus covered by the previous section. However, a few non-font input files do exist. Such files shall be stored in: \begin{ttdisplay} texmf/metafont/\replaceable{package}/ \end{ttdisplay} \replaceable{package} is the name of a \MF{} package (for example, \path|mfpic|). The \abbr{TDS} reserves the following \replaceable{package} names: \begin{itemize} \item \path|base|, for the standard \MF{} macro files as described in \citetitle{The \MF{}book}, such as \path|plain.mf| and \path|expr.mf|. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|misc|, for \MF{} packages consisting of only a single file (for example, \path|modes.mf|). An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \end{itemize} \subsection{\MP{}} \label{sec:MetaPost} \MP{} is a picture-drawing language developed by John Hobby, derived from Knuth's \MF{}. Its primary purpose is to output Encapsulated \PS{} instead of bitmaps. \MP{} input files and the support files for \MP{}-related utilities shall be stored in: \begin{ttdisplay} texmf/metapost/\replaceable{package}/ \end{ttdisplay} \replaceable{package} is the name of a \MP{} package. At the present writing none exist, but the \abbr{TWG} thought it prudent to leave room for contributed packages that might be written in the future. The \abbr{TDS} reserves the following \replaceable{package} names: \begin{itemize} \item \path|base|, for the standard \MP{} macro files, such as \path|plain.mp|, \path|mfplain.mp|, \path|boxes.mp|, and \path|graph.mp|. This includes files used by \iniMP{} when dumping mem files containing preloaded macro definitions. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|misc|, for \MP{} packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \item \path|support|, for additional input files required by \MP{} utility programs, including a font map, a character adjustment table, and a subdirectory containing low-level \MP{} programs for rendering some special characters. \end{itemize} \subsection{\BibTeX{}} \label{sec:BibTeX} \BibTeX{}-related files shall be stored in: \begin{ttdisplay} texmf/bibtex/bib/\replaceable{package}/ texmf/bibtex/bst/\replaceable{package}/ \end{ttdisplay} The \path|bib| directory is for \BibTeX{} database (\path|.bib|) files, the \path|bst| directory for style (\path|.bst|) files. \replaceable{package} is the name of a \BibTeX{} package. The \abbr{TDS} reserves the following \replaceable{package} names (the same names are reserved under both \path|bib| and \path|bst|): \begin{itemize} \item \path|base|, for the standard \BibTeX{} databases and styles, such as \path|xampl.bib|, \path|plain.bst|. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|misc|, for \BibTeX{} packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \end{itemize} \subsection{Scripts} \label{sec:Scripts} The top-level \path|scripts| directory is for platform-independent executables, such as Perl, Python, and shell scripts, and Java class files. Subdirectories under \path|scripts| are package names. This eases creating distributions, by providing a common place for such platform-independent programs. The intent is not for all such directories to be added to a user's command search path, which would be quite impractical. Rather, these executables are primarily for the benefit of wrapper scripts in whatever executable directory a distribution may provide (which is not specified by the \abbr{TDS}). Truly auxiliary scripts which are invoked directly by other programs, rather than wrapper scripts, may also be placed here. That is, \path|scripts| also serves as a platform-independent analog of the standard Unix \path|libexec| directory. We recommend using extensions specifying the language (such as \path|.pl|, \path|.py|, \path|.sh|) on these files, to help uniquely identify the name. Since the intent of the \abbr{TDS} is for programs in \path|scripts| not to be invoked directly by users, this poses no inconvenience. For example, in the \TeX{} Live distribution, the Con\TeX{}t user-level program \path|texexec| can exist as a small wrapper script in each \path|bin/|\replaceable{platform}\path|/texexec| (which is outside the \path|texmf| tree), which merely finds and calls \path|texmf/scripts/context/perl/texexec.pl|. Examples: \begin{ttdisplay} scripts/context/perl/texexec.pl scripts/context/ruby/examplex.rb scripts/thumbpdf/thumbpdf.pl \end{ttdisplay} The \abbr{TDS} does not specify a location for platform-dependent binary executables, whether auxiliary or user-level. \subsection{Documentation} \label{sec:Documentation} Most packages come with some form of documentation: user manuals, example files, programming guides, etc. In addition, many independent files not part of any macro or other package have been created to describe various aspects of the \TeX{} system. The \abbr{TDS} specifies that these additional documentation files shall be stored in a structure that parallels to some extent the \path|fonts| and \path|tex| directories, as follows: \begin{ttdisplay} texmf/doc/\replaceable{category}/... \end{ttdisplay} \replaceable{category} identifies the general topic of documentation that resides below it; for example, a \TeX{} format name (\path|latex|), program name (\path|bibtex|, \path|tex|), language (\path|french|, \path|german|), a file format (\path|info|, \path|man|), or other system components (\path|web|, \path|fonts|). One possible arrangement is to organize \path|doc| by language, with all the other category types below that. This helps users find documentation in the language(s) in which they are fluent. Neither this nor any other particular arrangement is required, however. Within each \replaceable{category} tree for a \TeX{} format, the directory \path|base| is reserved for base documentation distributed by the format's maintainers. The \abbr{TDS} reserves the following category names: \begin{itemize} \item \path|general|, for standalone documents not specific to any particular program (for example, Joachim Schrod's \citetitle{Components of \TeX{}}). \item \path|help|, for meta-information, such as \abbr{faq}'s, the \TeX{} Catalogue, etc. \item \path|info|, for processed Texinfo documents. (Info files, like anything else, may also be stored outside the \abbr{TDS}, at the installer's option.) \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \end{itemize} The \path|doc| directory is intended for implementation-independent and operating system-independent documentation files. Implementation-dependent files are best stored elsewhere, as provided for by the implementation and/or \TeX{} administrator (for example, \abbr{VMS} help files under \path|texmf/vms/help|). The documentation directories may contain \TeX{} sources, \abbr{DVI} files, \PS{} files, text files, example input files, or any other useful documentation format(s). See Section~\ref{sec:Documentation tree summary} for a summary. \newpage \section{Summary} \label{sec:Summary} A skeleton of a \abbr{TDS} \texmf{} directory tree. This is not to imply these are the only entries allowed. For example, \path|local| may occur at any level. \begin{tdsSummary} bibtex/ \BibTeX{} input files . bib/ \BibTeX{} databases . . base/ base distribution (e.g., \path|xampl.bib|) . . misc/ single-file databases . / name of a package . bst/ \BibTeX{} style files . . base/ base distribution (e.g., \path|plain.bst|, \path|acm.bst|) . . misc/ single-file styles . / name of a package doc/ see Section~\ref{sec:Documentation} and the summary below fonts/ font-related files . / file type (e.g., \path|pk|) . . / type of output device (for \path|pk| and \path|gf| only) . . . / name of a font supplier (e.g., \path|public|) . . . . / name of a typeface (e.g., \path|cm|) . . . . . dpi/ font resolution (for \path|pk| and \path|gf| only) / \TeX{} implementations, by name (e.g., \path|emtex|) local/ files created or modified at the local site metafont/ \MF{} (non-font) input files . base/ base distribution (e.g., \path|plain.mf|) . misc/ single-file packages (e.g., \path|modes.mf|) . / name of a package (e.g., \path|mfpic|) metapost/ \MP{} input and support files . base/ base distribution (e.g., \path|plain.mp|) . misc/ single-file packages . / name of a package . support/ support files for \MP{}-related utilities mft/ \path|MFT| inputs (e.g., \path|plain.mft|) / \TeX{}-related programs, by name (e.g., \path|dvips|) source/ program source code by name (e.g., \path|latex|, \path|web2c|) tex/ \TeX{} input files . / name of an engine (e.g., \path|aleph|); can also be lower . / name of a format (e.g., \path|plain|) . . base/ base distribution for format (e.g., \path|plain.tex|) . . misc/ single-file packages (e.g., \path|webmac.tex|) . . local/ local additions to or local configuration files for \replaceable{format} . . / name of a package (e.g., \path|graphics|, \path|mfnfss|) . generic/ format-independent packages . . hyphen/ hyphenation patterns (e.g., \path|hyphen.tex|) . . images/ image input files (e.g., Encapsulated PostScript) . . misc/ single-file format-independent packages (e.g., \path|null.tex|). . . / name of a package (e.g., \path|babel|) \end{tdsSummary} \newpage \subsection{Documentation tree summary} \label{sec:Documentation tree summary} An example skeleton of a \abbr{TDS} directory tree under \path|texmf/doc|. This is not to imply these are the only entries allowed, or that this structure must be followed precisely for the entries listed. As mentioned, the \path|texmf/doc| tree may be organized by language, so that all documentation in French, say, is in a \path|french| subdirectory. In that case, the example structure here would be in a given language directory. \begin{tdsSummary} ams/ . amsfonts/ \path|amsfonts.faq|, \path|amfndoc| . amslatex/ \path|amslatex.faq|, \path|amsldoc| . amstex/ \path|amsguide|, \path|joyerr| bibtex/ \BibTeX{} . base/ \path|btxdoc.tex| fonts/ . fontname/ \citetitle{Filenames for \TeX{} fonts} . oldgerm/ \path|corkpapr| / name of a \TeX{} format (e.g., \path|generic|, \path|latex|) . base/ for the base distribution . misc/ for contributed single-file package documentation . / for \emphasis{package} general/ across programs, generalities . errata/ \path|errata|, \path|errata[1-8]| . texcomp/ \citetitle{Components of \TeX{}} help/ meta-information . ctan/ info about \abbr{ctan} mirror sites . faq/ \abbr{faq}s of \path|comp.text.tex|, etc. info/ \abbr{gnu} Info files, made from Texinfo sources latex/ example of \replaceable{format} . base/ \path|ltnews*|, \path|*guide|, etc. . graphics/ \path|grfguide| local/ site-specific documentation man/ Unix man pages / \TeX{}-related programs, by name (examples follow) metafont/ \path|mfbook.tex|, \path|metafont-for-beginners|, etc. metapost/ \path|mpman|, \path|manfig|, etc. tex/ \path|texbook.tex|, \citetitle{A Gentle Introduction to \TeX{}}, etc. web/ \path|webman|, \path|cwebman| \end{tdsSummary} \newpage \appendix \section{Unspecified pieces} The \abbr{TDS} cannot address the following aspects of a functioning \TeX{} system: \begin{enumerate} \item The location of executable programs: this is too site-dependent even to recommend a location, let alone require one. A site may place executables outside the \texmf{} tree altogether (e.g., \path|/usr/local/bin|), in a platform-dependent directory within \texmf{}, or elsewhere. \item Upgrading packages when new releases are made: we could find no way of introducing version specifiers into \texmf{} that would do more good than harm, or that would be practical for even a plurality of installations. \item The location of implementation-specific files (e.g., \TeX{} \path|.fmt| files): by their nature, these must be left to the implementor or \TeX{} maintainer. See Section~\ref{sec:Example implementation-specific trees}. \item Precisely when a package or file should be considered ``local'', and where such local files are installed. See Section~\ref{sec:Local additions} for more discussion. \end{enumerate} \subsection{Portable filenames} \label{sec:Portable filenames} The \abbr{TDS} cannot require any particular restriction on filenames in the tree, since the names of many existing \TeX{} files conform to no standard scheme. For the benefit of people who wish to make a portable \TeX{} distribution or installation, however, we outline here the necessary restrictions. The \abbr{TDS} specifications themselves are compatible with these. \abbr{ISO}-9660 is the only universally acceptable file system format for \abbr{CD-ROM}s. A subset thereof meets the stringent limitations of all operating systems in use today. It specifies the following: \begin{itemize-squeeze} \item File and directory names, not including any directory path or extension part, may not exceed eight characters. \item Filenames may have a single extension. Extensions may not exceed three characters. Directory names may not have an extension. \item Names and extensions may consist of \emphasis{only} the characters \literal{A}--\literal{Z}, \literal{0}--\literal{9}, and underscore. Lowercase letters are excluded. \item A period separates the filename from the extension and is always present, even if the name or extension is missing (e.g., \path|FILENAME.| or \path|.EXT|). \item A version number, ranging from 1--32767, is appended to the file extension, separated by a semicolon (e.g., \path|FILENAME.EXT;1|). \item Only eight directory levels are allowed, including the top-level (mounted) directory (see Section~\ref{sec:Rooting the tree}). Thus, the deepest valid \abbr{ISO}-9660 path is: \begin{ttdisplay} texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1 1 2 3 4 5 6 7 8 \end{ttdisplay} The deepest \abbr{TDS} path needs only seven levels: \begin{ttdisplay} texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk 1 2 3 4 5 6 7 \end{ttdisplay} \end{itemize-squeeze} Some systems display a modified format of \abbr{ISO}-9660 names, mapping alphabetic characters to lowercase, removing version numbers and trailing periods, etc. Before the December 1996 release, \LaTeX{} used mixed-case names for font descriptor files. Fortunately, it never relied on case alone to distinguish among the files. Nowadays, it uses only monocase names. \section{Implementation issues} We believe that the \abbr{TDS} can bring a great deal of order to the current anarchic state of many \TeX{} installations. In addition, by providing a common frame of reference, it will ease the burden of documenting administrative tasks. Finally, it is a necessary part of any reasonable system of true ``drop-in'' distribution packages for \TeX{}. \subsection{Adoption of the \abbr{TDS}} [This section is retained for historical purposes; the \abbr{TDS} is now quite firmly entrenched in most \TeX{} distributions.] We recognize that adoption of the \abbr{TDS} will not be immediate or universal. Most \TeX{} administrators will not be inclined to make the final switch until: \begin{itemize-squeeze} \item Clear and demonstrable benefits can be shown for the \abbr{TDS}. \item \abbr{TDS}-compliant versions of all key programs are available in ported, well-tested forms. \item A ``settling'' period has taken place, to flush out problems. The public release of the first draft of this document was the first step in this process. \end{itemize-squeeze} Consequently, most of the first trials of the \abbr{TDS} will be made by members of the \abbr{TDS} committee and/or developers of \TeX{}-related software. This has already taken place during the course of our deliberations (see Appendix~\ref{sec:Related references} for a sample tree available electronically). They will certainly result in the production of a substantial number of \abbr{TDS}-compliant packages. Indeed, the \application{te\TeX{}} and \application{\TeX{} Live} distributions are \abbr{TDS}-compliant and in use now at many sites. Once installable forms of key \abbr{TDS}-compliant packages are more widespread, some \TeX{} administrators will set up \abbr{TDS}-compliant trees, possibly in parallel to existing production directories. This testing will likely flush out problems that were not obvious in the confined settings of the developers' sites; for example, it should help to resolve system and package dependencies, package interdependencies, and other details not addressed by this \abbr{TDS} version. After most of the dust has settled, hopefully even conservative \TeX{} administrators will begin to adopt the \abbr{TDS}. Eventually, most \TeX{} sites will have adopted the common structure, and most packages will be readily available in \abbr{TDS}-compliant form. We believe that this process will occur relatively quickly. The \abbr{TDS} committee spans a wide range of interests in the \TeX{} community. Consequently, we believe that most of the key issues involved in defining a workable \abbr{TDS} definition have been covered, often in detail. \TeX{} developers have been consulted about implementation issues, and have been trying out the \abbr{TDS} arrangement. Thus, we hope for few surprises as implementations mature. Finally, there are several (current or prospective) publishers of \TeX{} \abbr{CD-ROM}s. These publishers are highly motivated to work out details of \abbr{TDS} implementation, and their products will provide inexpensive and convenient ways for experimentally-minded \TeX{} administrators to experiment with the \abbr{TDS}. \subsection{More on subdirectory searching} \label{sec:More on subdirectory searching} Recursive subdirectory searching is the ability to specify a search not only of a specified directory \replaceable{d}, but recursively of all directories below \replaceable{d}. Since the \abbr{TDS} specifies precise locations for most files, with no extra levels of subdirectories allowed, true recursive searching is not actually required for a \abbr{TDS}-compliant implementation. We do, however, strongly recommend recursive searching as the most user-friendly and natural approach to the problem, rather than convoluted methods to specify paths without recursion. This feature is already supported by many implementations of \TeX{} and companion utilities, for example \abbr{DECUS} \TeX{} for \abbr{VMS}, \application{Dvips(k)}, \application{em\TeX{}} (and its drivers), \application{PubliC \TeX{}}, \application{Web2C}, \application{Xdvi(k)}, and \application{Y\&Y\TeX{}}. The Kpathsea library is a reusable implementation of subdirectory searching for \TeX{}, used in a number of the above programs. Even if your \TeX{} implementation does not directly support subdirectory searching, you may find it useful to adopt the structure if you do not use many fonts or packages. For instance, if you only use Computer Modern and \abbr{ams} fonts, it would be feasible to store them in the \abbr{TDS} layout and list the directories individually in configuration files or environment variables. The \abbr{TWG} recognizes that subdirectory searching places an extra burden on the system and may be the source of performance bottlenecks, particularly on slower machines. Nevertheless, we feel that subdirectory searching is imperative for a well-organized \abbr{TDS}, for the reasons stated in Section~\ref{sec:Subdirectory searching}. Implementors are encouraged to provide enhancements to the basic principle of subdirectory searching to avoid performance problems, e.g., the use of a filename cache (this can be as simple as a recursive directory listing) that is consulted before disk searching begins. If a match is found in the database, subdirectory searching is not required, and performance is thus independent of the number of subdirectories present on the system. Different implementations specify subdirectory searching differently. In the interest of typographic clarity, the examples here do not use the \replaceable{replaceable} font. \begin{description-squeeze} \item[\application{Dvips}:] via a separate \systemitem{ENVIRONVAR}{TEXFONTS\_SUBDIR} environment variable. \item[\application{em\TeX{}}:] \path|t:\subdir!!|; \path|t:\subdir!| for a single level of searching. \item[\application{Kpathsea}:] \path|texmf/subdir//| \item[\abbr{VMS}:] \path|texmf:[subdir...]| \item[\application{Xdvi} (patchlevel 20):] \path|texmf/subdir/**|; \path|texmf/subdir/*| for a single level of searching. Version 20.50 and above support the \path|//| notation. \item[\application{Y\&Y \TeX{}}:] \path|t:/subdir//| or \path|t:\subdir\\|. \end{description-squeeze} \subsection{Example implementation-specific trees} \label{sec:Example implementation-specific trees} The \abbr{TDS} cannot specify a precise location for implementation-specific files, such as \path|texmf/ini|, because a site may have multiple \TeX{} implementations. Nevertheless, for informative purposes, we provide here the default locations for some implementations. Please contact us with additions or corrections. These paths are not definitive, may not match anything at your site, and may change without warning. We recommend all implementations have default search paths that start with the current directory (e.g., `\path|.|'). Allowing users to include the parent directory (e.g., `\path|..|') is also helpful. \subsubsection{AmiWeb2c 2.0} (Email \email|scherer@physik.rwth-aachen.de| to contact the maintainer of this implementation.) AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible extent, so only the very few differences are described in this section. Detailed information about the basic concepts is given in the section for Web2c 7 below. Thanks to the \path|SELFAUTO| mechanism of Kpathsea 3.0 no specific location for the installation of AmiWeb2c is required as long as the general structure of the distribution is preserved. In addition to Kpathsea's \path|//| notation recursive path search may also be started by \replaceable{DEVICE}\path|:/|, e.g., \path|TeXMF:/| will scan this specific device completely. Binaries coming with the AmiWeb2c distribution are installed in the directory \path|bin/amiweb2c/| outside the common \abbr{TDS} tree \path|share/texmf/|. In addition to the set of AmiWeb2c binaries you will find two subdirectories \path|local/| and \path|pastex/| with auxiliary programs. A stripped version of the Pas\TeX{} system (used by kind permission of Georg He\ss{}mann) is coming with AmiWeb2c, pre-installed in its own \path|share/texmf/amiweb2c/pastex/| directory. If you want to use Pas\TeX{} you have to \path|assign| the name \path|TeX:| to this place. Documentation files in AmigaGuide format should be stored at \path|doc/guide/| similar to \path|doc/info/|. \subsubsection{Public \abbr{DECUS} \TeX{}} If another \abbr{VMS} implementation besides Public \abbr{DECUS} \TeX{} appears, the top level implementation directory name will be modified to something more specific (e.g., \path|vms_decus|). \begin{tdsSummary} texmf/ . vms/ \abbr{VMS} implementation specific files . . exe/ end-user commands . . . common/ command procedures, command definition files, etc. . . . axp/ binary executables for Alpha \abbr{AXP} . . . vax/ binary executables for \abbr{VAX} . . formats/ pool files, formats, bases . . help/ \abbr{VMS} help library, and miscellaneous help sources . . mgr/ command procedures, programs, docs, etc., for system management \end{tdsSummary} \subsubsection{Web2c 7} All implementation-dependent \TeX{} system files (\path|.pool|, \path|.fmt|, \path|.base|, \path|.mem|) are stored by default directly in \path|texmf/web2c|. The configuration file \path|texmf.cnf| and various subsidiary \path|MakeTeX...| scripts used as subroutines are also stored there. Non-\TeX{} specific files are stored following the \abbr{GNU} coding standards. Given a root directory \replaceable{prefix} (\path|/usr/local| by default), we have default locations as follows: \begin{tdsSummary} / installation root (\path|/usr/local| by default) . bin/ executables . man/ man pages . info/ info files . lib/ libraries (\path|libkpathsea.*|) . share/ architecture-independent files . . texmf/ \abbr{TDS} root . . . web2c/ implementation-dependent files (\path|.pool|, \path|.fmt|, \path|texmf.cnf|, etc.) \end{tdsSummary} See \url|http://www.gnu.org/prep/standards_toc.html| for the rationale behind and descriptions of this arrangement. A site may of course override these defaults; for example, it may put everything under a single directory such as \path|/usr/local/texmf|. \section{Is there a better way?} Defining the \abbr{TDS} required many compromises. Both the overall structure and the details of the individual directories were arrived at by finding common ground among many opinions. The driving forces were feasibility (in terms of what could technically be done and what could reasonably be expected from developers) and regularity (files grouped together in an arrangement that ``made sense''). Some interesting ideas could not be applied due to implementations lacking the necessary support: \begin{itemize} \item Path searching control at the \TeX{} level. If documents could restrict subdirectory searching to a subdirectory via some portable syntax in file names, restrictions on uniqueness of filenames could be relaxed considerably (with the cooperation of the formats), and the \TeX{} search path would not need to depend on the format. \item Multiple logical \texmf{} trees. For example, a site might have one (read-only) location for stable files, and a different (writable) location for dynamically-created fonts or other files. It would be reasonable for two such trees to be logically merged when searching. See Michael Downes' article in the references for how this can work in practice with Web2C. \end{itemize} \subsection{Macro structure} The \abbr{TWG} settled on the \replaceable{format}\path|/|\replaceable{package} arrangement after long discussion about how best to arrange the files. The primary alternative to this arrangement was a scheme which reversed the order of these directories: \replaceable{package}\path|/|\replaceable{format}. This reversed arrangement has a strong appeal: it keeps all of the files related to a particular package in a single place. The arrangement actually adopted tends to spread files out into two or three places (macros, documentation, and fonts, for example, are spread into different sections of the tree right at the top level). Nevertheless, the \replaceable{format}\path|/|\replaceable{package} structure won for a couple of reasons: \begin{itemize-squeeze} \item It is closer to current practice; in fact, several members of the \abbr{TWG} have already implemented the \abbr{TDS} hierarchy. The alternative is not in use at any known site, and the \abbr{TWG} felt it wrong to mandate something with which there is no practical experience. \item The alternative arrangement increases the number of top-level directories, so the files that must be found using subdirectory searching are spread out in a wide, shallow tree. This could have a profound impact on the efficiency of subdirectory searching. \end{itemize-squeeze} \subsection{Font structure} The \abbr{TWG} struggled more with the font directory structure than anything else. This is not surprising; the need to use the proliferation of PostScript fonts with \TeX{} is what made the previous arrangement with all files in a single directory untenable, and therefore what initiated the \abbr{TDS} effort. \subsubsection{Font file type location} We considered the supplier-first arrangement in use at many sites: \begin{ttdisplay} texmf/fonts/\replaceable{supplier}/\replaceable{typeface}/\replaceable{type}/ \end{ttdisplay} This improves the maintainability of the font tree, since all files comprising a given typeface are in one place, but unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find a \path|TFM| file, the simplest implementation would require \TeX{} to search through all the directories that contain \abbr{PK} files in all modes and at all resolutions. In the end, a poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this arrangement was abandoned. The \abbr{TDS} arrangement allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do without abandoning subdirectory searching entirely. We also considered segregating all font-related files strictly by file type, so that \MF{} sources would be in a directory \path|texmf/fonts/mf|, property list files in \path|texmf/fonts/pl|, the various forms of Type~1 fonts separated, and so on. Although more blindly consistent, we felt that the drawback of more complicated path constructions outweighed this. The \abbr{TDS} merges file types (\path|mf| and \path|pl| under \path|source|, \path|pfa| and \path|pfb| and \path|gsf| under \path|type1|) where we felt this was beneficial. \subsubsection{Mode and resolution location} We considered having the \path|mode| at the bottom of the font tree: \begin{ttdisplay} texmf/fonts/pk/\replaceable{supplier}/\replaceable{typeface}/\replaceable{mode}/\replaceable{dpi}/ \end{ttdisplay} In this case, however, it is difficult to limit subdirectory searching to the mode required for a particular device. We then considered moving the \path|dpi|\replaceable{nnn} up to below the mode: \begin{ttdisplay} texmf/fonts/pk/\replaceable{mode}/\replaceable{dpi}/\replaceable{supplier}/\replaceable{typeface}/ \end{ttdisplay} But then it is not feasible to omit the \path|dpi|\replaceable{nnn} level altogether on systems which can and do choose to use long filenames. \subsubsection{Modeless bitmaps} The \abbr{TDS} specifies using a single directory \path|modeless/| as the mode name for those utilities which generate bitmaps, e.g., \path|texmf/fonts/modeless/times/|. This has the considerable advantage of not requiring each such directory name to be listed in a search path. An alternative was to use the utility name below which all such directories could be gathered. That has the advantage of separating, say, \path|gsftopk|-generated bitmaps from \path|ps2pk|-generated ones. However, we decided this was not necessary; most sites will use only one program for the purpose. Also, \abbr{PK} and \abbr{GF} fonts generally identify their creator in the font comment following the \path|PK_ID| byte. We are making an implicit assumption that \MF{} is the only program producing mode-dependent bitmaps. If this becomes false we could add an abbreviation for the program to mode names, as in \path|mfcx| vs.\ \path|xyzcx| for a hypothetical program \application{Xyz}, or we could at that time add an additional program name level uniformly to the tree. It seemed more important to concisely represent the current situation than to worry about hypothetical possibilities that may never~happen. \subsection{Documentation structure} We considered placing additional documentation files in the same directory as the source files for the packages, but we felt that users should be able to find documentation separately from sources, since most users have no interest in sources. We hope that a separate, but parallel, structure for documentation would (1)~keep the documentation together and (2)~make it as straightforward as possible for users to find the particular documentation they were after. \section{Related references} \label{sec:Related references} This appendix gives pointers to related files and other documents. For \abbr{CTAN} references, we use \path|http://www.ctan.org| as the top-level domain only to make the links be live in this document. See \url|http://www.ctan.org/tex-archive/CTAN.sites| for a complete list of \abbr{ctan} sites; there are mirrors worldwide. \begin{itemize-squeeze} \item This document, in many formats (tex, dvi, info, pdf):\\ \hspace*{1em} \url|http://tug.org/tds/| \item The \abbr{TDS} mailing list archives:\\ \hspace*{1em} \url|http://tug.org/mail-archives/twg-tds/| \item The level~0 \abbr{DVI} driver standard:\\ \hspace*{1em} \url|http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/| \item \citetitle{Filenames for \TeX{} fonts}, with lists of recommended supplier and typeface names:\\ \hspace*{1em} \url|http://tug.org/fontname/| \item \abbr{ISO}-9660 \abbr{CD-ROM} file system standard:\\ \hspace*{1em} \url|http://www.iso.ch/cate/cat.html| \item \citetitle{Components of \TeX{}}, a paper by Joachim Schrod:\\ \hspace*{1em} \url|http://www.ctan.org/tex-archive/documentation/components-of-TeX/| \item \citetitle{Managing Multiple TDS trees}, an article by Michael Downes:\\ \hspace*{1em} \url|http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf| \item A complete set of \MF{} modes:\\ \hspace*{1em} \url|http://www.ctan.org/tex-archive/fonts/modes/modes.mf| \item A large collection of \BibTeX{} databases and styles:\\ \hspace*{1em} \url|ftp://ftp.math.utah.edu/pub/tex/bib/| \end{itemize-squeeze} \section{Contributors} The \abbr{TWG} has had no physical meetings; electronic mail was the communication medium. Sebastian Rahtz is the \TeX{} Users Group Technical Council liaison. Norman Walsh was the original committee chair. Karl Berry is the current editor. The list of contributors has grown too large to fairly include, as some would surely be inadvertently omitted. Please consider the archives of the \email|tds@tug.org| and \email|tex-live@tug.org| mailing lists as the record of contributions. \end{document} tex-common-4.04/doc/tds-1.1/tds.dvi0000644000000000000000000025617412157017604013571 0ustar ; TeX output 2004.06.23:1025y?|FnQDtGGcmr17A7tDirectoryStructureforT[-E;gXFiles|FB0XQ cmr12TUGWVorkingGrouponaT UE!XDirectoryStructure(TWrG-TDS)Ⰽ9.vrersion1.1 June23,2004|GK`y cmr10CopyrightrcUU !", cmsy10 1994,UU1995,1996,1997,1998,1999,2003,2004TU>'ExXUsersGroup.|FPermissiondDtouse,hcopy*,anddDdistributethisdoGcument': cmti10withoutmo}'di cation(fordDanypurpGoseand withoutufeeisherebygranted,}providedthatthisnoticeappGearsinallcopies.Itisprovided\asis"UUwithoutexpressedorimpliedwarranty*.PermissionisgrantedtocopyanddistributemoGdi edversionsofthisdoGcumentunderthecondi-tionsforverbatimcopying,providedthatthemoGdi cationsareclearlymarkedandthedoGcumentisUUnotrepresentedastheocialone.ThisdoGcumentisavqailableonanyo cmr9CT:ANલhost(seeAppGendixD). PleasesendquestionsorsuggestionsUUbyemailtoHistoryx..........................................V2'1.2>TheUUroleoftheTDSX...................................V2'1.3>Conventionsb........................................V3b92'Generalp3'ॲ2.1>SubGdirectoryUUsearching"..................................V3'2.2>RoGotingUUthetree.....................................V4'2.3>LoGcalUUadditions......................................V4'2.4>DuplicateUU lenames]....................................V53'T*op-levelUUdirectories<5'ॲ3.1>Macrosэ...........................................V6'3.2>F*ontsjg............................................V8'3.3>Non-fontUUo> logo10METAF9ONT8 lesm................................ V10'3.4>METAPqOST鍍........................................ V10'3.5>BٓRcmr7IB32TU>'ExX;.......................................... V11'3.6>Scripts_........................................... V11'3.7>DoGcumentation...................................... V124'SummarycL13'ॲ4.1>DoGcumentationUUtreesummaryM~.............................. V14A'UnspGeci edUUpieces?_15'ॲA.1>PortableUU lenamesA.................................... V15B'ImplementationUUissues/N116'ॲB.1>AdoptionUUoftheTDSō................................... V16'B.2>MoreUUonsubGdirectorysearching΍............................. V17'B.3>ExampleUUimplementation-spGeci ctreesȍ......................... V17C'IsUUthereabGetterway?/19'ॲC.1>MacroUUstructurexo...................................... V19'C.2>F*ontUUstructure\....................................... V20'C.3>DoGcumentationUUstructure................................ V21D'RelatedUUreferences?'ExXisapGowerful, exibletypesettingsystemusedbymanypGeoplearoundtheworld.07Itis extremelypGortableandrunsonvirtuallyalloperatingsystems.Oneunfortunatesidee ectofTU>'ExX's- exibility*,chowever,is-thattherehasbGeennosingle\right"waytoinstallit.ThishasresultedUUinmanysiteshavingdi erentinstalledarrangements.N8TheprimarypurpGoseofthisdocumentistodescribeastandardTU>'ExXDirectoryStructure(TDS):adirectoryhierarchyformacros,fonts,andtheotherimplementation-indepGendentTU>'ExXsystem les.dAs.Ramatterofpracticality*,6thisdoGcumentalsosuggestswaystoincorpGoratetherestoftheTU>'ExX- lesintoasinglestructure.PTheTDShasbGeendesignedtoworkonallmoGdernsystems.InCparticular,G3theT*echnicalWorkingGroup(TW9G)CbGelievesitisusableunderMacOS,MS-DOS,OS/2,Unix,VMS,9andWindowsNT.rW*ehopGethatadministratorsanddevelopGersofbothfreeandUUcommercialTU>'ExXimplementationswilladoptthisstandard.ThisdoGcumentisintendedbGothfortheTU>'ExXsystemadministratoratasiteandforpeoplepreparingTU>'ExXdistributions|everythingfromacompleterunnablesystemtoasinglemacroorstyle le.&ItmayalsohelpTU>'ExXusers ndtheirwayaroundsystemsorganizedthisway*.&Itisnotlatutorial:-wenecessarilyassumeknowledgeofthemanypartsofaworkingTU>'ExXsystem.`Ifyou'ExXextensionsincludedundertex,Tqinsteadofintheirowntop-leveldirectories1(SectionUU3.1.1)!࠸1লNewUUtop-leveldirectoryscripts(Section3.6).!࠸1লNewUUsubGdirectorieslig,opentype,truetype,andtype3underfonts(Section3.2).!࠸1enc,UUlig,andmapallusehsyntax4Di/hp}'ackage[isubGdirectories(Section3.2).!࠸1pfmUU lesspGeci edtogoundertype1,andinf lesunderafm(Section3.2).č1.23 Theroleofthe m#R 3 cmss10TDSpलThe]roleoftheTDS+istostabilizetheorganizationofTU>'ExX-relatedsoftware]packqagesthatareinstalledUUandinuse,pGossiblyonmultipleplatformssimultaneously*.At. rstglance,ditmayseemthattheComprehensiveTU>'ExXArchiveNetwork(CT:AN).aful llsatleastfpartofthisrole,butthisisnotthecase.HTheroleofCT:AN=istosimplifyarchivinganddistribution,UUnotinstallationanduse.InΔfact,therolesoftheTDSuandCT:ANarefrequentlyincon ict,aswewillsee.݄F*ordistribu-tion,>manydi erenttypGesof lesmustbGecombinedintoasingleunit;mforuse,>itistraditionaltoFsegregate les(evensimilar les)fromasinglepackqageintoseparate,3oGccasionallydistant,directories.`2+ˠyfdǠTDSUUversion1.1टff?1.33 ConventionshलInthisdoGcument,g\/"isusedtoseparate lenamecomponents;'forexample,gtexmf/fonts.ZThis isUUtheUnixconventionUUbuttheideasareinnowayUUUnix-spGeci c.GInMthisdoGcument,Ӌ\TU>'ExX"generallymeanstheTU>'EXsystem,ӋincludingMETAF9ONT8,D9VI3drivers,utilities,UUetc.,notjusttheTU>'ExXprogramitself.Theword\packqage"inthisdoGcumenthasitsusualmeaning:asetofrelated lesdistributed,installed,zandsBmaintainedasaunit.ˏThisisnotfaL5ffA͉TU>'ExX2 b> cmmi10",:.packqage,zwhichisastyle lesupple-mentingUUadoGcumentclass.W*eUUusethefollowingtypGographicconventions:literalHLiteralUUtextsuchasfilenameistypGesetintypGewritertypGe.सhr}'eplaceable[iZReplaceabletextsuchashp}'ackage[i,identifyingaclassofthings,istypGesetin1italicsUUinsideanglebrackets. 2.General)लThisUUsectiondescribGescommonpropertiesthroughouttheTDStree.ڍ2.13 SubSdirectorrysearchinghलOlderlTU>'ExXinstallationsstorelargenumbGerslofrelated lesinsingledirectories,rforexample,allTFMUU lesand/orallTU>'ExXinput les.ThismonolithicarrangementhindersmaintenanceofaTU>'ExXsystem:8itisdiculttodeterminewhat lesareusedbywhatpackqages, Cwhat lesneedtobGeupdatedwhenanewversionisinstalled,orwhat lesshouldbGedeletedifapackqageisremoved.+ItisalsoasourceoferroriftwoUUormorepackqageshappGentohaveinput leswiththesamename.Therefore,AMthe'ExX,METAF9ONT8,andtheircompanionutilitiessearchinbothaspeci eddirectory%andrecursivelythroughallsubGdirectoriesofthatdirectorywhenlookingforaninput le.bOther(7formsofsubGdirectorysearching,1=forexamplerecursive-to-one-levelsearches,1=mayalsobGeXprovided.{W*eencourageimplementorstoprovidesubGdirectorysearchingattheoptionoftheinstallerUUanduserforallpaths.TheɮTDSɐdoGesnotspecifyasyntaxforspecifyingrecursivesearching,butweencourageimple-mentorsUUtoprovideinteropGerability(seeSectionB.2).`3;fyfdǠTDSUUversion1.1टff?2.23 RoSotingthetreepलInthisdoGcument,weshalldesignatetherootTDSdirectoryby`texmf'(for\TU>'ExXandMETA- F9ONT8").O:W*erecommendusingthatnamewherepGossible,hbuttheactualnameofthedirectoryisupUtotheinstaller.rOnPCnetworks,UforUexample,thiscouldmaptoalogicaldrivespGeci cationsuchUUasT:.N8Similarly*,- the#loGcationofthisdirectoryonthesystemissite-dependent.aItmaybGeattherootofthe; lesystem;ѮonUnixsystems,/usr/local/share,/usr/local,/usr/local/lib,and;/optलareUUcommonchoices.Theunametexmfwaschosenforseveralreasons:itre ectsthefactthatthedirectorycontains lespGertainingcRtoanentireTU>'ExXsystem(includingMETAF9ONT8,fMETAPqOST,fBIB32TU>'ExX,etc.),notcRjustTU>'ExXitself;-anditisdescriptiveofagenericinstallationratherthanaparticularimplementation.AysiteymaychoGosetohavemorethanoneTDSyhierarchyinstalled(forexample,wheninstallinganUUupgrade).qThisispGerfectlylegitimate.č2.33 LoScaladditionspलThe@TDS@ cannotspGecifypreciselywhenapackqageisorisnota\localaddition".jEachsitemustdeterminegthisaccordingtoitsownconventions.rAtthetwoextremes,++onesitemightwishtoconsider\nonloGcal"all lesnotacquiredaspartoftheinstalledTU>'ExXdistribution;anothersitemighthHconsider\loGcal"onlythose lesthatwereactuallydevelopGedatthelocalsiteandnotdistributedUUelsewhere.W*e7recognizetwo7commonmethoGdsforlocaladditionstoadistributedtexmftree.lBothhavetheirUUplace;infact,somesitesemploybGothsimultaneously:1.1AYrcompletelyYseparatetreewhichisaTDSstructureitself;forexample,/usr/local/umbtex1লatktheUniversitykofMassachusettskatBoston.#Thisisanotherexampleofthemultipletexmf1লhierarchiesUUmentionedintheprevioussection.2.1Atdirectorytnamed`local'atanyappropriatelevel,forexample,inthehformatظi,hp}'ackage[i,1andNhsupplieridirectoriesdiscussedinthefollowingsections.2TheTDSNQreservesthedirectory1nameUUlocalforthispurpGose.1W*eW'ExXinput lesmustbGeuniquewithineach rst-levelsubGdirectoryoftexmf/tex1লandCtexmf/tex/generic,G6butnotwithinalloftexmf/tex;Ii.e.,di erentTU>'ExXformatsmay1have lesbythesamename.B(Section3.1discussesthisfurther.)Thus,nosingleformat-1indepGendent'ExXsystem(seeSec-tionUU4forasummary).qAsitemayomitanyunneededdirectories.AlthoughatheTDSabyitsnaturecanspGecifypreciselocationsonlyforimplementation-independent les,cwerecognizethatinstallersmaywellwishtoplaceother lesundertexmftosimplifyadministrationoftheTU>'ExXtree,espGeciallyifitismaintainedbysomeoneotherthanthesystemadministrator.qTherefore,UUadditionaltop-leveldirectoriesmaybGepresent.TheUUtop-leveldirectoriesspGeci edbytheTDSare:tex3forUUTU>'ExX les(Section3.1).fonts> forUUfont-related les(Section3.2).metafontMforUUMETAF9ONT8 leswhicharenotfonts(Section3.3).metapostMforUUMETAPqOST8 les(Section3.4).bibtexC`forUUBIB32TU>'ExX les(Section3.5).scriptsHforUUplatform-indepGendentexecutables(Section3.6).doc3forUUuserdoGcumentation(Section3.7).sourceC`for sources. FThisincludesbGothtraditionalprogramsources(forexample,IW*eb2C 1sourcesFgointexmf/source/web2c)and,4e.g.,L5ffA͉TU>'ExXFdtxsources(whichgointexmf/1source/latex).qTheUUTDSleavesUUunspGeci edanystructureundersource.`5[РyfdǠTDSUUversion1.1टff?1sourceisintendedfor leswhicharenotneededatruntimebyanyTU>'ExXprogram;7it 1shouldnotbGeincludedinanysearchpath.WF*orexample,plain.texdoGesnotbelongunder1texmf/source,eventhoughitisa\source le"inthesenseofnotbGeingderivedfrom1anotherUU le.q(ItgoGesintexmf/tex/plain/base,asexplainedinSection3.1).सhimplementationcioㆲforwimplementations(examples:emtex,vtex,web2c),towbGeusedforwhatever1purpGose5deemedsuitablebytheimplementororTU>'ExXadministrator.(gThatis,l lesthat1cannottbGesharedbetweentimplementations,suchaspGool les(tex.pool)andmemory1dump les(plain.fmt)gohere,inadditiontoimplementation-widecon guration les.1SeeUUSectionB.3forexamplesofrealhimplementationcitrees.1Such5implementation-spGeci ccon guration lesshouldnot(ebelocatedusingthemainTU>'ExX1inputsearchpath(e.g.,qTEXINPUTS).PThismustbGereservedfor lesactuallyreadbyaTU>'ExX1engine.qSeeUUSection3.1.1.सhpr}'ogramciOnfor$program-spGeci cinputandcon guration lesforanyTU>'ExX-relatedprograms(ex-1amples:zmft,_%dvips).SIn].fact,thetex,metafont,metapost,andbibtexitemsabGovemay1allUUbGeseenasinstancesofthiscase.č3.13 MacrospलTU>'ExXmacro lesshallbGestoredinseparatedirectories,segregatedbyTU>'EXformatandpackqagenameUU(weuse`format'initstraditionalTU>'ExXsensetomeanausefullyndump-ablepackqage):1texmf/tex/hformatظi/hp}'ackage[i/N8सhformatظiIisUUaformatname(examples:qamstex,latex,plain,texinfo).1TheTDSallowsdistributionsthatcanbGeusedaseitherformatsorpackqages(e.g.,$T*exinfo,1Eplain)tobGestoredateitherlevel,attheoptionoftheformatauthororTU>'ExXadministrator.1W*e'ExXinputssearchpath,4itwillbGestraightforwardtousethemas1macro>packqagesunderanotherformat,xwhereasplacingtheminanothertreecompletely1obscuresUUtheiruseasaformat.1TheUUTDSreservesthefollowinghformatظinames:7࠸Ggeneric,forxinput lesthatareusefulacrossawiderangeofformats(examples:Gnull.tex,=path.sty).gGenerally*,this7meansanyformatthatusesthecategorycoGdesGofX}PlainTU>'ExXanddoGesnotrelyonanyparticularformat.{>ThisisincontrasttothoseG leswhichareusefulonlywithPlainTU>'ExX(whichgoundertexmf/tex/plain),e.g.,Gtestfont.texUUandplain.texitself.7࠸Glocal,UUforloGcaladditions.qSeeSection2.3.1Thus,:Nfor3almosteveryformat,:Nitisnecessarytosearchatleastthehformatظidirectoryand1thenpthegenericdirectory(inthatorder).#OtherdirectoriesmayneedtobGesearchedas1well,depGendingOontheformat.0WhenusingAU>'M S-TU>'ExX,forexample,theamstex,plain,1andUUgenericdirectoriesshouldbGesearched,becauseAU>'M S-TU>'ExXiscompatiblewithPlain.सhp}'ackage[iMisUUaTU>'ExXpackqagename(examples:qbabel,texdraw).1In{thecasewhereaformatconsistsofonlyasingle leandhasnoauxiliarypackqages,1thatb lecansimplybGeplacedinthehformatظidirectory*,?insteadofhformati/base.F*or`6jyfdǠTDSUUversion1.1टff?1example,RT*exinfoR,maygointexmf/tex/texinfo/texinfo.tex,nottexmf/tex/texinfo/ 1base/texinfo.tex.1TheUUTDSreservesthefollowinghp}'ackage[inames:7࠸Gbase,6for zthebasedistributionofeachformat,including lesusedby-INITEXwhenGdumpingformat les.zF*orexample,ûinthestandardL5ffA͉TU>'ExXdistribution,theltx lesGcreatedduringthebuildproGcess.$Anotherexample::the.inidriver lesforformatsGusedUUbyTU>'ExXLiveandotherdistributions.7࠸Ghyphen,!Nforhyphenationpatterns,includingtheoriginalAmericanEnglishhyphen.Gtex.fThese4varetypicallyusedonlybyXINITEX.fInmostsituations,; thisdirectoryneedGexistUUonlyunderthegenericformat.7࠸Gimages,;for )imageinput les,suchasEncapsulatedPostScript gures.CAlthoughitGisjCsomewhatnon-intuitivejCforthesetobGeunderadirectorynamed\tex",o~TU>'ExXneedsGtoreadthese lestogleanbGoundingboxorotherinformation.AbmechanismforGsharingimageinputsbGetweenTU>'ExXandothertypesettingprograms(e.g.,ΎInterleaf,GF*rameMaker)MisbGeyondthescopGeoftheTDS.oCInmostsituations,OLthisdirectoryneedGexistUUonlyunderthegenericformat.7࠸Glocal,UUforloGcaladditionsandcon guration les.qSeeSection2.3.7࠸Gmisc,Bforpackqagesthatconsistofasingle le.6AnadministratororpackqagemaintainerGmaycreatedirectoriesforsingle- lepackqagesattheirdiscretion,insteadofusingmisc.č3.1.17nExtensionspलTU>'ExXHhasspawnedmanycompanionandsuccessorprograms(\engines"),}suchasPDFTU>'ExX,}Omega,andothers.ITheTDSܵspGeci esthattheinput lesforsuchprograms(usingaTU>'ExX-likesyntax)bGeplaced'2withinthetop-leveltexdirectory*,0leitheratthetoplevelorwithinaformatsubGdirectory*,evenUUthoughtheoriginalTU>'ExXprogrammaynotbGeabletoreadthem.qF*orexample:1texmf/tex/aleph1texmf/tex/enctexलThisGisachangefromTDS1.0,rwhichspGeci edtop-levelhextensioncidirectoriesforeachsuchprogram.qW*eUUfeltthenewapproachispreferable,bGecause:N8!࠸1লAuthorsuofrelevqantpackqagestypicallymaketheircoGdedetecttheenginebeingused,νand1issueerrormessagesoradapttocircumstancesappropriately*.Furthermore,\asapackqage1matures,\it(3maysuppGortmultipleengines.bThus,\apackqagecouldconceivablybGeplaced1inanyofseveraltop-leveldirectories,Qatdi erenttimes.Puttingallpackqagesunderthe1top-levelUUtexdirectoryprovidesastableloGcationovertime.!࠸1লUsers-needtobGeabletoswitchbetween-engines,5andcon guringdi erentsearchpathsfor1eachUUengineisdicultanderror-prone.N8Thus,in!practice,having!di erenttop-leveldirectoriescauseddicultiesforeveryoneinvolved|users,UUpackqageauthors,siteadministrators,andsystemdistributors.Pleaseacontrastthisapproachwiththehimplementationcitop-levelsubGdirectory(Section3),whichistobGeusedforcon guration lesthat(presumably)donotuseTU>'ExXsyntaxandinanycaseshouldUUnotbGefoundalongthemainTU>'ExXinputsearchpath.`7{ϠyfdǠTDSUUversion1.1टff?3.23 FrontspलF*ont lesarestoredinseparatedirectories,!segregatedby letypGe,!andthen(inmostcases)font supplier EandtypGeface.YPK 3andGF lesneedadditionalstructure,asdetailedinthenextsection.1texmf/fonts/htyp}'e[i/hsupplieri/htypefacei/1texmf/fonts/enc,lig,map/hsubp}'athci/N8सhtyp}'e[i=βisthetypGeoffont le.TheTDS͡reservesthefollowinghtyp}'e[inamesforcommonTU>'ExX1 leUUtypGes:7࠸Gafm,UUforAdobGefontmetrics,andinf les.7࠸Ggf,UUforgenericfontbitmap les.7࠸Gopentype,UUforOpGenTypeUUfonts.7࠸Gpk,UUforpackedUUbitmap les.7࠸Gsource,UUforfontsources(METAF9ONT8 les,propGertylists,etc.).7࠸Gtfm,UUforTU>'ExXfontmetric les.7࠸Gtruetype,UUforT*rueTypGefonts.7࠸Gtype1,UUforPostScriptTypGe1fonts(inpfa,pfb,oranyotherformat),andpfm les.7࠸Gtype3,UUforPostScriptTypGe3fonts.7࠸Gvf,UUforvirtualfonts.1TherTDSrXalsoreservesthenamesenc,lig,andrmapforfontencoGding,ligature,andrmapping1 les,`respGectively*. YAllofthesedirectoriesarestructuredthesameway*,`withhsyntax4Di1লsubGdirectories,andthenhp}'ackage[isubsubdirectories.6Eachofthese letypGesisintended1to;bGesearchedalongitsownrecursively-searchedpath.i>Thenamesoftheactual lesmust1bGeUUuniquewithintheirsubtree,asusual.qExamples:Gfonts/map/dvipdfm/updmap/dvipdfm.mapGfonts/map/dvips/lm/lm.mapGfonts/enc/dvips/base/8r.enc1লThe27F*ontnameandDvipspackqageshavemoreexamplesoftheencandmaptypGes.mThe1afm2plUUprogramuseslig les.1pfm lesareincludedinthetype1directory*,SinsteadofbGeinggiventheirowndirectory*,1fortworeasons:M1)a.pfm leisalwaysanadjuncttoagiven.pfb le;2)theymustbGe1installedUUfromthesamedirectoryforWindowsprogramsotherthanTU>'ExXtousethem.1infL lesareincludedintheafmdirectory*,sinceaninfandafm lecanbGeusedtogenerate1a5bpfm.g!(Unfortunately*,;AdobGeTypeManagerandperhapsothersoftware5brequiresthatthe1pfbUUbGeinthesamedirectoryasafmandinfforinstallation.)1Asqusual,kasitemayomitanyofthesedirectoriesthatareunnecessary*.W&gfisaparticularly1likelyUUcandidateforomission.सhsupplieriN$isanameidentifyingfontsource(examples::adobe,!ams,public).MTheTDSreserves1theUUfollowinghsupplierinames:7࠸Gams,UUfortheAmericanMathematicalSoGciety'sAU>'M S-fontscollection.7࠸Glocal,UUforloGcaladditions.qSeeSection2.3.7࠸Gpublic,\fory[freelyredistributablefontswherethesupplierneither(1)requestedtheirGowndirectory(e.g.,ams),nor(2)alsomadeproprietaryfonts(e.g.,adobe).ItdoGes`8 yfdǠTDSUUversion1.1टff?Gnot[containallextantfreelydistributablefonts,Lnorareall lesthereinnecessarily GstrictlyUUpublicdomain.7࠸Gtmp,efor/dynamically-generatedfonts,asistraditionalonsomesystems.ItmaybGeGomittedUUifunnecessary*,asusual.सhtyp}'eface[iNis[thenameofatypGefacefamily(examples:ycm,\euler,times).The[TDS9reserves1theUUfollowinghtyp}'eface[iUUnames:7࠸Gcm\(withinpublic),[forthe75fontsde nedinComputers.andT;yp}'esetting,BVolume.E.7࠸Glatex(withinpublic),forthosefontsdistributedwithL5ffA͉TU>'ExXinthebasedistribution.7࠸Glocal,UUforloGcaladditions.qSeeSection2.3.N8SomeUUconcreteexamples:1texmf/fonts/source/public/pandora/pnr10.mf1texmf/fonts/tfm/public/cm/cmr10.tfm1texmf/fonts/type1/adobe/utopia/putr.pfaलF*or`completesupplierandtypGefacenamelists,consultFilenamesforTKß'E-Xfonts2߲(see`AppendixD).č3.2.17nFontUUbitmapspलF*ont4Mbitmap lesrequiretwocharacteristicsinadditiontotheabGovetobGeuniquelyidenti able:(1)zthetypGeofdevice(i.e.,@mode)forwhichthefontwascreated;n(2)theresolutionofthebitmap.F*ollowingcommonpractice,!XtheTDSasegregatesfontswithdi erentdevicetypGesintoseparatedirectories.qSeeUUmodes.mfinAppGendixDforrecommendedmodenames.SomeprintersopGerateatmorethanoneresolution(e.g.,at300dpiand600dpi),buteachsuchresolution\Pwillnecessarilyhave\Padi erentmoGdename.Nothingfurtherisneeded,^sinceimplicitinUUtheTU>'ExXsystemistheassumptionofasingletargetresolution.Two6namingstrategiesarecommonlyusedtoidentifytheresolutionofbitmapfont les.Onsystemsthatallowlong lenames(andintheoriginalMETAF9ONT/IJprogramitself), theresolutionisincludedinthe lename(e.g.,.cmr10.300pk).>OnsystemswhichdonotsuppGortlong lenames,fontsUUaregenerallysegregatedintodirectoriesbyresolution(e.g.,dpi300/cmr10.pk).Because.{theTDS.qcannotrequirelong lenames,6@wemustusethelatterschemefornamingfonts.SoUUwehavetwomoresubGdirectorylevelsunderpkandgf:1texmf/fonts/pk/hmo}'de[i/hsupplieri/htypefacei/dpihnnnci/1texmf/fonts/gf/hmo}'de[i/hsupplieri/htypefacei/dpihnnnci/सhmo}'de[iB@isDanamewhichidenti esthedevicetypGe(examples:iacx,Gljfour,modeless).l.Usually*,1this;risthenameoftheMETAF9ONTtUmoGdeusedtobuildthePK;7 le.$F*orfontsrendered1asbitmapsbyaprogramthatdoGesnotdistinguishbetweendi erentoutputdevices, the1সhmo}'de[iݲnameshallbGesimplymodeless.EThehmode[ilevelshallnotbGeomitted,(evenifonly1aUUsinglemoGdehappenstobeinuse.dpihnnnciM spGeci estheresolutionofthefont(examples:@dpi300,dpi329).P`dpi'standsfordots1pGerinch,:i.e.,pixelspGerinch.MW*erecognizethatpixelspermillimeterisusedinmanyparts1ofUUtheworld,butdpiistoGotraditionalintheTU>'ExXworldtoconsiderchangingnow.`9 ՠyfdǠTDSUUversion1.1टff?1The/SintegerhnnnciistobGecalculatedasifusingRMETAF9ONTh6arithmeticandthenrounded; 1i.e.,pitk.istheintegerMETAF9ONTusesinitsoutputgf lename.QW*erecognizesmalldi er-1encesxintheresolutionareacommoncauseoffrustrationamongusers,however,andxrec-1ommend`Cimplementorsfollowthelevel0D9VI`@driverstandard(seeAppGendixD)inbitmap1fontUUsearchesbyallowingafuzzof0:2%(withaminimumof1)inthehdpiڸi.DYImplementations:mayprovideextensionstothebasicnamingscheme,?suchaslong lenames(asinbtheoriginalMETAF9ONT8)andfontlibrary les(asinemTU>'ExX's.fli les),providedthatthebasicUUschemeisalsosuppGorted.󍍑3.2.27nValidUUfontbitmapsलTheTW9GԲrecognizesthattheuseofshort lenameshasmanydisadvqantages.nThemostvexingismthatitresultsinthecreationofdozensofdi erent leswiththesamename.]zAtatypicalsite,cmr10.pkKwillbGethe lenameforComputerModernRoman10ptat5{10magni cationsfor2{3moGdes.q(SectionUU2.4discussesduplicate lenamesingeneral.)T*ominimizethisproblem,westronglyrecommendthatPK lescontainenoughinformationtoidentifypreciselyhowtheywerecreated:*&atleastthemoGde,ȑbaseresolution,andmagni cationusedUUtocreatethefont.Thisinformationiseasytosupply:asimpleadditiontotheloGcalmodesusedforbuildingthefontswithMETAF9ONTwillautomaticallyprovidetherequiredinformation.IfyouhavebGeenusingalocalmodes lederivedfrom(orthatissimply)modes.mf(seeAppendixD),ͫtherequiredinformationisalreadyinyourPK les.;Ifnot,`asimpleadditionbasedonthecoGdefoundinUUmodes.mfcanbGemadetoyourlocalmodes leandthePK lesrebuilt.󍍑3.33 Non-font!o> logo10METAFwwONT. lesलMostMETAF9ONT$input lesarefontprogramsorpartsoffontprogramsandarethuscoveredbytheUUprevioussection.qHowever,UUafewnon-fontinput lesdoexist.Such lesshallbGestoredin:1texmf/metafont/hp}'ackage[i/सhp}'ackage[iUUisthenameofaMETAF9ONT8packqage(forexample,mfpic).TheUUTDSreservesthefollowinghp}'ackage[inames:!࠸1base,forthestandardMETAF9ONTnmacro lesasdescribGedinThe"o> logosl10METAF9ONTb}'ook,such1asUUplain.mfandexpr.mf.!࠸1local,UUforloGcaladditions.qSeeSection2.3.!࠸1misc,(forRMETAF9ONTV5packqagesconsistingofonlyasingle le(forexample,modes.mf)._An 1administratorJSorpackqagemaintainermaycreatedirectoriesforsingle- lepackqagesattheir1discretion,UUinsteadofusingmisc.󍍑3.43 METAPOSTMETAPqOSTzϲisAapicture-drawinglanguagedevelopGedbyJohnHobby*,yderivedfromKnuth'sMETA-F9ONT8.qItsUUprimarypurpGoseistooutputEncapsulated#- cmcsc10PostScriptinsteadofbitmaps.METAPqOST8inputUU lesandthesuppGort lesforMETAPqOST8-relatedutilitiesshallbGestoredin:10 {yfdǠTDSUUversion1.1टff?1texmf/metapost/hp}'ackage[i/ सhp}'ackage[iisthenameofaMETAPqOST5packqage.T]Atthepresentwritingnoneexist,buttheTW9GलthoughtUUitprudenttoleaveroGomforcontributedpackqagesthatmightbGewritteninthefuture.N8TheUUTDSreservesthefollowinghp}'ackage[inames:!࠸1base,Bfor>\thestandardMETAPqOSTw?macro les,suchasplain.mp,mfplain.mp,boxes.mp, 1andYgraph.mp.Thisincludes lesusedbyINIMPwhendumpingmem lescontaining1preloadedUUmacrode nitions.!࠸1local,UUforloGcaladditions.qSeeSection2.3.!࠸1misc,forMETAPqOST#packqagesconsistingofonlyasingle le.N9Anadministratororpackqage 1maintainermaycreatedirectoriesforsingle- lepackqagesattheirdiscretion,Yinsteadofusing1misc.!࠸1support,U-for"additionalinput lesrequiredbyEMETAPqOSTZutility"programs,includinga1fontomap,acharacteradjustmenttable,andasubGdirectorycontaininglow-levelMETAPqOST1লprogramsUUforrenderingsomespGecialcharacters.č3.53 Bi$s6cmss8IB\T EXpलBIB32TU>'ExX-relatedUU lesshallbGestoredin:1texmf/bibtex/bib/hp}'ackage[i/1texmf/bibtex/bst/hp}'ackage[i/लTheUUbibdirectoryisforBIB32TU>'ExXdatabase(.bib) les,thebstdirectoryforstyle(.bst) les.N8सhp}'ackage[iisthenameofaBIB32TU>'ExXpackqage.TheTDSreservesthefollowinghp}'ackage[inames(theUUsamenamesarereservedunderbGothbibandbst):!࠸1base,UUforthestandardBIB32TU>'ExXdatabasesandstyles,suchasxampl.bib,plain.bst.!࠸1local,UUforloGcaladditions.qSeeSection2.3.!࠸1misc,|forABIB32TU>'ExXpackqagesconsistingofonlyasingle le.6cAnadministratororpackqage 1maintainerpmaycreatedirectoriesforsingle- lepackqagesattheirdiscretion,Ivinsteadof1usingUUmisc.č3.63 ScriptspलThe^top-levelscriptsdirectoryisforplatform-indepGendentexecutables,ĠsuchasPerl,ĠPython,and@shellscripts,xandJavqaclass les.SubGdirectoriesunderscriptsarepackqagenames.ThiseasescreatingUUdistributions,byprovidingacommonplaceforsuchplatform-indepGendentprograms.TheintentisnotforallsuchdirectoriestobGeaddedtoauser'scommandsearchpath,*#whichwouldԟbGequiteimpractical.Rather,qtheseexecutablesareprimarilyforthebene tofwrapperscriptsrinwhateverexecutabledirectoryadistributionmayprovide(whichisnotspGeci edbytheTDS).T*rulyauxiliaryscriptswhichareinvokeddirectlybyotherprograms,ratherthanwrappGerscripts,mayalsobGeplacedhere.wThatis,’scriptsalsoservesasaplatform-indepGendentanalogofthestandardUUUnixlibexecdirectory*.11 yfdǠTDSUUversion1.1टff?W*e}recommendusingextensionsspGecifyingthelanguage(suchas.pl,.py,.sh)}onthese les, tozhelpuniquelyidentifythename.:SincetheintentoftheTDSzDzisforprogramsinscriptsnottoUUbGeinvokedUUdirectlybyusers,thisposesnoinconvenience.F*orexample,+intheTU>'ExXLivedistribution,theConTU>'ExXtuser-levelprogramtexexeccanexistasasmallwrappGerscriptineachbin/hplatformci/texexec(whichisoutsidethetexmftree),#3whichmerelyUU ndsandcallstexmf/scripts/context/perl/texexec.pl.Examples:1scripts/context/perl/texexec.pl1scripts/context/ruby/examplex.rb1scripts/thumbpdf/thumbpdf.plलThecTDScdoGesnotspecifyalocationforplatform-dependentbinaryexecutables,whetherauxiliaryorUUuser-level.03.73 DoScumentationH.लMost^packqagescomewithsomeformofdoGcumentation: usermanuals,}example les,programmingguides,?etc.Inaddition,manyindepGendent lesnotpartofanymacroorotherpackqagehavebGeenUUcreatedtodescribevqariousaspectsoftheTU>'ExXsystem.TheTDSܲspGeci esthattheseadditionaldocumentation lesshallbestoredinastructurethatparallelsUUtosomeextentthefontsandtexdirectories,asfollows:1texmf/doc/hc}'ategory}i/...सhc}'ategory}iidenti esthegeneraltopicofdoGcumentationthatresidesbGelowit;0forexample,)aTU>'ExXformatlname(latex),programname(bibtex,tex),language(french,german),a leformat(info,UUman),orothersystemcompGonents(web,fonts).OnepGossiblearrangementistoorganizedocbylanguage,withalltheothercategorytypGesbelowthat.~Thishelpsusers nddoGcumentationinthelanguage(s)inwhichtheyare uent.~NeitherthisUUnoranyotherparticulararrangementisrequired,however.Withins(eachhc}'ategory}is(treeforaTU>'ExXformat,zthedirectorybaseisreservedforbasedoGcumen-tationUUdistributedbytheformat'smaintainers.TheUUTDSreservesthefollowingcategorynames:!࠸1general,Vfor"standalonedoGcumentsnotspeci ctoanyparticularprogram(forexample,1JoachimUUSchroGd'sComp}'onentsofTKß'E-X).!࠸1help,UUformeta-information,suchasFA9Q's,theTU>'ExXCatalogue,etc.!࠸1info,forproGcessedT*exinfodocuments.Q(Info les,likeanythingelse,mayalsobGestored 1outsideUUtheTDS,attheinstaller'soption.)!࠸1local,UUforloGcaladditions.qSeeSection2.3.The@docdirectoryisintendedforimplementation-indepGendentandopGeratingsystem-independent doGcumentation les.Implementation-dependent lesarebeststoredelsewhere,!asprovidedforby^theimplementationand/orTU>'ExXadministrator(forexample, VMS^ohelp lesundertexmf/vms/help).TheQdoGcumentationdirectoriesmaycontainTU>'ExXsources,RD9VIQ les,PostScriptQ les,text les,exampleUUinput les,oranyotherusefuldoGcumentationformat(s).SeeUUSection4.1forasummary*.12 !yfdǠTDSUUversion1.1टff?4.Summary:लAskeletonofaTDStexmfdirectorytree.PThisisnottoimplythesearetheonlyentriesallowed. F*orUUexample,localmayoGccuratanylevel.Vbibtex/ϲBIB32TU>'ExXUUinput les#`bib/ϲBIB32TU>'ExXUUdatabases-base/ϲbaseUUdistribution(e.g.,xampl.bib)-misc/ϲsingle- leUUdatabases#`hp}'ackage[i/ϲnameUUofapackqage#`bst/ϲBIB32TU>'ExXUUstyle les-base/ϲbaseUUdistribution(e.g.,plain.bst,acm.bst)-misc/ϲsingle- leUUstyles#`hp}'ackage[i/ϲnameUUofapackqagedoc/ϲseeUUSection3.7andthesummarybGelowfonts/ϲfont-relatedUU les#`htyp}'e[i/ϲ leUUtypGe(e.g.,pk)-hmo}'de[i/ϲtypGeUUofoutputdevice(forpkandgfonly)8`hsupplieri/ϲnameUUofafontsupplier(e.g.,public)Bhtyp}'eface[i/ϲnameUUofatypGeface(e.g.,cm)M`dpihnnnci/ϲfontUUresolution(forpkandgfonly)सhimplementationci/ϲTU>'ExXUUimplementations,byname(e.g.,emtex)local/ϲ lesUUcreatedormoGdi edatthelocalsitemetafont/METAF9ONT8(non-font)UUinput les#`base/ϲbaseUUdistribution(e.g.,plain.mf)#`misc/ϲsingle- leUUpackqages(e.g.,modes.mf)#`hp}'ackage[i/ϲnameUUofapackqage(e.g.,mfpic)metapost/METAPqOST8inputUUandsuppGort les#`base/ϲbaseUUdistribution(e.g.,plain.mp)#`misc/ϲsingle- leUUpackqages#`hp}'ackage[i/ϲnameUUofapackqage#`support/ϲsuppGortUU lesforMETAPqOST8-relatedutilitiesmft/MFTUUinputs(e.g.,plain.mft)सhpr}'ogramci/ϲTU>'ExX-relatedUUprograms,byname(e.g.,dvips)source/ϲprogramUUsourcecoGdebyname(e.g.,latex,web2c)tex/ϲTU>'ExXUUinput les#`hengine[i/ϲnameUUofanengine(e.g.,aleph);canalsobGelower#`hformatظi/ϲnameUUofaformat(e.g.,plain)-base/ϲbaseUUdistributionforformat(e.g.,plain.tex)-misc/ϲsingle- leUUpackqages(e.g.,webmac.tex)-local/ϲloGcalUUadditionstoorlocalcon guration lesforhformatظi-hp}'ackage[i/ϲnameUUofapackqage(e.g.,graphics,mfnfss)#`generic/ϲformat-indepGendentUUpackqages-hyphen/ϲhyphenationUUpatterns(e.g.,hyphen.tex)-images/ϲimageUUinput les(e.g.,EncapsulatedPostScript)-misc/ϲsingle- leUUformat-indepGendentpackqages(e.g.,null.tex).-hp}'ackage[i/ϲnameUUofapackqage(e.g.,babel)13oyfdǠTDSUUversion1.1टff?4.13 DoScumentationtreesummarrypलAn=exampleskeletonofaTDSdirectorytreeundertexmf/doc.Thisisnottoimplytheseare theUUonlyentriesallowed,orthatthisstructuremustbGefollowedpreciselyfortheentrieslisted.N8Asmentioned,xthetexmf/doctreemaybGeorganizedbylanguage,xsothatalldoGcumentationinF*rench,esay,eisainafrenchsubGdirectory.Inthatcase,etheexamplestructureherewouldbGeinagivenUUlanguagedirectory*.ams/#`amsfonts/\amsfonts.faq,UUamfndoc#`amslatex/\amslatex.faq,UUamsldoc#`amstex/\amsguide,UUjoyerrbibtex/\BIB32TU>'ExX#`base/\btxdoc.texfonts/#`fontname/\FilenamesforTKß'E-Xfonts#`oldgerm/\corkpaprसhformatظi/\nameUUofaTU>'ExXformat(e.g.,generic,latex)#`base/\forUUthebasedistribution#`misc/\forUUcontributedsingle- lepackqagedoGcumentation#`hp}'ackage[i/\forUUp}'ackagegeneral/\acrossUUprograms,generalities#`errata/\errata,UUerrata[1-8]#`texcomp/\Comp}'onentsofTKß'E-Xhelp/\meta-information#`ctan/\infoUUabGoutCT:ANmirrorsites#`faq/\FA9QsUUofcomp.text.tex,etc.info/\GNUUUInfo les,madefromT*exinfosourceslatex/\exampleUUofhformatظi#`base/\ltnews*,UU*guide,etc.#`graphics/\grfguidelocal/\site-spGeci cUUdocumentationman/\UnixUUmanpagesसhpr}'ogramci/\TU>'ExX-relatedUUprograms,byname(examplesfollow)metafont/\mfbook.tex,UUmetafont-for-beginners,etc.metapost/\mpman,UUmanfig,etc.tex/\texbook.tex,UUAGentleIntr}'oductiontoTKß'E-X,etc.web/\webman,UUcwebmanࣲ14yfdǠTDSUUversion1.1टff?A0K'ExXsystem:Hۍ1.1The{loGcationofexecutableprograms:OZthisistoosite-dependenteventorecommendaloGca- 1tion,]let[alonerequireone.tA[sitemayplaceexecutablesoutsidethetexmftreealtogether1(e.g.,UU/usr/local/bin),inaplatform-depGendentdirectorywithintexmf,orelsewhere.2.1UpgradingRpackqageswhennewreleasesaremade:wecould ndnowayofintroGducing1version~spGeci ersintotexmfthatwoulddomoregoGod~thanharm,orthatwouldbGepractical1forUUevenapluralityofinstallations.3.1The@loGcationofimplementation-speci c les(e.g.,{TU>'ExX.fmt les):3bytheirnature,these1mustUUbGelefttotheimplementororTU>'ExXmaintainer.qSeeSectionB.3.4.1Preciselylwhenapackqageor leshouldbGeconsidered\local",andwheresuchlocal lesare1installed.qSeeUUSection2.3formorediscussion.܍A.15Prortable lenamesलTheTDS|cannotrequireanyparticularrestrictionon lenamesinthetree,3sincethenamesofmany]existingTU>'ExX lesconformtonostandardscheme.F*orthebGene tofpeoplewhowishtoHmakeapGortableTU>'ExXdistributionorinstallation,@however,weHoutlineherethenecessaryrestrictions.qTheUUTDSspGeci cationsthemselvesarecompatiblewiththese.HۍISO-9660istheonlyuniversallyacceptable lesystemformatforCD-R9OMs.tAsubsetthereofmeetsUUthestringentlimitationsofallopGeratingsystemsinusetoday*.qItspeci esthefollowing:!࠸1লFileanddirectorynames,notincludinganydirectorypathorextensionpart,maynot1exceedUUeightcharacters.!࠸1লFilenamesmayhaveasingleextension.Extensionsmaynotexceedthreecharacters.Di-1rectoryUUnamesmaynothaveanextension.!࠸1লNamesandextensionsmayconsistofonlyrthecharactersA{Z,0{9,andunderscore.!Low-1ercaseUUlettersareexcluded.!࠸1লApGeriodseparatesthe lenamefromtheextensionandisalwayspresent,! evenifthename1orUUextensionismissing(e.g.,FILENAME.or.EXT).!࠸1লA3version3numbGer,:rangingfrom1{32767,isappGendedtothe leextension,separatedbya1semicolonUU(e.g.,FILENAME.EXT;1).!࠸1লOnly_neightdirectorylevelsareallowed,includingthetop-level(mounted)directory(see1SectionUU2.2).qThus,thedeepGestvqalidISO-9660pathis:Gtexmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1G1?2 3456781লTheUUdeepGestTDSpathneedsonlysevenlevels:Gtexmf/fonts/pk/cx/public/cm/dpi300/cmr10.pkG1?23 4567लSomesystemsdisplayamoGdi edformatofISO-9660names,mappingalphabeticcharacterstolowercase,UUremovingversionnumbGersandtrailingperiods,etc.BeforetheDecembGer1996release, >L5ffA͉TU>'ExXusedmixed-casenamesforfontdescriptor les.&\F*or-tunately*,EitRneverreliedoncasealonetodistinguishamongthe les.joNowadays,EitusesonlymonoGcaseUUnames.15UyfdǠTDSUUversion1.1टff?B0UImplementation/issuesÌलW*egbGelievethattheTDSKcanbringagreatdealofordertothecurrentanarchicstateofmany TU>'ExXinstallations.OInaddition,Bbyprovidingacommonframeofreference,BitwilleasetheburdenofedoGcumentingadministrativetasks.Finally*,itisanecessarypartofanyreasonablesystemoftrueUU\drop-in"distributionpackqagesforTU>'ExX.čB.15AdoptionoftheTDSpल[Thisb=sectionisretainedforhistoricalpurpGoses;htheTDSb:isnowquite rmlyentrenchedinmostTU>'ExXUUdistributions.]N8W*erecognizethatadoptionoftheTDSDzwillnotbGeimmediateoruniversal.BMostTU>'ExXadminis-tratorsUUwillnotbGeinclinedtomakethe nalswitchuntil:!࠸1লClearUUanddemonstrablebGene tscanbeshownfortheTDS.!࠸1TDS-compliantUUversionsofallkeyprogramsareavqailableinpGorted,well-testedforms.!࠸1লA\settling"pGeriodhastakenplace,to ushoutproblems.'ExX-relatedsoftware.\Thishasalreadytakenplaceduringthecourseofour delibGerations(seeAppendixDforasampletreeavqailableelectronically).Y]TheywillcertainlyresultbintheproGductionofasubstantialnumbGerofTDS-compliantpackqages.Indeed,fQtheteTU>'ExXandUUTU>'ExXLivedistributionsareTDS-compliantandinusenowatmanysites.OnceinstallableformsofkeyTDS-compliantpackqagesaremorewidespread,+someTU>'ExXadmin-istratorswillsetupTDS-complianttrees,pGossiblyinparalleltoexistingproductiondirectories.Thistestingwilllikely ushoutproblemsthatwerenotobviousinthecon nedsettingsofthedevelopGers'sites;,forexample,itshouldhelptoresolvesystemandpackqagedepGendencies,packqageinterdepGendencies,UUandotherdetailsnotaddressedbythisTDSversion.AfterFmostofthedusthassettled,IhopGefullyevenconservqativeTU>'ExXadministratorswillbGegintoadopt?theTDS.Eventually*,ymost?TU>'ExXsiteswillhave?adoptedthecommonstructure,andmostpackqagesUUwillbGereadilyavqailableinTDS-compliantform.W*eȂbGelievethatthisprocesswilloccurrelativelyquickly*.BTheTDS^committeespansawiderangeof6interestsintheTU>'ExXcommunity*.QConsequently,we6bGelievethatmostofthekeyissuesinvolvedinade ningaworkqableTDS:de nitionhavebGeencovered,$oftenindetail.6TU>'ExXdevelopGershavebGeen1oconsultedaboutimplementationissues,huandhavebGeentryingouttheTDS16arrangement.Thus,UUwehopGeforfewsurprisesasimplementationsmature.Finally*,)qtherexareseveral(currentorprospGective)publishersofTU>'ExXCD-R9OMs._}Thesepublishersare highlymotivqatedtoworkoutdetailsofTDS implementation,andtheirproGductswillprovideinexpGensiveandconvenientwaysforexpGerimentally-mindedTU>'ExXadministratorstoexpGerimentwithUUtheTDS.16yfdǠTDSUUversion1.1टff?B.25MorreonsubSdirectorysearchingpलRecursivesubGdirectorysearchingistheabilitytospGecifyasearchnotonlyofaspGeci eddirectory सhdi,UUbutrecursivelyofalldirectoriesbGelowhdi.N8SinceRtheTDSspGeci espreciselocationsformost les,Qwithnoextralevelsofsubdirectoriesallowed,truerecursivesearchingisnotactuallyrequiredforaTDS-compliantimplementation.W*edo,bhowever,stronglyrecommendrecursivesearchingasthemostuser-friendlyandnaturalapproachUUtotheproblem,ratherthanconvolutedmethoGdstospecifypathswithoutrecursion.This]featureisalreadysuppGortedbymanyimplementationsofTU>'ExXandcompanionutilities,`forexampleDECUSTU>'ExXforVMS,Dvips(k),җemTU>'EX(anditsdrivers),җPubliCTU>'EX,W*eb2C,Xdvi(k),andaY&YTU>'ExX.TheKpathsealibraryisareusableimplementationofsubGdirectorysearchingforTU>'ExX,UUusedinanumbGerUUoftheaboveUUprograms.Even6ifyourTU>'ExXimplementationdoGesnotdirectlysupportsubdirectorysearching,pyou6may nditusefultoadoptthestructureifyoudonotusemanyfontsorpackqages.}F*orinstance,Lifyouonly*useComputerMoGdernandAMS*fonts,37itwouldbGefeasibletostorethemintheTDS*layoutandUUlistthedirectoriesindividuallyincon guration lesorenvironmentUUvqariables.The!#TW9G!recognizesthatsubGdirectorysearchingplacesanextraburdenonthesystemandmaybGethesourceofperformancebottlenecks,particularlyonslowermachines.VNevertheless,wefeel%DthatsubGdirectorysearchingisimperativeforawell-organizedTDS,forthereasonsstatedingSection2.1.ImplementorsareencouragedtoprovideenhancementstothebasicprincipleofsubGdirectorysearchingtoavoidpGerformanceproblems,$e.g.,theuseofa lenamecache(thiscanbGeOassimpleasarecursivedirectorylisting)thatisconsultedbeforedisksearchingbegins.IfamatchmYisfoundinthedatabase,s[subGdirectorysearchingisnotrequired,s[andpGerformanceisthusindepGendentUUofthenumbGerofsubdirectoriespresentonthesystem.Di erentimplementationsspGecifysubdirectorysearchingdi erently*.IntheinterestoftypGo-graphicUUclarity*,theexamplesheredonotusethehr}'eplaceable[iUUfont.Dvips:?ّviaUUaseparateTEXFONTS_SUBDIRenvironmentUUvqariable.emTU>'ExX:F At:nsubdir!!;UUt:nsubdir!forasinglelevelofsearching.Kpathsea:Owtexmf/subdir//VMS:;5>texmf:[subdir...]लXdviUU(patchlevel20):}texmf/subdir/**;߆texmf/subdir/*uforasinglelevelofsearching.(V*er-1sionUU20.50andabGoveUUsupportthe//notation.Y&YUUTU>'ExX:S`t:/subdir//UUort:nsubdirnn.čB.35Exampleimplementation-spSeci ctreespलThe`TDSQcannotspGecifyapreciselocationforimplementation-speci c les,suchastexmf/ini,bGecauseUUasitemayhavemultipleTU>'ExXimplementations.Nevertheless,'forinformativepurpGoses,'weprovideherethedefaultloGcationsforsomeimplemen-tations.cPlease+contactuswithadditionsorcorrections.Thesepathsarenotde nitive,4may+notmatchUUanythingatyoursite,andmaychangewithoutwarning.W*eFrecommendallimplementationshavedefaultsearchpathsthatstartwiththecurrentdirectory(e.g.,UU`.').qAllowinguserstoincludetheparentdirectory(e.g.,`..')isalsohelpful.17 ֠yfdǠTDSUUversion1.1टff?B.3.19AmiWeb2cUU2.0pल(EmailUUscherer@physik.rwth-aachen.detocontactthemaintainerofthisimplementation.)N8AmiW*eb2c2iscompatiblewithWeb2c7tothegreatestpGossibleextent,&soonlytheveryfew di erencesaredescribGedinthissection.&]DetailedinformationaboutthebasicconceptsisgiveninUUthesectionforW*eb2c7bGelow.ThanksȠtotheSELFAUTOmechanismofKpathsea3.0nospGeci clocationfortheinstallationofAmiW*eb2cUUisrequiredaslongasthegeneralstructureofthedistributionispreserved.InadditiontoKpathsea's//notationrecursivepathsearchmayalsobGestartedbyhDEVICE3i:/,e.g.,UUTeXMF:/willscanthisspGeci cdevicecompletely*.BinariescomingwiththeAmiW*eb2cdistributionareinstalledinthedirectorybin/amiweb2c/लoutsidethecommonTDStreeshare/texmf/.$InadditiontothesetofAmiW*eb2cbinariesyouwillUU ndtwoUUsubGdirectorieslocal/andpastex/withauxiliaryprograms.AstrippGed versionofthePasTU>'ExXsystem(usedbykindpGermissionofGeorgHemann)iscomingwithAmiW*eb2c,pre-installedinitsownshare/texmf/amiweb2c/pastex/directory.8IfyouwanttoUUusePasTU>'ExXyouhavetoassignthenameTeX:tothisplace.DoGcumentationb lesinAmigaGuideformatshouldbestoredatdoc/guide/similartodoc/info/.čB.3.29PublicUU%ow cmss9DECUSTU>8E"XpलIfpanotherVMSpimplementationbGesidesPublicDECUSTU>'ExXappGears,thetoplevelimplementationdirectoryUUnamewillbGemodi edtosomethingmorespeci c(e.g.,vmsEff&fǫdecus).texmf/#`vms/g {VMSUUimplementationspGeci c les-exe/g {end-userUUcommands8`common/g {commandUUproGcedures,commandde nition les,etc.8`axp/g {binaryUUexecutablesforAlphaAXP8`vax/g {binaryUUexecutablesforVAX-formats/g {pGoolUU les,formats,bases-help/g {VMSUUhelplibrary*,andmiscellaneoushelpsources-mgr/g {commandUUproGcedures,programs,docs,etc.,forsystemmanagementčB.3.39Web2cUU7pलAllimplementation-depGendentTU>'ExXsystem les(.pool,.fmt,.base,.mem)arestoredbydefaultdirectlyintexmf/web2c.ÝThecon guration letexmf.cnfandvqarioussubsidiaryMakeTeX...लscriptsUUusedassubroutinesarealsostoredthere.Non-TU>'ExXspGeci c lesarestoredfollowingtheGNUcodingstandards.HGivenarootdirectoryसhpr}'e x4DiUU(/usr/localbydefault),wehavedefaultloGcationsasfollows:18&yfdǠTDSUUversion1.1टff?सhpr}'e x4Di/a~installationUUroGot(/usr/localbydefault) #`bin/a~executables#`man/a~manUUpages#`info/a~infoUU les#`lib/a~librariesUU(libkpathsea.*)#`share/a~architecture-indepGendentUU les-texmf/a~TDSUUroGot8`web2c/a~implementation-depGendentUU les(.pool,.fmt,texmf.cnf,etc.)N8Seehttp://www.gnu.org/prep/standardsEff&fǫtoc.htmlfortherationalebGehindanddescriptionsofωthisarrangement.bA'sitemayofcourseoverridethesedefaults;forexample,.itmayputeverythingUUunderasingledirectorysuchas/usr/local/texmf.#8C/NIs/thereabdCetterway?ÌलDe ningtheTDS\requiredmanycompromises.BoththeoverallstructureandthedetailsoftheZindividualdirectorieswerearrivedatby ndingcommongroundamongmanyopinions.Thedrivingforceswerefeasibility(intermsofwhatcouldtechnicallybGedoneandwhatcouldreasonablybGeexpectedfromdevelopers)andregularity( lesgroupedtogetherinanarrangementthatUU\madesense").SomeainterestingideascouldnotbGeappliedduetoimplementationslackingthenecessarysuppGort:!࠸1লPathsearchingcontrolattheTU>'ExXlevel.QIfdoGcumentscouldrestrictsubGdirectorysearching1toasubGdirectoryviasomeportablesyntaxin lenames,restrictionsonuniquenessof1 lenamesՌcouldbGerelaxedconsiderably(withthecooperationoftheformats),andtheTU>'ExX1searchUUpathwouldnotneedtodepGendontheformat.!࠸1লMultiple)logicaltexmftrees.BF*orexample,asitemighthaveone(read-only)loGcationfor1stable les,andadi erent(writable)loGcationfordynamically-createdfontsorother les..It1wouldcbGereasonablefortwosuchtreestobGelogicallymergedwhensearching._vSeeMichael1Downes'UUarticleinthereferencesforhowthiscanworkinpracticewithW*eb2C.čC.15EMacrostructurepलTheyTW9Gesettledonthehformatظi/hp}'ackage[iarrangementafterlongdiscussionabGouthowbGesttoUUarrangethe les.Thehprimaryalternativetothisarrangementwasaschemewhichreversedtheorderofthesedirectories:hp}'ackage[i/hformatظi.GThisreversedarrangementhasastrongappGeal:itkeepsalloftheB lesrelatedtoaparticularpackqageinasingleplace.4lThearrangementactuallyadoptedtendstospread lesoutintotwoorthreeplaces(macros,doGcumentation,andfonts,forexample,arespreadUUintodi erentsectionsofthetreerightatthetoplevel).Nevertheless,UUthehformatظi/hp}'ackage[istructurewonforacoupleofreasons:!࠸1লItjisclosertocurrentpractice;'tinfact,oseveralmembGersoftheTW9GEhavealreadyimple-1mentedvtheTDSvhierarchy*.Thealternativeisnotinuseatanyknownsite,iandtheTW9G1লfeltUUitwrongtomandatesomethingwithwhichthereisnopracticalexpGerience.19+ϠyfdǠTDSUUversion1.1टff?!࠸1লTheQalternativearrangementincreasesthenumbGeroftop-leveldirectories,Qsothe lesthat 1must|bGefoundusingsubdirectorysearchingarespreadoutinawide,shallowtree.='ExXiswhatmadethepreviousarrangementwithall lesinasingledirectoryuntenable,andthereforewhatinitiatedtheUUTDSe ort.čC.2.18pFontUU letypGelocationलW*eUUconsideredthesupplier- rstarrangementinuseatmanysites:1texmf/fonts/hsupplieri/htyp}'eface[i/htypei/लThisSfimprovesthemaintainabilityofthefonttree,Ssinceall lescomprisingagiventypGefaceareineoneplace,butunlessalltheprogramsthatsearchthistreeemploysomeformofcaching,there areseriouspGerformanceconcerns.F*orexample,Rinorderto ndaTFM le,thesimplestimplementationu wouldrequireTU>'ExXtosearchthroughallthedirectoriesthatcontainPKu lesinallUUmoGdesandatallresolutions.N8Intheend,apGollofdevelopersrevealedconsiderableresistancetoimplementingsucientcachingmechanisms,FsoIthisarrangementwasabandoned.%TheTDS:arrangementallowsthesearchtreetozbGerestrictedtothecorrecttypeof le,atleast.Concernsabouteciencyremain,butthereseemsUUtobGenomorewecandowithoutabandoningsubdirectorysearchingentirely*.W*e alsoconsideredsegregatingallfont-related lesstrictlyby letypGe,sothatMETAF9ONTलsourceswouldbGeinadirectorytexmf/fonts/mf,propertylist lesintexmf/fonts/pl,thevqarious[formsofTypGe1fontsseparated,andsoon.Althoughmoreblindlyconsistent,wefeltthat$thedrawback$ofmorecomplicatedpathconstructionsoutweighed$this.߼TheTDS$qmerges letypGes(mfandplundersource,pfaandpfbandgsfundertype1)wherewefeltthiswasbGene cial.čC.2.28pMoGdeUUandresolutionlocationpलW*eUUconsideredhavingthemodeatthebGottomofthefonttree:1texmf/fonts/pk/hsupplieri/htyp}'eface[i/hmodei/hdpiڸi/लInthiscase,I\however,itisdiculttolimitsubGdirectorysearchingtothemoderequiredforaparticularUUdevice.W*eUUthenconsideredmovingthedpihnnnciuptobGelowthemoGde:1texmf/fonts/pk/hmo}'de[i/hdpiڸi/hsupplieri/htypefacei/लButthenitisnotfeasibletoomitthedpihnnncilevelaltogetheronsystemswhichcananddochoGoseUUtouselong lenames.20:VyfdǠTDSUUversion1.1टff?C.2.38pMoGdelessUUbitmaps[]लThe"5TDS"(spGeci esusingasingledirectorymodeless/asthemodenameforthoseutilitieswhich generate.bitmaps,6e.g.,texmf/fonts/modeless/times/.dThishastheconsiderableadvqantageofnotUUrequiringeachsuchdirectorynametobGelistedinasearchpath.-AnalternativewastousetheutilitynamebGelowwhichallsuchdirectoriescouldbGegathered.Thatkhastheadvqantageofseparating,ksay*,gsftopk-generatedkbitmapsfromps2pk-generatedones. However,EweHdecidedthiswasnotnecessary;BmostsiteswilluseonlyoneprogramforthepurpGose.ڐAlso,PKyand͘GFfontsgenerallyidentifytheircreatorinthefontcommentfollowingtheUUPKEff&fǫIDbyte.W*e4aremakinganimplicitassumptionthatMETAF9ONT$istheonlyprogramproGducingmode-depGendentbitmaps.IfthisbecomesfalsewecouldaddanabbreviationfortheprogramtomoGde0Znames,gasinmfcxvs.xyzcxforahypotheticalprogramXyz,gorwecouldatthattimeaddRanadditionalprogramnameleveluniformlytothetree. ItseemedmoreimpGortanttoconcisely>representthecurrentsituationthantoworryabGouthypGotheticalpossibilitiesthatmayneverUUhappGen.7C.35EDoScumentationstructure[]लW*e!consideredplacingadditionaldoGcumentation lesinthesamedirectoryasthesource lesforthepackqages,AbutwefeltthatusersshouldbGeableto nddocumentationseparatelyfromsources,UUsincemostusershaveUUnointerestinsources.W*eFhopGethataseparate,Pbutparallel,structurefordoGcumentationwould(1)keepthedoGcu-mentationtogetherand(2)makeitasstraightforwardaspGossibleforusersto ndtheparticulardoGcumentationUUtheywereafter.# SD1oRelated/referencesलThis_appGendixgivespointerstorelated lesandotherdocuments.F*orCT:AN_references,aweusehttp://www.ctan.orgpBasthetop-leveldomainonlytomakethelinksbGeliveinthisdoGcument.See http://www.ctan.org/tex-archive/CTAN.sitesforacompletelistofCT:AN `sites;fthereareUUmirrorsworldwide.!࠸1লThisUUdoGcument,inmanyformats(tex,dvi,info,pGdf):?5http://tug.org/tds/!࠸1লTheUUTDSmailinglistarchives:?5http://tug.org/mail-archives/twg-tds/!࠸1লTheUUlevel0D9VIdriverstandard:?5http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/!࠸1FilenamesforTKß'E-Xfonts,UUwithlistsofrecommendedsupplierandtypGefacenames:?5http://tug.org/fontname/!࠸1ISO-9660UUCD-R9OM lesystemstandard:?5http://www.iso.ch/cate/cat.html!࠸1Comp}'onentsofTKß'E-X,UUapapGerbyJoachimSchroGd:?5http://www.ctan.org/tex-archive/documentation/components-of-TeX/ࣲ21GyfdǠTDSUUversion1.1टff?!࠸1ManagingMultipleTDStr}'ees,UUanarticlebyMichaelDownes: ?5http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf!࠸1লAUUcompletesetofrMETAF9ONT8moGdes:?5http://www.ctan.org/tex-archive/fonts/modes/modes.mf!࠸1লAUUlargecollectionofBIB32TU>'ExXdatabasesandstyles:?5ftp://ftp.math.utah.edu/pub/tex/bib/#8E/`ContributorsÌलTheUUTW9Ghashadnophysicalmeetings;electronicmailwasthecommunicationmedium.N8SebastianERahtzistheTU>'ExXUsersGroupT*echnicalCouncilliaison.yNormanW*alshwastheoriginalUUcommitteechair.qKarlBerryisthecurrenteditor.The::listofcontributorshasgrowntoGolargetofairlyinclude,rassomewouldsurelybGeinadvertentlyomitted.ZPleaseconsiderthearchivesofthetds@tug.organdtex-live@tug.orgmailinglistsasUUtherecordofcontributions.22U;| %ow cmss9$s6cmss8#- cmcsc10"o> logosl10!o> logo10 m#R 3 cmss10R6 cmss12o> logo10m#R cmss10R6ff cmss12 cmmi10K`y cmr10ٓRcmr7Ztex-common-4.04/doc/tds-1.1/packages.zip0000644000000000000000000003446612157017604014573 0ustar PK DУDUlogo.fdUT y1fo@UxTk0⾄#u~Ц@a[ K`LΉ,IN;qJBaXH޻w[-Z-.3!~Ϥ8'mBrX @:Έ%NH6us biaXNCUtB+{%?9kz gf҈'.R=FJ( -^E5ѺdƁB :J#td1<Ʌԗ S>4u:0E8QF2C?7d-cRZ'6(-v.!i5/i#q/U,ߺ=>터eTOհwXa @~3Dn |LN! Ccp'\M9Jj'm̫RU%ih'Bm# AUϟPu ZY*]5 |ҹ.צNg??ADY~Jйj۠ȱ@\V/VIۨҁiTV'154l >NC2UVm ϮGj3ژ$K3MgO&Fg`00Lqȯo|fN먢"+u"bEx7ITݮ YX. @ZTM'j)[Vee6YFyDbU@dJaI,yui?)(nT$)TWXn&iLt,Xv XvՑ !r\J,8̶5JtO{o>^}uf_Nh41i$YVaixS $ra4D0,M/,x2Z6p8g@y~Ug (Z/QOَSbZz W*^G ; s݄5v ~a~}Bh69;ЋvVfdپӱz~ !6Ҙ/oT5 8*\2*K lS&>eVyL0Z&hZOZP;Xur@aҵP$Xud'اxl.'1҅ЅDD6Kn(/A@RD`B%&JTauk=B$U Ӂ8|C Vr&d|"N.4 E]De<#=q؇2rx@ ϴ5PB 3,PuzBAP8%SJrX]Jv)(Q߷+T2^b5:h$+@xc@I<$cg22ٝc !% `hpD2X L{oZg+%k8ĕ h IS4"?ZrFLk… ?ኍGny\6RܨM~YmX AE,H&ޢU@Aӂ쐢x?; 1P?S6S8I0.Ϛ&GB{c~,B!SC6- Djo G0j5pH),G xmXݣHacĆE pVYN O{戦nXC.Hr6%KG`:,I#q,`f֥#*Y#t;[DI6k2/lƔ5$)f.?ZºT. ~ DF:eR!c<ޑ<+8On3܄WuR!fгB $6Sy2Yց*6|PPylZ8ⷝoa fZb f3Ɓu X$d6naȂԂl> Ńh*⛴@밾+y9œB8oIH3MP@ÂeB1w&h**Ñ*('BKS6P#=IlJs-Ɣ>؝}uP^лǢ4L? %@tǵ\GCqy7 +91O&g9g-mvA(ntݺUqe~XAʨ6s "rHR%{9֊.EqF;^!d.0 NoՔ" Tѯu6Ӹ%!sIZx!֖%7Xk*[9I/Eq%SwP[Ï ! O̞;s &[qzَlq. 6mAEqAcȱ:m )$t9tؘg9M8c-ov9dqy\Rw_00NH#B+g4o#d YieWHȣ S ?(Z[Ҵ 6V4uU~Ӯܞ_m9;Oؚ*ѕqDOq#Nwyl atA+&|rPfMf;| VyZON4_k`}*VMTuNj9Vl;Ԕ4gEk9=-LK-niplݡ U<̆od&@92?fǑB'B\X=Z|'3B<9dѢnr^?,_01$[0^牓"W4(MD>L$`0+ܝB)cf(knL9O"d.Ѿm*ם v]TZcgADKL["X@XɨjlV9!X Mf& Fp/ֽE]YNF8&wE8>|-d!K 7ѣVfn^GիT1ݼz@X:x C]N C^ʷmwH9yގ(r6k,zp+%5\ V=dX. _LmAv Eb̜ vu(8}TlI}y?^ +[Km _^quE`\ָuz챥z2̯`NPdwڀu:}׿|vWŝ歷:9aT,m["N?GWI{z%)N~ ItYĤ!]0tԲo˦=[FNi Xn-Tt3iG26Yc3a֩E{U >Vkґ;wO%t

(-NB JHm<<~0xLy,? -PǷ՘1ʫè1C?Sd4}:=߳lCa cA5&%OoOݥ`fՉT$fuO%߶fh%)!_H)˩7.C޿=ak2NCrA/"J)؟OϞՋTrOR{"L[ K*D I]SW6Ζ_?e:6w#ılUt=Z ]#5& h Fd5]{w#$ETA)8se|3ҟւ9 S G/aMk$K]E?@ytc:K2 h0j|97ef$Iuo?~|0Ksd#I_Fwr3Ŝݍ9q=u(x\9띻eBwZ.se;6ar2Pk)@9yܯ)E=i#5T.р~c(OTUZ%>]L>Dz\ Zp#=>iTW`ty\`~55.-jĚ[%663EfPZrt|LUӗF>)| lp`<̣)%f8t?jd^.+H$p3V|aI 5c ]Q(ݳ٤E 7||pccoIENGDlQ5Ij% š̸' LBO٧~4et.8 FwaFxC~ԃ{p#x&KT) ֙UG'X,9mzQJDRT܇B(nom-pz?(W k$'r}ɦǧ}-)'gnd67#DqHTryUZYڷkRֈA'v[ ar<ߍv-kd?On0w8vG|epִ% o(^dq\'WЉfQ_][- =U0=B:uB\GQSo𷔄9"t'X#[v)bQnQa<%l֯ mCG- 3{(;BPR}bQ(lnԟFzab ,P{ho rApr_Ұxxmio{ݺS>5 tB_Q;0$aIg|VxrqOKb `awu1jnRy#[jodJ)U;rj,ix{\_@ y袖]p̭rC)RehlW +w 5aD*bҨPKs hZPG[M/>׳`>$֥=&u!Ӹ![4R̎48JlM%ׅi߇y+1MDmۿYԴ&3]Gr! aI9wr-Y+7qzʹ_:)ݩAS7V)wSJ4-Cl+g~aa2qFG>\z|r7 b@vLFahGvdh"#߇q! Ql(Rj-xb4^AK5W\.-6ya1YOVԡh܈fO7ШOع"Uzx"H!@,[/[R9A陲5N勜߽1]ΥU@wP,xnZ$#?PK ^G) mflogo.styUT y1fo@UxSao0ί/$hFIˤXuv,$iTd {ݻd8p\X RRg: ^\ub%TNHZ&mD&`ue hu..KɒWU^& &l ҈W.=^J( -NdƁN 4ۆNE"X)4g)_s:]\xdS辷L0O*Dn%uL՚Cs :~{!y.4 *ő(ٷ*Vti Goi?5_Oh<5FGnn&7-&4Rm`_>=n)+tl`S-EASVY7CRvsϙ,sEw JvTSF*HT<%-JL> otI7oD1WSs9#2?T{Y?}zPr@FyPKh0Q#Z;Purl.styUT Tfo@fo@Ux[vFϧѱS)9XkN39A2&pР$f`a_c[ 4H)Ndm -UUjU'^+u+uvr_훲T}Y]x')q]e${,WUV28Fe@y|BڹV^:UqeYr||WP#.*k5zebR\:.4>̨eUΪxPVFCfNV5Ef LZպZP)iZzQI^&yY ~eL0+UQyVI 0UC&< UVIVuVt2I6WRlde[[&NjZVu%U\i'J=UF;OqN6Fcz u͝\JeisosJ+B7$-n6* ^ĚiMpZv?P{EN7|oW1^Cx6w,q}_?ZU$+*j''躆Q9h^Sb)ҰU%ͺZyAMJ?drU1㱟xʚ{lL6+(*Ӌ(M ?qoxǏO9?~:){ď!?~c~ J,Xczm`г2sȏ!_?A]r˸Z<[7dW%?Kn_LZ$s;Cmh,v. G?}8 QJ%z:m^^SrI5SEx$ˎkq#6$Hgn2\6LqNYϾUѿF_g>{#EBRO+>Ǥvg b\y6@n oDo cx:_-%^"5!ՓQT-KďI;Ńlհ֒ƨhf 0gQ g!rI\' b0f1(9xHL}}<~dU6j?WPߺ?ppV hI&\-7Q9kCOr#y֍kv#f@g8Ub;@wC cQkim=z0ڴF7"ǵ^,`D Bu/E0a쭶UE a b _+ D˒^Ydu-y 3ހHpD^͵}m{}9V`0AlBj?Ip! ڱZ MkM+D`KFW4~DOHt0]Rdйbes Y ;/$}D>6k`[ $b' 2ZL(JhкM7|z*Ɂwr`-2ڬQ]JÇG r[ d,$6(wGhz Y }7 Z.u\B"Nvf2rLCdTŲ (*ʯ"FV#lljI,Lrqi`1`R M!"9HWBSP΋ Cc~}~aߕ>d'bV4혌KݠK@،-g荻B5E*=JOuYh}Fɿ̺HgʈYݫ5a Fe>;J{xkȪEv": |/fof)[״_\ :A-  0be.%ٿ{SBm Ѓa:X @-uv$eւ.`dt>)[+%@&N/YOiWPZ#PuM`_ V v5OXnɘHzɈGqBXL* rU7QNaҪ+HFj1(Ǫ/-.:@&O?VbēX@ !WYwofp*`"^-µ>.ޅ t MtouŖ8JCln ^m|~aS]ʜL9qe:u^]0^{vfcR,u؜ɟv˥=so΁~^ mL&ZەUY# iaȶEٖMշUUVɝ=eȱ0|;)j4nrp9 {R^36r6JP H@M'd}-¼ ZדТjH!4 ˍn f]7]:uu_39%u_tlcu%Dm+Ո6r,w_l`TjGXzʍ;]vˎ- sUFgG"ff.׭.`{c% U]RN7J\Y^¯z8-] Qatpf*^K}I̪2и% ˕+̀z2oUcɰAi/rypσ3 z+6Գߎn`z%G2CD&ꜵd kN_0u1b'Mxf:9 VmSrNqY.Rکa3zbB!&g`γXhswoH7ep?,mk#;UTyd.d_̋'i^=rqEjĨmHr:>>u1n˅`Kv+DnR^1RjiĖ7b/8~ Q /;39lxR, <ߓbuS r3զfx?snf¦a!岰?dv]w})odru5MvIlNFR4Jv^c{ΒbnU1l2輻ѮFgnh77#L{MR{'P~+g ϋ;.o{2 S[ȿTPC[[{nocR*evG6>2#Z.1IEx^ ip-@@vA( a-6w+鬐T#óayƶy.²GU4w{WW rf}eHVdd[+UhȮ_ϩUΠ {$`;5»K˽xSoqˣuN-_W9>E.3Ѷewd5IL>h Cb(z~8ײ8QO,ZLw'\7bGvwZ ?:v{wYHDay+qynι#x[ynv_U%XRm ?yٽ[4lLlo @ߨׅ̒k'`8aP.i}Kf߹!Wu%D@XՂfڸ>9!_h!NfÍ45IGUie$fźNu~I{8Cz_$]f`G^j.+U^~gLvxWJ[>) 9cƛOlg߈k6(n>6祿̙yMCxx& B }̾CJqX%Sz@2W{ C_UM gSMlָZ:ۼ\mBMa.j??:_16Ǒ}HbOc:E N$r7 :Z0!XSf ~+DV¤eNLhQ.hvfa z 8(_*yǷoS>IaTY2z$ֿ%EL=eShI=B|zxK,>Vn<_ٞP&|7W Ŭͼ֔㗙ղ J :xh\h y QJ Lb]c+p@r5;HKم* ggqu[*㥃XqlK#oZlҭAh#?rrak Fh:~yZi-)WpDÇfe@7"¿\jZڒneHkΠLVx%jPݝ}0vo/u"" q_LVu"?O-n쳾[uu*G!,vt޳C7(^"V_{༩A 4r'7CGYdJYR[hۧĤꃜY^f,gRp|ɿ{?~:Rui6rC#r9}[s1 "1]T>6{{+DT`f!J]JwtɱM-c>ƾQXɯ O'!|AGy$B9Vr'$ 9l:i 7g"kj" + D&&A&kU\_bI2Y'I, }VU?pbU]uv0 EsaƝi`\䋝WnE`5y=B,7:NMK"v`2{} Kx %SfAv9g3VTB^0,k0Nk|M< D'? o>I<(l ©6q ''Bܺ'ycQ\M` F>?'aE4)یD?B~(kϣh\txG2rȿ>?]pnI N#߻tx2[m,ZɧLk,#Nf5ÅG!'4 i/!Spo-4aJN{Sq Eh4k_6YU%Z#:Cц6I` 798 AK>O44|*NLI o`IQٞ &6@ 21I[^bWEfǔiSgWf.ZxFX¾,9D1cۃxET@.-J'?A`z +;vI&G&wpC8 ,fXd, 6/vLH,\CDp4Fs3Miރ<0-IɄ+ʅ y˃דl4n~ac0 bF{HEwm9`=b lMBތ>[m),R՘ijE`lt^.z);PY0 !&&4}w+e1RS )cgrJC倾`} =|ȓܻ!,Sf*\0.F^hqf16-f3ڴq{)_-'n8BlOWW޻*ğRIdM9!J{Io؊K#C8ݕb7 "I9xɟ^OX0HyYVNYLi(dkQS좰.IKuQޡZ}=l1?DŽ\ ̣}`|8%i肕`I]ھj\4PG:Q,c/.0LLH,ey K#'08SψT̚pqĨY-"F 'zlQ/a|aosU˜[6, 2̷2|4GM.Edoō|uj/ )`w|Twl$~ C1iWacp~L5yA~aZۅ_ ܀ek'f]soVV>FOW ӟҗkV(9 q  }yAW~)TTcNJ1-OxUh*x\ZETkN5D{_O>:fq=2o*RatSPyP6M}A);cU\<0Xž2oFxP*gl1$E7n׬54[{+ڃl?~\jwvv~x_t_Go~yק0pr5KPK DУD Ulogo.fdUTy1UxPK^&k9 Sfancyhdr.styUT7UxPK ^G) )mflogo.styUTy1UxPKh0Q#Z;P {url.styUTTfo@UxPK8tex-common-4.04/debian/0000755000000000000000000000000012157017624011644 5ustar tex-common-4.04/debian/tex-common.doc-base.tex-on-debian0000644000000000000000000000112212157017604017754 0ustar Document: tex-on-debian Title: TeX on Debian Author: debian-tex-maint@lists.debian.org Abstract: Debian-specific information about TeX packages. This document is intended for TeX users who want to know how to change settings in the TeX system, install additional components, or deal with problems. Section: Typesetting Format: text Files: /usr/share/doc/tex-common/TeX-on-Debian.txt.gz Format: HTML Index: /usr/share/doc/tex-common/TeX-on-Debian.html/index.html Files: /usr/share/doc/tex-common/TeX-on-Debian.html/*.html Format: PDF Files: /usr/share/doc/tex-common/TeX-on-Debian.pdf.gz tex-common-4.04/debian/copyright0000644000000000000000000000661212157017604013602 0ustar This package is a collection of files needed to use and/or build TeX packages in Debian. Its contents are either written by the Debian maintainers, or taken and adapted from the upstream sources. It was first created Mon, 13 Jun 2005 17:55:58 +0200. License: Unless otherwise indicated (see individual file listing below), it is covered by the following license, the GPL: This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License, version 2, with the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL-2; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Copyright Holders of individual files, sorted by directory: - toplevel: split-texmf: Frank Küster (2005) TODO is probably not copyrightable and contains contributions by all coworkers. - debian: Currently, all files are Copyright 2004,2005 Frank Küster , except common.variables: Frank Küster (2004,2005) (based on a framework by Davide Salvetti (1999-2002) ) rules: Frank Küster (2004,2005) with eperl code based on work by Davide, as above - doc: Makefile version.ent tex-sed: Frank Küster (2004,2005) Hilmar Preusse (2005) Debian-TeX-Policy.sgml: Frank Küster (2004) Richard Lewis (2005) Norbert Preining (2005) - dsfp: dsf-patchfunc dsf-patch.mk: Frank Küster (2004,2005) - scripts: update-fmtutil: Atsuhito Kohda (2002,2003) Julian Gilbey (2002) update-fmtutil.8: Atsuhito Kohda (2002) update-texmf: Atsuhito Kohda (2002,2003) Frank Küster (2004) update-texmf.8: Atsuhito Kohda (2002,2003) Hilmar Preusse (2004) update-updmap: Atsuhito Kohda (2002,2003) Frank Küster (2004) Florent Rougon (2005) update-updmap.1: Atsuhito Kohda (2002,2003) Florent Rougon (2004,2005) update-fontlang: Norbert Preinig (2005) based on update-updmap update-language.8: Frank Küster (2005) update-fontlang.8: Frank Küster (2005) Atsuhito Kohda (2002,2003) Florent Rougon (2004,2005) tex.pm: Jan Hauke Rahm (2009) - conf/texmf.d/ all files are split from texmf.in-teTeX, Copyright Thomas Esser (1995-2005) , in the Public Domain, except 90TeXDoc.cnf: Atsuhito Kohda (2003) - conf/fmt.d/ 00tex.cnf: Thomas Esser (1998,1999) , in the Public Domain tex-common-4.04/debian/preinst0000644000000000000000000000263612157017604013260 0ustar #!/bin/sh -e # # preinst maintainer script for the Debian tex-common package. # # Copyright (C) 2012 by Norbert Preining # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". umask 022 # prepare for change of symlink to real dir slink=/usr/share/texmf/doc slinktarget=../doc/texmf case "$1" in upgrade|install) ov=$2 if [ -n "$ov" ] && dpkg --compare-versions "$ov" lt 4 ; then if [ -L $slink ] && [ "$(readlink $slink)" = $slinktarget ] ; then mv $slink $slink.dpkg-remove fi fi ;; esac #DEBHELPER# ### Local Variables: ### tab-width: 4 ### indent-tabs-mode: nil ### End: # vim:set tabstop=4 expandtab: # tex-common-4.04/debian/ChangeLog0000644000000000000000000000304512157017604013416 0ustar 2006-05-02 * Found files of unknown origin in avantgar.tfm * Work on pnsfss finished, started working on required font files 2006-04-27 * Wrote e-mail to amslatex upstream to clarify their license. 2006-04-25 * texinfo's README allows distribution "without royalty" - is this "no-sell"? It's probably just ambiguous wording, "in any medium" should be moved away from "without royalty". * Added tpm files for latex-beamer, pgf and xcolor, marked xcolor as verified in the Catalogue. To beamer.tpm, I added beamerexample-seminar.tex - whether this is free depends on the outcome of investigating seminar. * Filed bug against pgf (wrong copyright file), but it's still free, except maybe for some images. * File #364127 against latex-beamer, because I found out that beamer has files with unclear copyright. Let others care for other's business. 2006-04-11 * ltxmisc.tpm is added, but the individual files have not been checked * Wrote an e-mail to Axel Kielhorn (the address he uses in usenet, Axel.NoSpam@gmx.de, since the one in adrconv's files bounces * Fixed the tetex-src part of the script * Wrote an other mail to Lars Engebretsen, regarding ae fonts 2006-04-10 * tpm2licenses can now be installed and called with perl /usr/share/tex-common/tpm2licenses (or simply use dpkg-statoverride to make it executable...) * This file is actually a Change Log only for my copyright/license verification work tex-common-4.04/debian/postrm0000644000000000000000000000467312157017604013123 0ustar #!/bin/sh -e # # postrm maintainer script for the Debian tex-common package. # # Copyright (C) 2004 by Frank Küster . # Copyright (C) 2012 by Norbert Preining . # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". # give commandline args a name action=$1 # remove, purge, upgrade, failed-upgrade, abort-install, abort-upgrade, disappear ## do the things we have to do always case $action in abort-install|abort-upgrade) syml=/usr/share/texmf/doc if [ -n "$2" ] && dpkg --compare-versions "$2" lt "4" ; then if [ -L $syml.dpkg-remove ] && [ ! -e $syml ] ; then echo "Reinstatiating $syml" mv $syml.dpkg-remove $syml fi fi ;; remove) # remove TEXMFSYSVARDIR: All files and dirs are created either by # us, or by packages depending on us. rm -rf /var/lib/texmf # same with obsolete /var/cache/fonts rm -rf /var/cache/fonts ;; purge) if [ -L /usr/share/texmf/doc.dpkg-remove ] ; then rm -f /usr/share/texmf/doc.dpkg-remove fi # TODO purge ucf files # remove texmf.cnf if [ -d /etc/texmf/web2c ] ; then rm -rf /etc/texmf/web2c/texmf.cnf rmdir --ignore-fail-on-non-empty /etc/texmf/web2c fi # try to remove /usr/local/share/texmf if it is empty # people should normally not have TEXMFLOCAL ls-R files # unless they called mktexlsr manually, in which case this is fine # maintainer scripts should call mktexlsr with a list of trees so # no /u/l/s/texmf/ls-R is created #rm -f /usr/local/share/texmf/ls-R 2>/dev/null || true rmdir --ignore-fail-on-non-empty /usr/local/share/texmf/ 2>/dev/null || true ;; *) ;; esac #DEBHELPER# tex-common-4.04/debian/maintscript0000644000000000000000000000006112157017604014117 0ustar rm_conffile /etc/texmf/language.d/00tex.cnf 2.11 tex-common-4.04/debian/config0000644000000000000000000000454212157017604013037 0ustar #!/bin/sh -e # # config maintainer script for the Debian tex-common package. # # Copyright (C) 2004 by Frank Küster . # Copyright (C) 2012 by Norbert Preining . # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". # Give names to the commandline arguments action=$1 installed_version=$2 . /usr/share/debconf/confmodule db_version 2.0 ## do the things we have to do for upgraders from old versions # it does not harm to do the checks also when $action is reconfigure. # we also unregister the tetex-bin/lsr-perms db_unregister tetex-bin/lsr-perms || true # and unregister old tex-common questions, they are not needed anymore db_unregister tex-common/groupperm || true db_unregister tex-common/userperm || true db_unregister tex-common/managedlsr || true db_unregister tex-common/cnf_name || true # now we can also unregister the managecache questions db_unregister tex-common/groupname || true db_unregister tex-common/groupname_single || true db_unregister tex-common/groupname_multi || true db_unregister tex-common/managecache || true db_unregister tex-common/invalid_groupname || true db_unregister tex-common/warn_mktexcnf || true # test whether mktex.cnf exists in TEXMFSYSCONFIG and warn the user # mktex.cnf in TEXMFCONFIG will have the same effect, but all we can provide # in this case is the message in NEWS.Debian # # disabled, we ship mktex.cnf again in /etc/texmf/web2c/, see bug 379089 # if [ -f /etc/texmf/web2c/mktex.cnf ]; then # db_input medium tex-common/warn_mktexcnf || true # db_go # fi # Local Variables: # mode: shell-script # skeleton-pair: t # End: tex-common-4.04/debian/templates0000644000000000000000000000220012157017604013555 0ustar # These templates have been reviewed by the debian-l10n-english # team # # If modifications/additions/rewording are needed, please ask # debian-l10n-english@lists.debian.org for advice. # # Even minor modifications require translation updates and such # changes should be coordinated with translators and reviewers. Template: tex-common/check_texmf_missing Type: error _Description: Essential entry missing in ${filename} An essential entry is missing in ${filename}: . No setting of ${variable}. . TeX will not work until the configuration files are fixed. The version of ${filename} that is provided by the package should be available as ${filename}.ucf-dist. . The configuration process has been aborted. Template: tex-common/check_texmf_wrong Type: error #flag:translate!:3 _Description: Invalid essential entry in ${filename} An essential entry is invalid in ${filename}: ${variable} does not contain: . ${pattern} . TeX will not work until the configuration files are fixed. The version of ${filename} that is provided by the package should be available as ${filename}.ucf-dist. . The configuration process has been aborted. tex-common-4.04/debian/changelog0000644000000000000000000017306112157017604013524 0ustar tex-common (4.04) unstable; urgency=low * remove thailatex's patched version of babel.sty (Closes: #712297) * break against thailatex versions older than 2013 to make sure that no patching of babel.sty occurs. * bump standards version to 3.9.4, no changes necessary -- Norbert Preining Sat, 15 Jun 2013 17:00:51 +0900 tex-common (4.03) unstable; urgency=low * update-fmtlang: make sure we find the head files in both the old (<= TL2012, ie texlive/texmf/) and new (>= TL2013, ie texlive/texmf-dist) -- Norbert Preining Sun, 12 May 2013 19:09:17 +0900 tex-common (4.02) unstable; urgency=low * dh_installtex: properly deal with already existing format links (error out if present and not agreeing) -- Norbert Preining Tue, 07 May 2013 11:21:54 +0900 tex-common (4.01) experimental; urgency=low * dh_installtex: if the dir /usr/share/texmf/doc is found in the a package, then the generated tex-common dependency is >= 4 -- Norbert Preining Wed, 19 Dec 2012 13:10:52 +0900 tex-common (4.00) experimental; urgency=low * drop the link from /u/s/texmf/doc -> /u/s/doc/texmf here was never a need for having /usr/share/doc/texmf at all * break with all packages having installed files into /usr/share/texmf/doc * remove stale code that deals with upgrades from versions < 3 * adapt documentation a bit to reality -- Norbert Preining Mon, 17 Dec 2012 22:42:13 +0900 tex-common (3.15) unstable; urgency=high * break against old latex-cjk-chinese shipping not working hyphenation definitons (Closes: #697669) -- Norbert Preining Thu, 10 Jan 2013 07:45:09 +0900 tex-common (3.14) unstable; urgency=low * breaks texlive-lang-arab to ensure its removal during upgrades from lenny -> squeeze -> wheezy (Closes: #694258) (thanks Andreas Beckmann) -- Norbert Preining Sun, 25 Nov 2012 11:16:02 +0900 tex-common (3.13) unstable; urgency=high * rebuild all updmap.cfg files regardless of presence of snippets this is necessary to make sure that after the last package in TEXFMDEBIAN has disappeared, the updmap.cfg file is empty (Closes: #677698) (urgency high, as this is actually a critical bug since users cannot easily fix the updmap.cfg file without manual intervention) -- Norbert Preining Mon, 18 Jun 2012 10:19:41 +0900 tex-common (3.12) unstable; urgency=low * mention NEWS.Debian in the update-updmap warning * break against old luatex, it cannot find the necessary files (Closes: #613013, #676716) -- Norbert Preining Sat, 09 Jun 2012 11:40:37 +0900 tex-common (3.11) unstable; urgency=low * don't break if texmf.cnf is already removed (Closes: #671610, #672269) * ship a html redirect file as README.Debian.html instead of a link so that hrefs work (Closes: #657677) * remove references to teTeX in all relevant places (Closes: #511710) -- Norbert Preining Thu, 10 May 2012 07:11:07 +0900 tex-common (3.10) unstable; urgency=low * fix IFS error that prevents newer hyph-utf8 to get configured -- Norbert Preining Mon, 23 Apr 2012 23:03:22 +0900 tex-common (3.9) unstable; urgency=low * break against old version of jadetex that contains wrong and outdated format definitions (Closes: #668762) -- Norbert Preining Mon, 23 Apr 2012 12:00:23 +0900 tex-common (3.8) unstable; urgency=low * update NEWS to include a paragraph for users * add a warning if one of the update-* fails due to missing checkfile, that the package has to be reinstalled with --force-confmiss * add lost definitions of TEXMFTREES, FULLTEXMFTREES, TEXMFSYSVAR to postinst, which made run mktexlsr *always* in unprotected mode (Closes: #668661) -- Norbert Preining Sat, 14 Apr 2012 08:41:08 +0900 tex-common (3.7) unstable; urgency=low * do not create /etc/texmf/language.d, and try to remove it in postinst * update-updmap now includes snippets from /etc/texmf/updmap.d which might be installed by Debian-external packages, but gives big warnings * dh_installtex: fix an error in the logic when to add a (magic) header to the snippets, which resulted in all the updmap snippets still containing the magic header (no harm done, though!) -- Norbert Preining Wed, 11 Apr 2012 08:46:18 +0900 tex-common (3.6) unstable; urgency=low * update-texmf: sort list of files to be included (Closes: #665767) * set VARTEXFONTS to /tmp/texfonts again, otherwise buildd break (Closes: #666637, #666613) -- Norbert Preining Mon, 02 Apr 2012 09:25:33 +0900 tex-common (3.5) unstable; urgency=low * fix bashism in update-texmf (Closes: #665438, #665457) * rebuild the pdfs, so that at package build time no tex system is necessary (Closes: #665633) -- Norbert Preining Sun, 25 Mar 2012 09:43:32 +0900 tex-common (3.4) unstable; urgency=low * implement support for generation of language.dat.lua for luatex based formats: - extended update-fmtlang - change and extended the format of files in hyphen.d (needs rebuild of all providing packages!) - adapt dh_installtex for new format * start fixing the TeX-Debian-Policy document * do not add a universal fail clause in the debhelper generated maintainer scripts parts if the script is called with an unknown argument (scripts/post{inst,rm}-tex) * lintian warning: add addition makefile targets * doc: first run on updated documentation -- Norbert Preining Thu, 22 Mar 2012 18:08:18 +0900 tex-common (3.3) experimental; urgency=low [ Norbert Preining ] * remove tpm2licenses, Tpm.pm, FileUtils.pm, this script is hopelessly useless now that we don't have tpm files. * fix report-bug script configuration [ Hilmar Preuße ] * add new Polish debconf translation (Closes: #662094) -- Norbert Preining Wed, 14 Mar 2012 16:55:00 +0900 tex-common (3.2) experimental; urgency=low * clean up 3.1 changelog entry * don't run upgrade code on new install * don't create and remove texmf.cnf if no texmf.d conffiles are present -- Norbert Preining Sat, 10 Mar 2012 10:49:30 +0900 tex-common (3.1) experimental; urgency=low * only try to remove /etc/texmf/web2c if it is still here (Closes: #663029) * add missing break against tex-gyre <= 2.004.1-2.1 (Closes: #663173) * remove old ucf managed files with ucf instead of dpkg-maintscript-helper (Closes: #663092) * clean upgrade from tex-common < 3, move settings in 00updmap.cfg over to /etc/texmf/web2c/updmap.cfg -- Norbert Preining Sat, 10 Mar 2012 08:48:22 +0900 tex-common (3.0) experimental; urgency=low * remove all texmf.d conf files * remove /var/lib/texmf/web2c/updmap.cfg in the postinst, it is disturbing! * properly treat KanjiMap entries in dh_installtex * postinst-tex: don't break if a fmt.d snipped has been removed * bump up to 3.0, updmap.cfg is now managed differently with multi enabled updmap, so all the local adaptions are not necessary anymore * add calls to mtxrun --generate to the mktexlsr trigger action in case context is installed * add new Dutch translation (Closes: #652627) * bump standards version, no changes necessary * add Breaks against old versions of all packages shipping files in updmap.d -- Norbert Preining Tue, 06 Mar 2012 20:06:47 +0900 tex-common (2.10) unstable; urgency=low [ Norbert Preining ] * generated postrm code does not remove metapost format since the engine was not rewritten, fix that with a special case in dh_installtex (needs rebuild of texlive-metapost, context) (Closes: #619358) * bump standards version to 3.9.2, no changes needed [ Frank Küster ] * double-escape backslash in a printf string, thanks to Steve Langasek (closes: #622938) -- Norbert Preining Sun, 26 Jun 2011 09:00:08 +0900 tex-common (2.09) unstable; urgency=high * fix creation of ls-R files in /usr/local/share/texmf by updmap-sys which is called in the trigger section of tex-common's postinst. This fixes a policy violation. (Closes: #607857) * update Danish translation (Closes: #608423) * disable shell escape completely (fix for CVE-2011-1400, DSA-2198-1) * bump standards version to 3.9.1, no changes necessary -- Norbert Preining Wed, 23 Mar 2011 09:42:02 +0900 tex-common (2.08) unstable; urgency=low * include again 80DVIPDFMx.cnf and replace dvipdfmx (if it is still there) to make it search for cmaps (Closes: #572921) (patch by YOSHINO Yoshihito) * put TeX-on-Debian into doc-base section Typesetting (Closes: #536343) -- Norbert Preining Wed, 09 Jun 2010 01:32:21 +0900 tex-common (2.07) unstable; urgency=high * reword the language.{dat,def} trigger action's message to include the name of the base format (Closes: #566915) * convert some files to UTF8 * work around an under-specification of dpkg-query that makes the calls to it in the configure script break configuration, and thus creates FTBFS of unrelated packages (Closes: #571334) * bump standards version to 3.8.4, no changes necessary -- Norbert Preining Sun, 28 Feb 2010 13:13:35 +0900 tex-common (2.06) unstable; urgency=high * call mktexlsr with list of trees in lsr trigger action (Closes: #564457) -- Norbert Preining Tue, 12 Jan 2010 20:32:14 +0900 tex-common (2.05) unstable; urgency=low * update language.def based formats in the texmf-hyphen trigger option, otherwise updating hyphenation patterns does not have any effect on those formats (Closes: #562918) -- Norbert Preining Tue, 29 Dec 2009 17:48:08 +0900 tex-common (2.04) unstable; urgency=low * fix bug in dh_installtex that added a rogue newline in hyphenation definitions, thanks Danai (Closes: #562783) -- Norbert Preining Mon, 28 Dec 2009 07:05:31 +0900 tex-common (2.03) unstable; urgency=low * only call fmtutil-sys in postinst if texlive-base is configured (Closes: #560854) -- Norbert Preining Sun, 13 Dec 2009 07:50:25 +0900 tex-common (2.02) unstable; urgency=low * upload to unstable -- Norbert Preining Wed, 09 Dec 2009 23:44:02 +0900 tex-common (2.01) experimental; urgency=low * Remove setting of MPXCOMMAND. MetaPost in TeXLive 2009 no longer needs it, and is broken when it is set. [fk] * postinst trigger action: run updmap sys action only if texlive-base installed since otherwise updmap-sys will break * bump standards version to 3.8.3 * bump depends to << 2009 (there was no 2008 anyway) -- Norbert Preining Thu, 03 Dec 2009 22:32:27 +0900 tex-common (2.00) experimental; urgency=low * new experimental branch for changes necessary to support TeX Live 2008 and later that introduced hyphenation pattern support for etex based formats. language.def is now managed like language.dat. - add support for generating language.def to update-fontlang - install those scripts as update-language-def and update-language-dat - make update-language work as calling both of the above - adjust dh_installtex to accept new syntax * Make the wording of the warning message in postrm-texlsr broader, since there are a couple of reasons why this can fail * postrm's generated by dh_installtex now no longer assume that tex-common is installed when the package is removed. After a rebuild of texlive, this will fix #531581. * Update some texmf.cnf settings for TeXLive 2009. Before uploading to unstable, this needs a closer inspection (in particular, comment changes possibly cluttering diffs. * Add a Conflicts on old texlive-common, in order to force an upgrade of all the packages in one bunch. * implement trigger support for mktexlsr -- Frank Küster Thu, 15 Oct 2009 10:22:22 +0200 tex-common (1.20) unstable; urgency=low * after the change to tex-common's postinst script the ls-R file for /var/lib/texmf was not recreated, which breaks installation. Add this tree to the trigger call to mktexlsr (Closes: #532525) -- Norbert Preining Tue, 09 Jun 2009 22:37:03 +0200 tex-common (1.19) unstable; urgency=low [ Norbert Preining ] * change dh_installtex generated postrm code to call update-texmf-config only if it is present. That should be due to the policy, but it still might happen that tex-common is not installed bug another package depending on it is tried to be removed (see bug #531581). (Closes: #530832) * Remove the code in postrm that removes /usr/local/share/texmf/ls-R, we are not allowed to do that (policy), but we try to remove that directory if it is empty. (Closes: #528021) [ Frank Küster ] * Make sure that tex-common's own postinst script does not create /usr/local/share/texmf/ls-R (closes: #528021) -- Frank Küster Sun, 07 Jun 2009 21:53:07 +0200 tex-common (1.18) unstable; urgency=low * make sure that fmtutil-sys --all and updmap-sys are called on new installations when tex-common is configured, since new installations do not trigger. This bug fixes via rebuild of texlive-base #520042, #520410, and via rebuild of #520449. * bump the dh_installtex induced dependency on tex-common to 1.18 * rework trigger support so that new file triggers are used, but the code in the maintainer scripts generated by dh_installtex for updmap and language calls the new script update-texmf-config which simply calls the respective trigger. In the course of the the options map:notriggers and language:notriggers were removed from the possible options of dh_installtex. -- Norbert Preining Mon, 13 Apr 2009 22:33:23 +0200 tex-common (1.17) unstable; urgency=low * remove developer only information from debian/NEWS (Closes: #519964) and include the information in the changelog entry for 1.15. * using dh_installtex --flavor formats:build_all breaks because we removed the calls to update-fmtutil etc. Readd all those calls (Closes: #520166) * bump standards version to 3.8.1, no changes needed -- Norbert Preining Tue, 17 Mar 2009 21:57:47 +0100 tex-common (1.16) unstable; urgency=low * add mktexlsr calling code from postinst-tex to the trigger action in case it has never been run before. That allows fresh installations to succeed. (Closes: #519701) [np] -- Norbert Preining Sat, 14 Mar 2009 16:57:24 +0100 tex-common (1.15) unstable; urgency=low [ Norbert Preining ] * upload of trigger-enabled tex-common to unstable, packages should be rebuild. Triggers are supported for files dropped into /etc/texmf/updmap.d and /etc/texmf/language.d, i.e., for calls to updmap-sys and fmtutil-sys (when hyphenation patterns are used). If packages need to install fonts/hyphenation patterns and need them active in the postinst already, it should call dh_installtex with --flavor=map:notriggers or --flavor=language:notriggers Until all packages have been rebuilt with the new dh_installtex updmap-sys and fmtutil-sys will be called two times. * remove references to teTeX from the man pages (Closes: #486369) * bump dh compat level to 5, adjust debian/control * add ${misc:Depends} to dependencies [ Jan Hauke Rahm ] * make debhelper's '--with' option available for tex-common. dh_installtex can now be integrated in debian/rules via 'dh install --with tex' when using compat 7 -- Norbert Preining Tue, 10 Mar 2009 18:36:33 +0100 tex-common (1.14) experimental; urgency=low * fix coding error in dh_installtex's pod documentation [np] * updated Romanian translation (ro.po) (Closes: #506038) [hilmar-guest] * add a fix for dh_installtex to work with debhelper >= 7.1.0 (experimental) (Closes: #507365) (patch from Roderich Schupp) [np] -- Norbert Preining Mon, 01 Dec 2008 17:31:26 +0100 tex-common (1.13) experimental; urgency=low * bump standards version to 3.8.0, no changes necessary [np] * use the local keyword in policy compliant way [np] * replace emacs with share/texmf in postinst.in [np] * add updated version of sv.po (Closes: #491426) [hilmar-guest] * Fix dh_installtex compatibility with debhelper version >= 6 (Closes: #492604) [np] -- Norbert Preining Sat, 02 Aug 2008 13:04:18 +0200 tex-common (1.12) experimental; urgency=low * bump version of tex-common packages built with dh_installtex to 1.11 otherwise the conflict with tetex-base is not included properly. This really would close #467330, but due to the disappearance of 1.10 the last version is also sufficient [np] * Create empty /usr/local/share/texmf in postinst, remove in prerm if empty, with code taken from the Policy manual. The decision whether local documentation should be in the texmf tree or in /usr/local/share/doc and accessed via a symlink is left to the local admin (closes: 475077) [fk] * Removed the tetex-bin-upgrade script from the source, it is not needed nor installed, anyway [fk] * register TeX on Debian and the Policy in section Debian [hp, np] * remove double definition of OPENTYPEFONTS in texmf.d [np] * fix wrong file link in Debian-TeX-Policy.sgml (Closes: #481038) * Again install the README file for tpm2licenses in /usr/share/tex-common/ [fk] * implement support for triggers for /etc/texmf/updmap.d and /etc/texmf/language.d [np] -- Norbert Preining Mon, 02 Jun 2008 16:41:31 +0200 tex-common (1.11) unstable; urgency=medium * bump version of tex-common packages built with dh_installtex to 1.10 since it is the version that removes the tetex part (see #466036) [np] * And Conflict with tetex-base (<< 2007), in order to force a /complete/ transition to texlive in lenny (closes: #467330). At the same time, drop the conflict with tetex-bin, since tetex-base already does that. However, when and if we remove the tetex-base package, we need to find a different solution for this [fk] * These two changes fix RC bugs, hence the urgency [fk] * Another update run for debconf translations [hilmar-guest] - Vietnamese (Closes: #453780) * change the definition of TEXFORMATS to prohibit the finding of wrong formats (and be in sync with upstream TeX Live), and remove the trailing // of MFBASES and MPMEMS. [np] * update po files [np] * bump standards version to 3.7.3, no changes necessary [np] * move the build stuff to binary-indep, the package is arch=all [np] -- Frank Küster Wed, 16 Apr 2008 21:54:38 +0200 tex-common (1.10) unstable; urgency=low * update-fontlang: - properly handle file paths containing spaces; - when the jadetex or xmltex snippet is not included, write an explanation to fmtutil.cnf; - only trigger special behavior on 40jadetex.cnf, not on *40jadetex.cnf; same thing with 40xmltex.cnf and 10texlive-latex-base.cnf; - use 0 and 1 instead of "false" and "true" for $seen_latex in order to be consistent with the rest of the script. [florent] * add warning to the pod documentation / man page of dh_installtex that it will add management calls to *all* packages if not instructed otherwise (Closes: #400742) [np] * remove duplicate TEXDOC configuration in 45TeXinputs.cnf which gave .html a higher priority then pdf.gz. Thanks Jörg. (Closes: #431610) [np] * Remove some outdated stuff in TeX-on-Debian [np] * remove the tetex part in TEXMFDIST, remove TETEXDIR from TEXMFCNF [np] * add Vcs-Svn and Vcs-Browser fields to debian/control [np] * update debconf template and package descriptions in control file (Closes: #447689) [hilmar-guest] * l10n updates + additions [hilmar-guest] - Basque (Closes: #448485) - Catalan - Czech (Closes: #449263) - Danish - Dutch - Finnish (Closes: 448291) - French (Closes: #450704) - Galician (Closes: #448232) - German (Closes: #448245) - Italian (Closes: #448367) - Japanese (Closes: #448680) - Korean (Closes: #448436) - Lithuanian (Closes: #448705) - Norwegian Bokmål (Closes: #450911) - Portuguese (Closes: #449234) - Portuguese/Brazil - Russian (Closes: #450726) - Romanian - Spanish (Closes: #448541) - Swedish - Turkish - Vietnamese -- Norbert Preining Wed, 21 Nov 2007 09:26:01 +0100 tex-common (1.9) unstable; urgency=low * Make sure that update-fontlang detects TEXMFVAR properly even if the directory does not yet exist (closes: #428448) [fk]. * let update-fontlang and debianize-updmap create TEXMFCONFIG if it doesn't exist yet (at least when there's only one directory in that variable) [fk]. -- Frank Küster Tue, 19 Jun 2007 11:32:09 +0200 tex-common (1.8) unstable; urgency=medium * Bump urgency since this fixes a RC bug which hits anyone upgrading from lenny to sid and triggers a forkbomb. Urgency only medium because of the long list of unrelated other changes. [fk] * Add a workaround for the fork bomb problem in format generation: Ignore jadetex and xmltex if latex is not present (closes: #427562) [fk] * make proper ucfr checking in maintainer scripts (Closes: #409897) [np] * rework the code generated by dh_installtex in the postinst script. Now at postinst/configure time fmtutil-sys is called with --all --cnffile where are the fmt.d config files installed by the package. This way a dpkg-reconfigure will create *all* formats defined in the config file, even if the sysadm has defined additional formats. (Closes: #418983) [np] * Update snippets in texmf.d according to a reordering patch accepted upstream [fk] * (first) rework of Debian-on-TeX document for TeX Live only [np] * add a list of old files from teTeX which can be removed * Do not install unused 01tetex.cnf and its md5sum file [fk] * dh_installtex: rewrite $engine to metafont if $engine = mf|mf-nowin * Install a copy of mktex.cnf in /usr/share/tex-common, and advice in NEWS.Debian to reinstall it. [fk] * Debconf translations: Added Vietnamese translation, thanks to Clytie Siddall (closes: #426881) * implement an opion --nosourcefiles for tpm2licenses to not check source files * Add symlinks "README.Debian.$ext" to the respective "TeX-on-Debian" formats. [fk] -- Frank Küster Mon, 11 Jun 2007 10:14:14 +0200 tex-common (1.7) unstable; urgency=low * Undo the changes of the autoscripts snippets ordering, debhelper has changed back to the former method. -- Norbert Preining Sat, 14 Apr 2007 08:39:46 +0200 tex-common (1.6) unstable; urgency=low * Document in NEWS.Debian that support for ls-R in TEXMFHOME has been dropped [fk] * Policy: Add a chapter on meta-packages and document that they are usually not acceptable as dependencies * reverse the order of autoscripts snippets in postrm (Closes: #418984) * change alternative dep on cdebconf to (>= 0.39), lintian error. -- Norbert Preining Fri, 13 Apr 2007 09:34:44 +0200 tex-common (1.5) unstable; urgency=low * fix missing tetex component of TEXMFDIST (Closes: #418674) -- Norbert Preining Wed, 11 Apr 2007 09:45:29 +0200 tex-common (1.4) unstable; urgency=low * Change main_memory to 1500000 to go with the main_memory of mpost and TeX Live's texmf.cnf. This change is needed to make mpost work under all circumstances [np]. * Update settings and comments in the texmf.cnf snippets to match upstream's as close as possible [fk] * Drop backwards compatibility hacks for paths (see NEWS.Debian) [fk] * Enable parse-first-line feature, except for Knuth's "tex". [fk] * Update Tpm.pm and FileUtils.pm from TeXLive 2007 [fk] -- Norbert Preining Tue, 10 Apr 2007 17:52:56 +0200 tex-common (1.3) experimental; urgency=low * Fix typography in Debian-on-TeX, thanks to Miguel de Val Borro (closes: #413449) [frank] * In the source package, replace 'tex-sed' with a Python script named 'texify-tex-output' to do a better job (handling all known cases so far, some of which seemed rather difficult to implement in sed). We don't need to Build-Depend on Python, because this script is only used when we generate PDF output from the DebianDoc documents (Debian-TeX-Policy, TeX-on-Debian), which we don't do at build time in order to avoid chicken-and-egg problems. [florent] * Add engine subdirectories to the search paths for MetaFont and MetaPost, too. Thanks to Jörg Sommer * Change the dh_installtex removal logic since format dumps are placed into engine subdirectories. We now remove all format dumps and log files in /v/l/t/web2c and /v/l/t/web2c/$engine/ -- Norbert Preining Thu, 22 Mar 2007 01:28:27 +0100 tex-common (1.2) experimental; urgency=low * rename flavor format:no_format_links to format:no_links (nobody is using it already), and document it [NP] * increase trie_size to 400000 to allow the loading of all texlive hyphenation patterns [NP] * Make sure that dh_installtex's postrm snippets won't try to run fmtutil-sys when it might be already uninstalled. -- Frank Küster Fri, 9 Mar 2007 16:12:17 +0100 tex-common (1.1) experimental; urgency=low * Upload to experimental. This version is needed to build TeXLive 2007. * Increase trie_size to the value in TeXLive 2007, and update the comment from their texmf.in file, too. * Only strip comments with '^[ \t]*# ' from the auto files to preserve comments starting with ## [NP] * small fix to dh_installtex for useless inclusion of postinst-tex (move the definition of $dothefullstuff into the package loop) * implement flavors format:build_all and format:add_one:formatname * let dh_installtex automatically create links for formats installed and add flavor to disable this behaviour. * fix a bug in dh_installtex which prohibits --priority to work correctly for command line config files. [NP] * add Norbert Preining to the uploaders * add lintian overrides for wrongly detected bashism -- Norbert Preining Mon, 26 Feb 2007 18:31:32 +0100 tex-common (1.0) unstable; urgency=low * Release as version 1.0, tex-common has been stable for months and deserves a non-zero version number * Debconf translations: [frank] - New Romanian translation, thanks to Eddy Petrișor (closes: #409267) - New Portuguese Brazilian translation, thanks to the Traduz MailingList (closes: #408866) - Updated Catalan translation, thanks to Guillem Jover (closes: #409162) -- Frank Küster Mon, 5 Feb 2007 10:55:26 +0100 tex-common (0.44) unstable; urgency=low * Use full pathname when registering files with ucf (closes: #408263) * New and updated debconf translations: - Galician by Jacobo Tarrio (closes: #408122) -- Frank Küster Fri, 26 Jan 2007 18:10:23 +0100 tex-common (0.43) unstable; urgency=low * Register documentation in section TeX instead of Text (closes: #403086) [frank] * Debconf translations: - add Russian translation, thanks to Yuri Kozlov (closes: #406872) -- Frank Küster Mon, 15 Jan 2007 07:51:34 +0100 tex-common (0.42) unstable; urgency=low * Documentation fixes to update-fontlang.1: - the .TH line was broken, causing an ugly footer in the formatted manpage; - the SYNOPSIS had an incorrect syntax ('-language', '-updmap', and '-fmtutil' aren't optional) and the new way is much easier to read anyway IMO; - always mention the programs in that order: update-updmap, update-language and update-fmtutil (reason is, I think the average user is more likely to need update-updmap than any of the two others); - the arguments to some options were forgotten, as in the update-fontlang usage message ('--help'); - better option formatting (for those with a short and a long form; copied from /usr/share/man/man1/man.1.gz); - the default values for TEXMFCONFIG and TEXMFVAR do *not* end with a slash; - the path to TeX-on-Debian.txt.gz was wrong; - s/updmap.sys/updmap.cfg/; - s/TEMXF/TEXMF/ in a few places; - a package may install *several* files in each /etc/texmf/*.d directory (and list them in the .list files under /var/lib/tex-common). - a bit more details here and there; - more formatting to ease reading (such as italics), punctuation, typographical fixes. [florent] * Fix to update-fontlang: don't forget the arguments to '-c' and '-o' in the usage message ('--help'). [florent] * Minor fixes to postrm-texlsr to avoid having too long lines (greater than 80 characters). [florent] * remove the left-over definition of dhit_check_run_without_errors in postrm-tex, it is included in postrm-texlsr (Closes: #402068). [NP] -- Frank Küster Mon, 11 Dec 2006 19:46:08 +0100 tex-common (0.41) unstable; urgency=low * Install the TDS specification along with the Debian TeX Policy (closes: #401196) [frank] * Register ucf files with ucfr (closes: #395018) [frank] * Refined wording and typography of the documentation documents -- Frank Küster Wed, 6 Dec 2006 19:03:21 +0100 tex-common (0.40) unstable; urgency=low * Register TeX-on-Debian and the policy with doc-base * Change the wording of Policy to indicate more clearly that everything can (and should) be done using dh_installtex. -- Frank Küster Wed, 6 Dec 2006 11:08:26 +0100 tex-common (0.39) unstable; urgency=low * changelog editing: fix wrong bugnumber in last upload [frank] * Add a more verbose explanation to the warning when updmap-sys failed (closes: #397717), and echo errors to stderr. [frank] * Change default priority for dh_installtex to 20, and document in the TeX Policy that 10 is reserved for Basic TeX packages. This would have avoided bug #399447. [frank] -- Frank Küster Tue, 21 Nov 2006 18:32:32 +0100 tex-common (0.38) unstable; urgency=low * install update-fontlang and the three links all into /usr/bin and keep symlinks in /usr/sbin for old packages. Update the man page of update-fontlang. (Closes: #396822) [preining] * Clear up the description about user-specific configuration in TeX-on-Debian, many thanks to Géraud Meyer (closes: #396826) [preining,frank] * Debconf translation updates: [frank] - French, thanks to Christian Perrier (closes: #395844) - Italian, thanks to Luca Monducci (closes: #396101) - German, thanks to Helge Kreutzmann (closes: #396036) - All others except the heavily outdated ca.po where unfuzzied by me, even in Japanese I can change "dpkg-dist" to "ucf-dist" [frank] -- Frank Küster Fri, 3 Nov 2006 14:14:12 +0100 tex-common (0.37) unstable; urgency=low * Fix bashism in postinst, thanks to Michael Biebl (closes: #395274) [frank] -- Frank Küster Thu, 26 Oct 2006 08:14:29 +0200 tex-common (0.36) unstable; urgency=medium * Depend on debconf (>= 1.4.69), which introduced the error template type (closes: #395032). This broke upgrades, hence the urgency [frank] * Fix format extraction regexp in dh_installtex, the format name must now be at the beginning of the line, without any leading whitespace, but hyphens are allowed in the name. Thanks Ralf. [preining] * dh_installtex: Include only the minimal mktexlsr code in case no other installation is done (ie no maps, formats, languages). Also add the ability to specify texmf trees on the command line, and only recreate the ls-R DB for /usr/share/texmf and /var/lib/texmf [preining] (Closes: #392359) * Add engine-specific paths to the TEXFORMATS and TEXFONTMAPS variables, and avoid triple slashes. This is completely backwards-compatible (it only adds path components), and is needed for the planned separate context package. Thanks to Ralf Stubner for the details! [preining,frank] -- Frank Küster Wed, 25 Oct 2006 13:16:13 +0200 tex-common (0.35) unstable; urgency=low * Use local variables in debianize-updmap, so that the right file for enabling font maps will be found (closes: #393920) [frank] -- Frank Küster Wed, 18 Oct 2006 17:58:09 +0200 tex-common (0.34) unstable; urgency=medium * Handle non-writable /usr/local gracefully upon removal, thanks to Sam Hocevar (closes: #392518) [frank] * Change debianize-updmap so that the --syncwithtrees and --edit options do something sensible, and won't break the system. Together with the upload of tetex-bin 3.0-22, this will close #392573 and #334747. [frank] * Add a check for shadowed config files to update-fontlang [preining] * Move and extend the teTeX README.Debian to TeX-on-Debian Documentation [frank, preining] * Move po-debconf from Build-Depends-Indep to Build-Depends, since it's used in the clean target of debian/rules. [florent] * Adjust the TEXMFCNF setting in conf/texmf.d/85Misc.cnf to reflect the change in tetex-bin 3.0-22. [frank, florent] -- Florent Rougon Sat, 14 Oct 2006 18:53:20 +0200 tex-common (0.33) unstable; urgency=medium * Fix syntax error in debianize-updmap (closes: #391976). Also, the logic in the script has been fixed, so that it actually works [frank] * Add an additional check to update-* scripts in case users shadow their generated files with files in TEXMFCONFIG. [preining] -- Frank Küster Tue, 10 Oct 2006 10:21:19 +0200 tex-common (0.32) unstable; urgency=medium * adapted sanity check in update-fontlang to TEXMFSYSCONFIG = /etc/texmf (closes: #391348) [ralf] * Provide a tetex-bin-update script. This allows also texlive to properly rename an old tetex-bin conffile, and add the magic comment, and is therefore needed for a transition from teTeX to TeXlive without upgrading teTeX to the etch version first [frank] * Install debianize-updmap into the scripts dir [frank] * Provide the debianize-updmap functions in /usr/share/tex-common, for usage by all TeX systems in Debian [frank] * Changed the order of trees in TEXMFDIST. If TeXlive and teTeX packages are installed together, files from TeXlive now take precedence. This makes sense because those files are usually newer. [frank] -- Frank Küster Mon, 9 Oct 2006 07:46:31 +0200 tex-common (0.31) unstable; urgency=medium * Document in policy that font cache data have to be cleaned by packages that Build-Depend on TeX, and how to do that (closes: #388399) [frank] * On systems upgraded from woody to sarge, tetex-bin generated a bogus local configuration file with entries that were erroneously detected as locally changed. These entries are now harmful and break texlive, and the file is therefore renamed if it meets our expectations (closes: #391355) [frank] * In 95NonPath.cnf, add a comment about how to redump the format file (closes: #380323) [frank] -- Frank Küster Fri, 6 Oct 2006 17:40:19 +0200 tex-common (0.30) unstable; urgency=high * update-fontlang: If a conffile has a corresponding dpkg-new file, that is, it is from a yet-unconfigured package, drop it any case. Previously, the check was only done when the file had a magic comment, but conffiles in sarge generally do not have this magic. Therefore, upgrades from sarge would have failed if the conffile change is needed for proper configuration (closes: #389550) [frank] * Remove the medium-priority debconf note without replacement; anybody who really runs into the problem will be able to find the information in tetex-bin's README.Debian (closes: #388973) [frank] -- Frank Küster Tue, 26 Sep 2006 17:14:45 +0200 tex-common (0.29) unstable; urgency=medium * Add missing function and variable declarations to preinst, thanks to Hilmar (closes: #385532) [frank] * Do not load debconf manually in postrm, it isn't needed at all, thanks to Bill Allombert (closes: #388156) [frank] -- Frank Küster Tue, 19 Sep 2006 09:17:13 +0200 tex-common (0.28) unstable; urgency=low * Fix spelling of "medium" in the last upload * Remove jadetex settings from texmf.d (closes: #384333) [frank] * Add a paragraph to the Policy how to handle format creation when latex.fmt or other basic formats are needed [frank] -- Frank Küster Wed, 23 Aug 2006 22:09:37 +0200 tex-common (0.27) unstable; urgency=medium * Policy Change: Treat configuration files properly as Debian Policy mandates. The only TeX-specific addition is that we remind maintainers to only treat files for site-wide changes as configuration files, not files intended to change the typeset output on a per-document or per-project basis. Consequently, mktex.cnf is now installed as /etc/texmf/web2c/mktex.cnf. Thanks to Manoj Srivastava! This closes: #379089, a RC bug, hence the medium urgency [frank] * Really install NEWS.Debian about the font cache changes in the last upload [frank] * Update changelog for 0.16. We forgot to close two bugs. [hilmar-guest] * Debconf Translations: [frank] - Update Dutch translation, thanks to Vincent Zweije (closes: #379234) - Update Spanish translation, thanks to Javier Fernández-Sanguino Peña (closes: #382967) -- Frank Küster Wed, 16 Aug 2006 16:58:01 +0200 tex-common (0.26) unstable; urgency=low * Font data are now cached separately for each user, or in /tmp/texfonts when there is no writable home directory. Thus we could get rid of the complicated debconf questions related to that issue (there's still one note left) (closes: #376050, #366805, #368411). Many thanks to Ralf Stubner for his "braindump". This change requires installation of a file in a TEXMF tree; we therefore run mktexlsr if it is available. [frank] * Debconf Translations: [frank] - Updated Czech translation, thanks to Miroslav Kure - Updated Japanese translation, thank to Kenshi Muto (closes: #376632, #377945) - Updated brazilian Portuguese translation, thanks to Felipe Augusto van de Wiel (faw) - Updated Danish translation, thanks to Claus Hindsgaul (closes: #377664) - Updated German translation, thanks to Helge Kreutzmann - Updated italian translation, thanks to Luca Monducci (closes: #377378). - Updated french translation, thanks to Jean-Baka Domelevo-Entfellner (closes: #377388) - Updated Swedish translation, thanks to Daniel Nylander - Updated Lithuanian translation, thanks to Kęstutis Biliūnas * common.functions.in: [florent] + change create_tetex_formats() so that fmtutil-sys is run in a temporary directory; otherwise, it may use files lying in the current directory, which can cause bad surprises. This will close #377581 when propagated to the various packages using this function in their maintainer scripts. + replace `command args ...` with $(command args ...) everywhere in the file. * Updated Maintainer field to use new mailing list [jdg] -- Frank Küster Wed, 19 Jul 2006 16:05:47 +0200 tex-common (0.25) unstable; urgency=low * Translations: - Fix typos in french debconf translation, thanks to Florentin Duneau (closes: #374632) [frank] - Update brazilian Portuguese debconf translation, thanks to Andre Luis Lopes and Felipe Augusto van de Wiel [frank] * scripts/update-fontlang: - don't include ${conffile} in the generated file if ${conffile}.dpkg-new exists ($conffile may not be up-to-date in this case); see http://lists.debian.org/debian-tetex-maint/2006/06/msg00260.html for a discussion of this subject. - cosmetic fixes. [florent] * Update scripts/update-updmap.1 and doc/Debian-TeX-Policy.sgml accordingly. [florent] -- Florent Rougon Mon, 26 Jun 2006 10:37:04 +0200 tex-common (0.24) unstable; urgency=low * Updated debconf translations: - French, thanks to Steve (closes: #369360) [frank] * dhit_check_run_without_errors() in postrm-tex was not completely silent even if called with -silent (outputing 3 ugly lines starting with a space followed by "done."). This is now fixed. [florent] -- Florent Rougon Sun, 18 Jun 2006 23:14:27 +0200 tex-common (0.23) unstable; urgency=low * After the groupname question has been renamed, make sure that the new questions are not shown again when the old one has already been seen, and unregister the old question (closes: #366812) [frank] * Fix bashism in config (closes: #366789) [frank] * Fix our check for a working configuration in texmf.d, and write short information messages to stderr for the noninteractive frontend or for people who don't have a pencil (closes: #366907), thanks Ralf [frank] * Make sure the font cache directory is always world-writeable - we previously missed the case where apt-utils are installed in a buildd chroot (again closes: #354113, #366858) [frank] * Updated debconf translations: [frank] - Czech by Miroslav Kure (closes: #367162) - Danish by Claus Hindsgaul (closes: #367180) - Italian by Luca Monducci (closes: #367183) * Debian TeX Policy: Remove last occurrences of obsolete TEXMFSITE. -- Frank Küster Wed, 17 May 2006 18:56:32 +0200 tex-common (0.22) unstable; urgency=low * Also install FileUtils.pm which is needed by tpm2licenses [frank] * Make running of update-* commands silent in the debhelper postrm helper scripts (Closes: #365070) [preining] * Debconf translations: - updated wording of swedish template, thanks to Daniel Nylander (closes: #365992) [frank] * Change the configuration scheme again a little: Before accepting a group name typed by the user, test whether it really exists. Furthermore, if there is only one user in the "normal user" range in /etc/passwd, suggest their group as the owner of the font cache. And finally, make the wording clearer everywhere. Many thanks to Anthony DeRobertis , James R. Van Zandt" and Helge Hafting (closes: #366107, #366095, #365513) [frank] * Fix lintian warnings and errors: [frank] - Move eperl to Build-Depends-Indep - Fix my name in update-language(8) - Add overrides for the font cache permissions and our debconf note if the postinst script fails. * Bump standards version (no changes needed) [frank] -- Frank Küster Wed, 10 May 2006 13:19:52 +0200 tex-common (0.21) unstable; urgency=low * Syntax error: postinst script silently failed when it should have displayed a debconf warning [frank] * Improve readability of eperl scripts in debian/ as in tetex-bin [jdg] * Adjust priority of the groupname debconf question to be the same as the managecache question (closes: #360127) [frank] * Fix eperl open commands in maintainer scripts to work with -k [jdg] * Made preinst a /bin/sh script [jdg] * Install the tpm2licenses Perl script and the Tpm.pm module into /usr/share/tex-common for more convenient use [frank]. * Add to the source package a ChangeLog file to keep track of the copyright/licensing verification work I'm doing [frank] * Update debconf translations: - Danish by Claus Hindsgaul (closes: #360035) - Czech by Miroslav Kure (closes: #360212) - Spanish by Javier Fernández-Sanguino Peña - Swedish by Daniel Nylander - Turkish by Osman Yuksel - Lithuanian by Kęstutis Biliūnas (closes: #360282) - Italian by Luca Monducci (closes: #360645) - Japanese by Kenshi Muto (closes: #360679) - German by Helge Kreutzmann - French by steve (closes: #362426) Many thanks to all contributors! [frank] -- Frank Küster Fri, 21 Apr 2006 09:49:06 +0200 tex-common (0.20) unstable; urgency=medium * This version fixes a RC bug (#357983) - the version in testing was not affected. But taken together, 0.20 fixes lots of important and annoying bugs that also exist in testing that I'm increasing the urgency. [frank] * Change wording in debconf template and README.Debian to clearly indicate that per default users are not member of the "users" group, (closes: #356960, #357983) [frank] * Install reportbug control script to report with tetex and texlive packages [frank] * update-fontlang: Change the note that is displayed when the output file is a symlink to an error message (displayed also in quiet mode) (closes: #357289) [frank] * Fix typos in update-updmap.1 and update-language.8, thanks to Nicolas François (closes: #357763). [florent] * Translations: - Update french debconf translation, thanks to Steve (does not closes bug #356840, since it is incomplete) [frank] -- Frank Küster Wed, 22 Mar 2006 12:29:54 +0100 tex-common (0.19) unstable; urgency=low * cater for groups without a name when setting the groupname debconf variable (Closes: #354401) [preining] * Use debconf for user interaction if the postinst script detects incompatible settings, thanks to John Goerzen (closes: #353474) [frank] * add --check option to update-fontlang and to the man pages, but state that it should not be used in maintainer scripts (Closes: #354517) [preining] * Fix copying error in dh_installtex that created dvips config files with an additional comma [preining] * Translations: - Update Swedish debconf translation, thanks to Daniel Nylander (closes: #354635) [frank] - Update Danish debconf translation, thanks to Claus Hindsgaul [frank] - Update German debconf translation, thanks to Helge Kreutzmann [frank] - Update Italian debconf translation, thanks to Luca Monducci (closes: #355033) [frank] - Update Turkish debconf translation, thanks to Osman Yüksel (closes: #355061) [frank] - Update Japanese debconf translation, thanks to Kenshi Muto (closes: #355141) [frank] - Update Czech debconf translation, thanks to Miroslav Kure [frank] - Update Lithuanian debconf translation, thanks to Kęstutis Biliūnas (closes: #355453) [frank] - Update Spanish debconf translation, thanks to Javier Fernández-Sanguino Peña [frank] -- Frank Küster Sat, 11 Mar 2006 17:58:38 +0100 tex-common (0.18) unstable; urgency=low * Perform all config checks in the postinst script instead of exiting after the first failure * Call debconf-updatepo in the clean and build targets, thanks to Thomas Huriaux (closes: #354138) [frank] * Remove "set -x" from config.in, a leftover from debugging. Sorry. (closes: #354181) [frank] * Add many more md5sums for obsolete conffiles. And add a script in the source package to check whether we now catch all of them. Many thanks to Andreas Tille! [frank] * Fix the missing dhit_ prefix to the build_format call in postinst-tex autoscript [preining] * Fix spelling error in template, thanks to Matt Krai (closes: #354318) * Replace wrong mode 3755 with 3775 in templates. [florent] * Add myself to the Uploaders field. [florent] * Remove duplicate Build-Depends-Indep on debiandoc-sgml. [florent] -- Florent Rougon Sat, 25 Feb 2006 12:58:27 +0100 tex-common (0.17) unstable; urgency=low * Restore the previous behavior by making the subdirectories of /var/cache/fonts world-writable by default. Since this is unsafe, advice the user in the debconf template, and increase the question's priority to medium. Thanks to Lars Wirzenius, closes: #354113. We do not fix existing systems, since this is mainly targeted at pbuilder environments and similar, where tex-common is only installed on demand. [frank] * fix an error in dh_installtex when grepping for the magic header [ralf] * Add an md5sum for psfonts.ams, thanks to Andreas Tille [frank] -- Frank Küster Thu, 23 Feb 2006 17:36:04 +0100 tex-common (0.16) unstable; urgency=low * Add dh_installtex for public perusal. [preining] - add dh_installtex and man page - replace dh_installtexfonts by a script converting the syntax - give a warning in the dh_installtexfonts man page * common.functions.in: - Add md5sums for tetex-extra's former configuration files (closes: #351649, #352486) [frank] - Also add some forgotten md5sums for tetex-base, and make sure scripts really stop if the md5sum is unknown (closes: #352688) [frank] - remove LaTeX and pdfLaTeX format files before trying to recreate all format (closes: #352391, #346135, #352569) [frank] - use different variable names for /var/lib/texmf as a texmf.cnf variable and as a maintainer script variable [frank] * rework debconf usage (Closes: #352394) [preining,frank] - only care for ls-R file permissions of the font cache from now on - manage the group and permissions of /var/cache/fonts * TeX Policy Draft: - document dh_installtex and some additional checks needed in maintainer scripts [florent] - Clarify that some files from the Basic TeX Packages stay in TEXMFMAIN [frank] -- Frank Küster Wed, 22 Feb 2006 13:43:32 +0100 tex-common (0.15) unstable; urgency=high * Urgency high, because this version adds important checks that should be present when the teTeX packages enter testing * Add more checks for essential entries in texmf.cnf, and bail out with a user-friendly error message if they are missing (closes: #346326) [frank] * Fix functions in common.functions.in, so that old conffiles of teTeX are properly handled, thanks to Ralf Stubner * Drop unneeded paths from TEXFONTMAPS, we now have only 3.0's upstream value plus our backward-compatibility paths; also change the check in the postinst accordingly (although the old one would still work, we do not allow it for simplicity's sake). [frank] * Fix typo in dh_installtexfonts which would echo wrong file names, and add --quiet to the call of update-updmap in the debhelper scripts [preining] * Again fixed extensions of files to purge, and take over correct language.dat handling from tetex-base (see: #321804). [frank] * Move the handling of 00updmap.cfg from postinst to preinst, where it belongs [frank] * Fix typo in manpage for update-language, thanks to Nicolas François (closes: #349723) [frank] -- Frank Küster Thu, 26 Jan 2006 22:24:06 +0100 tex-common (0.14) unstable; urgency=low * Bump standards version to 3.6.2 (no changes needed) * Move debiandoc-sgml from Build-Dep to Build-Dep-Indep * Fix a couple of lintian errors and warnings * Fix dvips config syntax, thanks to Danai SAE-HAN [preining] * Rework the debhelper snippets post(inst|rm)-texfonts [preining] -- Norbert Preining Thu, 22 Dec 2005 16:38:54 +0100 tex-common (0.13) unstable; urgency=low * tex-common now provides the symlink /usr/share/texmf/doc --> ../doc/texmf, because tetex-doc now puts its files into TEXMFDIST [frank]. * Do no longer install teTeX's common.* files and dsf-patch.mk, they are no longer used. * Implement --flavor for dh_installtexfonts, first flavors are only for generating config files for maps [preining]. * Fix brace expansion in pdksh, patch from Robert Luberda (closes: #342781) [preining] * Add fonts/hbf to the search path for T1 fonts, this is needed by cjk-latex. [frank] * Translations: - Update Czech debconf translation, thanks to Miroslav Kure (closes: #341941) [frank] - Fix italian translation file, this really closes: #340031 [frank] -- Frank Küster Sun, 11 Dec 2005 14:53:05 +0100 tex-common (0.12) unstable; urgency=low * change ls_R_magic to include ., ./, and ls-R so that kpathsea does not moan about unusable entry. [preining] * Document TEXMFSYSCONFIG in the Policy Draft, and add some more clarifications to the text [frank] * change TEXMFDIST to include texmf-texlive and texmf-tetex [preining] * Translations: - Update French debconf translation, thanks to Clément Stenac (closes: #341721) [frank] -- Frank Küster Fri, 2 Dec 2005 17:40:04 +0100 tex-common (0.11) unstable; urgency=low * Check for correct setting of TEXFONTMAPS after possible user interaction in postinst, and fail with a clear error message, instead waiting for teTeX's or TeXLive's updmap calls to fail (closes maybe: #338585) [frank] * Add a function clean_texenvironment to common.functions, to be used from TeX package's postinst scripts, and document that in the Policy document. [frank] * Add the md5sum of the postinst-edited 00updmap.cfg to ucf's database. Also fix the logic for taking over changed settings from tetex-base, and create 00updmap.cfg with proper permissions. Special thanks to Junichi Uekawa for insisting (closes: #335682, #338689) [frank] * The Policy draft has been extended [frank] * change TEXMFSYSCONFIG to /etc/texmf and remove the !! before TEXMFCONFIG in TEXMF [preining] * add TEXMFSYSCONFIG to TEXMF and and reshuffle the order [preining] * change TEXMFDBS [preining] * Translations: - add Swedish debconf translation, thanks to Daniel Nylander (closes: #338866) [frank] - update Danish debconf translation, thanks to Claus Hindsgaul (closes: #339354) [frank] - update Italian debconf translation, thanks to Luca Monducci (closes: #340031) [frank] -- Frank Küster Tue, 22 Nov 2005 20:15:41 +0100 tex-common (0.10) unstable; urgency=low * tex-common should only Suggest debhelper, not Depend on it. It would pull in too many dev packages for every normal user. [preining] * Fix the syntax of some eval statements in the config script (closes: #336951) [frank] * In postinst, create nonexistent ls-R files with proper magic content if they are not already present (closes: #337073) [frank] * The config script was not idempotent, and reset the debconf default for group writable ls-R files on a fresh install. [frank] * Remove the ls-R symlink in TEXMFLOCAL, thanks to Lars Wirzenius (closes: #333308). [frank] * Check for leftover .svn directories during build (closes: #327785) [frank] * Add the md5sum of a version with a newer comment to the list of known md5sums for 00updmap.cfg (closes: #336713) [frank] * fix installation of debhelper snippet postrm-texfonts. [preining] * actually allow multiple invocations of dh_installtexfonts and stop with error if a cfg file is installed several times. [preining] -- Frank Küster Wed, 9 Nov 2005 14:45:34 +0100 tex-common (0.9) unstable; urgency=low * Change ls-R file handling to be useful. Don't use debconf as registry. (Closes: #332264) [preining] * install debhelper dh_installtexfonts script (closes: #320147) [preining] * A few changes to update-fontlang, most notably that it will now check, when invoked as update-updmap, whether /usr/share/texmf/web2c/updmap.cfg exists and abort with an explanation in that case. [florent] * Translations: - updated Danish debconf translation, thanks to Claus Hindsgaul (closes: #332699) [frank] - updated French debconf translation, thanks to Clément Stenac (closes: #335776) [frank] - updated Italian debconf translation, thanks to Luca Monducci (closes: #336093) [frank] -- Frank Küster Fri, 28 Oct 2005 11:27:48 +0200 tex-common (0.8) unstable; urgency=low * Change hyph_size to 8191 - according to DEK it should be a prime number. [frank] * Add a (closes:...) to the last version's changelog entry to make tracking history easier, in fact the bug has been closed manually [frank]. * fix update-texmf to not go into an endless loop when called with an unknown option [frank] * Modify postrm.in script to remove TEXMFSYSVAR and /var/cache/fonts (thus also removing left over files at purge time) [preining] * manage ls-R files using debconf [preining]. The translations have been copied over from tetex-bin [frank]. (Closes: #328291) * Let the debconf dependency be created by debhelper, thus allowing debconf-2.0 as an alternative [frank] (closes: #332115) * In fact install the pdf version of the Policy draft, but include it in the tar.gz file. Thus we can drop the Build-dependency on tetex-extra. A working TeX system is only needed on the developer's system if the policy source has been changed. -- Frank Küster Wed, 5 Oct 2005 16:14:46 +0200 tex-common (0.7) unstable; urgency=low * take over installation of /var/cache/fonts/*, /usr/local/share/texmf and the ls-R links from tetex (and texlive). [preining] * increase lambdas main_memory to deal with a lot of languages [preining] * move old config files in /usr/share/texmf/web2c out of the way [preining] * remove old formats in /usr/share/texmf/web2c (closes: #323828) [preining] -- Frank Küster Wed, 24 Aug 2005 17:18:34 +0200 tex-common (0.6) unstable; urgency=low * Refine the updmap transition code * Increase hyph_size to 10000, to make the inclusion of current hyphenation exception files (e.g. dehyphtex.tex) possible * Also build a pdf version of the Policy draft, and Build-Depend on tetex-bin. * Move LSRS variable to common.variables -- Frank Küster Wed, 17 Aug 2005 11:04:33 +0200 tex-common (0.5) unstable; urgency=low * Merge update-fmtutil into update-fontlang (closes: #319651) * Fix installation of manpages * add bibtex/csf to texmf variable BSTINPUTS in 65BibTeX.cnf (closes: #319650) * Many thanks to Norbert Preining for providing patches for these changes. * Increase trie_size in 95NonPath.cnf to 27000, to allow TeX-Live build its formats with all languages installed * Editorial changes to the Policy Draft, thanks to Hilmar Preusse * Add compatibility paths for ENCFONTS and TEXFONTMAP in texmf.d (closes: #321074) -- Frank Küster Wed, 3 Aug 2005 12:04:42 +0200 tex-common (0.4) unstable; urgency=low * Bug fix: "tex-common: generalize TEXFONTMAPS and ENCFONTS", thanks to Norbert Preining and Hans Hagen (Closes: #318872). * language.dat is now a generated file in VARTEXMF, and the actual conffiles are in /etc/texmf/language.d. This allows packages to add hyphenation patterns - many thanks again to Norbert. * Merged update-updmap and update-language into one file, and fixed location of memory files in update-updmap * Install the symlink to texmf.cnf -- Frank Küster Mon, 25 Jul 2005 14:22:36 +0200 tex-common (0.3) unstable; urgency=low * provide an upgrade path for the configuration items taken over from tetex-base * Add a versioned conflict on tetex-base - they would remove our 00updmap.cfg file. -- Frank Küster Wed, 6 Jul 2005 17:36:30 +0200 tex-common (0.2) unstable; urgency=low * Install the configuration files needed by teTeX * Bug fix: "tex-common does not install: conflicts with tetex-bin", thanks to Hans Ulrich Niedermann (Closes: #314948). -- Frank Küster Wed, 29 Jun 2005 20:36:47 +0200 tex-common (0.1) unstable; urgency=low * Initial Release. -- Frank Küster Mon, 13 Jun 2005 18:09:55 +0200 ;; Local Variables: ;; coding: utf-8 ;; End: # vim:set fileencoding=utf-8: # tex-common-4.04/debian/dirs0000644000000000000000000000056212157017604012531 0ustar usr/sbin usr/bin usr/share/debhelper/autoscripts usr/share/tex-common usr/share/texmf/web2c usr/share/bug/tex-common usr/share/lintian/overrides etc/texmf/fmt.d etc/texmf/hyphen.d etc/texmf/texmf.d var/lib/texmf/web2c var/lib/texmf/tex/generic/config var/lib/tex-common/hyphen-cnf var/lib/tex-common/fmtutil-cnf var/cache/fonts usr/share/perl5/Debian/Debhelper/Sequence tex-common-4.04/debian/po/0000755000000000000000000000000012157017624012262 5ustar tex-common-4.04/debian/po/cs.po0000644000000000000000000002131112157017604013223 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-11-04 13:18+0100\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Chybějící nezbytný záznam v ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "V ${filename} chybí nezbytný záznam:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Proměnná ${variable} není nastavena." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "Než své konfigurační soubory opravíte, TeX nebude fungovat. Verze souboru " "${filename} poskytovaná balíkem by měla být k dispozici jako ${filename}.ucf-" "dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Konfigurace byla přerušena." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Chybný nezbytný záznam v ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "V ${filename} je chybný nezbytný záznam: ${variable} neobsahuje:" #~ msgid "Exiting." #~ msgstr "Končím." #~ msgid "${pattern}" #~ msgstr "${pattern}" #~ msgid "Change of name of files in /etc/texmf/texmf.d/" #~ msgstr "Změna jmen souborů v /etc/texmf/texmf.d/" #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "Skript update-texmf dříve vytvářel texmf.cnf složením všech souborů z " #~ "adresáře /etc/texmf/texmf.d/. Nyní bere do úvahy pouze soubory s příponou " #~ "'.cnf'." #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Pokud jste v /etc/texmf/texmf.d/ měli vlastní soubory, měli byste nyní k " #~ "jejich názvu přidat '.cnf', tj. z 22mojemakro se stane 22mojemakro.cnf." #~ msgid "" #~ "mktex.cnf in /etc/texmf/ shadows new /usr/share/texmf/web2c/mktex.cnf" #~ msgstr "" #~ "mktex.cnf v /etc/texmf/ zastiňuje nový /usr/share/texmf/web2c/mktex.cnf" #~ msgid "" #~ "The mechanism of TeX font caching has changed, requiring the installation " #~ "of /usr/share/texmf/web2c/mktex.cnf. On your system, /etc/texmf/web2c/" #~ "mktex.cnf exists with possible local changes, and makes the new file " #~ "invisible to TeX. Font caching might not work until the setting of " #~ "MT_FEATURES has been transferred to your configuration file." #~ msgstr "" #~ "Způsob cachování TeXových fontů se změnil a nyní vyžaduje soubor /usr/" #~ "share/texmf/web2c/mktex.cnf. Na vašem systému však již existuje /etc/" #~ "texmf/web2c/mktex.cnf s potenciálními lokálními úpravami, který tento " #~ "nový soubor před TeXem skrývá. Cachování fontů nemusí fungovat dokud do " #~ "svého konfiguračního souboru nepřenesete nastavení MT_FEATURES." #~ msgid "Manage the permissions of the TeX font cache with debconf?" #~ msgstr "" #~ "Spravovat oprávnění k vyrovnávací paměti s TeXovými fonty pomocí debconfu?" #~ msgid "" #~ "A TeX system needs to generate new font data (pixel data, metric, " #~ "sources) on the fly. These files can be saved into the TeX font cache in /" #~ "var/cache/fonts and later reused." #~ msgstr "" #~ "Systém TeX musí za běhu vytvářet nová data týkající se fontů (pixelová " #~ "data, metriky, zdroje). Aby se tato data nemusela vytvářet pokaždé znovu, " #~ "mohou být uložena do vyrovnávací paměti TeXu (/var/cache/fonts) pro " #~ "pozdější znovupoužití." #~ msgid "" #~ "If you do not accept, the font cache directory will be world-writable " #~ "which is a security risk. If you accept, you can specify a group name " #~ "and all directories under /var/cache/fonts will get ownership root:" #~ " and permission bits 3775." #~ msgstr "" #~ "Odpovíte-li záporně, do adresáře s vyrovnávací pamětí fontů budou moci " #~ "zapisovat všichni uživatelé, což je bezpečnostní riziko. Odpovíte-li " #~ "kladně, budete moci zadat jméno skupiny a všechny adresáře pod /var/cache/" #~ "fonts pak budou mít vlastníka root: s právy 3775." #~ msgid "" #~ "If you accept, font generation on multi-user machines will only work for " #~ "users that have been added to the group you chose - this has to be done " #~ "manually by you! On machines used only by a single user, the setup will " #~ "try to automatically detect a suitable group." #~ msgstr "" #~ "Při kladné odpovědi to znamená, že na víceuživatelských stojích bude " #~ "vytváření fontů fungovat pouze pro uživatele, kteří budou součástí " #~ "skupiny, jež vyberete. (Uživatele musíte do do skupiny přidat ručně!) Na " #~ "jednouživatelských počítačích se systém pokusí odhadnout vhodnou skupinu " #~ "automaticky." #~ msgid "" #~ "The default is not to manage permissions with debconf, but this is just " #~ "because this is required for automatic installs on Debian package " #~ "building machines (buildds). In almost every other setup, like desktop " #~ "machines or multi-user servers, accepting this is strongly recommended!" #~ msgstr "" #~ "Výchozí možnost je nepoužívat debconf pro správu oprávnění, ale to je jen " #~ "kvůli automatickým instalacím na počítačích projektu Debian, které slouží " #~ "k sestavování balíků (farmy buildd). V téměř všech ostatních situacích " #~ "(desktopové počítače, víceuživatelské servery) je doporučeno souhlasit." #~ msgid "" #~ "The default is \"users\", Note that on a Debian system, no local user is " #~ "member of the \"users\" group by default, so you have to add them " #~ "manually!" #~ msgstr "" #~ "Výchozí možnost je \"users\", ovšem připomeňme, že ve standardním Debianu " #~ "nepatří do této skupiny žádný uživatel, musíte je tedy přidat ručně!" #~ msgid "Group that should own the TeX font cache:" #~ msgstr "Skupina, která má vlastnit vyrovnávací paměť s TeXovými fonty:" #~ msgid "" #~ "You can choose a specific group which will own all directories under and " #~ "including the TeX font cache /var/cache/fonts. These directories will " #~ "get permission 3775." #~ msgstr "" #~ "Můžete si vybrat konkrétní skupinu, která bude vlastnit adresář s " #~ "vyrovnávací pamětí pro TeXové fonty (/var/cache/fonts) a všechny jeho " #~ "podadresáře. Adresáře budou mít přístupové oprávnění 3775." #~ msgid "" #~ "The setup detected only a single user who works on this system. If this " #~ "is correct, the best choice is to choose this user's private group with " #~ "the same name as the user name." #~ msgstr "" #~ "Balík rozpoznal na tomto systému pouze jediného aktivního uživatele. " #~ "Pokud je to správně, je nejlepší zvolit soukromou skupinu tohoto " #~ "uživatele. Soukromá skupina je stejná jako uživatelovo přihlašovací jméno." #~ msgid "" #~ "If it is incorrect and more users are supposed to work on this machine, " #~ "or if daemons running as system users will use TeX, it is suggested to " #~ "choose an existing group, like \"users\", and add the required users " #~ "manually." #~ msgstr "" #~ "Jestliže tomu tak není a TeX by na tomto počítači mělo používat více " #~ "uživatelů nebo systémových daemonů, měli byste zvolit stávající skupinu " #~ "(např. \"users\") a následně do ní ručně přidat příslušné uživatele." tex-common-4.04/debian/po/de.po0000644000000000000000000005071712157017604013222 0ustar # German translation of tetex-bin debconf templates # Copyright (2004) Frank Kster # Copyright (C) Helge Kreutzmann , 2006, 2007. # I put this file in the Public domain, anybody may use, distribute and # modify it. # msgid "" msgstr "" "Project-Id-Version: tex-common 1.10\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-27 15:19+0200\n" "Last-Translator: Helge Kreutzmann \n" "Language-Team: de \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Essentielle Eintrge fehlen in ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Ein essentieller Eintrag in ${filename} fehlt:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "${variable} ist nicht gesetzt." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX wird nicht funktionieren, bevor Sie Ihre Konfigurations-Dateien " "korrigieren haben. Die Version von ${filename}, die vom Paket bereitgestellt " "wird, sollte als ${filename}.ucf-dist verfgbar sein." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Der Konfigurationsprozess ist abgebrochen worden." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Ungltiger essentieller Eintrag in ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Essentieller Eintrag in ${filename} ungltig: ${variable} enthlt nicht:" #~ msgid "Exiting." #~ msgstr "Beende." #~ msgid "${pattern}" #~ msgstr "${pattern}" #~ msgid "Change of name of files in /etc/texmf/texmf.d/" #~ msgstr "Dateien in /etc/texmf/texmf.d/ wurden umbenannt." #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "texmf.cnf wurde bisher von update-texmf aus allen Dateien in /etc/texmf/" #~ "texmf.d/ erzeugt. Jetzt ist update-texmf gendert worden und liest nur " #~ "Dateien mit der Endung .cnf." #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Sollten Sie daher eigene Dateien in /etc/texmf/texmf.d/ gehabt haben, " #~ "dann sollten Sie .cnf an deren Namen anhngen; beispielsweise 22mymacro " #~ "=> 22mymacro.cnf." #~ msgid "" #~ "mktex.cnf in /etc/texmf/ shadows new /usr/share/texmf/web2c/mktex.cnf" #~ msgstr "" #~ "mktex.cnf in /etc/texmf/ verdeckt neue /usr/share/texmf/web2c/mktex.cnf" #~ msgid "" #~ "The mechanism of TeX font caching has changed, requiring the installation " #~ "of /usr/share/texmf/web2c/mktex.cnf. On your system, /etc/texmf/web2c/" #~ "mktex.cnf exists with possible local changes, and makes the new file " #~ "invisible to TeX. Font caching might not work until the setting of " #~ "MT_FEATURES has been transferred to your configuration file." #~ msgstr "" #~ "Der Mechanismus des TeX Schriften-Cachens ist gendert worden, wodurch " #~ "die Installation von /usr/share/texmf/web2c/mktex.cnf bentigt wird. Auf " #~ "Ihrem System existiert /etc/texmf/web2c/mktex.cnf mitmglichen lokalen " #~ "nderungen wodurch die neue Datei fr TeX unsichtbarwird. Das Cachen der " #~ "Schriften wird mglicherweise nicht funktionieren, bis die Einstellung " #~ "von MT_FEATURES in Ihre Konfigurationsdatei bertragen wurde." #~ msgid "Manage the permissions of the TeX font cache with debconf?" #~ msgstr "Die Rechte des TeX Schriften-Caches mit Debconf verwalten?" #~ msgid "" #~ "A TeX system needs to generate new font data (pixel data, metric, " #~ "sources) on the fly. These files can be saved into the TeX font cache in /" #~ "var/cache/fonts and later reused." #~ msgstr "" #~ "Ein TeX-System muss neue Schriftdaten (Pixel-Daten, Metriken, Quellen) " #~ "instantan erzeugen knnen. Diese Dateien knnen im TeX-Schriften-Cache " #~ "in /var/cache/fonts gespeichert und spter wieder verwendet werden." #~ msgid "" #~ "If you accept, font generation on multi-user machines will only work for " #~ "users that have been added to the group you chose - this has to be done " #~ "manually by you! On machines used only by a single user, the setup will " #~ "try to automatically detect a suitable group." #~ msgstr "" #~ "Falls Sie akzeptieren, wird die Schrifterstellung auf " #~ "Mehrbenutzersystemen nur fr Benutzer erfolgen, die zu der von Ihnen " #~ "ausgewhlten Gruppe hinzugefgt wurden - dieses Hinzufgen muss manuell " #~ "durch Sie erfolgen! Auf Maschinen, die nurvon einem einzelnen Benutzer " #~ "verwendet werden, wird die Einrichtung versuchen, eine geeignete Gruppe " #~ "automatisch zu erkennen." #~ msgid "" #~ "The default is not to manage permissions with debconf, but this is just " #~ "because this is required for automatic installs on Debian package " #~ "building machines (buildds). In almost every other setup, like desktop " #~ "machines or multi-user servers, accepting this is strongly recommended!" #~ msgstr "" #~ "Die Standardeinstellung besteht darin, die Rechte nicht mit Debconf zu " #~ "verwalten, aber dies ist lediglich der Fall, da dies fr das automatische " #~ "Installieren auf Debian Paketbaumaschinen (buildds) bentigt wird. Fr " #~ "nahezu jedes andere Einsatzfeld, wie Arbeitsplatz-Maschinen oder " #~ "Mehrbenutzer-Server, wird nachdrcklich empfohlen, diese Option zu " #~ "akzeptieren!" #~ msgid "" #~ "The default is \"users\", Note that on a Debian system, no local user is " #~ "member of the \"users\" group by default, so you have to add them " #~ "manually!" #~ msgstr "" #~ "Die Standardeinstelung ist users. Beachten Sie, dass auf einem Debian-" #~ "System kein lokaler Benutzer Mitglied der der Gruppe users ist, daher " #~ "mssen Sie die lokalen Benutzer manuell hinzufgen!" #~ msgid "Group that should own the TeX font cache:" #~ msgstr "Gruppe, der der TeX-Schriften-Cache gehren soll:" #~ msgid "" #~ "You can choose a specific group which will own all directories under and " #~ "including the TeX font cache /var/cache/fonts. These directories will " #~ "get permission 3775." #~ msgstr "" #~ "Sie knnen eine spezielle Gruppe auswhlen, der alle Verzeichnisse " #~ "unterhalb und inklusive des TeX-Schriften-Caches /var/cache/fonts " #~ "gehren. Diese Verzeichnisse werden die Rechte 3775 erhalten." #~ msgid "" #~ "If you accept, you can specify a group name and all directories under /" #~ "var/cache/fonts will get ownership root: and permission bits " #~ "3775 (i.e. writable for the group , sticky and setgid bit " #~ "set). Accordingly, the ls-R index file will be owned and writable by that " #~ "group." #~ msgstr "" #~ "Falls Sie zustimmen, knnen Sie einen Gruppen-Namen angeben und alle " #~ "Verzeichnisse unter /var/cache/fonts erhalten den Eigentmer root:" #~ ", die Rechte-Bits 3775 (d.h. schreibbar fr die Gruppe " #~ ", sticky und setgid-Bit sind gesetzt). Dementsprechend " #~ "gehrt die ls-R-Index-Datei dieser Gruppe und ist fr diese Gruppe auch " #~ "schreibbar." #~ msgid "" #~ "An essential entry is wrong in ${filename}: ${variable} does not contain " #~ "${pattern} teTeX will not work without it, you need to fix your " #~ "configuration files. The version of ${filename} that is provided by the " #~ "package should be available as ${filename}.dpkg-dist" #~ msgstr "" #~ "Ein essentieller Eintrag in ${filename} ist fehlerhaft: ${variable} " #~ "enthlt nicht ${pattern}. teTeX wird ohne diesen nicht funktionieren, Sie " #~ "mssen Ihre Konfigurations-Dateien korrigieren. Die Version von " #~ "${filename}, die vom Paket bereitgestellt wird, sollte als ${filename}." #~ "dpkg-dist verfgbar sein." #~ msgid "" #~ "A lot of font files have to be generated before they can be used by xdvi, " #~ "dvips etc. These files are stored in /var/cache/fonts, so that they do " #~ "not need to be regenerated every time. Usually, these files are created " #~ "on-the-fly when needed. Since the directory is group-writable, the ls-R " #~ "file should be the same" #~ msgstr "" #~ "Viele Schriftendateien mssen erst erzeugt werden bevor sie von xdvi, " #~ "dvips usw.) verwendet werden knnen. Diese Dateien werden in /var/cache/" #~ "fonts gelagert, so dass sie nicht jedesmal neu erzeugt werden mssen. " #~ "Normalerweise werden sie bei Bedarf instantan erzeugt. Da das Verzeichnis " #~ "fr die Gruppe schreibbar ist, sollte dies auch fr die ls-R-Datei gelten." #~ msgid "" #~ "Accepting this option will allow you to easily manage the permissions of " #~ "those ls-R files using debconf. Otherwise you will have to manually " #~ "ensure that they get useful but safe permissions." #~ msgstr "" #~ "Falls Sie diese Option akzeptieren, dann knnen Sie die Rechte dieser ls-" #~ "R-Dateien leicht mit Debconf verwalten. Andernfalls mssen Sie manuell " #~ "sicherstellen, dass diese Dateien sinnvolle aber auch sichere Rechte " #~ "erhalten." #~ msgid "" #~ "Modification of ls-R files can be restricted to the members of one group " #~ "which owns them. To take advantage of this, add the users to the group " #~ "of your choice, and enter that group name here. The default group, " #~ "'users', is appropriate for most systems." #~ msgstr "" #~ "Das Recht zur Vernderung von ls-R-Dateien kann auf die Mitglieder einer " #~ "Gruppe beschrnkt werden, der diese Dateien gehren. Um dies zu nutzen, " #~ "fgen Sie die Benutzer der Gruppe Ihrer Wahl hinzu, und geben Sie den " #~ "Gruppennamen hier ein. Der Vorschlag users ist fr die meisten Systeme " #~ "geeignet." #~ msgid "Allow group members to modify ls-R files?" #~ msgstr "Gruppenmitgliedern erlauben, ls-R-Dateien zu verndern?" #~ msgid "" #~ "Accepting this option will allow members of the owning group to modify " #~ "the ls-R files." #~ msgstr "" #~ "Falls Sie diese Option akzeptieren, dann drfen alle Mitglieder der " #~ "Gruppe, der die ls-R-Dateien gehren, diese Dateien verndern. " #~ msgid "Allow all users to modify ls-R files?" #~ msgstr "Allen Benutzern die Vernderung von ls-R-Dateien erlauben?" #~ msgid "" #~ "Accepting this option will allow all users to modify ls-R files. This is " #~ "generally not a good idea for security reasons; you should instead " #~ "restrict such access to members of one group." #~ msgstr "" #~ "Falls Sie diese Option akzeptieren, knnen alle Benutzer ls-R-Dateien " #~ "verndern. Dies ist aus Sicherheitsgrnden normalerweise keine gute " #~ "Lsung; stattdessen sollten Sie den Schreibzugriff auf Mitglieder einer " #~ "Gruppe beschrnken." #~ msgid "Use debconf to manage permissions of ls-R files?" #~ msgstr "Soll Debconf die Zugriffsrechte der ls-R-Dateien verwalten?" #~ msgid "Use update-fmtutil to automatically generate fmtutil.cnf?" #~ msgstr "Soll fmtutil.cnf automatisch von update-fmtutil erzeugt werden?" #~ msgid "" #~ "The file fmtutil.cnf is the central configuration file for TeX engines. " #~ "Automatic generation is recommended to make the setup work with other TeX-" #~ "related packages." #~ msgstr "" #~ "Die Datei fmtutil.cnf ist die zentrale Konfigurationsdatei fr TeX-" #~ "Programme. Die automatisch Erzeugung der Datei wird empfohlen, damit die " #~ "Einstellungen fr andere TeX-bezogene Pakete funktionieren." #~ msgid "" #~ "After accepting this option, you should not edit fmtutil.cnf directly but " #~ "instead modify the files in /etc/texmf/fmt.d/ and run update-fmtutil. " #~ "The generated fmtutil.cnf will then be placed under /var/lib/texmf/web2c/." #~ msgstr "" #~ "Nachdem Sie diese Option akzeptiert haben, sollten sie fmtutil.cnf " #~ "nicht direkt verndern, sondern stattdessen die Dateien in /etc/texmf/fmt." #~ "d/ und danach update-fmtutil aufrufen. Die erzeugte fmtutil.cnf wird " #~ "dann in /var/lib/texmf/web2c/ abgelegt." #~ msgid "" #~ "If you need to keep using an existing fmtutil.cnf then you may refuse " #~ "this option and maintain /etc/texmf/fmtutil.cnf manually. However, " #~ "installation of some TeX-related packages will fail unless you accept " #~ "this option." #~ msgstr "" #~ "Falls Sie eine existierende fmtutil.cnf weiterverwenden mssen, dann " #~ "lehnen Sie diese Option ab und verwalten Sie /etc/texmf/fmtutil.cnf " #~ "manuell. Allerdings wird die Installation einiger TeX-bezogener Programme " #~ "fehlschlagen, falls Sie diese Option nicht akzeptieren." #~ msgid "Use update-updmap to automatically generate updmap.cfg?" #~ msgstr "update-updmap verwenden, um updmap.cfg automatisch zu erzeugen?" #~ msgid "" #~ "The file updmap.cfg is the central configuration file for the font system " #~ "of TeX. Automatic generation is recommended to make the setup work with " #~ "TeX font packages." #~ msgstr "" #~ "Die Datei updmap.cfg ist die zentrale Konfigurationsdatei des " #~ "Schriftsystems von TeX. Automatisches Erzeugen ist empfohlen, damit die " #~ "Einstellungen fr TeX-Schriften-Pakete funktionieren." #~ msgid "" #~ "After accepting this option, you should not edit updmap.cfg directly but " #~ "instead modify the files in /etc/texmf/updmap.d/ and run update-updmap. " #~ "The generated updmap.cfg will be placed under /var/lib/texmf/web2c." #~ msgstr "" #~ "Falls Sie diese Option akzeptiert haben, sollten Sie updmap.cfg nicht " #~ "direkt editieren, sondern stattdessen die Dateien in /etc/texmf/updmap.d/ " #~ "verndern und dann update-updmap aufrufen. Die erzeugte updmap.cfg wird " #~ "dann unter /var/lib/texmf/web2c abgelegt." #~ msgid "" #~ "If you need to keep an existing updmap.cfg then you may refuse this " #~ "option and maintain /etc/texmf/updmap.cfg manually. However, " #~ "installation of TeX fonts will fail unless you accept this option." #~ msgstr "" #~ "Falls Sie eine existierende updmap.cfg behalten mssen, dann knnen Sie " #~ "diese Option ablehnen und /etc/texmf/updmap.cfg manuell konfigurieren. " #~ "Allerdings wird die Installation von TeX-Schriften versagen falls Sie " #~ "diese Option ablehnen." #~ msgid "Files in /etc/texmf/texmf.d/ must be renamed." #~ msgstr "Dateien in /etc/texmf/texmf.d/ mssen umbenannt werden." #~ msgid "Remove old (and harmful) file /etc/X11/Xresources/tetex-base?" #~ msgstr "" #~ "Alte (und schdliche) Datei /etc/X11/Xresources/tetex-base entfernen?" #~ msgid "" #~ "An old version of tetex-bin installed /etc/X11/Xresources/tetex-base, but " #~ "it is now unused and it is even harmful for it to exist. It is strongly " #~ "recommended to let the installation script remove this file right now!" #~ msgstr "" #~ "Eine frhere Versionen von tetex-bin installierte die Datei /etc/X11/" #~ "Xresources/tetex-base. Diese Datei wird nicht mehr benutzt, und es ist " #~ "sogar schdlich, wenn sie existiert. Es wird dringend empfohlen, diese " #~ "Datei jetzt durch die Installationsskripte entfernen zu lassen!" #~ msgid "Remove this file?" #~ msgstr "Diese Datei jetzt entfernen?" #~ msgid "Manage language.dat with debconf?" #~ msgstr "language.dat mit debconf verwalten?" #~ msgid "" #~ "The language.dat file, which determines which hyphenation patterns are " #~ "enabled, can be handled by debconf." #~ msgstr "" #~ "Die Datei language.dat bestimmt, welche Silbentrennmuster aktiviert sind. " #~ "Sie kann automatisch von debconf verwaltet werden." #~ msgid "" #~ "If you do not choose this, one pattern set for each supported language " #~ "will be enabled (two for german, with old and new orthography). You can " #~ "choose debconf management if you want to exclude some patterns and get " #~ "smaller (La)TeX format files. Manual editing is still possible, and your " #~ "changes will be preserved." #~ msgstr "" #~ "Falls Sie dies nicht whlen, wird ein Muster fr jede untersttzte " #~ "Sprache aktiviert (zwei fr Deutsch, fr die alte und neue " #~ "Rechtschreibung). Sie knnen die Verwaltung mit debconf whlen, um einige " #~ "Muster auszuschlieen und kleinere (La)TeX-Format-Dateien zu erhalten. " #~ "Manuelle nderungen sind weiterhin mglich und Ihre nderungen werden " #~ "erhalten." #~ msgid "Which hyphenation patterns should be loaded?" #~ msgstr "Welche Silbentrennmuster sollen geladen werden?" #~ msgid "" #~ "If you want to load extra hyphenation pattern(s) please select them from " #~ "the list." #~ msgstr "" #~ "Falls Sie zustzliche Trennmuster laden wollen, whlen Sie sie bitte aus " #~ "der Liste aus." #~ msgid "" #~ "If you want to change hyphenation pattern(s) afterwards, you may do so " #~ "with \"dpkg-reconfigure tetex-bin\". Manual editing is still possible, " #~ "and your changes will be preserved." #~ msgstr "" #~ "Falls Sie spter die Auswahl der Trennmuster ndern wollen, knnen Sie " #~ "mit dpkg-reconfigure tetex-bin erneut diesen Dialog aufrufen. Manuelle " #~ "Bearbeitung ist weiterhin mglich, und Ihre nderungen werden erhalten." #~ msgid "TeX format generation failed." #~ msgstr "Erzeugung der TeX-Format-Dateien ist gescheitert." #~ msgid "" #~ "The generation of some of the format files needed to run TeX, LaTeX etc. " #~ "has failed. You will not be able to run these programs until this is " #~ "fixed." #~ msgstr "" #~ "Die Erzeugung einiger Format-Dateien, die zum Ausfhren von TeX, LaTeX " #~ "usw. bentigt werden, ist gescheitert. Diese Programme knnen nicht " #~ "ausgefhrt werden, bis dies korrigiert ist." #~ msgid "" #~ "The most frequent cause for such a failure is that a new version of tetex-" #~ "bin changed configuration files, but you did not accept the maintainers' " #~ "version of a file you manually changed." #~ msgstr "" #~ "Die hufigste Ursache fr solche Fehler ist, dass eine neue Version von " #~ "tetex-bin Konfigurationsdateien gendert hat, aber Sie die Version des " #~ "Paketbetreuers einer von Ihnen selbst genderten Datei nicht akzeptiert " #~ "haben." #~ msgid "" #~ "If you report this as a bug, please include the output of fmtutil, stored " #~ "in ${fmtutil_tempfile}" #~ msgstr "" #~ "Falls Sie dies als Fehler melden, senden Sie bitte die Ausgabe von " #~ "fmtutil, die in ${fmtutil_tempfile} gespeichert ist, mit." #~ msgid "Generation of TeX font information failed." #~ msgstr "Erzeugung der Schriftinformationen fr TeX ist gescheitert." #~ msgid "" #~ "The generation of the font map files by the updmap script failed. " #~ "Therefore, TeX, LaTeX etc. will have problems finding the font files they " #~ "need." #~ msgstr "" #~ "Die Erzeugung der font-map-Dateien durch das Skript updmap ist " #~ "gescheitert. Daher werden TeX, LaTeX usw. Probleme haben, die bentigten " #~ "Schriftdateien zu finden." #~ msgid "" #~ "If you report this as a bug, please include the output of updmap, stored " #~ "in ${updmap_tempfile}" #~ msgstr "" #~ "Falls Sie dies als Fehler melden, senden Sie bitte die Ausgabe von " #~ "updmap, die in ${updmap_tempfile} gespeichert ist, mit." #~ msgid "" #~ "We will preserve any manual changes you have made or will make. If you do " #~ "not select this option, you will have to do everything manually." #~ msgstr "" #~ "Dabei bleiben alle manuellen Vernderungen von Ihnen erhalten. Falls Sie\n" #~ "diese Option nicht auswhlen, mssen Sie alles manuell konfigurieren." #~ msgid "" #~ "NOTE: to load too many hyphenation patterns might cause 'TeX capacity " #~ "exceeded' errors." #~ msgstr "" #~ "ACHTUNG: Das Laden zu vieler Silbentrennmuster kann die Fehlermeldung " #~ "TeX capacity exceeded auslsen." #~ msgid "users" #~ msgstr "users" #~ msgid "" #~ "The metafont program can store fonts generated by users running xdvi, " #~ "dvips, etc. so they need not be re-generated repeatedly. They are stored " #~ "in /var/lib/texmf and /var/cache/fonts, with \"ls-R\" file lists showing " #~ "where the font files are stored." #~ msgstr "" #~ "Viele Schriftdateien mssen zur Benutzung in xdvi, dvips usw. erst aus " #~ "den metafont-Quellen erzeugt werden. Diese Dateien knnen in und /var/" #~ "cache/fontsgespeichert werden, damit sie nicht jedesmal neu erzeugt " #~ "werden mssen. ls-R-Dateien zeigen dem System, welche Dateien bereits " #~ "vorhanden sind,und wo." tex-common-4.04/debian/po/templates.pot0000644000000000000000000000313512157017604015004 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "" #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "" #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" tex-common-4.04/debian/po/tr.po0000644000000000000000000001531612157017604013253 0ustar # translation of tr.po to Turkish # Turkish translation of tetex-bin. # This file is distributed under the same license as the tetex-bin package. # # Osman Yksel , 2004, 2006. msgid "" msgstr "" "Project-Id-Version: tr\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2006-10-28 19:29+0200\n" "Last-Translator: Osman Yksel \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: KBabel 1.11.1\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "${filename} dosyasnda gerekli bir girdi eksik" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "${filename} dosyasnda gerekli bir girdi eksik:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "${variable} iin ayar yok." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 #, fuzzy #| msgid "" #| "TeX will not work without it, you need to fix your configuration files. " #| "The version of ${filename} that is provided by the package should be " #| "available as ${filename}.ucf-dist." msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX bu olmadan alamaz. Yaplandrma dosyalarnz dzeltmeniz " "gerekiyor. Paket tarafndan salanan ${filename} dosyasna ${filename}.ucf-" "dist adyla ulaabilirsiniz." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "" #. Type: error #. Description #: ../templates:3001 #, fuzzy #| msgid "Essential entry wrong in ${filename}" msgid "Invalid essential entry in ${filename}" msgstr "${filename} dosyasndaki gerekli bir girdi yanl" #. Type: error #. Description #: ../templates:3001 #, fuzzy #| msgid "" #| "An essential entry is wrong in ${filename}: ${variable} does not contain" msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "${filename} dosyasnda gerekli bir girdi yanl: ${variable} iermiyor" #~ msgid "Exiting." #~ msgstr "klyor." #~ msgid "${pattern}" #~ msgstr "${pattern}" #~ msgid "Change of name of files in /etc/texmf/texmf.d/" #~ msgstr "/etc/texmf/texmf.d/ altndaki dosya ad deiiklikleri" #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "texmf.cnf, update-texmf komutu ile /etc/texmf/texmf.d/ iindeki tm " #~ "dosyalardan oluturuldu. imdi update-texmf deitirildi ve u anda " #~ "sadece '.cnf' uzantl dosyalar okuyor." #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Eer /etc/texmf/texmf.d/ iinde zel bir dosyanz varsa, bunun ismine '." #~ "cnf' uzantsn ekleyin; rnein, 22mymacro => 22mymacro.cnf ." #~ msgid "Manage the permissions of the TeX font cache with debconf?" #~ msgstr "TeX yaz tipi nbellei yetkileri debconf ile ynetilsin mi?" #, fuzzy #~ msgid "" #~ "A TeX system needs to generate new font data (pixel data, metric, " #~ "sources) on the fly. These files can be saved into the TeX font cache in /" #~ "var/cache/fonts and later reused." #~ msgstr "" #~ "Bir TeX sistemi (benek verileri, ller, kaynaklar gibi) yaztipi " #~ "verilerini anlk oluturabilmelidir. Bu dosyalar /var/cache/fonts " #~ "altndaki TeX yaztipi nbelleine kaydedilir ve daha sonra yeniden " #~ "kullanlr." #, fuzzy #~ msgid "" #~ "If you accept, font generation on multi-user machines will only work for " #~ "users that have been added to the group you chose - this has to be done " #~ "manually by you! On machines used only by a single user, the setup will " #~ "try to automatically detect a suitable group." #~ msgstr "" #~ "E?er onaylarsan?z, yaz? tipi olu?turulmas?, sadece seti?iniz gruptaki -" #~ "bunu kendiniz elinizle yapmal?s?n?z - kullan?c?lar iin al??t?" #~ "rlabilecektir." #, fuzzy #~ msgid "" #~ "The default is not to manage permissions with debconf, but this is just " #~ "because this is required for automatic installs on Debian package " #~ "building machines (buildds). In almost every other setup, like desktop " #~ "machines or multi-user servers, accepting this is strongly recommended!" #~ msgstr "" #~ "Dier Debian paketlerinin de oluturulabilmesi iin, ntanml olarak " #~ "izinler debconf ile ynetilmez, ancak bu sadece di?er Debian paketlerini " #~ "olu?utrabilmek iin byle ayarlanm??t?r. Masast bilgisayarlar veya ok " #~ "kullancl sunucular gibi dier tm kurulumlarda bunu kabul etmeniz (ve " #~ "kullan?c?lar? gruba eklemeniz) iddetle nerilir!" #, fuzzy #~ msgid "" #~ "The default is \"users\", Note that on a Debian system, no local user is " #~ "member of the \"users\" group by default, so you have to add them " #~ "manually!" #~ msgstr "" #~ "Debian'da nobody kullan?c?s?n?n ntan?ml? olarak, \"users\" grubuna dahil " #~ "oldu?unu, bu yzden yerel kullan?c?l?lar?n elle eklenmesi gerekti?ini " #~ "unutmay?n." #, fuzzy #~ msgid "Group that should own the TeX font cache:" #~ msgstr "TeX nbelleinin sahibi olan grup" #~ msgid "" #~ "You can choose a specific group which will own all directories under and " #~ "including the TeX font cache /var/cache/fonts. These directories will " #~ "get permission 3775." #~ msgstr "" #~ "TeX yaztipi nbelleini de ieren /var/cache/fonts dizini sahiplii " #~ "iin belli bir grup belirleyebilirsiniz. Bu dizinler 3775 izinlerini " #~ "alacaktr." #, fuzzy #~ msgid "" #~ "If you accept, you can specify a group name and all directories under /" #~ "var/cache/fonts will get ownership root: and permission bits " #~ "3775 (i.e. writable for the group , sticky and setgid bit " #~ "set). Accordingly, the ls-R index file will be owned and writable by that " #~ "group." #~ msgstr "" #~ "Eer kabul ederseniz /var/cache/fonts altndaki tm dizinlerin " #~ "sahiplikleri belirlediiniz bir grup adna gre root: ve " #~ "izinleri de 3775 (yani grubu tarafndan yazlabilir ve, " #~ "yapkan [\"sticky\"] ve \"setgid\" bayraklar etkinletirilmi) " #~ "olacaktr. Buna gre, ls-R dosyasnn sahibi bu grup olacak ve bu grup " #~ "tarafndan yazlabilecektir." tex-common-4.04/debian/po/ko.po0000644000000000000000000000414412157017604013234 0ustar # Korean translations for tex-common package # tex-common 패키지에 대한 한국어 번역문. # Sunjae Park , 2007. # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-28 21:46-0400\n" "Last-Translator: Sunjae Park \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "${filename}에 꼭 필요한 항목이 없음" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "${filename}에 꼭 필요한 항목이 없습니다:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "${variable}를 지정하지 않았습니다." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "설정파일을 고치기 전에는 TeX이 동작하지 않습니다. 꾸러미에서 제공한 " "${filename}의 버전은 ${filename}.ucf-dist로 확인하실 수 있습니다." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "설정 과정을 취소했습니다." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "${filename}에 꼭 필요한 항목이 잘못되었음" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "${filename}에 꼭 필요한 항목이 잘못되었음: ${variable}에 없습니다:" tex-common-4.04/debian/po/nb.po0000644000000000000000000000412512157017604013221 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the tex-common package. # Hans Fredrik Nordhaug , 2007. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-11-12 07:04+0100\n" "Last-Translator: Hans Fredrik Nordhaug \n" "Language-Team: Norwegian Bokmål \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Essensiell oppføring mangler i ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "En essensiell oppføring mangler i ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Variabel ${variable} er ikke satt." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX virker ikke før konfigurasjonsfilene er fikset. Versjonen av ${filename} " "som tilbys av pakken må være tilgjengelige som ${filename}.ufc-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Konfigurasjonen er avbrutt." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Ugyldig essensiell oppføring ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "En essensiell oppføring er ugyldig i ${filename}: ${variable} inneholder " "ikke:" tex-common-4.04/debian/po/ru.po0000644000000000000000000000475012157017604013254 0ustar # translation of ru.po to Russian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Yuri Kozlov , 2007. msgid "" msgstr "" "Project-Id-Version: 1.10\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-28 09:14+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Отсутствие обязательной записи в ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Отсутствует обязательная запись в ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Не задано значение ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX не будет работать пока конфигурационные файлы не будут исправлены. " "Версия ${filename}, предоставляемая этим пакетом, доступна под именем " "${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Процесс настройки был отменён." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Неправильная обязательная запись в ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "Ошибки в обязательной записи в ${filename}: ${variable} не содержит:" tex-common-4.04/debian/po/sv.po0000644000000000000000000000507512157017604013257 0ustar # translation of tex-common_1.11_sv.po to Swedish # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # # Martin gren , 2008. msgid "" msgstr "" "Project-Id-Version: tex-common_1.11_sv\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2008-07-19 11:51+0200\n" "Last-Translator: Martin gren \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Ndvndig post saknas i ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "En ndvndig post saknas i ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Ingen instllning fr ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX kommer inte att fungera frrn konfigurationsfilerna har rttats till. " "Den version av ${filename} som tillhandahlls av paketet br finnas " "tillgnglig som ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Konfigurationsfrloppet har avbrutits." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Felaktig ndvndig post i ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "En ndvndig post r felaktig i ${filename}: ${variable} innehller inte:" tex-common-4.04/debian/po/eu.po0000644000000000000000000000415712157017604013240 0ustar # translation of tex-common-eu.po to Euskara # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Piarres Beobide , 2007. msgid "" msgstr "" "Project-Id-Version: tex-common-eu\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-29 11:57+0100\n" "Last-Translator: Piarres Beobide \n" "Language-Team: Euskara \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Beharrezko sarrera falta ${filename}-(e)n" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Beharrezko sarrera bat falta da ${filename}-(e)n:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr " ${variable} ez dago ezarririk." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "Tex-ek ez du funtzionatuko konfigurazio fitxategiak konpondu arte. Paketeak " "hornitzen duen ${filename} fitxategiaren bertsioa ${filename}.ucf-dist " "bezala gorderik dago." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Konfigurazio prozesua etena izan da." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Beharrezko sarrera baliogabea ${filename}-(e)n" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Beharrezko sarrera baliogabea ${filename}-(e)n: ${variable}-(a)k ez du:" tex-common-4.04/debian/po/es.po0000644000000000000000000006326412157017604013242 0ustar # # tetex-bin po-debconf translation to spanish # Copyright (C) 2004 Software in the Public Interest # This file is distributed under the same license as the tetex-bin package. # # Changes: # - Initial translation # Carlos Valdivia Yagüe , 2003 # - Revisions # Javier Fernandez-Sanguino Peña , 2004-2007 # # Notas: # # - font -> Fuente tipográfica # - hyphenation pattern -> reglas de división de palabras # # Traductores, si no conoce el formato PO, merece la pena leer la # documentación de gettext, especialmente las secciones dedicadas a este # formato, por ejemplo ejecutando: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Equipo de traducción al español, por favor lean antes de traducir # los siguientes documentos: # # - El proyecto de traducción de Debian al español # http://www.debian.org/intl/spanish/coordinacion # especialmente las notas de traducción en # http://www.debian.org/intl/spanish/notas # # - La guía de traducción de po's de debconf: # /usr/share/doc/po-debconf/README-trans # o http://www.debian.org/intl/l10n/po-debconf/README-trans # msgid "" msgstr "" "Project-Id-Version: tetex-bin 2.0.2-5.1\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-29 23:28+0100\n" "Last-Translator: Javier Fernandez-Sanguino Peña \n" "Language-Team: Debian l10n spanish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Falta una entrada esencial en ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Falta una entrada esencial en ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "No está establecida ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX no funcionará hasta que no se arreglen los archivos de configuración. La " "versión que el paquete ofrece de ${filename} debería estar disponible en " "«${filename}.ucf-dist»." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Se ha interrumpido el proceso de configuración." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Entrada esencial en ${filename} inválida" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Hay una entrada esencial en ${filename} inválida: ${variable} no contiene:" #~ msgid "Exiting." #~ msgstr "Saliendo." #~ msgid "${pattern}" #~ msgstr "${pattern}" #~ msgid "Change of name of files in /etc/texmf/texmf.d/" #~ msgstr "Cambio de nombre de los ficheros en /etc/texmf/texmf.d/" #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "update-texmf ha generado texmf.cnf a partir de los ficheros presentes en /" #~ "etc/texmf/texmf.d/. Sin embargo, update-texmf sólo leerá a partir de " #~ "ahora ficheros con la extensión «.cnf»." #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Si tenía algún fichero privado en /etc/texmf/texmf.d/, añádale la " #~ "extensión «.cnf» (por ejemplo, 22mymacro pasaría a ser 22mymacro.cnf)." #~ msgid "" #~ "mktex.cnf in /etc/texmf/ shadows new /usr/share/texmf/web2c/mktex.cnf" #~ msgstr "" #~ "mktex.cnf en /etc/texmf/ ocula al nuevo /usr/share/texmf/web2c/mktex.cnf" #~ msgid "" #~ "The mechanism of TeX font caching has changed, requiring the installation " #~ "of /usr/share/texmf/web2c/mktex.cnf. On your system, /etc/texmf/web2c/" #~ "mktex.cnf exists with possible local changes, and makes the new file " #~ "invisible to TeX. Font caching might not work until the setting of " #~ "MT_FEATURES has been transferred to your configuration file." #~ msgstr "" #~ "Se ha modificado el mecanismo de cacheado de fuentes tipográficas en TeX " #~ "lo que hace necesario instalar /usr/share/texmf/web2c/mktex.cnf. El " #~ "fichero /etc/texmf/web2c/mktex.cnf existe en sus sistema con lo que " #~ "podrían ser cambios locales y hace que el nuevo fichero sea invisible " #~ "para TeX. No se podrá hacer ese cacheado de tipográficas hasta que no " #~ "transfiera la configuración de «MT_FEATURES» a su fichero de " #~ "configuración." #~ msgid "Manage the permissions of the TeX font cache with debconf?" #~ msgstr "" #~ "¿Desea gestionar los permisos de la caché de fuentes tipográficas con " #~ "debconf?" #~ msgid "" #~ "A TeX system needs to generate new font data (pixel data, metric, " #~ "sources) on the fly. These files can be saved into the TeX font cache in /" #~ "var/cache/fonts and later reused." #~ msgstr "" #~ "Un sistema TeX tiene que generar datos de fuentes tipográficas (número de " #~ "pixels, métricas y fuentes) sobre la marcha. Estos ficheros se pueden " #~ "guardar en la caché de fuentes tipográficas en /var/cache/fonts para " #~ "poder reutilizarlos más adelante." #~ msgid "" #~ "If you accept, font generation on multi-user machines will only work for " #~ "users that have been added to the group you chose - this has to be done " #~ "manually by you! On machines used only by a single user, the setup will " #~ "try to automatically detect a suitable group." #~ msgstr "" #~ "En caso de que acepte la generación de fuentes en sistemas multiusuario " #~ "sólo funcionará para los usuarios que pertenezcan al grupo que haya " #~ "elegido. Tenga en cuenta que vd. debe asignar manualmente los usuarios a " #~ "dicho grupo. Se intentará determinar el grupo apropiado en los equipos de " #~ "un sólo usuario." #~ msgid "" #~ "The default is not to manage permissions with debconf, but this is just " #~ "because this is required for automatic installs on Debian package " #~ "building machines (buildds). In almost every other setup, like desktop " #~ "machines or multi-user servers, accepting this is strongly recommended!" #~ msgstr "" #~ "El valor por omisión es no gestionar los permisos con debconf, pero ésto " #~ "sólo se hace porque es necesario para instalaciones automáticas en los " #~ "sistemas de compilación de Debian («buildds»). Lo recomendable en " #~ "cualquier otro entorno (como pudieran ser equipos de escritorio o " #~ "servidores multi-usuario) es que acepte esta opción." #~ msgid "" #~ "The default is \"users\", Note that on a Debian system, no local user is " #~ "member of the \"users\" group by default, so you have to add them " #~ "manually!" #~ msgstr "" #~ "El valor por omisión es «users». Tenga en cuenta que en un sistema Debian " #~ "no hay ningún usuario que pertenezca al grupo «users» por omisión. ¡Debe " #~ "añadir a los usuarios a este grupo manualmente!" #~ msgid "Group that should own the TeX font cache:" #~ msgstr "" #~ "Grupo al que debe pertenecer la caché de fuentes tipográficas de TeX:" #~ msgid "" #~ "You can choose a specific group which will own all directories under and " #~ "including the TeX font cache /var/cache/fonts. These directories will " #~ "get permission 3775." #~ msgstr "" #~ "Puede indicar un grupo concreto al que pertenecerán todos los directorios " #~ "bajo la caché de fuentes tipográficas «/var/cache/fonts», inclusive. Se " #~ "utilizarán los permisos 3755 para estos directorios." #~ msgid "" #~ "If you accept, you can specify a group name and all directories under /" #~ "var/cache/fonts will get ownership root: and permission bits " #~ "3775 (i.e. writable for the group , sticky and setgid bit " #~ "set). Accordingly, the ls-R index file will be owned and writable by that " #~ "group." #~ msgstr "" #~ "Si responde afirmativamente a la pregunta, podrá especificar el nombre de " #~ "un grupo y todos los directorios bajo «/var/cache/fonts» pertenecerán a " #~ "root: y tendrá permisos 3755 (es decir, el grupo podrá escribir en éstos y tendrán los bits «sticky» y «setgid» " #~ "definidos). Además, el archivo de índice ls-R pertenecerá al grupo y éste " #~ "podrá sobreescribirlo." #~ msgid "" #~ "A lot of font files have to be generated before they can be used by xdvi, " #~ "dvips etc. These files are stored in /var/cache/fonts, so that they do " #~ "not need to be regenerated every time. Usually, these files are created " #~ "on-the-fly when needed. Since the directory is group-writable, the ls-R " #~ "file should be the same" #~ msgstr "" #~ "Se deben generar un elevando número de ficheros de fuentes tipográficas " #~ "antes de que pueda utilizarlos «xdvi», «dvips», etc. Estos ficheros se " #~ "almacenan en «/var/cache/fonts» para no tener que generarlos cada vez. " #~ "Estos ficheros habitualmente se crean sobre la marcha cuando se " #~ "necesitan. Dado que el grupo puede escribir en el directorio el ficher " #~ "fichero ls-R debería ser el mismo." #~ msgid "" #~ "Accepting this option will allow you to easily manage the permissions of " #~ "those ls-R files using debconf. Otherwise you will have to manually " #~ "ensure that they get useful but safe permissions." #~ msgstr "" #~ "Si acepta esta opción le permitirá gestionar con sencillez los permisos " #~ "de dichos ficheros ls-R usando debconf. Si no, tendrá que asegurarse " #~ "manualmente de que tienen los permisos restrictivos pero útiles." #~ msgid "" #~ "Modification of ls-R files can be restricted to the members of one group " #~ "which owns them. To take advantage of this, add the users to the group " #~ "of your choice, and enter that group name here. The default group, " #~ "'users', is appropriate for most systems." #~ msgstr "" #~ "Se puede restringir la modificación de los ficheros ls-R a los miembros " #~ "del grupo al que pertenence. Para hacer uso de esta característica, añada " #~ "los usuarios al grupo que elija, e introduzca su nombre a continuación. " #~ "En la mayoría de los sistemas, la opción predeterminada «users» es " #~ "apropiada." #~ msgid "Allow group members to modify ls-R files?" #~ msgstr "¿Permitir a los miembros del grupo modificar los ficheros ls-R?" #~ msgid "" #~ "Accepting this option will allow members of the owning group to modify " #~ "the ls-R files." #~ msgstr "" #~ "Si acepta esta opción, los miembros del grupo elegido podrán modificar " #~ "los ficheros ls-R." #~ msgid "Allow all users to modify ls-R files?" #~ msgstr "¿Permitir a todos los usuarios modificar los ficheros ls-R?" #~ msgid "" #~ "Accepting this option will allow all users to modify ls-R files. This is " #~ "generally not a good idea for security reasons; you should instead " #~ "restrict such access to members of one group." #~ msgstr "" #~ "Si acepta esta opción, todos los usuarios podrán modificar los ficheros " #~ "ls-R. En general, no es una buena idea por razones de seguridad, y " #~ "debería restringir esa posibilidad a los miembros de un solo grupo." #~ msgid "Use debconf to manage permissions of ls-R files?" #~ msgstr "¿Usar debconf para gestionar los permisos de los ficheros ls-R?" #~ msgid "Use update-fmtutil to automatically generate fmtutil.cnf?" #~ msgstr "" #~ "¿Desea utilizar «update-fmtutil» para generar de forma automática " #~ "«fmtutil.cnf»?" #~ msgid "" #~ "The file fmtutil.cnf is the central configuration file for TeX engines. " #~ "Automatic generation is recommended to make the setup work with other TeX-" #~ "related packages." #~ msgstr "" #~ "El fichero fmtutil.cnf es el lugar de configuración central para los " #~ "motores TeX. Se recomienda la generación automática para que la " #~ "configuración funcione con otros paquetes relacionados con TeX." #~ msgid "" #~ "After accepting this option, you should not edit fmtutil.cnf directly but " #~ "instead modify the files in /etc/texmf/fmt.d/ and run update-fmtutil. " #~ "The generated fmtutil.cnf will then be placed under /var/lib/texmf/web2c/." #~ msgstr "" #~ "No debería editar fmtutil.cnf directamente si acepta esta opción, en " #~ "lugar de ésto, modifique los ficheros bajo «/etc/texmf/fmt.d/». El " #~ "fichero fmtutil.cnf que se genere se guardará posteriormente en /var/lib/" #~ "texmf/web2c." #~ msgid "" #~ "If you need to keep using an existing fmtutil.cnf then you may refuse " #~ "this option and maintain /etc/texmf/fmtutil.cnf manually. However, " #~ "installation of some TeX-related packages will fail unless you accept " #~ "this option." #~ msgstr "" #~ "Si desea seguir usando un fmtutil.cnf que ya exista puede no aceptar esta " #~ "opción y mantener /etc/texmf/fmtutil.cnf manualmente. Tenga en cuenta que " #~ "es posible que no funcione la instalación automática de algunos " #~ "componentes de TeX si no acepta esta opción." #~ msgid "Use update-updmap to automatically generate updmap.cfg?" #~ msgstr "" #~ "¿Desea utilizar «update-updmap» para generar automáticamente updmap.cfg?" #~ msgid "" #~ "The file updmap.cfg is the central configuration file for the font system " #~ "of TeX. Automatic generation is recommended to make the setup work with " #~ "TeX font packages." #~ msgstr "" #~ "El fichero updmap.cfg es el punto de configuración centrar para las " #~ "fuentes tipográficas de TeX del sistema. Se recomienda la generación " #~ "automática para que la configuración funcione con los paquetes de fuentes " #~ "de TeX." #~ msgid "" #~ "After accepting this option, you should not edit updmap.cfg directly but " #~ "instead modify the files in /etc/texmf/updmap.d/ and run update-updmap. " #~ "The generated updmap.cfg will be placed under /var/lib/texmf/web2c." #~ msgstr "" #~ "No debería editar updmap.cfg si acepta esta opción, en lugar de ésto, " #~ "modifique los ficheros bajo «/etc/texmf/updmap.d/» y ejecute update-" #~ "updmap. El fichero updmap.cfg que se genere se guardará bajo /var/lib/" #~ "texmf/web2c." #~ msgid "" #~ "If you need to keep an existing updmap.cfg then you may refuse this " #~ "option and maintain /etc/texmf/updmap.cfg manually. However, " #~ "installation of TeX fonts will fail unless you accept this option." #~ msgstr "" #~ "Si desea mantaner un updmap.cfg ya existe puede rechazar esta opción y " #~ "mantener /etc/texmf/updmap.cfg manualmente. Tenga en cuenta que es " #~ "posible que no funcione la instalación automática de fuentes tipográficas " #~ "de TeX si no acepta esta opción." #~ msgid "Files in /etc/texmf/texmf.d/ must be renamed." #~ msgstr "Se tienen que renombrar los ficheros en /etc/texmf/texmf.d/." #~ msgid "Remove old (and harmful) file /etc/X11/Xresources/tetex-base?" #~ msgstr "" #~ "¿Desea borrar el fichero antiguo (y peligroso) /etc/X11/Xresources/tetex-" #~ "base?" #~ msgid "" #~ "An old version of tetex-bin installed /etc/X11/Xresources/tetex-base, but " #~ "it is now unused and it is even harmful for it to exist. It is strongly " #~ "recommended to let the installation script remove this file right now!" #~ msgstr "" #~ "Una versión anterior de tetex-bin instaló el fichero /etc/X11/Xresources/" #~ "tetex-base, pero actualmente ya no se usa e incluso resulta perjudicial " #~ "si existe. Por ello, ¡es muy recomendable que permita que el programa de " #~ "instalación lo borre inmediatamente!" #~ msgid "Remove this file?" #~ msgstr "¿Borrar ese fichero?" #~ msgid "Manage language.dat with debconf?" #~ msgstr "¿Gestionar language.dat mediante debconf?" #~ msgid "" #~ "The language.dat file, which determines which hyphenation patterns are " #~ "enabled, can be handled by debconf." #~ msgstr "" #~ "El fichero language.dat, que contiene información sobre las reglas de " #~ "divisón de palabras a cargar, puede gestionarse con debconf." #~ msgid "" #~ "If you do not choose this, one pattern set for each supported language " #~ "will be enabled (two for german, with old and new orthography). You can " #~ "choose debconf management if you want to exclude some patterns and get " #~ "smaller (La)TeX format files. Manual editing is still possible, and your " #~ "changes will be preserved." #~ msgstr "" #~ "Se activará un conjunto de patrones para cada idioma soportado (dos para " #~ "alemán, uno para la antigua ortografía y otro para la nueva) si decide no " #~ "hacer esto. Puede elegir la gestión a través de debconf si quiere excluir " #~ "algunos patrones y obtener ficheros de formato TeX más pequeños (La). " #~ "Podrá seguir editándolos manualmente y se preservarán sus cambios." #~ msgid "Which hyphenation patterns should be loaded?" #~ msgstr "¿Qué rReglas de división de palabras deberían cargarse?" #~ msgid "" #~ "If you want to load extra hyphenation pattern(s) please select them from " #~ "the list." #~ msgstr "" #~ "Si desea cargar reglas adicionales de división de palabras, por favor, " #~ "elíjalas de entre la lista." #~ msgid "" #~ "If you want to change hyphenation pattern(s) afterwards, you may do so " #~ "with \"dpkg-reconfigure tetex-bin\". Manual editing is still possible, " #~ "and your changes will be preserved." #~ msgstr "" #~ "Si posteriormente decide los patrones de división de palabras, podrá " #~ "hacerlo con «dpkg-reconfigure tetex-bin».Podrá seguir editándolos " #~ "manualmente y se preservarán sus cambios." #~ msgid "TeX format generation failed." #~ msgstr "Falló la generación de los formatos TeX." #~ msgid "" #~ "The generation of some of the format files needed to run TeX, LaTeX etc. " #~ "has failed. You will not be able to run these programs until this is " #~ "fixed." #~ msgstr "" #~ "Se ha producido un falló al generar algunos de los ficheros de formato " #~ "necesarios para la ejecución de TeX, LaTeX, etc. No podrá ejecutar esos " #~ "programas hasta que solucione este error." #~ msgid "" #~ "The most frequent cause for such a failure is that a new version of tetex-" #~ "bin changed configuration files, but you did not accept the maintainers' " #~ "version of a file you manually changed." #~ msgstr "" #~ "Una de las razones más habituales para un fallo de este tipo es que la " #~ "nueva versión necesita nuevos ficheros de configuración y vd. no ha " #~ "aceptado la versión proporcionada por el desarrollador para un fichero " #~ "que ha cambiado manualmente." #~ msgid "" #~ "If you report this as a bug, please include the output of fmtutil, stored " #~ "in ${fmtutil_tempfile}" #~ msgstr "" #~ "Si desea informar de este error, por favor, incluya la salida de fmtutil, " #~ "ubicada en ${fmtutil_tempfile}" #~ msgid "Generation of TeX font information failed." #~ msgstr "" #~ "Se produjo un fallo en la generación de información de fuentes " #~ "tipográficas TeX." #~ msgid "" #~ "The generation of the font map files by the updmap script failed. " #~ "Therefore, TeX, LaTeX etc. will have problems finding the font files they " #~ "need." #~ msgstr "" #~ "Se produjo un al generar los los ficheros de mapa de fuentes tipográficas " #~ "realizada por el programa updmap. TeX, LaTeX y otros programas no podrán " #~ "encontrar los ficheros de fuentes que necesiten." #~ msgid "" #~ "If you report this as a bug, please include the output of updmap, stored " #~ "in ${updmap_tempfile}" #~ msgstr "" #~ "Si desea reportar ésto como una errata, por favor, incluya la salida de " #~ "updmap, ubicada en ${updmap_tempfile}" #~ msgid "" #~ "We will preserve any manual changes you have made or will make. If you do " #~ "not select this option, you will have to do everything manually." #~ msgstr "" #~ "Preservaremos cualquier cambio manual que haya hecho o vaya a hacer. Si " #~ "no selecciona esta opción, tendrá que hacer todo manualmente." #~ msgid "" #~ "NOTE: to load too many hyphenation patterns might cause 'TeX capacity " #~ "exceeded' errors." #~ msgstr "" #~ "Nota: la carga de demasiadas reglas puede desbordar la capacidad de TeX y " #~ "generar errores." #~ msgid "users" #~ msgstr "users" #, fuzzy #~ msgid "" #~ "bahasa, basque, british, croatian, czech, danish, dutch, finnish, french" #~ "[=patois], german[=austrian-alte_Rechtschreibung], ngerman[=naustrian-" #~ "neue_Rechtschreibung], greek, italian, latin, magyar, norsk[old], norsk" #~ "[nohyphb.tex], norsk[nohyphbc.tex], polish, portuges, romanian, russian, " #~ "slovak, slovene, spanish, turkish, ukrainian[ukrhyph.tex], ukrainian" #~ "[ukrhyph.t2a], ukrainian[ukrhyph.lcy], ukrainian[ukrhyph.ot2]" #~ msgstr "" #~ "indonesio, vasco, británico, croata, checo, danés, holandés, finlandés, " #~ "griego, italiano, latín, húngaro, noruego[antiguo], noruego[nohyphb.tex], " #~ "noruego[nohyphbc.tex], polaco, portugués, rumano, ruso, eslovaco, " #~ "esloveno, español, turco, ucraniano[ukrhyph.tex], ucraniano[ukrhyph.t2a], " #~ "ucraniano[ukrhyph.lcy], ucraniano[ukrhyph.ot2]" #~ msgid "" #~ "The metafont program can store fonts generated by users running xdvi, " #~ "dvips, etc. so they need not be re-generated repeatedly. They are stored " #~ "in /var/lib/texmf and /var/cache/fonts, with \"ls-R\" file lists showing " #~ "where the font files are stored." #~ msgstr "" #~ "El programa metafont puede guardar fuentes generadas por los usuarios " #~ "mediante xdvi, dvips, etc. no teniendo que regenerarlas continuamente. Se " #~ "almacenan en /var/lib/texmf y /var/cache/fonts, con ficheros «ls-R» que " #~ "indican dónde se encuentran las fuentes." #~ msgid "" #~ "Note that the configuration file will be handled by debconf if you select " #~ "this option but if not you will have to modify the file manually." #~ msgstr "" #~ "Si acepta esta opción, debconf gestionará la configuración de dicho " #~ "fichero, y sino tendrá que modificarlo manualmente." #~ msgid "Use automatic generation of texmf.cnf with update-texmf?" #~ msgstr "¿Generar automáticamente texmf.cnf con update-texmf?" #~ msgid "" #~ "Now we can generate texmf.cnf, the central configuration file for TeX " #~ "system, automatically with update-texmf script. This is necessary for " #~ "other TeX related packages to update the contents of texmf.cnf" #~ msgstr "" #~ "Ahora se puede generar automáticamente texmf.cnf, el archivo con la " #~ "configuración principal del sistema TeX, con el guión update-texmf. Esto " #~ "es necesario para que otros paquetes relacionados con TeX puedan " #~ "actualizar los contenidos de texmf.cnf." #~ msgid "" #~ "But this overwrites the existing texmf.cnf so if you don't want it, don't " #~ "accept this. Then you should modify /etc/texmf/texmf.cnf manually. But " #~ "REMARK that you could fail to install some TeX components afterwards." #~ msgstr "" #~ "Sin embargo hacer esto sobreescribirá el archivo texmf.cnf existente. Si " #~ "no quiere que esto sucede, no acepte esta opción. Debería modificar " #~ "entonces el archivo /etc/texmf/texmf.cf manualmente. ¡AVISO! Puede que " #~ "algunos componentes de TeX que instale posteriormente no se instalen " #~ "adecuadamente." #~ msgid "" #~ "For many users, it is recommended to accept this, despite the default was " #~ "set contrary, because this is necessary to install many other TeX related " #~ "packages and, if you want, you can custmize texmf.cnf freely only with " #~ "modifying files in /etc/texmf/texmf.d/ and adding necessary file(s) there." #~ msgstr "" #~ "Para la mayoría de los usuarios, lo recomendable es que acepten esto, " #~ "aunque el valor por omisión sea justo lo contrario, ya que esto es " #~ "necesarios para instalar muchos otros paquetes relacionados con TeX y, si " #~ "lo desea, puede adaptar texmf.cnf libremente simplemente modificando los " #~ "ficheros bajo /etc/texmf/texmf.d y añadiendo ahí el/los archivo/s " #~ "necesarios." #~ msgid "Use automatic generation of fmtutil.cnf with update-fmtutil?" #~ msgstr "" #~ "¿Utilizar la generación automática de fmtutil.cnf con update-fmtutil?" #~ msgid "" #~ "For many users, it is recommended to accept this, despite the default was " #~ "set contrary, because this is necessary to install many other TeX related " #~ "packages and, if you want, you can custmize fmtutil.cnf freely only with " #~ "modifying files in /etc/texmf/fmt.d/ and adding necessary file(s) there." #~ msgstr "" #~ "Para la mayoría de los usuarios, lo recomendable es que acepten esto, " #~ "aunque el valor por omisión sea justo lo contrario, ya que esto es " #~ "necesarios para instalar muchos otros paquetes relacionados con TeX y, si " #~ "lo desea, puede adaptar texmf.cnf libremente simplemente modificando los " #~ "ficheros bajo /etc/texmf/fmt.d y añadiendo ahí el/los archivo/s " #~ "necesarios." #~ msgid "Use automatic generation of updmap.cfg with update-updmap?" #~ msgstr "¿Utilizar generación automática de updmap.cfg con update-updmap?" #~ msgid "" #~ "For many users, it is recommended to accept this, despite the default was " #~ "set contrary, because this is necessary to use many fonts packages for " #~ "TeX and, if you want, you can custmize updmap.cfg freely only with " #~ "modifying files in /etc/texmf/updmap.d/ and adding necessary file(s) " #~ "there." #~ msgstr "" #~ "Para la mayoría de los usuarios, lo recomendable es que acepten esto, " #~ "aunque el valor por omisión sea justo lo contrario, ya que esto es " #~ "necesarios para utilizar muchos paquetes con tipografías para TeX, y si " #~ "lo desea, puede adaptar updmap.cfg libremente simplemente modificando los " #~ "ficheros bajo /etc/texmf/updmap.d y añadiendo ahí el/los archivo/s " #~ "necesarios." tex-common-4.04/debian/po/vi.po0000644000000000000000000000445012157017604013241 0ustar # Vietnamese translation for Tex Common. # Copyright © 2007 Free Software Foundation, Inc. # Clytie Siddall , 2007 # msgid "" msgstr "" "Project-Id-Version: tex-common 1.10\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-12-01 18:13+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.7b1\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Thiếu mục nhập chủ yếu trong ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Thiếu một mục nhập chủ yếu trong tập tin ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Chưa đặt biến ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "Không sửa chữa các tập tin cấu hình thì TeX không hoạt động được. Phiên bản " "${filename} có sẵn trong gói nên có tên ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Tiến trình cấu hình đã bị hủy bỏ." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Mục nhập chủ yếu không hợp lệ trong ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Một mục nhập chủ yếu không phải hợp lệ trong tập tin ${filename}: biến " "${variable} không chứa:" #~ msgid "Exiting." #~ msgstr "Đang thoát." #~ msgid "${pattern}" #~ msgstr "${pattern}" tex-common-4.04/debian/po/ja.po0000644000000000000000000000472212157017604013217 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-31 10:35+0900\n" "Last-Translator: Kenshi Muto \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "${filename} に必須エントリがありません" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "${filename} に必須エントリがありません:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "${variable} が設定されていません。" #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX は、設定ファイルを修正するまで動作しません。パッケージによって提供される" "バージョンの ${filename} は、${filename}.ucf-dist として利用できます。" #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "設定手続きが中止されました。" #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "${filename} に無効な必須エントリがあります" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "${filename} の必須エントリは無効です: ${variable} を含んでいません:" tex-common-4.04/debian/po/fr.po0000644000000000000000000001071012157017604013226 0ustar # Translation of tex-common debconf templates to French # Copyright (C) 2006 Jean-Baka Domelevo-Entfellner # This file is distributed under the same license as the tex-common package. # # Jean-Baka Domelevo-Entfellner , 2006. msgid "" msgstr "" "Project-Id-Version: tex-common 0.25.1\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-27 10:42+0100\n" "Last-Translator: Jean-Baka Domelevo-Entfellner \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Entrée essentielle absente du fichier ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Une entrée essentielle manque dans le fichier ${filename} :" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Pas d'affectation pour la variable ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX ne fonctionnera pas tant que vous n'aurez pas réparé vos fichiers de " "configuration. La version du fichier ${filename} fournie par le paquet " "devrait être disponible sous le nom ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "La procédure de configuration a été interrompue." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Entrée essentielle erronée dans le fichier ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Une entrée essentielle est erronée dans le fichier ${filename} : la variable " "${variable} ne contient pas" #~ msgid "Exiting." #~ msgstr "Le programme de configuration va se terminer." #~ msgid "${pattern}" #~ msgstr "${pattern}" #~ msgid "Change of name of files in /etc/texmf/texmf.d/" #~ msgstr "" #~ "Changement du nom des fichiers dans le répertoire /etc/texmf/texmf.d/" #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "Le fichier texmf.cnf a été créé par update-texmf à partir de tous les " #~ "fichiers situés dans /etc/texmf/texmf.d/. Cet utilitaire a été modifié et " #~ "n'utilise désormais que les fichiers comportant l'extension « .cnf »." #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Ainsi, si vous avez placé un fichier personnel dans /etc/texmf/texmf.d/, " #~ "il est donc nécessaire d'ajouter « .cnf » à son nom (par exemple, " #~ "22mamacro devient 22mamacro.cnf)." #~ msgid "" #~ "mktex.cnf in /etc/texmf/ shadows new /usr/share/texmf/web2c/mktex.cnf" #~ msgstr "" #~ "Masquage de la nouvelle version de /usr/share/texmf/web2c/mktex.cnf par /" #~ "etc/texmf/mktex.cnf." #~ msgid "" #~ "The mechanism of TeX font caching has changed, requiring the installation " #~ "of /usr/share/texmf/web2c/mktex.cnf. On your system, /etc/texmf/web2c/" #~ "mktex.cnf exists with possible local changes, and makes the new file " #~ "invisible to TeX. Font caching might not work until the setting of " #~ "MT_FEATURES has been transferred to your configuration file." #~ msgstr "" #~ "Le mécanisme de mise en cache des polices TeX a changé, il nécessite " #~ "désormais l'installation de /usr/share/texmf/web2c/mktex.cnf. En général, " #~ "le fichier /etc/texmf/web2c/mktex.cnf est présent et contient " #~ "d'éventuelles modifications locales, ce qui rend le nouveau fichier " #~ "invisible pour TeX. La mise en cache des polices ne fonctionnera peut-" #~ "être pas tant que le paramétrage de MT_FEATURES n'aura pas été intégré au " #~ "fichier de configuration." tex-common-4.04/debian/po/fi.po0000644000000000000000000000376712157017604013233 0ustar msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-27 23:40+0200\n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Finnish\n" "X-Poedit-Country: FINLAND\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Välttämätön kenttä puuttuu tiedostossa ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Tiedostosta ${filename} puuttuu välttämätön kenttä:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Muuttujaa ${variable} ei ole asetettu." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX ei toimi ennen kuin asetustiedostot on korjattu. Paketin tarjoama versio " "tiedostosta ${filename} pitäisi olla saatavilla nimellä ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Asetusprosessi on keskeytetty." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Virheellinen välttämätön kenttä tiedostossa ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Välttämätön kenttä tiedostossa ${filename} on virheellinen. Muuttujan " "${variable} arvo ei sisällä:" tex-common-4.04/debian/po/it.po0000644000000000000000000000434112157017604013236 0ustar # Italian (it) translation of debconf templates for tex-common # Copyright (C) 2006 Software in the Public Interest # This file is distributed under the same license as the tex-common package. # Luca Monducci , 2004-2006. # msgid "" msgstr "" "Project-Id-Version: tex-common 1.10 italian debconf templates\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-28 11:58+0100\n" "Last-Translator: Luca Monducci \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Impostazione essenziale mancante in ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Una delle impostazioni essenziali in ${filename} è mancante:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "${variable} non è impostata." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX non può funzionare fino a quando i file di configurazione non sono " "corretti. La versione di ${filename} fornita nel pacchetto dovrebbe essere " "disponibile come ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Il processo di configurazione è stato interrotto." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Impostazione essenziale non valida in ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Una delle impostazioni essenziali in ${filename} non è valida: ${variable} " "non contiene:" tex-common-4.04/debian/po/pl.po0000644000000000000000000000437312157017604013242 0ustar # Translation of tex-common debconf templates to Polish. # Copyright (C) 2009 # This file is distributed under the same license as the tex-common package. # # Michał Kułach , 2012. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2012-03-04 02:11+0100\n" "Last-Translator: Michał Kułach \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Brakuje istotnego wpisu w ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "W pliku ${filename} brakuje istotnego wpisu:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Brak ustawienia dla zmiennej ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX nie będzie działał dopóki pliki konfiguracyjne nie zostaną poprawione. " "Wersja ${filename}, którą udostępnia pakiet, powinna być dostępna pod nazwą " "${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Proces konfiguracji został przerwany." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Nieprawidłowy istotny wpis w ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Istotny wpis w pliku ${filename} jest nieprawidłowy: zmienna ${variable} nie " "zawiera:" tex-common-4.04/debian/po/gl.po0000644000000000000000000000422312157017604013223 0ustar # Galician translation of tex-common's debconf templates # This file is distributed under the same license as the tex-common package. # Jacobo Tarrio , 2007. # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-27 12:15+0100\n" "Last-Translator: Jacobo Tarrio \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Falla unha entrada esencial en ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Falla unha entrada esencial en ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Non se lle deu un valor a ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX non ha funcionar ata que se arranxen os ficheiros de configuración. A " "versión de ${filename} fornecida polo paquete debería estar dispoñible co " "nome ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Cancelouse o proceso de configuración." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Entrada esencial incorrecta en ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Unha entrada esencial é incorrecta en ${filename}: ${variable} non contén:" #~ msgid "Exiting." #~ msgstr "A saír." #~ msgid "${pattern}" #~ msgstr "${pattern}" tex-common-4.04/debian/po/nl.po0000644000000000000000000000433612157017604013237 0ustar # Dutch translation of tex-common debconf templates. # Copyright (C) 2004-2011 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the tex-common package. # Luk Claes , 2004. # Vincent Zweije , 2006. # Jeroen Schot , 2011. # msgid "" msgstr "" "Project-Id-Version: tex-common 2.10\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2011-12-12 14:43+0100\n" "Last-Translator: Jeroen Schot \n" "Language-Team: Debian l10n Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Essentieel element ontbreekt in ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Een essentieel element ontbreekt in ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Geen instelling van ${variable}" #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX werkt niet todat de configuratiebestanden zijn gerepareerd. De versie " "van ${filename} die wordt aangeboden door het pakket zou beschikbaar moeten " "zijn als ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Het configuratieproces is afgebroken." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Essentieel element onjuist in ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Een essentieel element is onjuist in ${filename}: ${variable} bevat niet" tex-common-4.04/debian/po/lt.po0000644000000000000000000000416512157017604013245 0ustar # translation of tex-common.po to Lithuanian # This file is distributed under the same license as the tetex-bin package. # Copyright (C) 2004 Free Software Foundation, Inc. # Kęstutis Biliūnas , 2004, 2006, 2007. # # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-10-31 11:27+0200\n" "Last-Translator: Kęstutis Biliūnas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Faile ${filename} trūksta esminio elemento" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Faile·${filename}·trūksta·esminio·elemento:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Kintamasis ${variable} nenustatomas." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX nedirbs, kol konfigūracijos failas nebus pataisytas. Failo ${filename} " "versija pateikiama kartu su paketu turi būti prieinama kaip ${filename}.ucf-" "dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Konfigūravimo procesas nutrauktas." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Faile·${filename}·yra neteisingas esminis·elementas" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "Faile ${filename} neteisingas·esminis elementas: ${variable} neturi:" tex-common-4.04/debian/po/da.po0000644000000000000000000000430512157017604013206 0ustar # Danish translation for tex-common. # Copyright (C) 2010 tex-common og nedenstående oversættere. # This file is distributed under the same license as the tex-common package. # Claus Hindsgaul , 2004, 2005, 2006. # Joe Hansen (joedalton2@yahoo.dk), 2010. # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2010-12-30 19:25+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Der mangler en essentiel linje i ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Der mangler en essentiel linje i ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "${variable} er ikke sat." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX vil ikke fungere før, at konfigurationsfilerne er rettet. Den udgave af " "${filename}, som følger med pakken, skulle være tilgængelig som ${filename}." "ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Konfigurationsprocessen er blevet afbrudt." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Ugyldig essentiel linje i ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "En essentiel linje er ugyldig i ${filename}: ${variable} indeholder ikke:" tex-common-4.04/debian/po/ro.po0000644000000000000000000000474512157017604013252 0ustar # translation of ro.po to Romanian # Romanian translations for tex-common package # Traducerea în limba română pentru pachetul tex-common. # Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the tex-common package. # # Eddy Petrișor , 2007, 2008. msgid "" msgstr "" "Project-Id-Version: ro\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2008-11-13 11:04+0200\n" "Last-Translator: Eddy Petrișor \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" "X-Generator: KBabel 1.11.4\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Înregistrare esențială lipsă din ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "O înregistrare esențială lipsește din ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Nici o configurare pentru ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "TeX nu va funcționa dacă nu reparați fișierele de configurare. Versiunea " "fișierului ${filename}, distribuită cu pachetul, ar trebui să fie " "disponibilă ca ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "Procesul de configurare a fost abandonat." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Înregistrare esențială nevalidă în ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "O înregistrare esențială nu este validă în ${filename}: ${variable} nu " "conține:" #~ msgid "Exiting." #~ msgstr "Se iese." #~ msgid "${pattern}" #~ msgstr "${pattern}" tex-common-4.04/debian/po/pt_BR.po0000644000000000000000000006227712157017604013644 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: tetex-bin\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2006-10-28 19:29+0200\n" "Last-Translator: Felipe Augusto van de Wiel (faw) \n" "Language-Team: l10n portuguese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "pt_BR UTF-8\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Entrada essencial faltando em ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Uma entrada essencial está faltando em ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Nenhuma configuração de ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 #, fuzzy #| msgid "" #| "TeX will not work without it, you need to fix your configuration files. " #| "The version of ${filename} that is provided by the package should be " #| "available as ${filename}.ucf-dist." msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "O TeX não irá funcionar sem a mesma, você precisa corrigir seus arquivos de " "configuração. A versão do ${filename} que é fornecida pelo pacote deverá " "estar disponível como ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "" #. Type: error #. Description #: ../templates:3001 #, fuzzy #| msgid "Essential entry wrong in ${filename}" msgid "Invalid essential entry in ${filename}" msgstr "Entrada essencial errada em ${filename}" #. Type: error #. Description #: ../templates:3001 #, fuzzy #| msgid "" #| "An essential entry is wrong in ${filename}: ${variable} does not contain" msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Uma entrada essencial está errada em ${filename}: ${variable} não contém" #~ msgid "Exiting." #~ msgstr "Saindo." #~ msgid "${pattern}" #~ msgstr "${pattern}" #~ msgid "Change of name of files in /etc/texmf/texmf.d/" #~ msgstr "Mudar o nome dos arquivos em /etc/texmf/texmf.d/" #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "O arquivo texmf.cnf foi previamente gerado pelo utilitário update-texmf a " #~ "partir de todos os arquivos em /etc/texmf/texmf.d/. Agora o update-texmf " #~ "mudou e lê somente arquivos com a extensão '.cnf'." #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Caso você possua algum arquivo privado em /etc/texmf/texmf.d/, você " #~ "deverá adicionar a extensão '.cnf' ao nome do mesmo; por exemplo, um " #~ "arquivo de nome 22mymacro seria renomeado para 22mymacro.cnf." #~ msgid "" #~ "mktex.cnf in /etc/texmf/ shadows new /usr/share/texmf/web2c/mktex.cnf" #~ msgstr "" #~ "mktex.cnf em /etc/texmf/ discretamente mudou para /usr/share/texmf/web2c/" #~ "mktex.cnf" #~ msgid "" #~ "The mechanism of TeX font caching has changed, requiring the installation " #~ "of /usr/share/texmf/web2c/mktex.cnf. On your system, /etc/texmf/web2c/" #~ "mktex.cnf exists with possible local changes, and makes the new file " #~ "invisible to TeX. Font caching might not work until the setting of " #~ "MT_FEATURES has been transferred to your configuration file." #~ msgstr "" #~ "O mecanismo de cache de fontes do TeX mudou, requerendo a instalação de /" #~ "usr/share/texmf/web2c/mktex.cnf. No seu sistema, /etc/texmf/web2c/mktex." #~ "cnf existe com possíveis mudanças locais, e torna o novo arquivo " #~ "invisível para o TeX. O cache de fontes pode não funcionar até que a " #~ "configuração de MT_FEATURES tenha sido transferida para o seu arquivo de " #~ "configuração." #~ msgid "Manage the permissions of the TeX font cache with debconf?" #~ msgstr "Gerenciar as permissões do cache de fontes TeX com o debconf ?" #~ msgid "" #~ "A TeX system needs to generate new font data (pixel data, metric, " #~ "sources) on the fly. These files can be saved into the TeX font cache in /" #~ "var/cache/fonts and later reused." #~ msgstr "" #~ "Um sistema TeX pode ter que gerar novos dados de fontes (dados de pixels, " #~ "métricas, fontes) em tempo de execução. Esses arquivos podem ser salvos " #~ "no cache de fontes TeX em /var/cache/fonts e utilizados posteriormente." #~ msgid "" #~ "If you do not accept, the font cache directory will be world-writable " #~ "which is a security risk. If you accept, you can specify a group name " #~ "and all directories under /var/cache/fonts will get ownership root:" #~ " and permission bits 3775." #~ msgstr "" #~ "Caso você não aceite, o diretório de cache de fontes terá permissões de " #~ "escrita para todo mundo (\"world-writable\"), o que é um risco de " #~ "segurança. Se você aceitar, você pode especificar um nome de grupo e " #~ "todos os diretórios sob /var/cache/fonts vão ser definidos como root:" #~ " com os bits de permissão 3775." #~ msgid "" #~ "If you accept, font generation on multi-user machines will only work for " #~ "users that have been added to the group you chose - this has to be done " #~ "manually by you! On machines used only by a single user, the setup will " #~ "try to automatically detect a suitable group." #~ msgstr "" #~ "Caso você aceite, a geração de fontes em máquinas multi-usuário só " #~ "funcionará para usuários que tenham sido adicionados ao grupo que você " #~ "escolher - isto precisa ser feito manualmente por você! Em máquinas " #~ "usadas por um único usuário, a configuração tentará detectar " #~ "automaticamente qual o grupo a ser utilizado." #~ msgid "" #~ "The default is not to manage permissions with debconf, but this is just " #~ "because this is required for automatic installs on Debian package " #~ "building machines (buildds). In almost every other setup, like desktop " #~ "machines or multi-user servers, accepting this is strongly recommended!" #~ msgstr "" #~ "O padrão é não gerenciar permissões com o debconf, mas isto é assim " #~ "somente porque é necessário para instalações automáticas nas máquinas que " #~ "constroem os pacotes Debian (buildds). Em quase todas as outras " #~ "situações, como máquinas desktop ou servidor para múltiplos usuários, " #~ "aceitar isto é fortemente recomendado." #~ msgid "" #~ "The default is \"users\", Note that on a Debian system, no local user is " #~ "member of the \"users\" group by default, so you have to add them " #~ "manually!" #~ msgstr "" #~ "O padrão é \"users\". Note que em um sistema Debian, ninguém é membro do " #~ "grupo \"users\" por padrão, portanto você precisa adicioná-los " #~ "manualmente!" #~ msgid "Group that should own the TeX font cache:" #~ msgstr "Grupo que deve ser proprietário do cache de fontes TeX:" #~ msgid "" #~ "You can choose a specific group which will own all directories under and " #~ "including the TeX font cache /var/cache/fonts. These directories will " #~ "get permission 3775." #~ msgstr "" #~ "Você pode escolher um grupo específico que irá ser proprietário de todos " #~ "os diretórios sob e incluíndo o cache de fontes TeX /var/cache/fonts. " #~ "Esses diretórios receberão a permissão 3755." #~ msgid "" #~ "The setup detected only a single user who works on this system. If this " #~ "is correct, the best choice is to choose this user's private group with " #~ "the same name as the user name." #~ msgstr "" #~ "A configuração detectou que somente um usuário trabalha neste sistema. Se " #~ "isto estiver correto, a melhor opção é escolher o grupo privado deste " #~ "usuário com o mesmo nome que o nome do usuário." #~ msgid "" #~ "If it is incorrect and more users are supposed to work on this machine, " #~ "or if daemons running as system users will use TeX, it is suggested to " #~ "choose an existing group, like \"users\", and add the required users " #~ "manually." #~ msgstr "" #~ "Caso isto esteja incorreto e mais usuários trabalham nesta máquina, ou se " #~ "serviços (\"daemons\") sendo executados como usuários de sistema usam o " #~ "TeX, é sugerido que você escolha um grupo existente, como \"users\", e " #~ "então adicione os usuários manualmente." #~ msgid "" #~ "If you accept, you can specify a group name and *all* directories under /" #~ "var/cache/fonts will get ownership root: and permission bits " #~ "3775 (i.e. writable for the group , sticky and setgid bit " #~ "set). Accordingly, the ls-R index file will be owned and writable by " #~ "that group." #~ msgstr "" #~ "Caso você aceite, você pode especiicar um nome de grupo e *todos* os " #~ "diretórios sob /vr/cache/fonts serão de propriedade de root: " #~ "e terão seus bits de permissão ajustados para 3755 (ou seja, graváveis " #~ "pelo grupo , bits sticky e setgid ligados). " #~ "Consequentemente, o arquivo de índice ls-R será de propriedade de e " #~ "gravável por esse grupo." #, fuzzy #~ msgid "" #~ "A lot of font files have to be generated before they can be used by xdvi, " #~ "dvips etc. These files are stored in /var/cache/fonts, so that they do " #~ "not need to be regenerated every time. Usually, these files are created " #~ "on-the-fly when needed. Since the directory is group-writable, the ls-R " #~ "file should be the same" #~ msgstr "" #~ "Muitos arquivos de fontes devem ser gerados antes que possam ser " #~ "utilizados pelos programas de exibição e impressão do teTeX (xdvi, dvips, " #~ "etc). Esses arquivos são armazenados em /var/cahe/fonts, de forma que não " #~ "precisarão ser gerados novamente a toda hora. Arquivos ls-R dizem ao " #~ "sistema quais arquivos estão armazenaods e aonde." #, fuzzy #~ msgid "" #~ "Accepting this option will allow you to easily manage the permissions of " #~ "those ls-R files using debconf. Otherwise you will have to manually " #~ "ensure that they get useful but safe permissions." #~ msgstr "" #~ "A aceitação desta opção permitirá que você gerencie facilmente as " #~ "permissões desses arquivos ls-R usando o debconf. Caso você não a aceite, " #~ "será necesário garantir manualmente que esses arquivos tenham permissões " #~ "úteis mas seguras." #, fuzzy #~ msgid "" #~ "Modification of ls-R files can be restricted to the members of one group " #~ "which owns them. To take advantage of this, add the users to the group " #~ "of your choice, and enter that group name here. The default group, " #~ "'users', is appropriate for most systems." #~ msgstr "" #~ "A modificação dos arquivos ls-R pode ser restringida para os membros de u " #~ "grupo que é o proprietário dos mesmos. Para utilizar esse recurso, " #~ "adicione os usuários para o grupo de sua escolha e informe o nome do " #~ "grupo aqui. O grupo padrão 'users' é apropriado para a maioria dos " #~ "sistemas." #~ msgid "Allow group members to modify ls-R files?" #~ msgstr "Permitir aos membros do grupo modificar os arquivos ls-R ?" #, fuzzy #~ msgid "" #~ "Accepting this option will allow members of the owning group to modify " #~ "the ls-R files." #~ msgstr "" #~ "A aceitação desta opção permitirá que membros do grupo proprietário " #~ "modifiquem os arquivos ls-R. Praticamente quase todo mundo deverá aceitar " #~ "esta opção !" #~ msgid "Allow all users to modify ls-R files?" #~ msgstr "Permitir a todos os usuários modificar os arquivos ls-R ?" #~ msgid "" #~ "Accepting this option will allow all users to modify ls-R files. This is " #~ "generally not a good idea for security reasons; you should instead " #~ "restrict such access to members of one group." #~ msgstr "" #~ "A aceitação desta opção permitirá que todos os usuários modifiquem os " #~ "arquivos ls-R. Isso é geralmente uma boa idéia por razões de segurança. " #~ "Você deveria na verdade restringir o acesso somente para membros de um " #~ "grupo." #~ msgid "Use debconf to manage permissions of ls-R files?" #~ msgstr "Usar o debconf para gerenciar as permissões dos arquivos ls-R ?" #~ msgid "Use update-fmtutil to automatically generate fmtutil.cnf?" #~ msgstr "Usar update-fmutil para gerar automaticamente fmtutil.cnf ?" #~ msgid "" #~ "The file fmtutil.cnf is the central configuration file for TeX engines. " #~ "Automatic generation is recommended to make the setup work with other TeX-" #~ "related packages." #~ msgstr "" #~ "O arquivo fmutil.cnf é o arquivo de configuração central para os " #~ "mecanismos (engines) TeX. A geração automática do mesmo é recomendada " #~ "para que a configuração funcione com outros pacotes relacionados ao TeX." #~ msgid "" #~ "After accepting this option, you should not edit fmtutil.cnf directly but " #~ "instead modify the files in /etc/texmf/fmt.d/ and run update-fmtutil. " #~ "The generated fmtutil.cnf will then be placed under /var/lib/texmf/web2c/." #~ msgstr "" #~ "Após aceitar esta opção, você não deverá editar o arquivo fmutil.cnf " #~ "diretamente, mas sim modificar os arquivos em /etc/texmf/fmt.d/ e " #~ "executar o utilitário update-fmtutil. O arquivo fmtutil.cnf gerado será " #~ "colocado sob o diretório /var/lib/texmf/web2c/." #~ msgid "" #~ "If you need to keep using an existing fmtutil.cnf then you may refuse " #~ "this option and maintain /etc/texmf/fmtutil.cnf manually. However, " #~ "installation of some TeX-related packages will fail unless you accept " #~ "this option." #~ msgstr "" #~ "Caso você precise manter um arquivo fmtutil.cnf existente, você pode " #~ "recusar esta opção e manter o arquivo /etc/texmf/fmutil.cnf manualmente. " #~ "Porém, a instalação de alguns pacotes relacionados ao TeX irá falhar a " #~ "menos que você aceite esta opção." #~ msgid "Use update-updmap to automatically generate updmap.cfg?" #~ msgstr "Usar update-updmap para gerar automaticamente updmap.cfg ?" #~ msgid "" #~ "The file updmap.cfg is the central configuration file for the font system " #~ "of TeX. Automatic generation is recommended to make the setup work with " #~ "TeX font packages." #~ msgstr "" #~ "O arquivo updmap.cfg é o arquivo de configuração central para o sistema " #~ "de fontes do TeX. A geração automática do mesmo é recomendada para que a " #~ "configuração funcione com os pacotes de fontes do TeX." #~ msgid "" #~ "After accepting this option, you should not edit updmap.cfg directly but " #~ "instead modify the files in /etc/texmf/updmap.d/ and run update-updmap. " #~ "The generated updmap.cfg will be placed under /var/lib/texmf/web2c." #~ msgstr "" #~ "Após aceitar esta opção, você não deverá editar o arquivo updmap.cfg " #~ "diretamente, mas sim modificar os arquivos em /etc/texmf/updmap.d/ e " #~ "executar o utilitário update-updmap. O arquivo updmap.cfg gerado será " #~ "colocado sob o diretório /var/lib/texmf/web2c." #~ msgid "" #~ "If you need to keep an existing updmap.cfg then you may refuse this " #~ "option and maintain /etc/texmf/updmap.cfg manually. However, " #~ "installation of TeX fonts will fail unless you accept this option." #~ msgstr "" #~ "Caso você precise manter um arquivo updmap.cfg existente, você pode " #~ "recusar esta opção e manter o arquivo /etc/texmf/updmap.cfg manualmente. " #~ "Porém, a instalação de fontes TeX irá falhar a menos que você aceite esta " #~ "opção." #~ msgid "Files in /etc/texmf/texmf.d/ must be renamed." #~ msgstr "Arquivos em /etc/texmf.d/ devem ser renomeados." #~ msgid "Remove old (and harmful) file /etc/X11/Xresources/tetex-base?" #~ msgstr "Remover arquivo antigo e perigoso, /etc/X11/Xresources/tetex-base ?" #~ msgid "" #~ "An old version of tetex-bin installed /etc/X11/Xresources/tetex-base, but " #~ "it is now unused and it is even harmful for it to exist. It is strongly " #~ "recommended to let the installation script remove this file right now!" #~ msgstr "" #~ "Uma versão antiga do tetex-bin instalou o arquivo /etc/X11/Xresources/" #~ "tetex-base, mas esse arquivo agora não é mais usado e pode até mesmo " #~ "causar problemas caso exista. É altamente recomendado permitir ao script " #~ "de instalação remover esse arquivo agora !" #~ msgid "Remove this file?" #~ msgstr "Remover esse arquivo ?" #~ msgid "Manage language.dat with debconf?" #~ msgstr "Gerenciar o arquivo language.dat com o debconf ?" #~ msgid "" #~ "The language.dat file, which determines which hyphenation patterns are " #~ "enabled, can be handled by debconf." #~ msgstr "" #~ "O arquivo language.dat, o qual determina quais padrões de hifenização " #~ "estão habilitados, pode ser gerenciado automaticamente pelo debconf." #~ msgid "" #~ "If you do not choose this, one pattern set for each supported language " #~ "will be enabled (two for german, with old and new orthography). You can " #~ "choose debconf management if you want to exclude some patterns and get " #~ "smaller (La)TeX format files. Manual editing is still possible, and your " #~ "changes will be preserved." #~ msgstr "" #~ "Caso você não opte por gerenciar esse arquivo com o debconf, um conjunto " #~ "de padrões para cada idioma suportado será habilitado (dois para alemão, " #~ "um para a antiga e um para a nova ortografia). Você pode optar pelo " #~ "gerenciamento através do debconf caso você queira excluir alguns padrões " #~ "e obter arquivo de formatação TeX (La) menores. A edição manual do " #~ "arquivo language.dat ainda será possível e suas mudanças serão " #~ "preservadas." #~ msgid "Which hyphenation patterns should be loaded?" #~ msgstr "Quais padrões de hifenização devem ser carregados ?" #~ msgid "" #~ "If you want to load extra hyphenation pattern(s) please select them from " #~ "the list." #~ msgstr "" #~ "Caso você queira carregar padrões de hifenização extras, por favor " #~ "selecione os mesmos a partir da listagem." #~ msgid "" #~ "If you want to change hyphenation pattern(s) afterwards, you may do so " #~ "with \"dpkg-reconfigure tetex-bin\". Manual editing is still possible, " #~ "and your changes will be preserved." #~ msgstr "" #~ "Caso você queira mudar os padrões de hifenização a serem carregados mais " #~ "tarde, você poderá fazê-lo executando o comando \"dpkg-reconfigure tetex-" #~ "bin\". A edição manual do arquivo ainda será possível e suas mudanças " #~ "serão preservadas." #~ msgid "TeX format generation failed." #~ msgstr "Geração de formatação TeX falhou." #~ msgid "" #~ "The generation of some of the format files needed to run TeX, LaTeX etc. " #~ "has failed. You will not be able to run these programs until this is " #~ "fixed." #~ msgstr "" #~ "A geração de alguns dos arquivos de formatação necessários para execução " #~ "do TeX, do LaTeX, etc, falhou. Você não conseguirá executar estes " #~ "programas até que isto seja corrigido." #~ msgid "" #~ "The most frequent cause for such a failure is that a new version of tetex-" #~ "bin changed configuration files, but you did not accept the maintainers' " #~ "version of a file you manually changed." #~ msgstr "" #~ "Uma causa frequente para este tipo de falha é uma nova versão do pacote " #~ "tetex-bin ter mudado os arquivos de configuração e você não ter aceito a " #~ "versão do mantenedor do pacote de um arquivo que você modificou " #~ "manualmente." #~ msgid "" #~ "If you report this as a bug, please include the output of fmtutil, stored " #~ "in ${fmtutil_tempfile}" #~ msgstr "" #~ "Caso você relate isso como um bug, por favor, inclua a saída do " #~ "utilitário fmtutil, armazenada em ${fmtutil_tempfile}" #~ msgid "Generation of TeX font information failed." #~ msgstr "A geração das informações de fontes TeX falhou." #~ msgid "" #~ "The generation of the font map files by the updmap script failed. " #~ "Therefore, TeX, LaTeX etc. will have problems finding the font files they " #~ "need." #~ msgstr "" #~ "A geração dos arquivos de mapas de fontes pelo script updmap falhou. Por " #~ "isso, o TeX, o LaTeX, etc, terão problemas para encontrar os arquivos de " #~ "fonte que precisam." #~ msgid "" #~ "If you report this as a bug, please include the output of updmap, stored " #~ "in ${updmap_tempfile}" #~ msgstr "" #~ "Caso você relate isso como um bug, por favor, inclua a saída do " #~ "utilitário updmap, armazenada em ${updmap_tempfile}" #~ msgid "" #~ "We will preserve any manual changes you have made or will make. If you do " #~ "not select this option, you will have to do everything manually." #~ msgstr "" #~ "Quaisquer mudanças manuais que você tenha feito ou que você fará serão " #~ "preservadas. Caso você não selecione esta opção, será necessário fazer " #~ "tudo manualmente." #~ msgid "" #~ "NOTE: to load too many hyphenation patterns might cause 'TeX capacity " #~ "exceeded' errors." #~ msgstr "" #~ "NOTA : carregar muitos padrões de hifenização poderá causar erros de " #~ "'capacidade do TeX excedida'." #~ msgid "users" #~ msgstr "users" #~ msgid "" #~ "bahasa, basque, british, croatian, czech, danish, dutch, finnish, french" #~ "[=patois], german[=austrian-alte_Rechtschreibung], ngerman[=naustrian-" #~ "neue_Rechtschreibung], greek, italian, latin, magyar, norsk[old], norsk" #~ "[nohyphb.tex], norsk[nohyphbc.tex], polish, portuges, romanian, russian, " #~ "slovak, slovene, spanish, turkish, ukrainian[ukrhyph.tex], ukrainian" #~ "[ukrhyph.t2a], ukrainian[ukrhyph.lcy], ukrainian[ukrhyph.ot2]" #~ msgstr "" #~ "bahasa, basque, britânico, croata, tcheco, dinamarquês, holandês, " #~ "finlandês, francês[=patois], alemão[=austrian-alte_Rechtschreibung], " #~ "ngerman[naustrian-neue_Rechtschreibung], grego, italiano, latin, magiar], " #~ "norsk[old], norsk, [nohyphb.tex], norsk[nohyphbc.tex], polonês, " #~ "português, romano, russo, eslovaco, esloveno, espanhol, turco, ucraniano" #~ "[ukrhyph.tex], ucraniano[ukrhyph.t2a], ucraniano[ukrhyph.lcy], ucraniano" #~ "[ukrhyph.ot2]" #~ msgid "" #~ "The metafont program can store fonts generated by users running xdvi, " #~ "dvips, etc. so they need not be re-generated repeatedly. They are stored " #~ "in /var/lib/texmf and /var/cache/fonts, with \"ls-R\" file lists showing " #~ "where the font files are stored." #~ msgstr "" #~ "O programa metafont pode armazenar fontes geradas por usuários que " #~ "executam os comandos xdvi, dvipps, etc, para que eles as mesmas não " #~ "precisem ser regeradas repetidmente. Essas fontes são armazenadas em /var/" #~ "lib/texmf e /var/cache/fonts, com listas de arquivos \"ls-R\" informando " #~ "onde os arquivos de fontes estão armazenados." #~ msgid "Use update-texmf to automatically generate texmf.cnf?" #~ msgstr "Usar update-texmf para gerar automaticamente texmf.cnf ?" #~ msgid "" #~ "The file texmf.cnf is the central configuration file of TeX. Automatic " #~ "generation is recommended to make the setup work with other TeX related " #~ "packages." #~ msgstr "" #~ "O arquivo texmf.cnf é o arquivo de configuração central do TeX. A geração " #~ "automática é recomendada para que a configuração funcione com outros " #~ "pacotes relacionados ao TeX." #~ msgid "" #~ "To customize your TeX setup, you should not edit texmf.cnf directly but " #~ "instead modify the files in /etc/texmf/texmf.d/ and the generated texmf." #~ "cnf would be placed under /var/lib/texmf/web2c." #~ msgstr "" #~ "Para personalizar sue configuração TeX você não deverá editar o arquivo " #~ "texmf.cnf diretamente mas sim modificar os arquivos em /etc/texmf/texmf." #~ "d/ e o arquivo texmf.cnf gerado será colocado sob o diretório /var/lib/" #~ "texmf/web2c." #~ msgid "" #~ "Don't accept this if you don't want to overwrite texmf.cnf from a " #~ "previous version. Then you should modify /etc/texmf/texmf.cnf manually. " #~ "REMARK: Automatic installation of some other TeX related packages could " #~ "fail in this case." #~ msgstr "" #~ "Não aceite essa opção caso você não queira sobreescrever o arquivo texmf." #~ "cnf de uma versão anterior. Nesse caso você deverá modificar o arquivo /" #~ "etc/texmf/texmf.cnf manualmente. AVISO : A instalação automática de " #~ "alguns outros pacotes relacionados ao TeX poderá falhar nesse caso." #~ msgid "" #~ "Note that the configuration file will be handled by debconf if you select " #~ "this option but if not you will have to modify the file manually." #~ msgstr "" #~ "Note que o arquivo de configuração será gerenciado pelo debconf caso você " #~ "selecione esta opção. Caso contrário, você terá que modificar o arquivo " #~ "manualmente." tex-common-4.04/debian/po/POTFILES.in0000644000000000000000000000004412157017604014033 0ustar [type: gettext/rfc822deb] templates tex-common-4.04/debian/po/pt.po0000644000000000000000000000423412157017604013246 0ustar # Portuguese translation of tex-common's debconf messages # This file is distributed under the same license as the tex-common package. # Rui Branco , 2007 # # msgid "" msgstr "" "Project-Id-Version: tex-common\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-11-04 11:15+0000\n" "Last-Translator: Rui Branco \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Falta entrada essencial em ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Uma entrada essencial falta em ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "Nenhuma definição da ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "O Tex não irá funcionar até que os ficheiros de configuração sejam " "corrigidos. A versão do ${filename} fornecida por este pacote deverá estar " "disponível como ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "O processo de configuração foi cancelado." #. Type: error #. Description #: ../templates:3001 msgid "Invalid essential entry in ${filename}" msgstr "Entrada essencial inválida em ${filename}" #. Type: error #. Description #: ../templates:3001 msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Uma entrada essencial está inválida em ${filename}: a ${variable} não contém:" #~ msgid "Exiting." #~ msgstr "A sair." #~ msgid "${pattern}" #~ msgstr "${pattern}" tex-common-4.04/debian/po/ca.po0000644000000000000000000003627212157017604013215 0ustar # Catalan translation of tetex-bin debconf template # Copyright (c) 2004, 2007 Software in the Public Interest, Inc. # This file is distributed under the same license as the tetex-bin package. # Josep Monés i Teixidor , 2004. # Guillem Jover , 2007. # msgid "" msgstr "" "Project-Id-Version: tetex-bin 2.0.2-21\n" "Report-Msgid-Bugs-To: tex-common@packages.debian.org\n" "POT-Creation-Date: 2009-03-17 21:50+0100\n" "PO-Revision-Date: 2007-01-29 04:18+0200\n" "Last-Translator: Guillem Jover \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: error #. Description #: ../templates:2001 msgid "Essential entry missing in ${filename}" msgstr "Manca entrada essencial a ${filename}" #. Type: error #. Description #: ../templates:2001 msgid "An essential entry is missing in ${filename}:" msgstr "Manca una entrada essencial a ${filename}:" #. Type: error #. Description #: ../templates:2001 msgid "No setting of ${variable}." msgstr "No hi ha valor per a ${variable}." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 #, fuzzy #| msgid "" #| "TeX will not work without it, you need to fix your configuration files. " #| "The version of ${filename} that is provided by the package should be " #| "available as ${filename}.ucf-dist." msgid "" "TeX will not work until the configuration files are fixed. The version of " "${filename} that is provided by the package should be available as " "${filename}.ucf-dist." msgstr "" "sense això, TeX no funcionarà, hauríeu d'esmenar els vostres fitxers de " "configuració. La versió de ${filename} proveïda pel paquet està disponible " "com ${filename}.ucf-dist." #. Type: error #. Description #. Type: error #. Description #: ../templates:2001 ../templates:3001 msgid "The configuration process has been aborted." msgstr "" #. Type: error #. Description #: ../templates:3001 #, fuzzy #| msgid "Essential entry wrong in ${filename}" msgid "Invalid essential entry in ${filename}" msgstr "Entrada essencial incorrecta a ${filename}" #. Type: error #. Description #: ../templates:3001 #, fuzzy #| msgid "" #| "An essential entry is wrong in ${filename}: ${variable} does not contain" msgid "" "An essential entry is invalid in ${filename}: ${variable} does not contain:" msgstr "" "Una entrada essencial a ${filename} és incorrecta: ${variable} no conté" #~ msgid "Exiting." #~ msgstr "S'està sortint." #~ msgid "${pattern}" #~ msgstr "${pattern}" # ../templates:75 #, fuzzy #~ msgid "" #~ "texmf.cnf has previously been generated by update-texmf from all files " #~ "in /etc/texmf/texmf.d/. Now update-texmf is changed and only reads files " #~ "with extension '.cnf'." #~ msgstr "" #~ "En versions anteriors update-texmf generava el fitxer texmf.cnf a partir " #~ "de tots els fitxers de /etc/texmf/texmf.d/. Ara update-texmf només " #~ "utilitza fitxers amb l'extensió '.cnf'." # ../templates:75 #, fuzzy #~ msgid "" #~ "So if you had any private file in /etc/texmf/texmf.d/, then you should " #~ "add '.cnf' to its name; for example, 22mymacro => 22mymacro.cnf." #~ msgstr "" #~ "Si heu afegit algun fitxer privat a /etc/texmf/texmf.d/, hauríeu d'afegir " #~ "'.cnf' al seu nom (per exemple, s'hauria de canviar el nom de 22mymacro a " #~ "22mymacro.cnf) i posteriorment executar update-texmf." # ../templates:52 #, fuzzy #~ msgid "Group that should own the TeX font cache:" #~ msgstr "Quin grup hauria de ser propietari dels fitxers ls-R?" # ../templates:38 #, fuzzy #~ msgid "" #~ "A lot of font files have to be generated before they can be used by xdvi, " #~ "dvips etc. These files are stored in /var/cache/fonts, so that they do " #~ "not need to be regenerated every time. Usually, these files are created " #~ "on-the-fly when needed. Since the directory is group-writable, the ls-R " #~ "file should be the same" #~ msgstr "" #~ "És necessari generar molts fitxers de fonts abans que els programes de " #~ "visualització i impressió de teTeX (xdvi, dvips, etc.) els puguin " #~ "utilitzar. Aquests fitxers s'emmagatzemen a /var/cache/fonts per tal " #~ "d'evitar que s'hagin de regenerar cada vegada. Els fitxers ls-R contenen " #~ "la informació de quins fitxers s'emmagatzemen, i on." # ../templates:38 #, fuzzy #~ msgid "" #~ "Accepting this option will allow you to easily manage the permissions of " #~ "those ls-R files using debconf. Otherwise you will have to manually " #~ "ensure that they get useful but safe permissions." #~ msgstr "" #~ "L'acceptació d'aquesta opció us permetrà gestionar fàcilment els permisos " #~ "dels fitxers ls-R utilitzant debconf. En cas contrari haureu d'assegurar-" #~ "vos manualment que tenen permisos útils i a la vegada segurs." # ../templates:52 #, fuzzy #~ msgid "" #~ "Modification of ls-R files can be restricted to the members of one group " #~ "which owns them. To take advantage of this, add the users to the group " #~ "of your choice, and enter that group name here. The default group, " #~ "'users', is appropriate for most systems." #~ msgstr "" #~ "És possible restringir la modificació dels fitxers ls-R als membres d'un " #~ "grup que n'és propietari. Per poder utilitzar aquesta opció, afegiu els " #~ "usuaris al grup que escolliu, i introduïu el nom d'aquest grup aquí. El " #~ "grup per defecte 'users' és apropiat per a la majoria de sistemes." # ../templates:61 #~ msgid "Allow group members to modify ls-R files?" #~ msgstr "" #~ "Voleu permetre que els membres del grup puguin modificar els fitxers ls-R?" # ../templates:61 #, fuzzy #~ msgid "" #~ "Accepting this option will allow members of the owning group to modify " #~ "the ls-R files." #~ msgstr "" #~ "Si accepteu aquesta opció permetreu que els membres del grup propietari " #~ "puguin modificar els fitxers ls-R. Quasi tothom hauria d'acceptar aquesta " #~ "opció!" # ../templates:68 #~ msgid "Allow all users to modify ls-R files?" #~ msgstr "Voleu permetre a tots els usuaris modificar els fitxers ls-R?" # ../templates:68 #~ msgid "" #~ "Accepting this option will allow all users to modify ls-R files. This is " #~ "generally not a good idea for security reasons; you should instead " #~ "restrict such access to members of one group." #~ msgstr "" #~ "Si accepteu aquesta opció permetreu a tots els usuaris modificar els " #~ "fitxers ls-R. En general això no és una bona idea per motius de " #~ "seguretat; és preferible restringir-ne l'accés als membres d'un únic grup." # ../templates:38 #~ msgid "Use debconf to manage permissions of ls-R files?" #~ msgstr "" #~ "Voleu utilitzar debconf per gestionar els permisos dels fitxers ls-R?" # ../templates:4 #~ msgid "Use update-fmtutil to automatically generate fmtutil.cnf?" #~ msgstr "" #~ "Voleu utilitzar update-fmtutil per generar automàticament fmtutil.cnf?" # ../templates:4 #~ msgid "" #~ "The file fmtutil.cnf is the central configuration file for TeX engines. " #~ "Automatic generation is recommended to make the setup work with other TeX-" #~ "related packages." #~ msgstr "" #~ "El fitxer fmtutil.cnf és el fitxer de configuració principal per a motors " #~ "TeX. Es recomana la generació automàtica d'aquest fitxer per tal que la " #~ "configuració funcioni correctament amb altres paquets relacionats amb el " #~ "TeX." # ../templates:4 #~ msgid "" #~ "After accepting this option, you should not edit fmtutil.cnf directly but " #~ "instead modify the files in /etc/texmf/fmt.d/ and run update-fmtutil. " #~ "The generated fmtutil.cnf will then be placed under /var/lib/texmf/web2c/." #~ msgstr "" #~ "En acceptar aquesta opció, no hauríeu d'editar fmtutil.cnf directament, " #~ "sinó que hauríeu de modificar els fitxers a /etc/texmf/fmt.d/ i executar " #~ "update-fmtutil. Això generarà el fitxer fmtutil.cnf sota el directori /" #~ "var/lib/texmf/web2c/." # ../templates:4 #~ msgid "" #~ "If you need to keep using an existing fmtutil.cnf then you may refuse " #~ "this option and maintain /etc/texmf/fmtutil.cnf manually. However, " #~ "installation of some TeX-related packages will fail unless you accept " #~ "this option." #~ msgstr "" #~ "Si necessiteu seguir utilitzant un fitxer fmtutil.cnf ja existent, podeu " #~ "refusar aquesta opció i modificar /etc/texmf/fmtutil.cnf manualment. " #~ "Tanmateix, la instal·lació d'alguns paquets relacionats amb TeX podria " #~ "fallar si no accepteu aquesta opció." # ../templates:22 #~ msgid "Use update-updmap to automatically generate updmap.cfg?" #~ msgstr "" #~ "Voleu utilitzar update-updmap per generar updmap.cfg automàticament?" # ../templates:22 #~ msgid "" #~ "The file updmap.cfg is the central configuration file for the font system " #~ "of TeX. Automatic generation is recommended to make the setup work with " #~ "TeX font packages." #~ msgstr "" #~ "El fitxer updmap.cfg és el fitxer de configuració principal del sistema " #~ "de fonts de TeX. Es recomana la generació automàtica d'aquest fitxer per " #~ "tal que la configuració funcioni correctament amb els paquets de fonts de " #~ "TeX." # ../templates:22 #~ msgid "" #~ "After accepting this option, you should not edit updmap.cfg directly but " #~ "instead modify the files in /etc/texmf/updmap.d/ and run update-updmap. " #~ "The generated updmap.cfg will be placed under /var/lib/texmf/web2c." #~ msgstr "" #~ "En acceptar aquesta opció, no hauríeu d'editar udpmap.cfg directament, " #~ "sinó que hauríeu de modificar els fitxers a /etc/texmf/updmap.d/ i " #~ "executar update-updmap. Això generarà el fitxer updmap.cfg sota el " #~ "directori /var/lib/texmf/web2c/." # ../templates:22 #~ msgid "" #~ "If you need to keep an existing updmap.cfg then you may refuse this " #~ "option and maintain /etc/texmf/updmap.cfg manually. However, " #~ "installation of TeX fonts will fail unless you accept this option." #~ msgstr "" #~ "Si necessiteu seguir utilitzant un fitxer updmap.cfg ja existent, podeu " #~ "refusar aquesta opció i modificar /etc/texmf/updmap.cfg manualment. " #~ "Tanmateix, la instal·lació de paquets de fonts de TeX fallarà si no " #~ "accepteu aquesta opció." # ../templates:75 #~ msgid "Files in /etc/texmf/texmf.d/ must be renamed." #~ msgstr "S'ha de canviar el nom dels fitxers de /etc/texmf/texmf-d/. " # ../templates:87 #~ msgid "Remove old (and harmful) file /etc/X11/Xresources/tetex-base?" #~ msgstr "" #~ "Voleu suprimir el fitxer antic (i perillós) /etc/X11/Xresources/tetex-" #~ "base?" # ../templates:87 #~ msgid "" #~ "An old version of tetex-bin installed /etc/X11/Xresources/tetex-base, but " #~ "it is now unused and it is even harmful for it to exist. It is strongly " #~ "recommended to let the installation script remove this file right now!" #~ msgstr "" #~ "Una versió antiga de tetex-bin instal·lava /etc/X11/Xresources/tetex-" #~ "base, però en l'actualitat ja no s'utilitza i pot ser inclús perillós. És " #~ "molt recomanable que permeteu que la instal·lació suprimeixi aquest " #~ "fitxer." # ../templates:87 #~ msgid "Remove this file?" #~ msgstr "Voleu suprimir aquest fitxer?" # ../templates:98 #~ msgid "Manage language.dat with debconf?" #~ msgstr "Voleu que debconf gestioni el fitxer language.dat?" # ../templates:98 #~ msgid "" #~ "The language.dat file, which determines which hyphenation patterns are " #~ "enabled, can be handled by debconf." #~ msgstr "" #~ "debconf pot gestionar el fitxer language-dat, que determina quins patrons " #~ "de guions s'han habilitat." # ../templates:98 #~ msgid "" #~ "If you do not choose this, one pattern set for each supported language " #~ "will be enabled (two for german, with old and new orthography). You can " #~ "choose debconf management if you want to exclude some patterns and get " #~ "smaller (La)TeX format files. Manual editing is still possible, and your " #~ "changes will be preserved." #~ msgstr "" #~ "Si no seleccioneu aquesta opció, s'habilitarà un conjunt de patrons per " #~ "cada un dels idiomes suportats (en el cas de l'alemany se n'habilitaran " #~ "dos, un per l'ortografia nova i un altre per l'antiga). Podeu seleccionar " #~ "que debconf els gestioni si preferiu excloure alguns patrons i obtenir " #~ "així fitxers de format (La)TeX més petits. També és possible configurar-" #~ "ho manualment, i els canvis no es sobreescriuran." # ../templates:112 #~ msgid "Which hyphenation patterns should be loaded?" #~ msgstr "Quins patrons de guions s'haurien de carregar?" # ../templates:112 #~ msgid "" #~ "If you want to load extra hyphenation pattern(s) please select them from " #~ "the list." #~ msgstr "" #~ "Si voleu carregar alguns patrons de guions més seleccioneu-los de la " #~ "llista." # ../templates:112 #~ msgid "" #~ "If you want to change hyphenation pattern(s) afterwards, you may do so " #~ "with \"dpkg-reconfigure tetex-bin\". Manual editing is still possible, " #~ "and your changes will be preserved." #~ msgstr "" #~ "Si voleu canviar els patrons de guions en el futur, podeu utilitzar " #~ "\"dpkg-reconfigure tetex-bin\". També és possible editar-los manualment i " #~ "es respectaran els canvis." # ../templates:122 #~ msgid "TeX format generation failed." #~ msgstr "La generació dels fitxers de format TeX ha fallat." # ../templates:122 #~ msgid "" #~ "The generation of some of the format files needed to run TeX, LaTeX etc. " #~ "has failed. You will not be able to run these programs until this is " #~ "fixed." #~ msgstr "" #~ "La generació d'alguns dels fitxers de format necessaris per utilitzar " #~ "TeX, LaTeX, etc. ha fallat. No podreu utilitzar aquests programes fins " #~ "que no solucioneu aquest error." # ../templates:122 #~ msgid "" #~ "The most frequent cause for such a failure is that a new version of tetex-" #~ "bin changed configuration files, but you did not accept the maintainers' " #~ "version of a file you manually changed." #~ msgstr "" #~ "La causa més freqüent d'aquesta fallada és que una nova versió de tetex-" #~ "bin hagi introduït canvis en els fitxers de configuració, però que no " #~ "hagueu acceptat sobreescriure els fitxers de configuració editats " #~ "manualment amb la versió dels fitxers de configuració subministrada pels " #~ "mantenidors del paquet." # ../templates:122 #~ msgid "" #~ "If you report this as a bug, please include the output of fmtutil, stored " #~ "in ${fmtutil_tempfile}" #~ msgstr "" #~ "Si ho considereu un error i n'informeu com a tal, no oblideu incloure la " #~ "sortida de fmtutil, que trobareu a ${fmtutil_tempfile}" # ../templates:136 #~ msgid "Generation of TeX font information failed." #~ msgstr "La generació de la informació de fonts TeX ha fallat." # ../templates:136 #~ msgid "" #~ "The generation of the font map files by the updmap script failed. " #~ "Therefore, TeX, LaTeX etc. will have problems finding the font files they " #~ "need." #~ msgstr "" #~ "La generació dels fitxers de mapes de fonts amb updmap ha fallat. Per " #~ "aquesta raó, TeX, LaTeX, etc. tindran problemes per trobar els fitxers de " #~ "fonts que necessiten." # ../templates:136 #~ msgid "" #~ "If you report this as a bug, please include the output of updmap, stored " #~ "in ${updmap_tempfile}" #~ msgstr "" #~ "Si ho considereu un error i n'informeu com a tal, no oblideu incloure la " #~ "sortida de updmap, que trobareu a ${updmap_tempfile}" tex-common-4.04/debian/tex-common.doc-base.tex-sub-policy0000644000000000000000000000077112157017604020217 0ustar Document: debian-tex-policy Title: The Debian TeX sub-policy Author: debian-tex-maint@lists.debian.org Abstract: Rules and information for packaging TeX add-on packages (styles, fonts, viewers, etc.). Section: Debian Format: text Files: /usr/share/doc/tex-common/Debian-TeX-Policy.txt.gz Format: HTML Index: /usr/share/doc/tex-common/Debian-TeX-Policy.html/index.html Files: /usr/share/doc/tex-common/Debian-TeX-Policy.html/*.html Format: PDF Files: /usr/share/doc/tex-common/Debian-TeX-Policy.pdf.gz tex-common-4.04/debian/rules0000755000000000000000000000700212157017604012721 0ustar #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 INSTDIR=$(CURDIR)/debian/tex-common bin_scripts=dh_installtex sbin_scripts=update-fmtlang update-texmf-config update-updmap update-texmf nonbin_scripts= sbin_installfiles=$(foreach script,$(sbin_scripts), scripts/$(script)) sbin_manpages=$(foreach script,$(sbin_scripts), scripts/$(script).8) bin_installfiles=$(foreach script,$(bin_scripts), scripts/$(script)) bin_manpages=$(foreach script,$(bin_scripts), scripts/$(script).1) nonbin_installfiles=$(foreach script,$(nonbin_scripts), scripts/$(script)) \ texmf/web2c/mktex.cnf build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: $(EPERL_FILES) debian/po/templates.pot dh_testdir $(check-svn) # Add here commands to compile the package. cd doc; $(MAKE) cd scripts; pod2man dh_installtex > dh_installtex.1 touch build-stamp debian/po/templates.pot: debian/templates debconf-updatepo grep "Last-Translator" debian/po/*.po | \ sed -e 's/.*\(<.*@.*>\).*/\1, /g' | \ tr "\n" " " | sed -e 's/, $$/\n/' \ > debian/recent-translators clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. cd doc; $(MAKE) clean -rm -f scripts/dh_installtex.1 -rm -f $(EPERL_FILES) debconf-updatepo dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/tex-common. cd doc; $(MAKE) install DESTDIR=$(INSTDIR)/usr/share/doc/tex-common cp conf/fmt.d/00tex.cnf $(INSTDIR)/etc/texmf/fmt.d/ cp conf/hyphen.d/00tex.cnf $(INSTDIR)/etc/texmf/hyphen.d/ cp conf/texmf.d/00debian.cnf $(INSTDIR)/etc/texmf/texmf.d/ cp $(sbin_installfiles) $(INSTDIR)/usr/sbin/ cp $(bin_installfiles) $(INSTDIR)/usr/bin/ cp $(nonbin_installfiles) $(INSTDIR)/usr/share/tex-common/ # debhelper stuff # dh_installtex(.1) is already installed via the bin_scripts grep -v '^[ \t]*# ' scripts/postrm-tex > $(INSTDIR)/usr/share/debhelper/autoscripts/postrm-tex grep -v '^[ \t]*# ' scripts/postinst-tex > $(INSTDIR)/usr/share/debhelper/autoscripts/postinst-tex cp scripts/tex.pm $(INSTDIR)/usr/share/perl5/Debian/Debhelper/Sequence/ # fontcache stuff with proper permissions install -d $(INSTDIR)/etc/texmf/web2c/ install -m 644 texmf/web2c/mktex.cnf $(INSTDIR)/etc/texmf/web2c/ # Remove the out-of-date ls-R file from /usr/share/texmf and create a # link to one in /var/lib/texmf that we can update without violating # the FHS (symlink created by dh_link) rm -f debian/$(package)/usr/share/texmf/ls-R # Debian-specific stuff install -m 644 debian/reportbug-control $(INSTDIR)/usr/share/bug/tex-common/control install -m 644 debian/lintian-overrides $(INSTDIR)/usr/share/lintian/overrides/tex-common # Build architecture-dependent files here. binary-arch: build install # We have nothing to do by default. # Build architecture-independent files here. binary-indep: build install dh_testdir $(check-svn) dh_testroot dh_installdebconf dh_installchangelogs dh_installdocs dh_installexamples dh_installman $(sbin_manpages) $(bin_manpages) dh_link dh_compress dh_fixperms --exclude=var/cache/fonts dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure define check-svn @if test -d debian/.svn; then \ echo "Please clean subversion directories."; \ exit 1; \ fi endef tex-common-4.04/debian/compat0000644000000000000000000000000212157017604013040 0ustar 5 tex-common-4.04/debian/control0000644000000000000000000000402312157017604013244 0ustar Source: tex-common Section: tex Priority: optional Maintainer: Debian TeX maintainers Uploaders: Julian Gilbey , C.M. Connelly , Atsuhito KOHDA , Frank Küster , Florent Rougon , Norbert Preining Build-Depends: debhelper (>= 8.1.0~), po-debconf Build-Depends-Indep: debiandoc-sgml Standards-Version: 3.9.4 Vcs-Git: git://anonscm.debian.org/debian-tex/tex-common.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-tex/tex-common.git Package: tex-common Architecture: all Depends: ${misc:Depends}, ucf, debconf (>= 1.4.69) | cdebconf (>= 0.39), dpkg (>= 1.14.18) Suggests: debhelper (>= 7.0.8) Replaces: tetex-base (<= 3.0-10), dvipdfmx Conflicts: tetex-base (<< 2007), texlive-common (<< 2009), context (<= 2011.05.18.20110627-1) Breaks: texlive-common (<< 2010), tipa (<= 2:1.3-15), itrans (<= 5.3-10), gregoriotex (<= 2.0-1.1), cm-super (<= 0.3.4-4), cm-super-minimal (<= 0.3.4-7), latex-cjk-chinese-arphic-bkai00mp (<= 1.21+nmu1), latex-cjk-japanese-wadalab (<= 0.20050817-15), latex-fonts-sipa-arundina (<= 0.2.0-1), latex-fonts-thai-tlwg (<= 1:0.5.0-1), lmodern (<= 2.004.1-3.1), ko.tex-base (<= 0.1.0+20071012-1), ko.tex-extra (<= 0.1.0+20071012-1), latex-cjk-chinese-arphic-bsmi00lp (<= 1.21+nmu1), latex-cjk-chinese-arphic-gbsn00lp (<= 1.21+nmu1), latex-cjk-chinese-arphic-gkai00mp (<= 1.21+nmu1), latex-cjk-thai (<= 4.8.2+git20111216-1), latex-cjk-chinese (<< 4.8.2+git20111216-2), latex-sanskrit (<= 2.2-8), musixtex (<= 1:0.115-2), scalable-cyrfonts-tex (<= 4.15), tex-gyre (<= 2.004.1-2.1), jadetex (<= 3.13-12), luatex (<< 0.70.1), texlive-lang-arab (<< 2012), context-doc-nonfree (<= 2012.06.27-1), alqalam (<= 0.2-5), thailatex (<< 2013) Description: common infrastructure for building and installing TeX This package contains a number of scripts and common configuration files that are needed to install a TeX System. . It also contains debhelper-like programs useful for building TeX packages. tex-common-4.04/debian/tex-common.links0000644000000000000000000000125212157017604014772 0ustar usr/share/man/man8/update-fmtlang.8 usr/share/man/man8/update-fmtutil.8 usr/share/man/man8/update-fmtlang.8 usr/share/man/man8/update-language.8 usr/share/man/man8/update-fmtlang.8 usr/share/man/man8/update-language-def.8 usr/share/man/man8/update-fmtlang.8 usr/share/man/man8/update-language-dat.8 usr/share/man/man8/update-fmtlang.8 usr/share/man/man8/update-language-lua.8 usr/sbin/update-fmtlang usr/sbin/update-fmtutil usr/sbin/update-fmtlang usr/sbin/update-language usr/sbin/update-fmtlang usr/sbin/update-language-def usr/sbin/update-fmtlang usr/sbin/update-language-dat usr/sbin/update-fmtlang usr/sbin/update-language-lua var/lib/texmf/ls-R-TEXMFMAIN usr/share/texmf/ls-R tex-common-4.04/debian/prerm0000644000000000000000000000033112157017604012707 0ustar #!/bin/sh -e # # prerm maintainer script for the Debian tex-common package. # remove dirs in /usr/local if empty case $1 in remove) rmdir /usr/local/share/texmf 2>/dev/null || true ;; esac #DEBHELPER# tex-common-4.04/debian/postinst0000644000000000000000000003742312157017604013461 0ustar #!/bin/sh -e # # postinst maintainer script for the Debian tex-common package. # # Copyright (C) 2004 by Frank Küster . # Copyright (C) 2012 by Norbert Preining # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". umask 022 # # definitions of necessary trees TEXMFSYSVARDIR=/var/lib/texmf TEXMFTREES="/usr/share/texmf $TEXMFSYSVARDIR" FULLTEXMFTREES="$TEXMFTREES /usr/share/texlive/texmf /usr/share/texlive/texmf-dist" # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # Give a name to the first commandline argument action=$1 trigger=$2 . /usr/share/debconf/confmodule db_version 2.0 cleanup() { rc=$? [ -n "$tempdir" ] && rm -rf "$tempdir" exit $rc } dhit_libkpathsea_configured () { kpsewhich --version >/dev/null 2>&1 } dhit_build_format () { tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building format(s) $*.\n\tThis may take some time... " if fmtutil-sys "$@" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi } run_mtxrun_if_possible() { # code from postinst-tex if dhit_libkpathsea_configured; then if which mtxrun >/dev/null; then # we also have to check that texlive-base is installed # and configured, otherwise we cannot be sure that # all necessary basic files are present # # dpkg-query has two defects wrt not existing packages # - it is noisy to stderr # - it returns 1 # so shut both errors up stat=$(dpkg-query -W -f='${Status}' context 2>/dev/null || true) case "$stat" in "install ok installed") do_it=1 ;; *) do_it=0 ;; esac if [ "$do_it" = 1 ] ; then tempfile=$(mktemp -p /tmp mtxrun.XXXXXXXX) printf "Running mtxrun --generate. This may take some time... " if mtxrun --generate > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mtxrun --generate failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi fi } do_triggers() { # vars used to record what we have done already, not to make # it two times DONE_FULL_LSR=0 DONE_MTXRUN=0 # currently we only support only triggers for updmap.d and # hyphen.d changes # because all the other calls are quite fast # - call all the update-* scripts (it doesn't hurt) # - go through all the triggers and call the respective fmtutil/updmap # calls. # in any case call the update-* calls update-language update-fmtutil # # the following triggers are reacted upon and in that order: # - texmf-lsr: call mktexlsr if present # - texmf-lsrfull: call mktexlsr if present # - texmf-map: call updmap-sys # - texmf-hyphen: if texmf-format hasn't been triggered call # fmtutil-sys --byhyphen ... case " $trigger " in *" texmf-lsrfull "*) # code from postinst-tex if dhit_libkpathsea_configured; then # mktexlsr may not be present if which mktexlsr >/dev/null; then tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX) printf "Running mktexlsr. This may take some time... " if mktexlsr $FULLTEXMFTREES > $tempfile 2>&1 ; then DONE_FULL_LSR=1 rm -f $tempfile echo "done." else exec >&2 echo echo "mktexlsr $FULLTEXMFTREES failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi if [ $DONE_MTXRUN = 0 ] ; then run_mtxrun_if_possible DONE_MTXRUN=1 fi ;; esac # do NOT merge these two cases into one, from dpkg's trigger.txt: # Generally each trigger name should be tested for separately, as the # postinst will often be called for several triggers at once. case " $trigger " in *" texmf-lsr "*) # only to lsr if we haven't done lsrfull if [ $DONE_FULL_LSR = 0 ] ; then # code from postinst-tex if dhit_libkpathsea_configured; then # mktexlsr may not be present if which mktexlsr >/dev/null; then tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX) printf "Running mktexlsr. This may take some time... " if mktexlsr $TEXMFTREES > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mktexlsr $TEXMFTREES failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi fi if [ $DONE_MTXRUN = 0 ] ; then run_mtxrun_if_possible DONE_MTXRUN=1 fi ;; esac # do NOT merge these two cases into one, from dpkg's trigger.txt: # Generally each trigger name should be tested for separately, as the # postinst will often be called for several triggers at once. case " $trigger " in *" texmf-map "*) # code from postinst-tex if dhit_libkpathsea_configured; then if which updmap-sys >/dev/null; then # we also have to check that texlive-base is installed # and configured, otherwise we cannot be sure that # all necessary basic files are present # # dpkg-query has two defects wrt not existing packages # - it is noisy to stderr # - it returns 1 # so shut both errors up stat=$(dpkg-query -W -f='${Status}' texlive-base 2>/dev/null || true) case "$stat" in "install ok installed") do_it=1 ;; *) do_it=0 ;; esac if [ "$do_it" = 0 ] ; then echo "texlive-base is not ready, delaying updmap-sys call" >&2 else tempfile=$(mktemp -p /tmp updmap.XXXXXXXX) printf "Running updmap-sys. This may take some time... " # call updmap with --nohash so that no ls-R files # are created in /usr/local/share/texmf/ # see bug report #607857 # instead of that we call mktexlsr $TEXMFSYSVARDIR # afterwards. This can be done without checks as # we know that dhit_libkpathsea_configured and # since mktexlsr and updmap are in the same package # and we checked for updmap already if updmap-sys --nohash > $tempfile 2>&1 ; then rm -f $tempfile echo "done." tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX) printf "Running mktexlsr $TEXMFSYSVARDIR ... " if mktexlsr $TEXMFSYSVARDIR > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mktexlsr $TEXMFSYSVARDIR failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi else exec >&2 echo echo "updmap-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo echo "Sometimes, not accepting conffile updates in /etc/texmf/updmap.d" echo "causes updmap-sys to fail. Please check for files with extension" echo ".dpkg-dist or .ucf-dist in this directory" echo exit 1 fi fi fi fi ;; esac # do NOT merge these two cases into one, from dpkg's trigger.txt: # Generally each trigger name should be tested for separately, as the # postinst will often be called for several triggers at once. case " $trigger " in *" texmf-hyphen "*) if dhit_libkpathsea_configured; then if which kpsewhich >/dev/null; then if which fmtutil-sys >/dev/null; then # code from postinst.tex v=$(kpsewhich -var-value TEXMFSYSVAR) c=$(kpsewhich -var-value TEXMFSYSCONFIG) TEXMFVAR="$v" TEXMFCONFIG="$c" export TEXMFVAR TEXMFCONFIG fmtcnffile=$(kpsewhich --format='web2c files' fmtutil.cnf) X=$(grep "^[[:space:]]*latex[[:space:]]" $fmtcnffile || true) if [ -n "$X" ] ; then # latex is installed so we can actually try to recreate # formats based on language.dat tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building latex-based formats --byhyphen $(kpsewhich language.dat).\n\tThis may take some time... " if fmtutil-sys --byhyphen "$(kpsewhich language.dat)" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi Y=$(grep "^[[:space:]]*tex[[:space:]]" $fmtcnffile || true) if [ -n "$Y" ] ; then # tex is installed so we can actually try to recreate # formats based on language.def tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building e-tex based formats --byhyphen $(kpsewhich language.def).\n\tThis may take some time... " if fmtutil-sys --byhyphen "$(kpsewhich language.def)" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi fi fi ;; esac } ################################################################# # Here starts the real action ################################################################# case $action in triggered) do_triggers ;; configure|reconfigure) # if we are upgrading from before 4, remove the preinst created # backup of the symlink if dpkg --compare-versions "$trigger" lt "4" ; then if [ -L /usr/share/texmf/doc.dpkg-remove ] ; then rm -f /usr/share/texmf/doc.dpkg-remove fi fi # create/update texmf.cnf update-texmf # remove outdated thailatex babel.sty if [ -f $TEXMFSYSVARDIR/tex/generic/babel/babel.sty ] ; then echo "Removing outdated babel.sty from thailatex." rm $TEXMFSYSVARDIR/tex/generic/babel/babel.sty rmdir --ignore-fail-on-non-empty $TEXMFSYSVARDIR/tex/generic/babel rmdir --ignore-fail-on-non-empty $TEXMFSYSVARDIR/tex/generic rmdir --ignore-fail-on-non-empty $TEXMFSYSVARDIR/tex fi # # call trigger action # that calls mktexlsr if possible, and update-* # we set the triggers updmap.d # trigger="texmf-lsr texmf-map" do_triggers # now call the equivalent of fmtutil-sys --all explicitely # we also have to check that texlive-base is installed # and configured, otherwise we cannot be sure that # all necessary basic files are present if dhit_libkpathsea_configured; then # see above for information on dpkg-query usage stat=$(dpkg-query -W -f='${Status}' texlive-base 2>/dev/null || true) case "$stat" in "install ok installed") do_it=1 ;; *) do_it=0 ;; esac if [ "$do_it" = 0 ] ; then echo "texlive-base is not ready, skipping fmtutil-sys --all call" >&2 else dhit_build_format --all fi fi # create empty dirs in /usr/local/share/ if [ ! -e /usr/local/share/texmf ] then if mkdir -p /usr/local/share/texmf 2>/dev/null then chown root:staff /usr/local/share/texmf chmod 2775 /usr/local/share/texmf fi fi # remove out dated dir /etc/texmf/language.d if [ -d /etc/texmf/language.d ] ; then rmdir --ignore-fail-on-non-empty /etc/texmf/language.d/ fi ;; *) ;; esac #DEBHELPER# ### Local Variables: ### perl-indent-level: 4 ### tab-width: 4 ### indent-tabs-mode: nil ### End: # vim:set tabstop=4 expandtab: # tex-common-4.04/debian/lintian-overrides0000644000000000000000000000072612157017604015230 0ustar # if we fail, we want to fail gracefully and inform the user: tex-common: postinst-uses-db-input # these lines are sed arguments used in substitutions and not shell code tex-common: possible-bashism-in-maintainer-script postinst:842 '/{fonts/,}map//;\$TEXMF/dvips//|\.;\$TEXMF{/fonts/map,}{/\$progname,/pdftex,/dvips,}' tex-common: possible-bashism-in-maintainer-script postinst:844 '/{fonts/,}map//;\$TEXMF/dvips//|\.;\$TEXMF{/fonts/map,}{/\$progname,/pdftex,/dvips,}' tex-common-4.04/debian/reportbug-control0000644000000000000000000000005312157017604015252 0ustar report-with: texlive-base texlive-binaries tex-common-4.04/debian/NEWS0000644000000000000000000001152212157017604012342 0ustar tex-common (4.01) experimental; urgency=low * moving files from /usr/share/doc/texmf to /usr/share/texmf/doc when using dh_installtex: - please Build-depend on tex-common (>= 4.01) - install the files in /usr/share/texmf/doc no further steps are necessary, dh_installtex automatically adds the necessary dependencies (either >= 4 if /usr/share/texmf/doc is present in the package, otherwise >= 3) -- Norbert Preining Wed, 19 Dec 2012 13:09:07 +0900 tex-common (4.00) experimental; urgency=low * documentation file changes: the link from /usr/share/texmf/doc to /usr/share/doc/texmf is dropped. That means that the documentation of packages putting them into /usr/share/doc/texmf will not be found by texdoc anymore. Package should be rebuild with an added dependency on tex-common (>= 4~) and put documentation to be found by texdoc into /usr/share/texmf/doc (according to TDS standard), and other docs into /usr/share/doc/$package, but nothing into /usr/share/doc/texmf -- Norbert Preining Mon, 17 Dec 2012 22:43:14 +0900 tex-common (3.7) unstable; urgency=low * updmap file handling changed For users: If you are using PostScript fonts that are not packaged for Debian, some changes have been done: updmap now reads *all* updmap.cfg files it finds. That means, the easiest way to activate local fonts (in TEXMFLOCAL) by putting the respective map lines into /usr/local/share/texmf/web2c/updmap.cfg, and call updmap-sys once (as root). If you have fonts in your home directory you want to activate, paralleling the above you put the respective map line into $HOME/texmf/web2c/updmap.cfg and call updmap (as user). But be reminded that you have to do that everytime system fonts have changed (there is no automatic syncronization between user specific and system wide updmap(-sys) generated files). For developers: Since version 3 of tex-common, which conincides and requires TeX Live 2011 and upward, updmap now behaves differently then before: It reads *all* available updmap.cfg files. That means that the handling of updmap.d snippets in /etc/texmf/updmap.d has changed. Packages rebuild with tex-common >= 3 will not install anything in this directory. Old, especially Debian external, font packages that still use the old (updmap.d) mechanism are (as of 3.7) still supported, but with warnings. Please rebuild these packages with a newer tex-common. -- Norbert Preining Thu, 12 Apr 2012 07:53:27 +0900 tex-common (1.8) unstable; urgency=low * Manually reinstalling removed conffiles Due to a bug in the postrm script of tetex-base in etch, purging this package removes essential configuration files of texlive packages. tex-common is also affected, because tetex-base removed /etc/texmf/web2c/mktex.cnf. This file isn't strictly needed, but it is very much recommended that you reinstall it. You can find a copy in /usr/share/tex-common/. -- Frank Küster Thu, 31 May 2007 10:32:21 +0200 tex-common (1.4) unstable; urgency=low * Filename database in $TEXMFHOME is no longer created and updated The ls-R filename database in $TEXMFHOME, $HOME/texmf, is no longer created in new installs, and also not updated by default. This makes sense unless you have a very large number of files installed in that tree. However, you MUST remove the old file $HOME/texmf/ls-R in order to allow TeX to find new files in that hierarchy! * Backwards compatibility hacks dropped In etch, some tools and search paths still supported obsolete paths and invocations. These backwards compatibility hacks, most notably to the *-sys tools and font search paths, have now been dropped. * The parse-first-line feature is now enabled by default, in order to allow MetaPost to call TeX with different formats. Only when invoked as "teX" it is disabled to remain Knuth-compatible. -- Frank Küster Mon, 2 Apr 2007 13:42:06 +0200 tex-common (0.26) unstable; urgency=low * New font cache handling The font cache handling has been reworked completely. By default, a separate font cache is kept for each user. If you want to re-enable site-wide caching, see the instructions in README.Debian. On systems where $HOME is not writable, fonts will be temporarily cached in /tmp/texfonts. * Breakage with TeXLive The texlive packages as of version 2005-2 do not automatically create a user's TEXMFVAR directory for font caching. This might break document processing in some configurations. Simply create the directory $HOME/.texmf-var manually to fix this. -- Frank Küster Mon, 3 Jul 2006 15:25:26 +0200 tex-common-4.04/debian/triggers0000644000000000000000000000012312157017604013407 0ustar interest texmf-hyphen interest texmf-map interest texmf-lsr interest texmf-lsrfull