summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2006-05-24 09:13:31 +0000
committerKaroly Lorentey <lorentey@elte.hu>2006-05-24 09:13:31 +0000
commit40a1b46245c1a8786324f5a06d6cb8d4bd9d5b74 (patch)
treef45020695e190f511f4faf4dd3ed144059f298c0
parentdbe9f5ba9648890dc34f4836a49fde766b21ce74 (diff)
parent4ea5193b9cc5c577127ca6c89ecfaad819398d3b (diff)
downloademacs-40a1b46245c1a8786324f5a06d6cb8d4bd9d5b74.tar.gz
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-289 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-290 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-291 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-292 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-293 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-567
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/FOR-RELEASE5
-rw-r--r--etc/ChangeLog41
-rw-r--r--etc/MORE.STUFF6
-rw-r--r--etc/NEWS73
-rw-r--r--etc/cs-refcard.tex3
-rw-r--r--etc/de-refcard.tex4
-rw-r--r--etc/fr-refcard.tex3
-rw-r--r--etc/pl-refcard.tex9
-rw-r--r--etc/pt-br-refcard.ps2527
-rw-r--r--etc/pt-br-refcard.tex686
-rw-r--r--etc/refcard.tex3
-rw-r--r--etc/ru-refcard.tex8
-rw-r--r--etc/sk-refcard.tex3
-rw-r--r--etc/spook.linesbin3804 -> 4447 bytes
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/pop.c9
-rw-r--r--lisp/ChangeLog167
-rw-r--r--lisp/complete.el18
-rw-r--r--lisp/dired-aux.el3
-rw-r--r--lisp/dired-x.el1
-rw-r--r--lisp/dired.el4
-rw-r--r--lisp/dnd.el26
-rw-r--r--lisp/emacs-lisp/bindat.el19
-rw-r--r--lisp/emacs-lisp/ewoc.el52
-rw-r--r--lisp/emulation/cua-base.el4
-rw-r--r--lisp/ido.el2
-rw-r--r--lisp/info-xref.el5
-rw-r--r--lisp/info.el11
-rw-r--r--lisp/mail/rmail.el6
-rw-r--r--lisp/menu-bar.el3
-rw-r--r--lisp/net/browse-url.el4
-rw-r--r--lisp/progmodes/cc-styles.el2
-rw-r--r--lisp/progmodes/cc-vars.el1
-rw-r--r--lisp/progmodes/gud.el2
-rw-r--r--lisp/progmodes/hideif.el14
-rw-r--r--lisp/progmodes/make-mode.el22
-rw-r--r--lisp/progmodes/sh-script.el8
-rw-r--r--lisp/simple.el16
-rw-r--r--lisp/skeleton.el24
-rw-r--r--lisp/term/mac-win.el5
-rw-r--r--lisp/term/w32-win.el8
-rw-r--r--lisp/textmodes/artist.el17
-rw-r--r--lisp/textmodes/bibtex.el15
-rw-r--r--lisp/textmodes/flyspell.el31
-rw-r--r--lisp/textmodes/ispell.el15
-rw-r--r--lisp/textmodes/sgml-mode.el44
-rw-r--r--lisp/tumme.el4
-rw-r--r--lisp/x-dnd.el10
-rw-r--r--lispref/ChangeLog30
-rw-r--r--lispref/display.texi29
-rw-r--r--lispref/elisp.texi3
-rw-r--r--lispref/frames.texi51
-rw-r--r--lispref/gpl.texi12
-rw-r--r--lispref/hooks.texi2
-rw-r--r--lispref/searching.texi6
-rw-r--r--lispref/syntax.texi15
-rw-r--r--lwlib/ChangeLog10
-rw-r--r--lwlib/xlwmenu.c26
-rw-r--r--man/ChangeLog43
-rw-r--r--man/custom.texi4
-rw-r--r--man/dired-x.texi20
-rw-r--r--man/dired.texi4
-rw-r--r--man/emacs.texi12
-rw-r--r--man/files.texi22
-rw-r--r--man/fixit.texi4
-rw-r--r--man/frames.texi4
-rw-r--r--man/indent.texi4
-rw-r--r--man/maintaining.texi4
-rw-r--r--man/misc.texi16
-rw-r--r--man/msdog.texi6
-rw-r--r--man/mule.texi15
-rw-r--r--man/rmail.texi4
-rw-r--r--man/search.texi4
-rw-r--r--man/text.texi16
-rw-r--r--man/trouble.texi4
-rw-r--r--src/ChangeLog46
-rw-r--r--src/buffer.c8
-rw-r--r--src/coding.h5
-rw-r--r--src/intervals.c4
-rw-r--r--src/macterm.c384
-rw-r--r--src/w32.c38
-rw-r--r--src/xfaces.c40
-rw-r--r--src/xterm.c12
-rw-r--r--src/xterm.h10
85 files changed, 4323 insertions, 546 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 08bef4585a7..c43f0697136 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
+2006-05-21 Chong Yidong <cyd@mit.edu>
+
+ * FOR-RELEASE: point-entered /point-left bug fixed.
+
2006-05-12 Eli Zaretskii <eliz@gnu.org>
* FOR-RELEASE: Spell-checking the manuals is now done; remove the
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 5d634762d9d..a02eb6821f1 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -29,12 +29,11 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
** We need a way a Lisp file encoded in iso-2022 can assure
reliable decoding regardless of user options.
+** Clean up MUSTBENEW in Fcopy_file.
+
** JD Smith's 17 Apr 2006 bug report that CVS operations
get mysterious unreproducible failures.
-** David Hansen's bug report on 16 Apr 2006 about point-entered and
-point-left text properties.
-
** Is there a basic problem with cl-byte-compile-compiler-macro?
** Markus Gritsch's report about Emacs looping on Windoze with the following
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 8d911dcb578..5bd5f1099f1 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,44 @@
+2006-05-20 Rodrigo Real <rreal@ucpel.tche.br>
+
+ * pt-br-refcard.tex: Update.
+
+2006-05-23 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * pl-refcard.tex (Local variables): Add compile-command.
+
+ * ru-refcard.tex (Local variables): Add compile-command and
+ coding.
+
+ * pt-br-refcard.tex: Don't \input psfig.
+
+ * refcard.tex (section{Info}): Add `i'. Use `s' instead of `M-s'.
+
+ * de-refcard.tex (section{Info}): Ditto.
+
+ * fr-refcard.tex (section{Info}): Ditto. Translation suggested by
+ Stefan Monnier <monnier@iro.umontreal.ca>.
+
+ * pl-refcard.tex (section{Info}): Ditto. Translation suggested by
+ Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>.
+
+ * cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry
+ for `i' is not translated yet.
+
+ * pt-br-refcard.tex (section{Info}): Ditto.
+
+ * ru-refcard.tex (section{Info}): Ditto.
+
+ * sk-refcard.tex (section{Info}): Ditto.
+
+2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * MORE.STUFF: Update AUCTeX entry.
+
+2006-05-20 Rodrigo Real <rreal@ucpel.tche.br>
+
+ * pt-br-refcard.tex:
+ * pt-br-refcard.ps: New files.
+
2006-05-15 Reiner Steib <Reiner.Steib@gmx.de>
* sk-refcard.tex: Add coding cookie.
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF
index ad694fa74ce..f5fb4b13ad7 100644
--- a/etc/MORE.STUFF
+++ b/etc/MORE.STUFF
@@ -117,9 +117,9 @@ the future.
You might like to check whether they are packaged for your system.
Several are for Debian GNU/Linux in particular.
- * AUCTeX: fancy (La)TeX support: <URL:http://www.gnu.org/software/auctex/>
- There's an AUCTeX mail list/newsgroup:
- <URL:news://sunsite.dk/emacs.auctex>.
+ * AUCTeX: <URL:http://www.gnu.org/software/auctex/>
+ An extensible package that supports writing and formatting TeX
+ files (including AMS-TeX, LaTeX, Texinfo, ConTeXt, and docTeX).
* BBDB: personal Info Rolodex integrated with mail/news:
<URL:http://bbdb.sourceforge.net/>
diff --git a/etc/NEWS b/etc/NEWS
index 695dfe99c87..e26184400d9 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,4 +1,4 @@
-GNU Emacs NEWS -- history of user-visible changes. 2003-05-21
+GNU Emacs NEWS -- history of user-visible changes. 2006-05-21
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
See the end for copying conditions.
@@ -72,6 +72,12 @@ Type `C-u C-h t' to choose one of them in case your language setup
doesn't automatically select the right one.
---
+** A Portuguese translation of Emacs' reference card has been added.
+Its name is `pt-br-refcard.tex'. The corresponding PostScript file is
+also included.
+
+
+---
** A French translation of the `Emacs Survival Guide' is available.
---
@@ -1293,6 +1299,10 @@ with different file attributes in two dired buffers.
of marked files with the value entered in the minibuffer.
+++
+*** The Dired command `dired-goto-file' is now bound to j, not M-g.
+This is to avoid hiding the global key binding of M-g.
+
++++
*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
control substitution of the file names only when they are surrounded
by whitespace. This means you can now use them as shell wildcards
@@ -1301,8 +1311,8 @@ double quotes make no difference in the shell, but they prevent
special treatment in `dired-do-shell-command'.
+++
-*** In Dired, the w command now copies the current line's file name
-into the kill ring. With a zero prefix arg, copies absolute file names.
+*** In Dired, the w command now stores the current line's file name
+into the kill ring. With a zero prefix arg, it stores the absolute file name.
+++
*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
@@ -1982,12 +1992,18 @@ subprocess are controlled by the user options `scheme-trace-command',
`scheme-untrace-command' and `scheme-expand-current-form'.
---
-** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
+** Changes in Makefile mode
+
+*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
The former two couldn't be differentiated before, and the latter three
are new. Font-locking is robust now and offers new customizable
faces.
+*** The variable `makefile-query-one-target-method' has been renamed
+to `makefile-query-one-target-method-function'. The old name is still
+available as alias.
+
+++
** In Outline mode, `hide-body' no longer hides lines at the top
of the file that precede the first header line.
@@ -2603,6 +2619,10 @@ i.e., there is always a closing tag.
By default, its setting is inferred on a buffer-by-buffer basis
from the file name or buffer contents.
+*** The variable `sgml-transformation' has been renamed to
+`sgml-transformation-function'. The old name is still available as
+alias.
+
+++
*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
@@ -2680,6 +2700,10 @@ extracting the content of a BibTeX field.
`bibtex-autokey-titleword-case-convert-function'. The old names are
still available as aliases.
+** In Artist mode the variable `artist-text-renderer' has been
+renamed to `artist-text-renderer-function'. The old name is still
+available as alias.
+
+++
** In Enriched mode, `set-left-margin' and `set-right-margin' are now
by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
@@ -3291,7 +3315,9 @@ C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
argument, which visits multiple files, and C-x d passes it to `dired'.
---
-** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
+** Changes in Skeleton
+
+*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
`@' has reverted to only setting `skeleton-positions' and no longer
sets `skeleton-point'. Skeletons which used @ to mark
@@ -3299,6 +3325,12 @@ sets `skeleton-point'. Skeletons which used @ to mark
updated `skeleton-insert' docstring explains these new features along
with other details of skeleton construction.
+*** The variables `skeleton-transformation', `skeleton-filter', and
+`skeleton-pair-filter' have been renamed to
+`skeleton-transformation-function', `skeleton-filter-function', and
+`skeleton-pair-filter-function'. The old names are still available
+as aliases.
+
---
** Hideshow mode changes
@@ -3555,6 +3587,25 @@ deleting the part of subprocess output that matches the input.
+++
** The variable `memory-full' now remains t until
there is no longer a shortage of memory.
+
+** The ewoc package no longer inserts a newline after each pretty-printed
+entry and after the header and footer, to allow for multiple-entry ewocs to
+display on a single line.
+
+To make pre-existing client code behave the same way as before, you must
+arrange to insert a newline in three places: the pretty-printer function,
+the header and the footer. It is anyway a good idea to specify a non-empty
+footer so that markers after the ewoc's buffer text are properly updated.
+For example:
+
+;; before
+(defun PP (data) (insert (format "%S" data)))
+(ewoc-create 'PP "start\n")
+
+;; now
+(defun PP (data) (insert (format "%S\n" data)))
+(ewoc-create 'PP "start\n\n" "\n")
+
* Lisp Changes in Emacs 22.1
@@ -7109,6 +7160,10 @@ end of the buffer.
*** Spell checking now works in the MS-DOS version of Emacs.
+*** The variable `ispell-format-word' has been renamed to
+`ispell-format-word-function'. The old name is still available as
+alias.
+
** Makefile mode changes
*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
@@ -7661,9 +7716,15 @@ mode `iswitchb-mode'.
If you have `(require 'msb)' in your .emacs, please replace it with
`(msb-mode 1)'.
-** Flyspell mode has various new options. See the `flyspell' Custom
+** Changes in Flyspell mode
+
+*** Flyspell mode has various new options. See the `flyspell' Custom
group.
+*** The variable `flyspell-generic-check-word-p' has been renamed
+to `flyspell-generic-check-word-predicate'. The old name is still
+available as alias.
+
** The user option `backward-delete-char-untabify-method' controls the
behavior of `backward-delete-char-untabify'. The following values
are recognized:
diff --git a/etc/cs-refcard.tex b/etc/cs-refcard.tex
index be54da104ad..762b33f3d09 100644
--- a/etc/cs-refcard.tex
+++ b/etc/cs-refcard.tex
@@ -591,8 +591,9 @@ Pohyb mezi uzly:
Dal¹í:
\key{spustit {\bf tutoriál} k~Info}{h}
-\key{{\bf ukonèit} Info}{q}
+% \key{look up a subject in the indices}{i} % FIXME
\key{prohledat uzly na øetìzec}{M-s}
+\key{{\bf ukonèit} Info}{q}
\endindentedkeys
diff --git a/etc/de-refcard.tex b/etc/de-refcard.tex
index 743e699fd76..6572a672fcf 100644
--- a/etc/de-refcard.tex
+++ b/etc/de-refcard.tex
@@ -563,9 +563,9 @@ Bewegung zwischen Knoten:
Sonstige:
\key{Info {\bf Tutorial} starten}{h}
-\key{Info Befehle zeigen}{?}
+\key{Begriff in den Indices suchen}{i}
+\key{Knoten nach reg. Ausd. durchsuchen}{s}
\key{Info {\bf verlassen} }{q}
-\key{Knoten nach reg. Ausd. durchsuchen}{M-s}
\endindentedkeys
diff --git a/etc/fr-refcard.tex b/etc/fr-refcard.tex
index 54d73ca6312..c8c8fd8cd9a 100644
--- a/etc/fr-refcard.tex
+++ b/etc/fr-refcard.tex
@@ -588,8 +588,9 @@ Passer de n\oe{}ud en n\oe{}ud :
Autres :
\key{lancer le {\bf didacticiel} Info}{h}
+\key{chercher dans l'index}{i}
+\key{rechercher les n\oe{}uds avec une expression rationnelle}{s}
\key{{\bf quitter} Info}{q}
-\key{rechercher les n\oe{}uds avec une expression rationnelle}{M-s}
\endindentedkeys
diff --git a/etc/pl-refcard.tex b/etc/pl-refcard.tex
index 0d5f008378e..c0d242c01a3 100644
--- a/etc/pl-refcard.tex
+++ b/etc/pl-refcard.tex
@@ -898,9 +898,10 @@ Pozosta/le polecenia:
%\key{{\bf quit} Info}{q}
%\key{search nodes for regexp}{M-s}
\key{wywo/laj {\bf samouczek} Info}{h}
-\key{{\bf zako/ncz} Info}{q}
+\key{wyszukaj zagadnienie w indeksach}{i}
\key{wyszukuj w~w/ez/lach tekst zgodny\newline
- z~podanym wyra/zeniem regularnym}{M-s}
+ z~podanym wyra/zeniem regularnym}{s}
+\key{{\bf zako/ncz} Info}{q}
\endindentedkeys
@@ -990,5 +991,9 @@ przez wywo/lanie \kbd{C-h f interactive}.
\copyrightnotice
\bye
+
+% Local variables:
+% compile-command: "tex pl-refcard"
+% End:
% arch-tag: 19d15a16-70be-40c8-ad91-88899aac32a9
diff --git a/etc/pt-br-refcard.ps b/etc/pt-br-refcard.ps
new file mode 100644
index 00000000000..376315aa30b
--- /dev/null
+++ b/etc/pt-br-refcard.ps
@@ -0,0 +1,2527 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
+%%Title: refcard.dvi
+%%Pages: 2
+%%PageOrder: Ascend
+%%Orientation: Landscape
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: CMBX10 CMR8 CMTT8 CMBX8 CMR6 CMSY6 CMTI8 CMMI8
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -t landscape refcard.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2006.05.10:0849
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: f7b6d320.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
+% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
+% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
+% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
+%
+/TeXf7b6d320Encoding [
+/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
+] def
+
+%%EndProcSet
+%%BeginProcSet: 09fbbfac.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
+/TeX09fbbfacEncoding [
+/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
+] def
+
+%%EndProcSet
+%%BeginProcSet: bbad153f.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
+%
+/TeXbbad153fEncoding [
+/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
+] def
+
+%%EndProcSet
+%%BeginProcSet: 74afc74c.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
+%
+/TeX74afc74cEncoding [
+/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
+] def
+
+%%EndProcSet
+%%BeginProcSet: aae443f0.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
+%
+/TeXaae443f0Encoding [
+/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
+] def
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMMI8
+%!PS-AdobeFont-1.1: CMMI8 1.100
+%%CreationDate: 1996 Jul 23 07:53:54
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-24 -250 1110 750}readonly def
+/UniqueID 5087383 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC
+4391C9DF440285B8FC159D0E98D4258FC57892DDF753642CD526A96ACEDA4120
+788F22B1D09F149794E66DD1AC2C2B3BC6FEC59D626F427CD5AE9C54C7F78F62
+C36F49B3C2E5E62AFB56DCEE87445A12A942C14AE618D1FE1B11A9CF9FAA1F32
+617B598CE5058715EF3051E228F72F651040AD99A741F247C68007E68C84E9D1
+D0BF99AA5D777D88A7D3CED2EA67F4AE61E8BC0495E7DA382E82DDB2B009DD63
+532C74E3BE5EC555A014BCBB6AB31B8286D7712E0E926F8696830672B8214E9B
+5D0740C16ADF0AFD47C4938F373575C6CA91E46D88DE24E682DEC44B57EA8AF8
+4E57D45646073250D82C4B50CBBB0B369932618301F3D4186277103B53B3C9E6
+DB42D6B30115F67B9D078220D5752644930643BDF9FACF684EBE13E39B65055E
+B1BD054C324962025EC79E1D155936FE32D9F2224353F2A46C3558EF216F6BB2
+A304BAF752BEEC36C4440B556AEFECF454BA7CBBA7537BCB10EBC21047333A89
+8936419D857CD9F59EBA20B0A3D9BA4A0D3395336B4CDA4BA6451B6E4D1370FA
+D9BDABB7F271BC1C6C48D9DF1E5A6FAE788F5609DE3C48D47A67097C547D9817
+AD3A7CCE2B771843D69F860DA4059A71494281C0AD8D4BAB3F67BB6739723C04
+AE05F9E35B2B2CB9C7874C114F57A185C8563C0DCCA93F8096384D71A2994748
+A3C7C8B8AF54961A8838AD279441D9A5EB6C1FE26C98BD025F353124DA68A827
+AE2AF8D25CA48031C242AA433EEEBB8ABA4B96821786C38BACB5F58C3D5DA011
+85B385124C2B6534F3CD1866AF92009D93B97F763AA3D16684AA65F029E776DA
+3BFB75EDD46D562E6A284DB4F2FDBF7CDE7C1F3772CD7B6FD372842A0E07E3EF
+68A98AB9278ADC2D35891543F57ED6DCFE8923368D556F1A8B3E35863112F409
+FBE67FC270328312BAA43A9A372C510717B50AAB01A1E02A9982113E2D7C601C
+B0BDA1C0E081E546A97647B74EE5194C57ACD62502B329FED4D966BDEB4028F0
+F082EDD5DFC8387653D620E9E73FDCE3C155347D5929C3A24D6121AEA46BBF3A
+B1C8A4793FB7F21C84400912C27D9AB0845537103553BF8F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4813956AAB24BE7C20FCF9196E8E2F30816FE2279CE3E6067667A39E44
+488D58BFD17606AE885FA06F478D359A6ECF5564C095FE0E5038425D8B152750
+F72F41B3D1E7420EE91CF4A9ED5BBE8C2275624AE257D2BDF5752E803B426F40
+924CB5C29460BC09EC84F3F3A95F6900836F0ECCF6A7BB85A3F8D650017E5FE0
+503A73644EC6C6B0254F0259F8DD4AB3945950974CEB34521881A2506E76EBB3
+7DBA7812E0186DE2C0AD3E6D42BCA320014368DD738408C54AE2CAAA9C05612B
+E7F33218F2FECCE8DB2E4B3A3BCD9D8D0BAD7EDDCCAE45F6A15FD2B8ED263E45
+14AF0CC7B58EF52D5FE73023EE9DAB8249D1EB3B795C7B42BFD2A2852D2D16BF
+CD71056F412571F41CF7EE80AA916EA4FF1630B1E226F474CC3195006043B1AB
+915DA8A9484B930F1F00028287EA3802DA3C3F99961952E04B736CDEC7768307
+879B4D2D553518FBBA727266F94C3A607FFD5D85CD0FB802CA51E6A3792C80F9
+A637D47C13A787F5D9C5BAC24E843DA198B7CC898AD786DEAC0BA9B6EF955ECC
+72DA3A8CCCF7F3B69597A2F868AE359737A9714AE6D81989B4152DA33095DAB8
+5759080AA156DF1F3767120018CE81D296D813DC52786586CF3F38EE3CE181D3
+9D79439EE13D4E5799E03338E93315C3F6BA8ADC731A0D8282637E524C1E9736
+29C594C6F19B49C859D7CCA98148215F7E6943637797641D44DC9FB8FA403FCA
+BD581E477C7BBDBC84048141760B4EE0D181D585C519D02DEB7D1C650BB49874
+A75E95E6A17D8024346AF3288A32A7EDFFAE15BACD436CC76850F2EAC7EFF565
+C4273160FC5DC7434DB94BFA01D1648421FCFEF66D786CFF60F0031B649B6F14
+E9139B27185E6E9A70E439AA8D68C6535A42634FFDA55DE86BDEDDF3D6B73015
+37C7437A96CDAC620A29942E834F714D82774AED0A83771A152EAC0CC043CB09
+02574AFC4CA006FC0D24C3DAAF4D681CC1D2D7870F273773171A4977AD05A082
+0DF3F50C8A36D7D8AA96E82387AAFB48D048CFAE2CBAA88F1865B84CFBBC1731
+A212A44EB98265A8D4A8C118E038A0C3503B27D8B58846C4F3E8112C8B05A41A
+9F8B0E1513528F5D7E509EE847F7224AA06819954974F8065AF49F21840E972D
+C1B028B541BA1364045E814A9F8FB299B6B62CA150245D92588056992FE6D71B
+FB16F2B42A3DE425B302051FCC4A2AA76F6146BAA385614913D2B11191CA6A09
+BAE8567DCAC342D013C7830A0F03D848397110F021C63C9D6AFA90ABBC2DE4C9
+69EDFEE42C028640F9784E8CA11B83B4E7AB58F8335FA294DD68BA87FFFCC743
+67239D7FF1C54B725D53581832F5307FF1995D8273EBA54372AC82B7D5EC5773
+8F52B55255502008E0EDA0646D4D71137D822A57C0E9E05F3D61B91436B5FFE5
+CD90CABEA89420F4ADD844733B9B0F0C72688B9184A2EF69966411DF2B23A25A
+11F009C6F23E452854B77AA33129C531C2C7A8666D550A83CBA6F251CB016F0C
+940EC74FF62C721F3D854404F431DB39548F0785C5140A9D406C06306CBB0C99
+B7AA0E4680D8DE074B369A7481F0C12BCEDB787A1A9E4C71C869F5022447E317
+E6B851B8D89144BEE028D2352745CB0C081A7E806482F74E7EDDB5F1601A58D9
+EC5B92F7DAD1B462B0EB9DF22604BB2D617AC6056E723110CEBACFB0F6ADFC92
+F64C98F9910F91A8C4B39EF508A1AA01656C41247E1E8280A97089C515A1792B
+509D2DBD3C5B6972F6829B60135247B75DFA7C067675B7010FB2F116B5009B12
+1F139A8A3E25FF52BE00D9C4AE67496958CA3D1D4568218542B77C865056E45A
+0A07947C4E7D16D24E07A77ED01F10226CBBC21E0DF75293CED54214149619A2
+4A591F3F99EB14032AE840BEC7313CF1F24250BD8D6BDDBE85883D35D6907C77
+FCF01A7E8DAA9BF8E47DA3225623B645891455874BA99ABF9AC9CFABC083127E
+CA636C8673A1ECF967BABDABF1A569319A4E382E7C593CB954522CC9DF04BEA6
+57297331734B3959805B89F96DD23C38DC8CE17C7373EE5F7A9035557E40C310
+7D1DA91F87F0CF45E54518B549DDC5F91851E2899E9756A069CBAE8E63A42974
+299781A390072C7E59B9433F9D47111900DEF4E4F10913BAEE90794333454574
+37B7A46664522983EADBAF6155C6A8624CC7FF1A850313072EF5B066059CC840
+C4A1DA2BAC6DD27D3D3BC9653003D5B25405492BB64FE4A1C294F06492093093
+A4B0175F6DBFE6C4C28C310F71010F97035774250EE0468E54A7CCF54465C7FE
+7A70ADA08BB5B6A4AEBB3F60FA39FB810E6D7B1FBF169DEF45FD7E7EEC4B273E
+A11269ED5BC9F8250F8D29BCBB656105FF2D71FB624F7A67C899828D3A563491
+9CCE8EF268F2A8986577C3A752F91B650DC9717A89F76DBAC254DF1BC705308B
+2E4C7C55A152ED1AE945337B93E411B46DF56DD8F0942DD8403ED15FA515079C
+A1035F3C7A2648761792E241C6710503F7A6093FAD8BCA34C0378700928762E7
+FC371BDA7488C95F69518E1DB63068E740942234A79478DF18C5752490DF199F
+95C654423257DE301117F3C379DA5C90392A7BA173BA19BF2C35C9A0EE180098
+C228CED65FD5241B5DA3D318891994D363AE49E3B0FFDE091C82DB4BE7B240EB
+159050F74BD181337EE202011BC96EB74C68E8BBB26E46020355378E6EC2B9D8
+89DB7907378B83FDC294B134E69D5AC1B2CBC821420EE28CEE8681EA3EC902F8
+3E8503A833B675E21679D6C5B7041701FC553B95D2DB82987EB4A010C8DCD9A9
+C0FB4C048617716CEA638CE3A16C90E55DBF76408A71B3B7FB784820EC3971EF
+726DBE12A1098F350D9FF84E1846CD57B6DDAEF32C6B839644F57EE6B256090E
+C711154CB95AB2910587E15E3F16D402943157E9CBA2174BE93B820951499A42
+F797664141F9F2698166395DF7116293B6557266C7DA28E2FC1F8BDA4B00C07B
+6F7FE6AD4937A694EA423A2B90F9EBD30B8D3710E7E6D7BE15BA631E6991EE2B
+1A28A02C4CC51889C37702E57F13F1E54295D77148C7EBB6B006DD232EF94D83
+20FFCB794B221BDEB84DCD737D301A44B8414B4591BD1D184C85B09BC5E28A0D
+7DB0830419C1D92775DBFAD72F2D7E581EB08E516B0DE87BFF2DC167EBACE23B
+73A3E770832A7A22B28AD12CA07DD15D22FF5EE53C48C55CEE77BD2D429571F8
+9DC52FC92A2D4F7BEDC0F27C39E7BFBBE38721E56234E9AF5FF1EFC753C8E281
+4EAF702CA8F08D3407FEF7E177FDE6177F6604B47872CD9EC22A6644C5A78CDA
+FE3C51033C45BC1BE224F09EAF923B058E13ACDC61A0E7CB5C999DB0C8543BFC
+4D65815338F65AA12BDDFC1EF5A249270D84BF1377FA064F62F41787F3D875D3
+0E4EBD38E30D593389ED01180CA5AD540A89B31933BCEC4DEEA2CFA94C03FD0D
+290573BB3162C80FA9783A66AF33F11CD9437A7EE16812BBC32D80DC10057A97
+C83152905B954CBE464EF39D40056FF3047D9D57B9088A7FAD48E997B5096D20
+E21F9FF5858FC241EC16527F66DE8B403281A8FCA32AF1408D05387C3BFF79CF
+25C5E6EE231B17287ACC5643C94E54A6962CE33246F7D03060042B623CB80C2C
+2E2AC47CB431B64828D8D35426810074E1B98188A866406D24B8020D2082961A
+A4AA27528B60C098CC0F8D34FF1DC6C5A4836C028B2295A4D8281278264283A9
+ABE23AC0A2EC42562FFD6F5FAFA72C8A029F333C26D8CC5B972073019BFB320A
+966156DEF26E9AE303FB4E20EEC86A48468755EB228C5BDAB00714F96797F5D7
+E099755C8F80F0E3331B038527D5743345DDB65784D8234292AEB642C74D95AB
+8927727F73AF12F8B189BDA6BE8BE6A08333ED0E2F6F95CE8367174E0280565A
+97E1F70518E142D658D2335C2FF8C7C401322D6405D0964966EAC8341F34BB5D
+1C654BD9D3489E6F730BB646EDE9F8607F401C5DD1B310D7D422703F305ADDE4
+BC45DD88E798C4F4286B117962E210BB9EFDC968BEE0A9C3EB6B35D1C2E8E50F
+9B9A8D965B63255791A17BF7E7596DDB15B617B98A8E838DE92775EE9338421C
+9A4C9BF5B8E78E475E814EB117719239075BA70DC806DCEF05ACC948AEB8378F
+DBAFC9D998270678435EE7F8E262C2341B173AEE3F9A2EBC2C74CB158BE302D7
+A4FE57E744271A24F3714DF24DDC103687754CFC72ADDED342B5FD5CF9D13D98
+1A13712D09148EF593050E8099035C6B9AE8CFD59948E786E3EC4E1F426FA3A7
+9082E10E79CE44C2D9FA830113503944F8D23CDB9C27A3570907FEAEF76D3ED7
+C8E1F81DA7A51CF5B723F0E4C42E3ECAC298B3E1ACB9679A1250633C373805E5
+C9496CF87FA7A858656D4A663D3EE3218D9792CF705C361994B69461026D8CCC
+130FB9D34293701A137E393F5AE79DE677D13DF5AE9EDDC545496A8C5456A860
+B36397BCC78EF754B6965D22004B978B4A55409F73C44B9FF02801D524740B9C
+E4F45750CD7E45235F376CC2CDCD3BC1B8C7658F52A5EB185EFDB6A0884FF0AF
+1958FAA5FDF4595D6EDFE28FB5249A40BDE8BA11AB0E997E9876CA0A0CD05A5B
+A26F60316F61DBF6E65F43089BDA2D57F00EC72BA3666952E730B14C79FFADB5
+7448ACE6463BD29995D6F6F571BF3D0B426897E457BD30FE76D6CDD6151A94D3
+3D53801608A7E865A01A2FF3D915CAC2614DFDA0A931E009FD1CB63FCEFD0A3D
+B26711BE84286E389805941573E02841C8E653FD3131316E768E2D096E5BA648
+9F03F9825333B2DAC376A79850AC29CEABC8BB1E7D4E34F37D6E9F388124A9E1
+9981131FE0F6718FFC580E678C9D8C1AED790D0C0D78407050D5FF315E605C73
+A16D6868E5DE5E8C1F63A88E159CC44DC0BB3E5CEC35CCBB7493975DC55F52BB
+A33709E5AE3066894885728EE784142B492056EF876521DA69BE39FF4E2BB95E
+C60688678B37692CD40A8BCD585240B0AA809328CEC0F954F0D50DA10DF61A21
+EADE286E22F67227CA286D9A0512EC909DC28518994C6D6E207D4D00514B0EF9
+5DCDA5965D827642072E6DB4B23D1F6C3250081B4D8E66084AEFD663C5F26E7C
+E19A4F3C9A100FC4AADA76F9E4AD474D033819801F7444B51203366CC709AD98
+F62722F700E13DB42D80041014AFCA8D12B23B85BB2302AB944C437FE0FAADF3
+E86291BA50463C32C29FC7D8E4B5EFED49EC40947016D0846AC79E3776E62388
+372568D2AD0DAADAFECEFBC4F7E6A8B47C214A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMSY6
+%!PS-AdobeFont-1.1: CMSY6 1.0
+%%CreationDate: 1991 Aug 15 07:21:34
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY6) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY6 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-4 -948 1329 786}readonly def
+/UniqueID 5000816 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFB7605D7BA557CC35D6
+49F6EB651B83771034BA0C39DB8D426A24543EF4529E2D939125B5157482688E
+9045C2242F4AFA4C489D975C029177CD6497EACD181FF151A45F521A4C4043C2
+1F3E76EF5B3291A941583E27DFC68B9211105827590393ABFB8AA4D1623D1761
+6AC0DF1D3154B0277BE821712BE7B33385E7A4105E8F3370F981B8FE9E3CF3E0
+007B8C9F2D934F24D591C330487DDF179CECEC5258C47E4B32538F948AB00673
+F9D549C971B0822056B339600FC1E3A5E51844CC8A75B857F15E7276260ED115
+C5FD550F53CE5583743B50B0F9B7C4F836DEF7499F439A6EBE9BF559D2EE0571
+CE54AEC461D354A32E69F39DD0C017BD6576F1E9500DC0328E8AF6EAB528FD7B
+85132A2A9995EB211FCE849216BF6D663AD649AE92DA953C4D520AB9A22D27B5
+6C34121FD688F9E17FE39B939D8DCED9EDDE5AF6DD7DC2297F2A3E1287E5AF45
+0306EDBA3C843FB8234D0DDEC7595CDE6657E499324DA260BACAE9D6DB126FD9
+AAA7368F7164F6BBBBE11EFFFB65660DA0961A97D51ADAF2136A085FDC16C199
+72BC2CA210B330C03F4252A275FEAADC95CFBC79C3B7285C4C7B5C9665909A56
+4176C37DCB569C8EED1B59C58B5EBD3ADD31010DCFD59411FC2020E238A07B83
+2439DEB653AFF1CF197533724E45EDA9810B6793E27943CF51484A5BC7DC61C5
+E97F71E04BB623E0BC9C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMR6
+%!PS-AdobeFont-1.1: CMR6 1.0
+%%CreationDate: 1991 Aug 20 16:39:02
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR6) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR6 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-20 -250 1193 750}readonly def
+/UniqueID 5000789 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
+BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
+CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
+C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
+D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
+23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
+D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
+93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
+6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
+EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
+CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
+D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
+00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
+B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
+99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
+A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
+11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
+50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB600A22D03B
+86A088CED7AE528182D2EBF4D351FD835B5DAB2036F44604002D0E21510DDCEA
+F8DD36174C2CFEBAE2D183407AAC7D4D52D51D5B2890CD3B23A88228089D26BD
+6E7ED4B31A60C45C7D8C00274A812ECF682228F241C13C41497BEAE1DB58C3B8
+3EED1B4F48D1A4706D71EB098C4FD67CC7890957724C12067CA54A2140855928
+E6197231734CB46E3EF820A1C19A6AE55A2547EDAA9994B59311C2D02BAF4950
+2A8739E2E60A1490884101F56392D67FBCB271783118B2568E2DD484465B899A
+8312F466470B4A490266852CA56F7F56991A746CCD5A365EAFD700D47D11860E
+2E2B21C90AA8B3F9915F81F0E2C2DF98D942F3CEA2300F2B9F6BC99FE21F2966
+AA932F222C35EECC2520F10C110D6FF9A32EF56A812D3760B54B451C79D6FE5F
+3F93D3E5F9E4D56096A92B9E953F160551BB6FE26206D6A317219222AA58FE76
+6C758416537175D1F7DDA512DAE5A4794216C90B561F6C29C44FAAA5EB719F20
+43333A0605C0A095D8AAC862DE53BFE3EA97A756193E9E74E7604AB5EEFC1E7C
+00888CF0F286073143ABD034A1BD66E81E588FF34930DA0421D01B48A71EF115
+BD68ECA6C15DB673CF17821A79484DA091B0FD42820B35ACBCC4E2873C3B4950
+F76EFCE8F0A80EAE5086450D76847F299FFEFAFB731C72B63DE42CDB342B1691
+0CAF1AD419B1B3102894D78C3ADE69C39ACD063566B0118C0E127D4A7C013D93
+C3F3A8D55B3A6BCFA37FC6796CB40EA156958F27435A2832A5FE55A08B76E258
+9440C4741B30E211BD4216DF1EDEE02D168A398B6769F8D165B7D7225D278BA8
+994DDDE391F57EB890156023E6E3D56E22843F3DCC582F7E6C571EF2BB436631
+A7E7738ADDAE7A0433C43A8A3B90AD8952E976F348973F79797E5B68469542DE
+D610798FAFF13B24AFA2574BF898DBD661417C41BD0FB6D448CE99BFABB91117
+E8CDCADFAD71D882E51DF28B7D04624615C826CBFA745CD903E2303337AAA886
+DF481C65C7D914DE22A026BA75D232481DC320B89A9A2F6DA1D9E54C48CDCDF3
+F657A66DFEEA1FEB0E98A71666F115BAC1286D5E0273BE8A67ECEDAA1BFA4921
+E96E67138F28919D708719107D48D8F0C4E4DDBDFE6DEC21C27F260DF7A46327
+D924F8918E2F0837760BEC3666C7D5D60A9F2A7EB0DFAECA1AE4A79C15CEBDA9
+7592B665DFC923D1C6ECB7A3444016A1F9760493BA1D71232BF2576DB84CF966
+7A7466A55FDF764D4BD7810541055B989E8A8189ACA63014CF403E3926C4F455
+81E25361FE1339777B597EFF1CD63F007EE735B9049315DE035415170248B359
+EF4A0BD6960E23D3318A59E11190AFF749ECEBC81B0D3E26795B6369309ABA76
+C1E2EA4EC1DB3065E4618BFDE7729263920EFE5236EA355BC30C95C62718EDDC
+69C3824B6A450B37974FE23553D0E1ECA572155E53DFCAD1E4F7C40FCCEB42F0
+8A41A4F516B5937D75FBB86BF290BB6548FF327853DC5A25D002A381A13DBAE8
+6CFD76979CBD26A4F4D97A791BC1E65AC1B34F43AA12D9F5E66E85E368AC33DA
+2626EE4E399623D6449037D555E35E0A22E4AABC91B360D7A961FD335E37FAD1
+46DB866561D431B05A65BE91077FEBAD52EA5587D5DB86CBD753EB270B4AFDA6
+68C0F1232BDBC07B5D7E2B58AD4FCE8D004149EA212653A83BCA85A1BC8E5AD7
+D15D165521AB6377FA20A09413403C79B1266F49D983AD0BC50AB766F1CEC782
+4609F22694540DBCF5FD113626C89BDCAA59F4905D07BABD08BA49F976C0A79F
+94A77AD26783AA9BC47B8A11CAA11090D09A88BA948844A45BCEDD3CDE0EF114
+2E16ABAC0D90E7B7345C04B53577218009E67C7B7010AD8DB0FF1073DE31C770
+670C6619622031490EA2A2D1A9FB80DD21A5ACC526C2BF0D999651B8E22A28FD
+47B4708B288F5BED8E5DFBE57FB3FB33F00657B8544CDF6CAFE1A3BBDA9F2296
+3C5BEC4351412CCB9AB6F450188D307B9AC70CA7D9DD184414833868B27BCF62
+C8CDDF23A7D796D0A1F8155E66EC9D7B35BF0FBE185103A37EC12981EADBD16D
+70CDB2D685FC168F08AE39F375739ADFC915A63C6A7246D164A12569155B956D
+A7A5795A6EA9D4FDB0AFE54C63CBC01D5C338B68DAC3D23B110527B91BC0527A
+30D7E8B7DB2A6CA19B7C71D78D71C41AE0557E0A9CF2F3285F53CEF69DC3C91A
+B3EE632FC1416B4B36CD2FDB8BAE850FAC5E9E0B7B57534A8D86948074AB123B
+B39EBA873F819AA42D36D4E07E2507EDBB3144337A743FB436545938E4DEABF7
+03EF9E9752B4DF79396023282325AC3AD52F42430A97C54287C94C3C910D025E
+B6C40DC9A11D864614393CE973DE186B99F4B3C0F33CA18E1D30F8E8EA70223A
+36853FEC29C0F96B59A6F59C0A33712B7053001FD554D23D0FF848FEB3C7EC9F
+7455645E42209FD5B8CC08A4A882E34275F6EEC5B16E7A7DE6C9D8941EB6BB46
+ABA35AA067E0439AFFF7DF7A660D66C8503BF35EC83C32270E04512FFA90618F
+6825695BB8ED9F97C4FA706BB84B66A9BB210628EBE19ADB36D679CF9E7B3BFA
+4D4764BBB31682A14FD537266E2CE1F4640131D324382542FF8B8CD9BB108B69
+6655FE8FCFB277A88C58A7E2AFAC9B740D840EDF1DFC50747CD3EA1DC24B050F
+B12404954E42E14DB6092B38F32CBAB9546A9784BFF7FB16FC0F3D2875A35A16
+75EEEA82FDD3DE0BAFF2C26BD37D229CA06A002529D27EAB41E20818ADFBBB5F
+0AAA37BB95CAD96A3F700C2E5B7DD988E89049051077CBDC2DDA592E2B99C090
+53C7D459D85A72B01880F10F9919777AAC2A3133B8A7CC5926ACB6C87B0552BE
+D310D8E86E5F4B142850D45664F2CB087C0E7546DA66214DE18E67D1BF098A30
+137068F9E9735933B96B4242E805B0D4E58FC9EDE7330D4217C9315BF6317608
+ECEE1BFED5BE0CBCDBE36119465AF20A6D7A3244652112A1E602C358D5271595
+213FC19C6562678CA6B38A817C0E7CD65FE588A1D9307FACB838C6F5461C0ED0
+888437043743899769E94B7EFD49B022E3A663EB0A00479B5C291937407B52DB
+36E71F524C1C6F4A91BB99E1A824A25C3917DDD42FC2F9DF16BB14C4D28CFFA3
+BBA2BD381C27AD1885F7DECA566B15C763B3B4B3F3EAF3806275D8600FBE4B42
+D1FEBC74147DB1CF64549C9C7DBEED10F44F4D585371BBA5357ACE0BF864231A
+436FEC2C90C94ED01324D5946B89CC05C087CEB96AF03E350BDF44683BDD566F
+0B2C48C4041411EF91A57119C9ADB0F2523477F46F72FEA57ADBB2AC25D3135F
+4F0BD460DC6D8E29830341C64BAB91275E9CA08B713955A5D344EDAEF871DCC1
+B50F30858C3C3666597B73A752E93DF128546D1A1812C5B916AE1F44CB36DBC5
+A26B5C3ECFE3A3E2A013B5BAD5722A8943BD678F651528ED340EBBF59FE47E0F
+D7BC565E44C38FF7697C3F1569C241D339EBC685E7C4D7BBD318B74E6AAFC97C
+49EECA3B147E485F1F2475AE983A18395063BFDE981F51E6A2CDBF1906E499CE
+6C6403DBD85E65E44839011D7E3F62B7504A9CFBF6A5D3C9AFD6BA64E636D7AA
+E43BD83ED14C6EFB36A5233A5D795622583AFAA09000C8557848705231B6ED8E
+5E3FA79173C172763C70AD176F4F3DB0054F144F661F9F028B596107DDA43168
+11B6A56CE4D375EB9F3DACC6EC06F632CAD1D994217FA7DA1C56F681FE7CD0AC
+6CA60BCD21FF4950D20D4A3F11E0662BC1D3CBD8AFE2DFF3DA1C609E0B337B88
+87B6FC6E735DDEFC00C491916F69D0478BA2C346608AECD337AA80031A269380
+45E450ED7BEAADFCBED412595BAC771ED3C1BFA4459A6278EA1F00CF89C9EBDB
+0A43F9CDF70A0AF808CB329CE9907FD5B36C3AF5D1C475AC99A6D6F22596CD42
+1CB7B14123D38D8FD9109438D9F49EC8AF29176204C0A776C60009AA148697B7
+F5496C6FA123F9ADAC59400E139A0B886E110425839B747241A0FD2DCA8621E4
+AC3B71FFB6FF1BD4FC5DF726DA5F383D573640774EC6327F772290930F2656C3
+3D3B1FD3F6B321E0919720F03F3C6EC09D05629549549CAF621EF916071CB6F1
+22625657C27985471E16B21714100F8B80A2C4035C5905C54FF95AB7358117C0
+DE70C0FDA8187FA316189D13A9176C1171A318A81D6A77F0E54D6DE37E5D81C2
+5BF1C7EFFEB8D130DDEA4250C4FF4F1BD1B535A20C3FEF972323F114A9FE90D8
+48162CD532AA3423FDA9AB00AD6754C8216253CE936DAD6AED5BAFAA64921186
+E217F709A73D6083A8D04F11FFF49D2D8AD5A55415043A8EFB32A478B9D70F95
+D9E63A92B53EFAABD9BE62461FEAA541F5CA67FC137E3AAEECB5BE50FF74DAB4
+18BAAE0A7244F072B33F3AF7474EBC681DDB09F4A11663EDA56268CEE9E653D7
+4C068E233BD3F142653DCAEB01E2825AFD6ACC54659F66B21AEE64F66727F033
+B3D7D17C051B17B4BF41DAC5D8FCAB88A36DEB62BCB5D248854EEB8A9EB2672A
+391013A66539BDAAD4189563B45C2FB57EBB9B02BA6845FE2E7D66CED6098014
+2831ED864C366FD3D2A36D9823E84C686D401BF9F01B71CB9864AE245E34D554
+4DE79FEE3B5C74846967D0512CC9FC103DCA3DF48D0D491E70C8A102AB9A92AD
+E868509AEC8134C6587B505139FC438FA994819CD17F108C754DF744F31B0731
+E07BB4F12389EA058127E75F5AC024595CD8477F5FEC80AE9EF2109D0FF15326
+808FC436888B98938234E93EBFB0BB009F8FACC9D0BC0058E37040CED69EDA45
+D08942E834665C0595737BD2C4B18CEF53BE576C03427D0EBD25D335ACCB2473
+63B2FC3FF036BEF8DE2CAA9308E089C591C331DE41017E36914FBC5426358701
+151572CE393FABA2C55D67E7CDC90C78CC6D58C3C6DF6524E5A9804D0D9A0E3B
+DE85F7D0057D2ADBB04FC0077E0080DB404726A8AF5029FAFC05589D835F9ABF
+ABAB4C3B3F66384368D4A2B6B3D6C1EC0FB4121C59D1C5C50CE8E65E988D06AD
+7D03BDC5B095F3BB54A1E4E7DE57601A28BDF6D1C8A26268FE2A8B510CC62B10
+A2F69EF9E8A766BE982C9D791B42C10502F3BE4516D103DE941633F021DDC99E
+4C6BB01CAFD7B886E677897C775485878943292F8592C4DED879058D96EF9F10
+B89C8BFB5567EB7D53B13F1C9893A60D22246DE121C993E9EA563EF972E433BD
+DA1119607CEC7C89145164BBF82194A31932BFA6EA40A2466EF148E9EF09209B
+973714C0DADAD79BC4DC8F767D948AA227F9A12F46262ADC3FC80BD464EB3750
+51CDE98239A728AFBA32DFCDF0E04F1364399121FBA23EA9660E71F1BD2BF976
+F6DB04FE31B3D89112C8EACEC00D8BC0834D63025580AA2A77588FEF5F95BE78
+7AB5A9BBD218B94A7D7E14AE6FC65A615D39058DE4644A126ED9AA1EA03B0A90
+9B8162D84A883D5BA85B83BE8E7EE7B3EFB9F50ACFBFDE4178C4D12D6054A046
+7CC57C142E055B9B822422C9F6E3F2323278AD2299BF211302CAD720BD980980
+4D4EBA8BCE79BC6613EB227A233BF4E0C5B73FD1C424689FECC8949C19E581B5
+9B4534060BB017C315E46E102F9C54830C11CF867846427AFF0293B6EF11970F
+A5E75BB89A8937512FAE083F1BA63BECF2B5ADCF9618F092F461096C565B55B8
+714F9AEAB4F76920A80BB74538CAE55A617C3B265F64E1B1EB19D96DEE120581
+7FDB28B9823C6F5241ED566AA02650CEEA40E6E1A2C6DB55590C5B5572D8F57B
+6AEB288D7869B6A7A50B27E496905CE770852E9BE460CD2D1C723FC7236F92DD
+727B27FAF82E9E7F32BADB7911ED3C6525D913BFA333EBDC18573F1441624892
+EB53FDBB6A945B38FC9C376C3D534127720420E20DF513EF381E2B6B5D5E5C23
+83412BD67435CD6BCE407B8FDFCE4F0A0C35E5DF9DDBB2D1D5D7CB2A45D886DD
+58F908A07FC48C245DC31F28D30FFAD477A1D1AC593FFE8086D05B285C700996
+2CB06125A817D4850B6D3DD246D671554AC1F513932BFACF92A15B75F87DB140
+F5225D5B066A913E6E3631F160CF60F54709FA0DECEBF1BB203F4D902B4351EA
+6369E4872617A98DDA8BFD29E8933D201A09149077EC934C0B082B92244DBBA5
+0E70943FE5E1E8823E0620C857D8A3CE3F857FA05A0DE16D7673E9CF27C847A7
+C8A8DC1F7B8E80A652C47C0AD748A60D76724354AE6D98D37E164B8DF1AA36C3
+04975386BD0C356DE67AF3AF9A2A7C5AB957994A588CD1BF864C64C2D00F8D07
+CCD30A5BEED0371BD23A4622BA3B8EFC35FF8A552E770FB899BFDD7A924F228B
+95B56FDDF795C0D469B399FD0DDC140CDCB61C6A6E30561CA594D7A7A0E86CE6
+B8B4A04D3651CEAF4D11F86CC71A66DA5D66555E27B1D3503E92E368352A0501
+FD045A7D79716CA26C601CA2888B9E57DED1163C821C10EAFE81CF0461A92413
+BB96D2CBD385D17430F3DD50B260F58DB83423E826B9F55FE96ADC290621D17C
+8E4BD1A39007D3EFFB5EC104D2FFC18DF08E16753C26836752BCA0F190882433
+00D86B38E658215741C887494D161A56FDEC75FD5C4E3802318C3D2B72987F3C
+2DD3B75F669F2808F2A9C0880852A4A6236FE8A4AA4FFF753FB8E0403A9926F2
+73A342837512D46102279CC3B105A959516C9CD4FF86C704BD81A2DB5FC1BA55
+4798041822419EE5B201F48A1C182EEB9530D6205677136F81D3D911C98FB220
+C04E1532CBB717A68A5AE74FC5F6ACCFFE1ADBF194551F4E9E8C481C32345FDD
+4615B1EF62FB11C900DF204485616A9D37EA2B41E81EB1854570A07B76C7A064
+2C897C81FF81F703AD989D304CF7AD99F9B900681C935A9FD79C0188B3E2B50F
+19B15C3D95D0319406F917A31676DB06839E0180EB5AF09ACB81A4493CEF52FE
+F606841668FF02BBA4492216D789B6A3C4D9C3FA1310305E9878D7457D7791E2
+4F4749102F501AFF64C3EAF5A90B7B85DF090316D74ACAC512B040C19BBC61CC
+2534597944221052369729EDFF43EDAB917F2117353A8E76A6ED790FAEFD58CD
+7B0F694B156BDCDA89DDF6DCF2B47B71CCC037111432C562AF9C6B6CA1D1BA78
+FCD24F49127731799F7A0C29786E2DAFBE0A24DBFBAE0E9A0DCD44E4649DCB7D
+2916659DB0C65232B5CDCB015827F31A5530489B79A6BB45D68E19E3ED13D3B5
+31DC8454C68CF35E3E8FD307CB301884BDC0A03EDC4F08D4142E20494C59F6EA
+8CE8046D29869C7DDCA98EC906411C57957D1C8FC5404434250881714434B1A4
+5E368208D33D37066855A8BA7318DBEAABC15A83F2E1E50362142A67E443CF03
+E31904E3AC02993022789C3A1638A2056A0D94EC8D64E2A13CED8014C4F4FA51
+8F54801B2BDE7F9F2D0F656A09EB713E8A97793DC5E7F7005241AC5D45BF297E
+429C0CB733F1B86A28AE15CB627C98548AA0DFC81E7F62817989E325324AF65E
+C44FB6A9E42A270D789463D125EEEAFDA57DFD09C94F1354D5FB7B10D8F9F47E
+B6F581CFB243A6B634647EB496F2884CF4DEA98503F4EE906A38173D2A6BDADC
+A21B3C206B15BC842DC7FFB7022AF0F963177F310E971319B9DD3BCE508D4B92
+AB9B051FDB2851502D383EE103C4B0B232E32642E305838BD2D3936387816961
+762185C7152062F990585E9055F94BDBF7BCF46EE1E5D30558BCCB4C996F27B9
+05F40807866C255B81A55D0739041B5275A66F58FC149778AF1D2D90BD83397A
+33AAE594FF0A34FE74F524FEB43A223F8E29D7ACEB1E8838EB0AEE7A5AA401CC
+9D93AA03026E0879E9B7C7BB3FED71492BDDBB28EEE6860FC9E453B0A73982DD
+7AEA950B45736DB924A67B8E88945C2FD9CD01AEAABDFA43D12083AF7D4EB987
+FCD27CA7EDE61E5707AB481BC4B566887884C33C89A2D0B234D6135BBE98ADD7
+90BB22D3BCF19B4C69FAAF0F7946A8E3ACE5C933E2AB65511E861E3C5F9428B7
+B6B61DE712F224237AC705913D0C15E717D00F1913ACF411528D7A0BA81ECC2C
+EE9C5A09F0414B01AA880EAF1776C3C4C965FDA4FF258C2C10ED0C0F894F67DC
+1EC0876ED390CE114D4635F1F7837381CC94F52F4DA12FB9C700B94D75E282BA
+C68B284F09331DCA78387C2F262FFC436FFE0B62F304CBC8BA5C287736ED17EB
+7ACE389AC473AD84A72438FD57D3F8BC75E058F0ABCB016BE01ABC26E1F2EAF1
+406809EE7F30883E006C5D62FE0D92AF0FF209B881537F7B5A34443B9A94A6D4
+4C6749230716E53A28B429458A485D1C1530527C869EAC3DB8E0928515CA5370
+83D760905152AE563F58CD82D46F80BBD9D6CA797FC8720CBE190D7264D4C754
+4590D83891A2A01C4D43AE46AECFB938899BBFDD5A0719AB0B51BD705B33446F
+24DCFD6C9D7CEC05CBC7084CFC316B0370E9F9C5F3808822C8D29CF927C76BDC
+E6C31B044951C7F455686689CF06E8138A7B19B7CE1DFDE3343136DE9287DF1E
+81778DDC3BCEF0D6DA8DBD4D56D3E06FD6AE0B51EABDB7B52024636DDC0A2396
+D34630D3E3F47889DB84CBEFB6270B85E448E02F6E81A338AE0230551D629FF4
+94A5859462DCEBE89BA8E57E107F6AC587F79CF8B427C493A5C14AF7BB045176
+A9FEE5E34663AB3AF9A8CF714DD1DD50E18889D04110634B15674D68601C4ED3
+BC8B95B927E5B2E16880E1BC5CE1FE385A2D416973B52C1A2FE4332E964074E2
+94A69FC4946F579CCBC12BD381A80B5F2B1C662CB98138B58EBB93BCA99564B0
+98CF2EB381B04F005343633B163C4DDE8A98500B447D2BEB878AFE8982510794
+D276A4A6DF3D36B0ECF8CFE7D3ED4B364B08AF5012B5AD4BA29FF5886BDF1BB0
+72378D823C1929FB02BF7C9E41B483EE3D18817B056E8FA98FB9863D79EAB517
+54BECBF7579400AC5DF7EDE80E202AF75E66C48257A50390A9784BD6077C8FDB
+CBE3D17F8BAD802E97087A8353D3412C24B0F886AFF91D101A5833CDADF898B6
+DE548E996DAFF04D6CF8668A5CFCE8400C2737D0124A97083CC808CB80B24BD5
+0162448072D97FCD1FACC4146559DFFFA11BDDE0E2698D92A9733C10BFD23E38
+73151FA9C0D030872CFA02208A31647E1A7DD2C182044D90F90D48A9C4C422A0
+FB5A3A88331168A296EEDFAA02AEAEBFCA1A698BF8A01F109EF2FB767B4F679D
+6A39AFF1972E93364E5FC5E52CCB76B06560A8FCEFEA58BE9893F9B20ED2CDA0
+F0A2EFF2C9142A50B73A1EB3547C2B7954BFA47C590FC35260C75BA557A36AD8
+18CBBC03CC65C597F432FA0F0F27DB31EEE7F754781BFCD4EFF6570BE397BFFC
+35A7C0443A8172ED4FCB128DAA55D7A0AC14F9FFF97A43538C005ED8A1FB1760
+8D01F3440420FFFDEE149F036E278E481C35007888431CA712097362CFA27134
+36FCB600FD4C4541659571FC17B8136CF3860E2A41177C4E0B6B5E39B51ABC5D
+5B5D6D732DD3D122B956D4B4328F15252762249F5D50EE7E37FBBFCFE28B12ED
+48285FF811045768B7893A838F0E02536912157475D473DBB14CB666A00B400C
+276DB1129A8D68681CED61F7E21C5761AE13FC383F55BB6FF75579CC533AB682
+E2811BC342AD6E899EBB2B16632CCEDE09B05F9DEBD65591D8CE0B6EF0FEC4DA
+10A55429C85B679511962DB373C41EFAC813C0674DA0C2B02BFD0DC1CF82E26E
+15BD338FC3236CA8DA4FB3437442EFC077549ED51208497C6B074DFB6D386333
+C0DA4772232A367AC13665201336B291E8F08BB7B30F88A3959B21C0303EAC16
+BF5BA8B4F051B58028544D56A13B171BC76F3854974A0632E262C2B90763593C
+D85BA7A24030561D968C05E641F3A72EB769B4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX8
+%!PS-AdobeFont-1.1: CMBX8 1.0
+%%CreationDate: 1991 Aug 20 16:36:07
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-59 -250 1235 750}readonly def
+/UniqueID 5000766 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
+7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
+EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
+7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
+AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
+E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
+4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
+5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
+611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
+D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
+EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
+35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
+ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
+7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
+C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
+B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
+53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
+E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
+3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
+9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C1419BA3
+4389DED48DFDE7F78F8ABE3DA17968B0FEE61D27AB43F61978CC300F2924EA14
+BA6FC2FB5CD4E01313B34CEC99B77A3D837EE53D274DC3BB04EBB9EF0EEC5A69
+962A0F4F2A482166A52E809D5C4888EC688BD43E5A099D9FA7035129CA7C2722
+844491DE966335021F4012ABC14F978ED81748F0538178EA4C9D7A0B35351EDE
+6807474C509D11DAB19B297536ABBC95CE452FB95A95A704B50458BFA68E30D8
+BC5CF97BCD247877760E3D6214BC148EC97E11DAF733750448223DAC2431D482
+63AB82145EA5F9ABBDCC991DB40F5DD4D5F484954C2E595E477F986444F55AEE
+401B565D0FE39818DB83ED1702301ED4A36C26B64CBB6C061D6D0D15E5BBA146
+B302DD3E988B4A55409F36929DF832640D9E53100AA7ED1D1B256F255CCC0690
+C3CF605410317820B3E03ECB0B9EB0127613DD7816D649EF409EB9C1EDEA9D8B
+54F7AE88DD345B7E37076A9009EEF28BF01F3A1C854881D99A29D9034BAAFDD8
+C3F2FAD2A47CB69009B4352F69FDC78C225C69B3A637A26065954A38329AF9B5
+29A7F6932FD992D80292F2CD1597FA436D0DE7C91407D1CC2AFEB98F55478094
+2741CBAEB447D55DEFC2B7C49D020B6EB50616F4BF5063D30EE5838E4FC2E147
+715C3B6416075E9AEB71E42569A9ECEFF9A2AE2AA55C500BED59B9C1F6A1F66F
+38AE40AA742517E379E65283EE626156AF35FE4A26E1CBA0073A738709F54B4D
+B9BDAA4EE057E728D0B461687C9975DACDF3690605C2D98EE0B7BA127114E52C
+23C542E8D2EF39D2C9E4B793EA50A934110C51066DF92D7B38C3480777D07EAB
+49B84B4CEDEE7158CFE26EC882F1A5E4B28441561FD2D13647AB40792DD4A970
+25B7F1A23EF4EBDCDFF405B122646895FB3E8E628027E34A72E67020D5E62A87
+38C223A0F1BA730FB4FAC3112FEC9111997301529D41598F4A40249E083ACB42
+ADE41AC53ABBD8717429106AF10DE43B659A6BBA8A235107E1CB2FE299511AB7
+6CFDA174E57BB46991370ADD818E0BC0C54A8C66E4C97AF12E038FDA89110237
+F214F4D582705CE5B3315FA281E35AE58953F8D70457CADDD552CDD364C90FBD
+DA811ECABA00498EECC9094A28B5E198058D7E2D4D76EA6D75959FB832FB7034
+989D3059DF980833CB801F53DB5E1117FF0BFF172BA5821D83A2A3D669F39A29
+B85B33884FD0240588A9894FC06E395193E97179B9DEC65AB5F823757547945D
+863733D848BF0FA705C52606455D8A3541ECD15C42A0FFA699FF350DB28EE378
+3467202A90B7ABBDE00DB651874F6D60CC26909C7618D4C741ACE9180A572632
+BFCE0C6C9021E1ABCFAD7824095B19DF5B849A293E7F1795806DF7FC89A8A91B
+27E3908645DEE3E6468BE5356ED95832591900216DFF2BF9316A474B7BD36214
+8EEB23E9AD6FC316076B051DD9C90C7D632120F972FC285632F12367C5ED1560
+9B2918D03B72B9B551D2177E700EEEE3377B8CCC1AB270255D90A81C3183457E
+4358C0F074367D9A555149559B8A6038B2F3E740215847A92DB817B98DB070A4
+6B92C8C8A0746319DF9E9FCF25E73789ECA755D28959F89621F315608ECE9029
+BB685128C8D22BED5500D1886C7A677C985DDF465869866E2F725F6BDE7FCE2C
+C819498AE0DEA811D77FD1C7431BFA72BA2ACE9656A7B947B698B95EC35D9A1B
+E9E908B2E47F213C7780BA017D3F52E3A65ECD58002A40B9BB01A7A9D9B05484
+AC1831899684A68B28CC9DE6C37514A815145B7B13990DCC49D8C28642496457
+B23819CDF607DBFD58F09E920CB72E0C971D883DBB5C8CB563BC09F096F20EAC
+4F2E6391A8736AEDF56B60A4FBAAD9E2126C42FD8C71B5AAEC21B6206E7547E7
+0B0CECC2EFE5734F00EF5CFF7F35F4A49F2F5BB6E3B5260A9FF0C8FEBFDCD944
+F797069CE01E2CD7CAA31A8297142C8BEC67C912248931C6256BECE7D7EC08D8
+2F81BE0558DC9C80E7E9B4E60BFD3ABB8F33BD62CDD74C78272833D88A13116F
+1999901D3D02A3AB6DBAB0059C475931B9C2C7A99CE5CDDB388D95B2682DF46C
+AAB2DE828CC5A4D2F41B7689C83E30D4BD80B9909FEF97441664290119C8C36F
+E3C16D55AC2E121675137F4BEAB59765CC5C85C1B7EB918ACA2CB44EB0B06CE9
+BE34C937A8AE8122BB93773F6F411F7A759AD4811874D72F7E3F75EA52109914
+7D00EA70A4DBF354EEBCF2E8AE0CABEF155ACDC24E6797AC20B388675E8CB391
+FBA2122CB835176E241899C7F13F534DBF8DB886A6F83F126BF019DBF9FC5C8D
+E4C95FACEADD7E7B6A1755C1CEF78D7AA92286BF4837EDA2E794EE2E2277D58F
+E66DAE65897E32BF653F4AACBE2B17AB3AA7FE117E029436F8F6059069B74ACF
+1EC7B1302AFF42B38C72A96141B21FEEB4F4FFFAECEC4F2C2FC1068D831DA3D6
+7BE531812DE4307FFFE8A98B6C4AB5F9E5A1F6956AE39807CD6A18A12AF22992
+35D43F2A274D6D081E8D530C8BBA1CA5B5F8AA11E0E05036B272D9CD053C615A
+9DEA172685B70429A9A8308E9C16B95E6E06789B1E3DD22A7289F05D13BF0789
+F50D6608835CADDDA11676597736C41E7DA9A948C857439F0B6F39845FB1679D
+3C8C14F3C8C5131A469EAC144B44DD3F3DC1315FB627A80587F37A42B211064F
+9780A45ECEBB176CE484A8018D41896F6FDB4E4F4257A60E869F280DE1CAD45F
+BB478526395FC993C9CA6A566D3FAB84B678D7E0F591A8E7D009DA0952A44632
+DC4277D08D56B5E81103DF31BF466629EA658C190EFC1DFADC75D272E7DCE4A0
+C6309F2563AB76640643CCF0A905614A3EED3426DC172A4FE55B76640B415A10
+951883D8FCE87FFD8E1987E93475DA0435344EC33709FDEEA16D732B9BF323CB
+FFDC2F308FAB7D76D431713478E922BD9CA32CF958B8E6B82B8ED9B81CB06BCB
+3AF17A9CB807F8FB2A963450667F7CD93E292E13916FC07B976E7FBD978D10EB
+685D7160102AA8359E260454D8C094C2BD04648FDC58E14A075B6EBE0E861E3D
+6117DA938A1215B0790E7F46B7EEC0AB98C37FF9A54A7D3A6DD83759FE9716D6
+80F4AADC28AA151DC0E7916146343B2229FEBBE04E4650018BB3D3172C2E1455
+3080E67ADF626201FECF58201BC5FAEE3C01E8EBF8781A4F8595CF80B013ABA7
+A2842C6AAC9BB76FCD645F0B5A081B69B5A641886826EEB75C8ABAE54E7FA7D4
+39875A9ED06053C61A330ACBF818BE56FEC992BD5A30CEB78D8CA54FB1CABC63
+02E052501B309D157571BB3BF7E27493D6C2BB197064E1E26DC2FF85D5549B03
+5D53346C86588A0980DD26175314898BD7288FDFA33E44FC77AF2AF116D39543
+13B45BCFFDC83E8B9E2C9AAA46AC3ECCFB07E17B35DE3070818B648E2A69D438
+FCCD284A6955A8D50CCA3C46ED33F8C3A3D686311BBEECBA3CCA1206D01B955B
+A805244D4E5D4F02E346B408F838264C5A056413D25326FF1AADBD21C2130B87
+CB6F9C91420B9594309F002215ECA7A5BCE554CABBB1A43CBD3E76372A48D95A
+2F1237DAE67566A6BFF200E263345D4FBD5A1B7266BC04F85EAF6DEE32ED2D01
+D15F80DD5D8C1EF7E614BB629990C440C0B964B39104F82CD5D0CBB0BC376ACD
+0E2E75D06E65C92D163E7498EB7B0F9A7A6BD9C8483B0CC801C30A31A4DB8DFA
+2DDF2F1EF87634ACC600B066E017BDA91917569E9AD59F33D7564C875EF596AF
+A953F2226C410FB2CEAB7A508A666CA3D94F2C25A931ED9518DF783AEF44DE3C
+733875511D5E6E4E06E3C430D979208B60445757CAF3EEB3B63C29751E3C5C34
+D120E62F4868D87828D191221FA26BF60F4DC9741991EE948B413587CBF50520
+FF5F296B9483EB0E056F548E82E9DFECC2B90DCD5D5EA0958C62A48B1784716A
+859C863592EC99195BEECEB6AA64C2A870D34903722AA7B19B1C7F5126BB74FF
+763EC2285CCB52F13A2D1E95D8875DEECF34DDFD5CC3F18F27E925C9BF9690C6
+263CC22381F06042F0AC415A28EA5302DE6F35F1215B04C098AA18277F23EB63
+E08951EF3059C4A3C606E548DAC4CEF42D2A116C02EED4270D1334B3C7813820
+054DC6639A3C4B25A398D5354F57B7C556A5A95D20FA6FBF3406E3CFA512648F
+6680ED47767E80A0F0F1EA0603CB441476A81B8BB278584E747369C88E4A9A27
+202C3688C3C2162AECCCB65FEF5314F81E0953BA98E833F84134502BA2C4F0DB
+CBCD65A0EB3DEADFD9584FFFC9948571038249749CE13A9FF0969100DB588B09
+901964577D93D0856FF3A078C4DC79FE5B6C1B5A5B35FD22B214BC16E2D7A5FE
+9B34197D4A24A1DC48240C6CBEE2F4FF5A1353A1E8F83209B0310166B96FF31D
+56CC9EB5BC1206BFAD846CD174304627F81638FDE11A6BDE75CA9F346859E578
+85F334A455BE91A56B9413EE7D8AA01FF35499934773CAEA0D32041B04933C9F
+51AAC647AD00541885B774AD4D3634D409DADF2004D8EE731A3E6134D79F0954
+CAE30C6A6CDD2BA4A9F93C10C94C1F9934917627E4FE44965AE2DDE0B415E0AB
+EB5D1624171C7D55769F616F73D7812DC4222C2E4D65DF04EFE406BC4835F746
+BCF26D09314490CA27CA888713E8EA68C130EBB4CC5E23F2468220AA157D6803
+6811FC79435982D29E09A43F7707B821B3FD44738EC3993797469052AA9C0AAA
+F21AEC2E1D2DB7AF0F65B4C3736FAD9C3A4DE9E72CC92B53B74AD4343D244EA9
+EC06AD54D945040A6F160A6E1D9F4B5902601647A2811F9D2312FAFEFBB31BD8
+0D0B39593E10DD94B862FF81B35649FB16178D80C9F6F027C2CC3BEEFB474A17
+EF1C77A9247B0D550BD314240C2BCF0A37DDFF8BAB723B153970CE2849897844
+29D3C6ACC315198B15CD9D3FF34A8E283A5137C42474BFABD43B7C7181409831
+3BC0F8BF0506CC5FFE145289105E80854503FD574F37608D176B4F9B60B05222
+6F4D14D97B85F27066D0E19999AD9EF9B657B24136FDF9061411735629D48504
+1171A1A9186630275E705D61390E2BE3D33D0D97902096587FEA4E7DB365AD54
+0393E3A46D605A3B6EA413D14465B7B8E21106C8938A67E51FE9B1BE16637E15
+763DBE8BF1D9A10E28389421AE48C8D31A6F424350E7F10804F4626331AFC871
+69CAB26391A66A12BD07B8D761380F5717B207850257E97EA23ABEF5BB35BE49
+A09FA8CE4B0C101F614AFB6C4EFEBF1254D3B86F55F8B56D9AECC8E381CF1421
+FBE59AC373352296D8F33468BBCC19EB3185406A09528BEB811C190B99FA86E5
+AFD86E94A12C600D267F5F43D0DCE259D6D191E425B1CA0DE9175FEF448C9F3D
+EA82033212ED917388CDBD31A6658960E6CB45B6D7F40653C4802BE6C26ED167
+EDB3D361647B157A7AB0C0CED73DE07685BC674C59A7CE9CE049DE8DC1B5459F
+8F9C54441B994483FE30A024CC33F093D6FE259626A436F4DD28F37B297295E3
+22AC3F9976E7ED86D6C3C7483971D456883A62A63BB59F3CDF5E1AD6BA381B9F
+B4D042F69B7B6415B641E569FBF1A127256CE296DBB5629CB8B37AC47C93804D
+FB58DF99F70611FB2631BB84BD7E34F671EBE84325C35C4529E75239339B09FA
+313CFDF6AADA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTT8
+%!PS-AdobeFont-1.1: CMTT8 1.0
+%%CreationDate: 1991 Aug 20 16:46:05
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-5 -232 545 699}readonly def
+/UniqueID 5000830 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE
+3317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A
+ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477
+C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD
+F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D
+4DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7
+61FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16
+6C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173
+B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31
+6BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23
+C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B
+BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE
+52BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9
+48FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5
+351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128
+C4CF2F4F438A4E520CD864F3EAFB5363753B82978F6FD664A14E5D6F3A929348
+5839EA752FD635619C4FABF1E1454510BD9D6B538A343BE748AE05B47F917367
+1BA5EDB15F1BDBE806E51B294257D7087334165419A6520462D794D670A1D6E1
+3BB03BF689391D056D55AD660D15A386E6D222C9572BDC4DC8A46EEC75124BB5
+F0E8978FD6031A90E4768CCBF62A5ED8C8087FD66D2033011947634878BDC0AB
+6501DA7E6D96E227068E993DBB0072F037CA4111CDD092DD0CAEC1DC6D0CEEC3
+B291B4AF285DBA243A3457A855171EA0527DFBF10E34A60D3BE2092B3218365F
+07271A0CFA3AD15205D0D0886AAE1C89807C74C6BB23F55F0405A522BE78D4C3
+0E6C7A2C17EF66CDDD65AB75D03526DBD692FF1557B689A200BB5A593E92DA77
+01E5A82004AEF4402C06C65B21971E8240F87BE60F5F7E0B56D3024B7D49B9A7
+724C55353C362CB35B720A5405B2B9301A1A0083802E8766ADB7856925D45001
+1FA451AA61F72022FF0419B1650CE94208DEEC7EE3B53ED7F9E995F883338936
+EA6FCE2E2466BE5C04B46FC7DD9E80E6F1ECDF77599D3AB9E61C00D7E425636A
+E0AAD63D341CE31564C7882916EC35366208A3C06435BF1F55086D627E06B996
+7C49FF12CC6D0E793EB19C4972C3904ED0FA9FE0C4E05140CBAB2C41EC148B05
+43A9AD2CA401532FE0045933AE0B08BC1F16D94D85420A26A9D32A9F2486BD9F
+EA2553F2E8B6950F63A1102E9E8DE227BD756612412DB1520358DDB08CFFAEF4
+AC3597978F43E982BEDBAD042738D05AD42348840F9D0122535E6CE711AB2898
+9F1003DB762D3B15BF35F3B7F593C40282FCDA0CFB1DD0B2B3A8DB68E326251A
+E4B6B6C559E735EEA2CB221ED8B8E2366B1BFAFAA234FCAB5F94F7134DB434C9
+7033F5ED902DE94FAB29392934E8DFFB00C5D27505CFDB2F1BDC7B10C9379B1B
+8533F17A4369203D2C65B5C75975A65D20BF6880FFDF8043435779F26127B38E
+09399EBB27BC2CC481594BEAF8A749445805A6EDA1DCDD02D7F23038B6EF99C3
+18918626F164B6F9FB32CFFB0D936C11AE7E2AC80543864A65EA8575DE49848B
+B09FDE687FA8AD27D0221315119A0EF7CB87E6C72A232B51E48F4AA67AB0FE6F
+36C4BA99B3C0C343EEBF2C0E5905E71FB897C0E80C9A3B15A9CBE81994D24580
+EC447198E94134154F103060C6CCEEC2006A2F7B8A01457493EDB59205B0194F
+F4859CB75EAF60F98B0A213864DD8407DE4DF86AE6EDC5147FBED02C022B26D4
+158A8313188C7BFA5F185AF65FA75F0A17DE6A5CA276DCBDB01CF410114E8B17
+5DCCB1486455DDA266A778A9EEB6B41B9DE0F79021D241FEB9E9496DDEEB6558
+7145D3540032DD2F1848CF4AD9F88E67C4B77339BFA9EE3CF75FD78A63ADB40E
+68B3D693AEB0E7AA4E46B84BAF08CDC361A106C566D01FE63AF40D245B717B92
+FD7391F92B159830ACA6303C8E96AFA4780DCD4963BD98AF67D8511E4E6C6E7A
+32616CE5F6CB270F01B6AC4EE342610E0CA1AF1DFE51CECFF133AD714F5EE89E
+978C4BF5EA08125733CFE4B0C3853429E910677D568EA9A4A0800AA5D391A772
+E8114BC600B2D6B2651BBF987CC3509B00CEEBDDBDD82330A9181D209271073F
+B37241398D70D049B9FF607A41AC70E64B928DEAB1A0B4745D98ADEFB18F2D04
+0C44BD18F8687967984B9D48A5BF27E09CEFFD7953E6D9881A197CD09B8C75AE
+31C9ED0FEF539E4D71E4DE6E65D106975A0F9C57966D50E678AE5EA9FB83EC80
+0020420E2FDB7F4234A3DF285B9D761E1F0A21018BDD9EB84934B808E345BF4E
+91556AE5779EADC1BD02E198C73D1D10A56A0F09F01302BB91879DBB084C488C
+972D39D4212AAD28F9B24C164F18CAAF595BB6F9EA9DB90C3AC98D0F37C36830
+F28A9DDAFBD9E3C84928E9EA230FBC0F3C3D05DE4084621B65D26AF4F07F74E6
+183E59EAAE390C8AC834DC662B06E83A9CADC8B891B3EDB56FCA7252600082BB
+DCE150610319A3861811339A621DEEAD6D619D475BA86984561F489D052BAA18
+7AF5FF29298168AC79B1626F882CB19F6AF7DCC4E28124ECE52599C51890E580
+132273798D3013CF390A8569A8618258D3570D2F1E538E96793E4A939293BCAB
+A9EAB62579E456B5C80CB9B79A70EB36080A6AAECB786FBDC7F19E6543F67B8B
+39D24FF379D8C6C257C2E361FDB384C822DB095DA0F10211D6572E4DE6D4E8BD
+1770868E2752631376DEDD29CC784ECD374D72232026BDF4650B9E2712190D39
+4C0748743D7EE4706B7B31C90E5743E85DAB062B01DA4960E0314D9D51293BEA
+9DC2DA2C67DF7186F9346CA769A0C7C6E6DE1BD9B48709EB87C6E6139BDFB245
+69A02887DF104549CFDDD7FFD86E9822FFFD2DF186512BB81BEE95253FB15FEA
+01E04ED643D2C7ED7B43AF1919ED54C69908A87FEF3C46BE979787C79F885451
+3C658541A8E388297ACE1CE31AF3DC7DE205B72F27EA432387A609D9401C0FA7
+B53EF719D0BA60B400DD9D02C7D9626799D39C51039B3D0408CBCFEBB0B2EF81
+220B69B2953E00666BB31C73F11F1E6108C62F4F54138631B9FAAC2C9F92935C
+2B3D9989D3D78AE5CB66BB48F669178200ECEECAAF28DC0D5378238DFB8C4DEE
+D337C8F28BBAC0840F950DF373EE8C3A59568D95648E33802210A3A563B5819B
+14C059E7F4AC6F426CD4E7B3F1A2F6F4C2FC19C2C3E9DA7D2C8F950D7564C282
+860C60EADC8F9B71B90DAAD27095804884289E914F0BF17C555A91FD07B13DA0
+66232C27711289C4D5E20A39A4660BFC00566BB31FA6511B763EFBF1CF95AC91
+CCC63FB618BB886C3B7318CC8301E323EDB4E016F0F7889C4FEDE858094C23E2
+8429D32F5C52CAA03CFD74820F2B956E61560B64CCA58607B300CA9166864F66
+49FC01C8848EE25857AD731386858093E9F87299D452D9C13D06F90E9FEF2C9C
+B9B78EA3D3F31785364D36B1650A567AE8CF30A7A5E5C6686B614DFFF65EE9E1
+04211CFDD13B3F021E5D9C965BB56FA136C0B14761ADEB5C8092088990E8D0D6
+B92F39F4E85E71FA38904C93EFB4D7FFA8012920C2445339BEEFC621CD4765D7
+01A9C397BDA9C3C0D0E6B15297BA0BBF6169BF10162524EA71D7CA539FC209BF
+375314A88500ECFB9C7363C5AE0D7FB44D0D1AFA09F34E57AAEA2EA67E2888A0
+1B202C2FC4017AB742D5437E8BC89CB24A4A1B0DF2453026E69B60AD3AC8EEAF
+ABCC24A1F4C628D67BBC03985396C05E5DFFDD98A0CD615D37EE0FC2C9173D91
+7F20B0964E1FACA7FEF48DDF1ABD76716E06B403998530C15C434F1FD2BBB250
+4B95E75486B54604D3687C2320FDF083A23C01A79363A225733925DBB954D366
+3C535E17565ACB00D3ACB5116996A172743511888EAA2D69B180A4C4FECCF034
+BBB539DCD94510B84AB82E9154C93F025FE50BF00B325A6CC4B6974BC3B67596
+CF605CC04A14625DB25A6EB9E9F9BE93066E34A285CDC45ED330AD2073A9DDF4
+8D3A6739CBF4E846C3BB01B9DC7F01055BD43AA0022FFFB2B93DC850419B4BF7
+97451F057CC0BC68C208DF288E8A1310A015BDD1019C17EBDB42CDCA2509CE3C
+E74D55C55630B10A7F042F260D0B285DE8399D11D079E91F348317AA3DDE0CC2
+A8DAC75318B5FEA8A6359EE3765E6F75E58D354B9607034F6A8BF0B22C9F770A
+F537347806E5FB7C0A6A9325D0519B02A0E7CA47946561B848BFB1C00B5AC67F
+BE25853D147950FB70854C7F4C8D7C503850F1748DDA6210DDA2BDA36DE9AF9E
+7D4DD3152165C9AFE4CAD15D146B71F0B7F2DEAA5EB3E1637A9CB5C3CF60ACB0
+7E6A11244B3FE758DF42E346A847B6FDCA6B6FCD7F02BE7D467CDC4AA2435E5E
+34647FB8C7EFCBFD144895C0AECD5E0F2AA6375C005C75535C0833FCC123A07A
+C841157D68C80ED5341FBCA8C83274C751016C40FB73A5EA4C6ABE1ADB730CC5
+1CD781A616C79C2B99EB1F13115FB00A8994DF8017791E23CCC269D90D49B402
+E1AEEF2326CB2AB44079CE18A1FFA08195CA2AFAD0ED73D907F4FC6422B882BE
+F7CE67E17EE720B1767BB925E432CDE667B4D3F0483DBCA9EEF9A41A786DBC81
+AC9A52114892FB6D2FA892B6FDD27DDDB9E173AB1DB7FD612506E2D0338D1747
+1ABEB8BA78BF7127FEBBA18A70DAEEB612B7E48885C76CBB9DB5786C17B286C8
+A955C89B3DC4FBC16C3DA027D10148F5A2C685255F2D165570BF8BB7EF72A0C9
+F90C740E57BA036C38B3FD04BDE1119FD3582FAF9F254220CC20532D8C839CCD
+ADB7ED9483CB784126475CDE0E8B2C602A14D13486C214AD6B53E14779E7DCD0
+59A4C4D62A704B4EFA896439CB66B953822B492265FFA6BE2367DE24DA97CD5E
+31D715A3320B7D0E1EEC35EA1828A218BF3B2B4EFDADCF91DDF152D4E4F92155
+757446DD8D122A22AC3C02D9FB49D31732A03F9AAC36B0494F234466B3C239AB
+4D41488FFB5EE503F69942287348E09637CCE28F1A6671B06E8F700A2276B2E9
+60BCDD1CBAECFE816F6A4A1277569D6EF85BB49503708F56A8411F76E53148F8
+A49C0623E3EC3DE32B280F5BD47AE3F759589C2E4DF29ED5DFC587E8241F559B
+4B6A1F8646D292D966CBCF651D751E5C92751B289BB75A8058E9B19C375013AC
+5B810252BF23FF9C7A0A568C6B4E329F5B71003118F3DE19F99760B525AC3D51
+AC85F6E4E47F1EB7589AC39379C35DE27F4FC5B79B8F5D33049D4BF72A8FAD0D
+04A1C77795B44EDC59FEC22A5843F86D18FD4415FAC8AD44AA7520392D57B7B6
+2C755EF3AE81A83D965E65EE8583F575AE1CC4F50A37F0B3C007771A5B60B01C
+19FF8858951E0E7CAC7D157D3F5BC7F0E453738DC33EB390F31D38781CDA8578
+F9555EA83FA8BF8BDF55740882D9140C9596ABD438E903B366ADF71304E81E58
+FF9B51BA19FE3EB5599C6D1787569B44BF26D4E14FE79C1D47F3FD4E573CCECC
+BA3F8FD36B608D87CAAC3686BE994B252287AEFD9A14AB3051CD4D751F27DB18
+BED214064F065F20D3FE097DF160C63EA5CD01B3C27788A927C79A21C4F2164C
+EEE8F38C79A7C68B1C1958F7B6F0F696A203C93918B3C23DBBEECCCB2EF2D96A
+EF6BA2A7AE40979ACEEFF78FC82EA9B34F6126F515C307783045FE80587D0FD4
+D0F81422E0B82CCC82BEE3D4189536E2C08B35AFAF3FAE2D5D009DE9BB99598A
+A91B9B58964B4CC7CB625084C0DC42ED14D685C25C85181A8735C4EA6BA9CFD2
+B7C8E67977D047470C7A778166FF42BC4B9A8F33C5451FD16878F6D65A47617C
+543A1E51AC939FB97235FDCD67962AD3CB5985DFA5737B28AD2E24DFA5921B3A
+CF2CF5FF6687C7EC9C66C4DF80C039DD5965CB1B49D0091ACAC40AA078DF781E
+55A2457EE55B1E0422C5F8074A9D475E194E5742857BD6544A636AE573FD8E68
+70BF3858E463E94E5F5D956B9859DCF1917516005364779BB9DDB66F5DA107E4
+2B5BC512D0F9C32FDC34794BA631A0731CED84706E2FB9AF7CBD4ECD53B6157F
+7B01BFFB519C87689E2A489833D22F3C1D812849B656E6C91088880F135DEE39
+FBE71EB03E6B5AD77280112F6C3E2636D22A38AD1D34F33B7C327122B9F4BE2E
+791FED7545D52ABF2ACBDFCF770F8F874806DE0D1977776B330FB8D84A52834B
+0D2BC3FC18BC1885959B65A2B395202A8BE49350C1E133EBAEDF41D36345C24F
+86E4576E68E81EB707EEFED92F6F09FA46F2F54BA766E3B20F1CFBD6677B59EB
+73778BADEBB3783A5CFA9138815187A86694E8965FABF1DF6960865AE363D418
+4C3401F3854DD5C241F3667E2CB34EBBE9A74D890283DCA529E1B63DEA16898E
+FD241DAA19EECE2869780A8A03BE546819B3C82762F5757E72C0FA749F90050B
+BDDE78E6D01685F6DCEB9A6F45E7EC9D253ED34D2EBCB98FDE257FE1AE7D39C7
+1171F5425F3604B93531EBD0DFF691A905ACAB90F760AF4A674C500119B91549
+0566246482F9454E3D3927239AD8DEEE6D4E9ECB56748D2965D7D4C59E358307
+F936122ECCF570568F9C8C8FE5F135AAE916CED51041840BC4B1F403FA632FD1
+E694065B7F48EE00FE1E6ACAD8B86A11F3ECCA19B5ADB114D0980766991F8AC1
+573EA9B5C8FB5669574CC0426377764CF911BD316C8A7D772F78F47524112BB2
+A32F11FA6A6D1B295D96456A0D621C2B8F284DBD8FEA152D9EDE6A68B9CE8CED
+65E380ADEA02DD9C06733A4984AB4F7F8C5E87E58C9AEC65CD3490C87C04DCA3
+42AC5CFFDAF21995432D0115B425B20DFC3AF8206354267FD0A8242BE0B23B24
+7B8BFE5CB5A2340838F3BD77B6ED26A6E43D2F732F5036807505B5E8C155D194
+03E57F31DB974254F3CE52708587825117D646942431DC4A29E99E7DF8193B3F
+2C9FA9049DF511A48E405A3B798F0855493AA0A2777BF1F9F55B6797F27B8711
+5B34A0C897B7B13543477D159232939A052E46DF470936A8479BCA8ED9F97F88
+A9D77E43F19DBDD737EA504D94AC6DDAF29AF0DFB73AF8B7681E501AE88A6264
+B879436A69BD0DCF3465BE9D480A31B9702B2BDDB87D647E5A03B7E931505CD6
+7FF4595F44DA7EC3B1BE6C3E713AB806A1737D026A890E77AD137A9317779D08
+B84026855E4D84BFF2B50ACD7E4E23A50B888916681BE1FFD83128E9C36029BB
+AB6225DECF2F6DFE22E12A084C27F809F53074A272735FA977D783ADFA5555C5
+F2FF03C670E2018C9388CA3034414402C60E0D49E121FA06B54E649E73E65E2E
+3376B59F3E3221FF238488418E7B969795938996B506C9CCAE529C1AD10CBCBD
+B2DC727D9722C198F7BAA1BF583AEE1B88740668CC1E9EC960B33820981700CC
+01F5AB0586DEA46B96A72EBA2568E8A3774935B4A17BB2DF361B4E4D30814CAE
+7C6BABE324FE7FCC67E32F773924E8C995A025948E253CA14FD35DB48A4C9869
+10ADFBFEA18E729FE71A53584FF7CC8E50D04A3700181E0218558C262873C7D8
+DF424F5457D76FE99ACDF797E542433AAF9E811516AC28698A179E17915BB3E1
+368DC25C96394147D0483ECB7EC5543595AD8903BEBFB250C76ACC782BBA59DD
+36D393AB25D84A09E19F7788CAA4A9110997581DCA6EA82B149660101B9DA10C
+66A13ACB601596B68CBDEB3F8AAAB3DE33874C0B07B71BCB6E4BF05CA47A7AD0
+69B6F516E4ED20D017CE5D324FE97D7FD2412A73B92D8601B8D716AD4C87891B
+53D9E95DFAC1F27A582CCA123096B12BC1BFD68F432956606CAAD9752102B925
+555EB728A26DCB480AFA1E87F2990585E477E5E83C045A72FB2DD04D0AFC8512
+640086008CD6989676719D94E4646EA41508A6A4C25E93E84B3928E9F875186D
+B2C6079FA73A221FADDED66AA88F5B49208D10C2E1E91E25DB3818D69E69F10D
+197A16CF687E74CDE885CB876C185F19D120D916E66F88D03B308ECD3BF2010C
+7530AC389495B4E63B70999149C463F46DC3FBB0E77E74ACA0E0CE17172AEFB5
+F3D559DA122B384EC940CD845E8B5271D2859A12F5E913BA6CCF8576ED7F5C04
+9C4FE5B7DF849BBD08DB1B44A71A59CD1769853CF9E49A3425D48D19233988AC
+3263BD7D1861EE4E99C9D33FCDE02854B0A9CCC24F337F04F9AA4F0292F5613B
+0DC69AFFD972B2EA03B018057A588936F7868AC2FF5474B9A9584F2AB70A6813
+23571813A6B3B48ABA4CB44F6C14E9DD5EBC97D9A705F215B31352711E6DDC25
+27B5CF2AB2C4A1B2310A91711D39A4BB8EDC93361A18A38487F8D2E3C91E5D80
+53C2B713BB837DE72556FA3D1E797EB6A90D83DA02DE424D074B6A8EFF11BE23
+D9E905B15C4860FEC665B2182CA30293A86B5D1BB1F7230D7ACF88D7C53317F2
+57FABDDDC049CA2CF03E8F0FE9FD160736418DDAD7809A85D3F3CAE9F7C51E3D
+2238449F781D61AE69614F0B307558D4423C86EE67C353E9B49DBEB7B060D7F5
+25AE5A7F64F20D22B4932E86D5F70632334D3F08F22B81472545ADD27C389FAE
+F619E9FF87185F0F54BDDD40430CC44576CA2A2F3F4C115D3C82E53689203F93
+36421BCAEB7FE999BF2EA19D3B126C073EEEEDE1E841BA512B2A4D8E1BFB3A8C
+B2272496B09DD88CC7C37EE8E06BB92797FEA48E4845D7EDB60A61206C581894
+1FB3FFFFA610E81026A7AFF8D400EF068D1797F8512F05223DDA51FE18DFDD7D
+79FA8754A79D501826F705CC5450BE63C2390764D2AF32BDEF3E45940774C9AF
+E869BCF5D5C028278DA373F0B0B6ADA106DBF419FFD5ECA3C60A6C1AD46C6C25
+5C3DC971BB07A23E3F3180DD9DEAEDFC2A96DF506424C5EFA695150D5B550AF8
+E60CDEA33876B075EF693883F6FB70EF5676B4552318E1EBBD4050B2BAD9273B
+FA895B3DAB65E4202AB0EBBC633A0810F852824D3FA83865E505F0A226A85D26
+C7D69739B671A64FDAA895F7C98660E43B18923702C6E02C3B0806BC375AC535
+527265D76CAB05110C7854CB477F1ED55D0B876CF2421E3FD0F21337AFBEC2BD
+24E8E304B141B878DDF0A9F692E1481FCE9FE8734E6FE9CC2114F0F341AB9E03
+8E4118316EEA0985914711F52F7D2CA2FF11FD9D79C5CBC12807B5992B8485DC
+494FC91F87A7A8731CE88752D02E4527597BD7485D4B88BADA367D516EE4069E
+12625CD755DE031815AE82EEABBFF8563BD74A2A5430F4B084D7F10CAB27224B
+8A8ACAB00DD8B88D7A3B9F05D769D8328E46C1345B7BA0DAD75302227CE54C2C
+AB035F296ADF6F7F7E7CDE3EA657F1244C2370C6D95EE876257AD318A92D90D9
+4249B2EF5F001B88C41BF9C9424E9904A28951038318B55BEDDD504F111622D0
+0F9D23CDB090D27E1A7B0B7DEF03C71D5F90523852FB2530A4832382EC10EDDD
+EAA73D2C1CC08A53F1262BF636D56748631DEBE79B173EBF76B6E2334BF0D855
+74430668E6E49160A25FDE5DB59FE6320B10D00AFDAA328324572B6F767D98D5
+ABFF8B9418D51864EAAAAAA2872BEDBA9ADDD7F24012DDCD6200E5B322B2FBF2
+3A37639CBD9918FBAC813DDFF7A330CEAF3BBEC787D6B404C88E22F2EA4B0F88
+1260BC45253FDDB713D260F72F074FF766A841C7B258F281C092CF643013ED6D
+F4C3DB7750E93E405958FD2DFB84FE26FB582A61A029088B6193560370751546
+230789365755CF9412EE72731564C80661E5D607DB15823CFD57DC71DB65996A
+3093A3328998FC86ED7E2214BDAA5D70F0DF0D54D0E2380B71B9E321131F247D
+37AB1EE17FEC0ABCFC5906695B15B21CF44DE062BDBC4B9088844D4F0E39E071
+0B33110F36C709E62F7129C3089F2C235F2EFCB1820B54FFA88F157C0CE08271
+AF58E9BEDEEB16F461B77596D9FCA92F3ED5B751FC0C0312769C23E85DB83BA1
+A1F8D74BC27276BD842D5856664582B3F5414E2213E382DDD8EC2EEF31E79B95
+C2497A33906574377E7FAF03CE9131A925189213E7BA883D30BDA2D03A696FDC
+E62DC5B68FC604FC6E612BCDB18482FDAD3EE1E2E0ED7F93C91C81176D33BA53
+6CEBA5D8ECDF838640ED67372D1B2943A94D82DC93AC338C57CDE651DAE7C234
+03630634D5C816277DBC9EC71DC0A862F19B1756A11703DF5DB91E110FDC7271
+C2EBBC42F233B575752573E7C3DDC8EFC73A6B8DE7E6B8D48352C3733CB9635C
+ECAD66C97F2DD346865CF018F46B4565883834D989216E3CA25556E1F9E98930
+394B985ECF798743D8277C2AB8DCAC16B483610DB7C3C90F71680D807BFD5493
+FBEA7F3FA4293659AE976D036FAD43D509C2DBA3992DD24DE8A99BF1FEEE7431
+31705015A098AD47A51E6D955DAA1A4B03CEA003E0273BA5671F7F1998238D88
+D0DA4262B134AC9003BCE375A75AC93715F8F2F8A628409CAE9FF9D119301B3E
+E8147F1DE16649984430EC4BA948BF5C74111D0F8056383D444F6524C7FAD4F8
+6A4FDF445CF8EEDFED560A6C262E24C0444B2AF705926A9E0805A1911F0230ED
+5B2030D956CEC14A102CF4F8E8C3DAC74ADC16C169BC4A4DE75DB3CE82376254
+00FA86DB89265200CEB4CC133B2A993AD95C5AE5A695DEBB05624CEE6DDA6B5E
+A089344AFA90ACA83A413762F0153EAF7DE15333BF9AF6E75EFEB3964D59E183
+42C5E52A77C87E85E2B3049508C00ADA5D6F0A8EEB2A4D71DF16F3DACD580DD5
+68C68834C0778B469ED2F8C833A1BA9CD0DB2D6AD88C506F5BB23CFEF461D30C
+ABF3164B702B433E0156590C1FD699268144766D3AE1F8E582ADC19B2D4FEC59
+0DDC8270512D3318D854BE1BA7F545AF9D9A0F3B59710609AD7A624CDCE04DAB
+095A54E8FBBBB1987D01EB7CD1B6BEDCCAA46A07077655A73707D6902BE02565
+EC7C6145AF4E52D1073E3DAC7C087A14E9631570901BEE1FF3255B8D501384A4
+0658B67909EC2F6B90A1BCEFFA9D74C1CF5570D7EA96391CAB7CA4E0CFDDB3FB
+C3591EEB49AB7B154973F0EEB9879D53DE90351F0F76BD90764ADE187C68FEB5
+AF1B4B290F2F0AA66E1D138B21C1D4EE491ED26EE44CE490F326A0407B0FA267
+1707218CA4EE1FDE220835476614DD67C7845DFB243FD2C5D856ABC7E97671AD
+B85BCAABD214B9D9BA81B4E925A726A122F1FFF11F9581A3F08645BBC4197B27
+D40D2A95EE1DAFA9C8A6157E0E79866BA40C0702B26210725AA2239785D9D9F5
+017047AB62B57F6744B2D4A5D642E971074A2FB1F8809AB65A52E96C51415FC1
+A5286427DE8C81BBFB5A218090595CC14A86A40ED9709D5752157EA673A4084A
+93BD7E215DBD1148BC140DDC68FF8F3C1AE10894D8BA9C4A3AE55992F88429C8
+DD9B8247EB0D653FFE69165BE6827825C1F88FB36E69F2A8A3CDB6D72FF96DDA
+072C65F51A898EE82590678C43FC184B532ABBEEB801F0143111C9941F2B1C3A
+484DF4C0AA7E738EB2063278EB7B70E1BAAA88C50BC462ED449B66E4E0978C1F
+7DB04568AF5EB412C3E41BA22E8273C1996042DFF01F9702B676E858F4FDD430
+F6B417197D8999945E9A82DA43969580863825D31F9D59A0D87D0F313FE2C28B
+C6B97A98DB142B88A45943DD49471C3424BEB1DB482E9650B0B92AC70FE8845C
+DA7716D68C9C2A14BD68F379E2C9DBFF92DBACFA705F328AC2D196F472A24ACA
+244A17F00C82EF653DCB067E0F3762CA52E58A5604D29EB1D56B2EB40417E2E7
+9406035A253BC2F539D5B09ACABB048EF1D689A5889B9C5FA6B2E0E2EDB9599B
+F6F4B355E3733E6BF9B21DBF7580E52526F2900F980B3C28062A33A25CE7F6A7
+4F13D6AAD9327ECC7F3F97BF15C3BEDE1A0DE042E749F648354D061C3E52E7D9
+F376216E4BD2B782A5AA0D9FDC5551CF660285E4CA7363858C51DCC79F66072A
+2FFD59D6799BC84EDC0C5DC09D9E40056A4608B235F1357D454ED3028322AB8F
+DAF5CC60F8B5EF4E01A8ECE97C491D828A87CB85D50CD56E4A7BB6DE2315CB0B
+D0113AE20B4EF27FC486B648C3C0E6F69C1FFAE0C766DFB8B16611CB504FCAD3
+06B8169190CC5F836CB68D7CC34A8434BDDBBEF33E2B778884A8070654378FB3
+744459C9FFD348B2059652D47335D7C864619700681D45A39F068430F8DBC4F0
+D1122FCC17182216F62C82A2800FEAB2247A07413B3809DBAD5A03E1F1968BBD
+B41B98142B9B0403D882A3A70B334F0365353E51A7FE4309DE4EA9BE3B695601
+3CF86249952A437666BDFACB7D272F200A64B9C09A125287FE2779E950687EBB
+3EB747653C8D95758407DC3AD8C95AC3D2E18994156FD13CC03A6653EC7A2993
+F9893778089FA63708B0E3942A226A5289090412CBED2CD71BE93DD4CC56F095
+2E41EB41DE3CA0F8953C28C3285C57B75C13CB8A7E588054BDBF3B5AD6E86965
+4BAC32C54CC88E2BA882A887BD84BBC8F15DE986DC2118D2DD0A0E154EE11815
+65B18565F5C97BA8F5753324CCB5CD8D40463D909E832CAD28E62AA2250D8DC3
+120252A10404200CEA8A2B67CF44676E6003B7FC2AC00ADDE1227724B9E8999E
+B5A4E94223504B52575111E828E4AC03833844683B64101AB5D91EFB4CC8A822
+72C394436D8930F1541359194EAB8F44403958F415678D3EACC777022271EBA2
+2A76DC2E2E833B426A15D5AE648101CDB8116D353A837D466E4311DD86F1D921
+64EF76C5CB35B5B0E4B8B1B93861E03C1B635391276D77ECFCF247E714CC67EF
+72209891C418D1472541D68A6761EBB440E360881E993D3FA4E29CADBFE733AA
+7C260797DFE27403E70F6B1D2E493A1C55B2381AF9A815808B5081231FDF30D7
+CB3A1D091A4B6887F9EF692C736AB5770BA5921D48DB3F196A4515FEFD4317D5
+BCBE5394CB5EFDB4C4A972B669C294966E5D76171CE5B903E4D8E6AE50C5C075
+37C42B59E74CF491556B618191C3489D11288587FF05713B18529C7C7DE1B9FC
+CEA7667AA32EC4F02F452F9F20E54C89E071ABFC4155ACDB4DF3900EAEC25386
+E14C88BB174890A966703ABE3B6EE4E229882DD0543C3E33025F072EECAC34A7
+7945C2D58A721E42FE71F1A2CBC59EE8278EE39F6BFDAE2AABA5562E0970991B
+75A3AE1B2B0CE3B8BA0E32F6D281990054BB095B9E9B128D54E3492C08380208
+B6FD878894DE6F487363C826F26F5B810314E48E86C933B885D21887ECFC7FA7
+711F256D819274209A0E08AB6E147F7642D07C97F92E70699D88ADDFFC941A17
+E521A3D5E3596491CF5D9BB95E483C353441CC4748A59F9E49C79968AAD58F19
+38FE5E275EA22403CC4A287A30F7B616CD4B31519AAB4DD7237916906B59CBCB
+C275E1E993B33AD6F76E945DD4CFC3CAC1BA88E5CF9D15F03212207182AA054E
+9B53A2469E76F128006747A7E3E95720EC90B43BAF6E016205435EA4AC8C8303
+E1E41BF20358CDA809B88C72AB0C2011A6C91A884D542D92971327564E175217
+A40ED9EDA6B45192C46B648215A556591A5C8AFB8468947B8BEBFAB854983A44
+CB88DD24D3C8920383944E2FE13C18A45D4A5507110C61FBA11945DDE8F0E5C6
+265F450C30BDF5D3C95F40573B139857539F01E8C804BDC8DA9306C133E7FC0B
+66F52013A1D7C4BBF2B2E1EBF80EC769D802C7117C06AE917206ED17D13A3E95
+5C987FBAFDF8B1B49E00376E8B4D60E9F2B140267A587BE8D14B1A0249C2B1DF
+003533FDA36B565ED493CD1A807E139F6C2CE7148B6FE62615731CDFF1EFD40A
+A79DCDDD7F4F4CA0D00DF277E7A38556B684A32AC4A8B6998EF6C1693F043E31
+374B86213BF7CAEE905D239D358FFCF91EF2F34DF7E0A1A16832A54640D42610
+8C77E6BDB82B862426F153B0C87170D31DA509ADAC29EE7A614EF359D584CA36
+787DA85840A14036378E25A53F907D10F7416D5334705DB9A111553FAF2EE20F
+9C3A0BFE2D3BE88C28899043C8293D012CD8E2752F30A883C2287D5AE64D00D7
+443218C7F45449B4C9B2BCEBCEEBAE0AC8934549F5E27BC01AED860754AB4962
+12C42C1E066CE0B5726331F64A1B6A738F4D79388076AF52C46CE481988B5341
+85A8CFC7F9ACB1F0647D33B762CCC7C34F91BF607940DFC09040775AFC3FAF6A
+41E89010D5700942F78D5F6E159CD13806F1F62C28EC0BD6F40E4E812B50F088
+A20C82231D47C911A9F4213077793947F6C8EA53BF2763F75779BBFA65A75E27
+791959727522E48FC28B9C649BB0AA1DFF96D7681CE5C8A42632EEC5CB7405FC
+167DAB24900FF3CDFA2FADEB8829283B73CBA2B1A95B483CD3E6F02C693AAFF9
+9C09D3D2DC196A6EAF720FDFE7C060FECB0392610B17EC0AE65C72D89D892694
+99CADF5E3F60F6571E29EBA897831B8AB7253557713BA2529465C615D848A1CB
+57633090AF2993CF37E19A97094B8686238056F22AAAC0CD81034661B9BFF73B
+18151C4DDCFCBA332283CB1970BF1830DB778E626626DE94E0A8004E5FD830CA
+93E4BC3607809BD56C75B558196999C92E7325ECDF73AA32B49C49C3C5FE4B95
+7F50AC40FD642A52CF12F3547ACAC754EB8F7164FE5624BEF7160B14258EDAD8
+E26A181219321F2AA523CFCA7B2E12878A5E242BB7BA5C9F22D0C5722766C564
+306F713ED39E883D2A7ED68A0D7C7EFD64EB39FC189A0C7FF8111660A188E19C
+DE642C8F2B0D284AC2B52405206A5E1A449319D94B3DFA20DBCBC522B5D67431
+E3A072463B59BF356F924434B5AEA53BD49298D25738AA79AB1E274F0A7E9330
+2982789B56EE39AEE8DF359C968C704C7D3B8FCB09FFC69587EEFA7E39DD5370
+FF513753E7518954525B083BFA191115CF310A98EF5CF0C2540265031BCC9694
+8C6A3F1A053753838516389F26ED5D57BE285F92938D59B0DBC6047C0439E127
+55CF071FE044451EC5C557F6CC29D8C5256EB48AFB23A0CCA88307B7E8EE1E45
+91B46854300FF369C6D84072D4D1625A0613CD330AB55B0B326554909D57C7DD
+73422A8588FAEA378B917785E75F25E4F4183A36AE15C7FC2C3E2C6E890B113E
+0B3FEACB2A3C5ED2F7E5BFF91E8E273869D4143A954E6A5C1012A2FC7839A878
+B86D878370EF71ED0A7555E8858C68B1468E130C1CE3A6199D93FAD963AC0877
+1981237BF431B598966143C8DC7F3B802729DF288A39EDD5B06F0F808741C6AC
+4D59EEDEE8655A6CB5FFFD911D8A942590E4BA2709403D0741C70B0FF9FBFA7C
+C3FD928B5B265DEE100172E5E917F273918C7941AB9071E1C3EC631AC555CE9F
+35F88068E213C0F9A4BA7D133755EFB674717B4FF225AA16BB0B7A930D7F4474
+F2C9C784CB7C8C0A2F2201B57541D25DB2C2C8EB11D172306F7F912149C2E61B
+40B0A570CF8A47F792860E4CDCBEB9A05B511E4903921CB80EAEB5A3B6567E14
+71229E7AE16210B7F307E1FEB739554261547BFF5B559B88CB5BDD64124817D1
+AAE0DEDA95D830BBCFE0AE34A90A70E42BE5E9A54D420B7F15D678425F1F7408
+B0A45ED88BBC61FFF2433D65AEBC21CC21A454F416913AF8B4272F7E20CAE1E6
+0AFB2D16F862DFB2861CCDFE73BA66BA95636004349740C2E9292EA3C326F077
+1A69BE963D955A35B72920D063127E3C8DB8655C089312F094231517A9198B70
+CEB0F01B22DD451966D72B2152947AE928D38F39C34EA1A6DCAA758EE660700E
+351A8E433028CD6ACD63B6745E0F501E72E3E3A001696B500F83B67E027E47C4
+36B251893D87A5B646C1BFCC94F2516C5A82CA364FCD3F128289F1DBBD0E1BD2
+8D641FBA92924ECDB132C1F89BA3650DAE6E68BAD856CDAC195A70FBB0D9ADD4
+BFE9194C5C2C525337AC29B8A55D56BB2BF90C004F1B5B3842DB2581E728BFE7
+4112D349EF2FD56CD145DC9CCE9F8364830E466E60F6F437EEE13DFC07D8009C
+ECF876BCF50BF9C60CC60544EBD3BC42EE61F0DB1ED1EB920CD367149B52B2FD
+353B4ADB2C18A087AA670E492BA5FAB513AFBE786F2A729D93F28D282A2A1945
+3A0D2565D395FB4A07E97F04E1A50AEA7EBCAB7D5DABA2603BDCA8FE770A4012
+114B736C19E1649153A74C74E7218A0A031EAAFD8420A712DEB1233036455045
+18F9902DB6390E82EF280BF3C104B4E25EDAD22880D74EE456D1E5225D683D5F
+13E8DA2C4D1A8A1F456D9A3887EB3D9ED71BBE682C7FA3AD06CE4F2C554DBB72
+71FCCF5A8D945387E9FA42BE9D774C44FD296270FB67B1004273051EFB74C2AC
+2E215CCEA6F18AADA4EE6B94915242B113F094ACC5D837566D5B49C51FA2012A
+792357BA0162EA6D04C7106B60E25EDC02CC4FDDC90FA314E4D9DD972536C486
+7A772B06B55C1545C98E90E8104FD7AA76B0DC12C7331859B6DFD01FF9022F05
+34FCF3DB906EDDF0E8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
+1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
+757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
+0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
+6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
+E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B
+61A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7
+92EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C
+EEAF70E3B20C64D4C2B34A084B5770BAB2A974E898F62BFE90F132A37E2DCA4F
+43E13DB13C94DFA8ECE2B7374827AE168634FA007F8981ADA046CED3448BF453
+FCD9A4F194FA648F9FC0971734BB69CB75348A88CC361FF06E984C86AF0EA429
+DAA5808CCE3583664AEFE0C59EDA04A147FB51227A5AB0C13942323E9B3733DD
+3EE7DF7F774DE5D0D0980DA8C0192983F1E3EF18481EAF1EFEDA0068BCBDB28A
+7FC7D9191EFFC574588DEC1E180341DC959F8EF56ED5B19F50AA82A4653649B7
+CDCA11A1FF27AFA7FF189A7E8A7C099AEEE0CAF3E121798B2721ABE8808D20A4
+AB6E704C0C376BD242C4966325D4C939669E28B55BC335405C400A9983B89EBB
+B13D8C5F3A148E38E9ABD86D0171C927F1051266CBBD5C5D12522AF7CC17918F
+410BABDD5FDD279338E8B17434DBF20B8E06B58D9E13B731E3C07E4CC350C431
+CE2034CB23828A19AE93124011BF053A3C5705D9BEF6D95205FB8360391C84B3
+7C6D719C0FB459A312AAC3C4256EAB293B6DC729CC5070524D1BDA41091E8B42
+2B6C4A092995AFB40CCF35730350CBA197F3D5BC5BB83CEDDBC6FBDE23A885CE
+61D416B3A6CEC46474A0F42D5B923A61832262F234001DBCED9A7A00F5511F3D
+C2178422A46CA5494AA8C37F51C40339CF9392A7098DF8596EA97C440989CA06
+EEEB5025B29EBF6038EFDDFD6F70989D63440E9C14E2A1040FAF427EB41259E3
+FF3BA255BD4C04BAAC47326181EC7CA1FFB32CBCAB92B1F8CDE6ED0DD3FE6D5F
+EE14B739FC25BB13CD94A0C0DD7CEDD886AAC62248C64B8439064D1038886DB3
+187F017A79318B69963296B4812128EACEFBAAE983646E021F24BDAA2B78E8FE
+2BCD5BFB302103D7DD28668DA7A60C446A27BFF8D6C66F4FBC61D271B91F0470
+16F567DABCD1E8B04CFBEF602BD9CE44B724B3EB8D30CE573EBB13BAA047F947
+90B24F2E49C20E2474EE9D019565E6FF25BDB3F74DF05BB9E148E1C5883A9EA1
+53AD383463F47D6C1077CB8D8DE48F71A5D42C54BEF4C0058EDAA735809798FB
+356002E6B41BC6D5E3D3027540168761334720113FF02B2C734749091BE71BE4
+5DA61AC33554AF15E6F60EBECDED2ED271C80B5C4F943ECFCDA66DB6165620AB
+0360CF8DD672B0C03DF892BD397923C6855938CB739FE4B3815D76DBCB1C8A22
+EE4A86AB55FF7994EB31BA410DE548B6276C354EEE51D5BBDBBEF76E9DA42C02
+CCB3729DB2F52BFC06A5A030F32927E2215BC0C86F99D9F39C0C4E342DD816A3
+B51AB73808F2545F9C55CC3D352B263E37D3D6E47854D7508D29BF6B52CDA83B
+45C36FD67DCAA7BD22745B1AA86908ADE52BB14B55498AFFB5892A6BC9256571
+575183D73B178FB7B67307222F6165175519E7CF674964F2131FF44528D21025
+3A624A5AB5BD4411386573C91A067186318F266B2EF29918160A5F5AFC3AD9C4
+68F5C559617D890FABCDDDEEAD20FE6658231877FF9B545C2042681D7FE55EE1
+BA15672861CDEAD8D8912E54EC0E7220590889C891E619704210F18E1DDAFECE
+E923F177F11CB40633F4B9760709DF4B36D503CB983B2F03F3AFEBC0555EBE77
+6EA688CD50AAE49D66E039C732580CB40AB9DBBB0CF90031855AA61170350429
+4745F6356B0E41CDD4032CAD246852114729067E2304AD100A1A93068EC4CB7C
+D607190F2FF5BBFB344D34907EC5240F250807DA5AB47E80F790590286049653
+88286A3CAD9FD12BE3F5D0547A166A0AD59C1EFB41C0093B04737319A2ADF9B0
+312841786B47E9DE8A534A26ACE8E47429430BE234FACC6B012D459D8F204150
+E2CA96A46FBCDBC271639C57D38B0FEBCF6C152369A73FCAB8FF6411585A0CED
+B410973B3C0E800320CEF2181F8FFE5FB711464FA52C6D98511C4B33FB9BF5EB
+800E3346C8591E5B941F4A20E3266804D728939CF653CF9BB16CE22E987BDA2C
+0EE6C0D9E9D1E81392F5E8A5499E97C0105B0F5411809652D406AC8AB76FBE20
+366AB998234BEC5C8BB66ABE2AEADE28BEF7FA5B9C628A7F2C315F5013D15264
+A3EBDD6C1739B3F0B3BB3371B9140AE771AB86CFA74695EB191F81788594F6E2
+C953003ECC01331A8044C1A925FC8B79CC48ABB9609FA9626886AB2AC449A171
+325D08A1B286B46119AD1E2BAAE747D8CAA562ADDF6F432DD9071DBA9645DC59
+09D3903F39A2712AD1BE871D18B8AF9BD38AFAD32B216AEA13BEFD9A0A5D185B
+3385DA10D2D42C32E6806826E8947C3E177172ECDD4FA9380AE4F09B23BFB954
+FCFED455EC8BF93CCF7628BADEAD05250F7380EA2AE79A191E65183E7A901FAC
+DF333A1D645118CA7FDD838BF35598FA055189A93F3EA6D0AA6AF3F89889725C
+845FBE53DF1DDAAA1D67679AF697A570763E122FBA174697A0DBAE2ED8C66637
+248397F01AF8AB4CFD80DCE9F29E0064542F4DE88A2AD15B0FFFD02FA09D8F5C
+09DAADD0FF16F547AA17F5DA9768416A4B66887F2B8F39ACAC89743A3A06AAAD
+1B1720B5DAD72C09D75AA6F4B78425624500913BDD175204B9647997099AD757
+FC19EBEE8B0E6C40EFEDCEE15D6B5FB820EF4A889B11AE989A23BF390D2D1D96
+A230BA563188B911F17447E331E1AD1D6F2FB13E1B83CADCF22EA3650C94E9F8
+504D1F24E22EDE0A65737C22528FB52072B21759BBA80D390E87A53595AF6899
+98426CA645A7894A60EE88B52F9B55FFB1EE2B0896A421E929B0AB47A5F4A72C
+6F4A4C5EB84A5CCE13BE620F7E109C72A196CA073B8192B3980F27D2C4461BB6
+360C074C3BCE043A3DE64024F038835536AF5DC58C1EE004DE6CC7DB1AF7A216
+A85A082CD0522D8E0C896AB309B6BA98E83780B9967BCA5C8BA0D5AF2D7AEB88
+A6C69B01680461A2DC4073F549EC9118212B8125FB2BD5289B4C57B1ABF5B26C
+1214D50D335996FED213215561E44C2257B4464A887F333D466E492E44D25584
+83A269EC5F51F5C407E700052B9C349B37B3B6A7E93C1B9B9C3B32F3993DE385
+636D496BE8781D22DE0031F98D6B7FAAEFE76B49460D2CE096AB03878F1EF424
+0A5A160BAC37379476C178884BD55A841F000652A430560610DD781E63C51AE1
+8648A4A3459194B7FC456906DB1177EF405289C2EC496BBD4ABF1A913F31876C
+380D3C4A436B3D7CE97E2E538E8837D379D16232F292C7425763AE75482D1372
+68A8160E6A70DF891EB308FD3AB9ABCA346E4FAD5F5CF78A4E3DE21E558ECA72
+098F147E6F87F0F9535C9DD793B5A3C3570A303B9E4A73B4B41A1BFBAD5E8BC5
+E5A9DDB8C63BAA30E474DB44C78FC1F022B54DF5650E71F60FAA8332C9A77FF2
+F31FF3D589D9D39A98A4B454B67D64CA43A8C86207CA3BCE340E65A5113AB662
+10581682ADE7B1599C14E7B4A882A602B031728027EBE6FD135B99CBB5AC2687
+E49228F18BA68C72E325BDBD2861236FBA49358A8B3EA5CB54A8EC2E8ED54A7B
+4D66838E41AA8768DBABD5890A70FC402C8682CB4C40959C523CEC82B1555A80
+235EEA1BD2DC28761071BC767A2DE1927973300D5035BB879B56C8C64236201B
+ECB15AB9181EFD6A50F96BAAC35A8901F070D9251CBA2EB826994AC95EDAA8E7
+058A702B707C261A1E3700343BFE3585DD1D8DF4863564976F74D16426D44278
+C4DF38CB2ACB8314CF66EA8153610CB4A3A14CADF596EC875105C860D15E06D5
+FAFA54636C90D409EF8E0DAB451DBB2778F9FBEC581BC7E6BFBBADF12E9B239A
+F56C5020C05B5399B480BE3FD9B0AACF0AC7B346B48AD3A2EF170C7DEDFDCE06
+45587A0BE775573AB2E57EAA3786CDD2C9861D1226CFF342DC2E5138A629B6CF
+0B75FF5C6FD8DB85C547F46EA878F7700903EC8AE67F5907F8397A8A61901574
+4329D8F79C56565FA7DF824BA44E6C22760FDF9DE3107D8883141DB3CEEFC28C
+770C9930E982389F2EF279566B2096CA205001CA3E045854C3750E67AB8BFF43
+F8B07F2EE55BCEC65351BC2B085F803FB9BF5D7FABF3401F5B364F83BC8A97AD
+B74B10868CA83F97017925021B8F919A1F50AF8CA08753D760D410245DC30E9F
+A7E9A19C073E7C9BC7D7FEED4A6B2CBBD781214BEA20BD72A07B701C2066FCA0
+1DF7389F8159596F96778902346D0F40EB3C024372307BB97AE619E42B5C3DA4
+F836F926EC44617B3935C58A28CD67D0E3A438954E915E0BF6172D1CF1F00539
+27AE36704D5B4C1BB7565DE82625267ECFE71FDF2F78E5E083AA64A79BFD5DF8
+017C6BF7D4A991CDFBBC6483BA8DF4DFD414B121B01FDF6F068980D30CC635C3
+36418A8CDA06D1CBE330E751AD061376331BF1F30AB81DC9C673172DABCA64F2
+6DD69606A9B91587B8B57707B36A1C1E734E4C9C738B0F7B430FDBE5919926AF
+2E464A8B621898EF381022F04FBAAAD5184B5868B56F105D1DBEE45AADCC3D80
+2C22EBCE143F63E5BA24CFCF22A05ADF1F35DA88C03A759FA9FF867A8E37A821
+AD7089706B432AD35BBFF303D738C5C9654205D95DAC3936AE8363F6C26FF08B
+C87C803729A0F44C7A65E0BB3CF2E7A33B7CCC1EF51558D8FC80981B922BE986
+87A641241B0A0BE8D9F09881208EC7D62AB094D00E9F572AE27D536325FD421E
+D010EC7684F097E4AEF2E6D203AED5E0D7C42E11FCBC051E56D25DFF8130579A
+8D745EB13E6C7AF76C10E81F68471315DCB58E6155A9614F8F0BDD64D37B8456
+7CF46A233A62F1DB9309E29E21660F9648DD1BB14BDDFF43693C1DA4E3B302E9
+15CEB125750544926E0AF982A38A3A4B082C421C0FDF6ECC39C569F97BA229CA
+43329F348329BE708C97B98B189CBCB2960D71F1CA73CA1EEB832713E627F870
+69B0DCC3CCD8482EA3EA7FEE339E0566108E46BE17B52C8389E300A41BDEB1F2
+4D9FEEDE1C077A5EF20D8F80AE83BAF2F632D0E4B44AD0D0BAAA968F2B3D2168
+75F939ECEB31D2E7811FA0A73A519FF0CA08992D4FD40E7A2BD53BF94733F41E
+789BC5A7008B72255236B3D042996C45E4E1200B314418AA4EEDE6D718567526
+7BC1B992974BA3A8057E2298952B0385D7DD5089E9D7C5B8FACE9B09AA441594
+CE6501B80E7CFBB0DA29C2014AE02080D8D423EDF27FF4328135CF4D494EA175
+9CEE197C2CA22519AB42AFD301E9637FE98A19485F8A2B6D24E05FB13E66A9A2
+C602FF16147AAB158E8DF5A1FF820D8B7ED5A3F387CCDF247252C3D68A5E37BE
+3BC5DC42F28C8F776E9ABF518407B2975ED2647B3949B4E199D2F6E174971828
+C7D3BF0FEE47A33C97C98ABFE47E87813722BF3F9B809F6F98D2771B8537A541
+EBBB8405B38BE6865F4E6B7A3D2BB0C783B1B73BA5FDC9EB65065EDA3E1C32F2
+8748BADDE0DCF35BEE32CA8B537DA99007625EC906F8F407912655DA1A05F01E
+F6EB582FF37089852921EC8AEEEC1BADD79428965097B82577772E53F18D8B79
+0CBFDAE9F71CB9D66FCBEC1313D7BAE572743C0253470B42805ED77B125BA5A0
+EF873BE7490A3B23231CE6907327E93DDC90B656BD6D089C6DEBA6E0937CD89C
+1C831543C9C882E1D6A67AE45E2DEFF0A01EC9FC670F4942192862BEC7247F19
+59D87F0834EF21A434C8E9E9876797A94FA6E8AC226376F822D07CAE909A6FD5
+8630BDE38D97097E32FF6119728D50F88960F740DD78D73B291885748957D025
+219DC96237FE9B64D514EE7C6BF47DC4B49E4F4AD10AEE0D3A779F2D977BE792
+8E15199C8983284D3F6E6824BEA40662EE2289BC4CD6198C8BE88788AE7373B7
+63ADAF8E4D8B78AE39773AA8DDFE87AD7C2059B9D72AFEFD73B85DA2586545D0
+8733C2E16495B7B1F51B31268887EFD3D47DFC5CC038A46ABC88A627DA32BD4E
+BA3FC33EC0D95C42609DA3B413001139881D68D5E6693295EADB4C6D56CA04F9
+656774723158F04CF91A963BE122701B89714087D03F331996F4E0F98D758E4B
+AA6B3DE1BACFC6C277EBC7CA9DCB09B4D741ACAB3792DB72C8D7AA2553980E0A
+39713FD6D3800D82C7003013951E35DC5442A52819F5D2C5EB718D42B1B393D2
+867260222949356C2B1B8CF43D249A5B535089CA0883BC998D7BFBB398926D1C
+FE753DDECCF869EB97182F3EBF918197A1BC28448F690E6B0942602D6486DFAA
+7EC1D10DA996C972A3E0E0A258F096687DB95BE9376ACAA49C70810C1447FC50
+6213CD7284772C95455283F2A5EBFD4D910AB726B832480A95D156F7313F35F8
+0AEC649B0D6FD7C776D24F3DF345209D80B9BAAE127CAD607E11D199FC8B833C
+C6C254388C6FD46D2E8BB6D8D5F186E700457B1842775BF1CA7A1C1F225181EE
+ADA71EB7B0491BF23D3D324C3F8265B485906F6D767E2CF449CCD50BC0377B7A
+F9618B7C6A52BD93859FE594AB6D4C1ED7D30F8E6D0341E6F49397288A254E5B
+0AFC33846C581D2DBAFB8358A3CD88CA1BAE004512EFCB89D726B8A4AAA78925
+67E69B122A7CE8A86C1EEB4B0678AE1CBC2F31F0D033E529A8503AFACCE19D73
+1244EDBC161CC6730009B023DE1AB46A323D4C03E5562410A6B6DC15B97D6AC2
+258C10FDFC17AA4668BCCAEA7392463DBCE1F26430CA44A53680B42A7197800B
+574ECF1C1E496429E37DE2C7717A304753BE4E443D6D8B482D2610252C42AA21
+08F9358BC6F57F4840641B2616D3F758AC5B0FD3C69A077B5D8268A11D535915
+5EC3F3E303DD241D5876BDDAA1BE799711AA04EDDADA0353CFFF3E9836DAB250
+325F865FC146CF262039A33F346B18E4AA1641F2B4CCC073492F73F8346268BD
+7145ED165FAA332554CA84A82913A259EDD0FC5DFB10959F0E80B6E3F4840668
+4F4EBAE2EE71C942006CA58F45D947ECEBBAAF002098946CB2258E6E71CF0C3A
+2A2709CC262C80CA18D2AE777FDD00224BE90CA60D12C6778EE48C6A258885D2
+2698F97B7ACA2142A06AB50131F3C565739D8523E6D0A9CEA0B18B1593764129
+626FD058020E5BBA72468B644AB847A13A87E71907C9F753B41CE36D5670B8A2
+6AA29599751E337387E63FB5099068C876E6AE81D47EF59BB82AF772BDF99948
+14F3E8D90005F6D095AED8C3C47D6F136B888B53CF4341BB1A18DBBE2C155A4B
+FAA06FDA4BCEFFE8C2E77782FB062C2FF89FA77C07BF3F39E45DE3EEC32A932E
+8AD72191B7A6268726CFCE67A0E7B74D1D105AAD8F6EB5F518FDDC27A218789E
+10C6D56B2469C8E9D724075D494FB49FCFA6B1EF250DF13599BBA5B8194197D3
+0F17F383ACAB237905466228CF4DA095671A66012C871480313558E60F40A36B
+1C206152EAF398F8DFD8EC7FF80FFFF7A426D335CAB6589CB823D8BE6ED4E5BD
+18F60101BC8C85B29A9677F8715F6BF5861E20B0BB8A2C9C12EC0E6A20566777
+A8B1C23A1C1AD7B4705330C254D9F4DB7E2B00B56A93A2ECEED51EF7ABCFF15C
+22A92196EED3F0BBEF2ED110152510272026FE777198C3F9406419D92584A7F9
+BCD1DC02148236693B48EED88CDDCFFBEAF7BB26A9983DDDA5A7DFC3B4C1A6D5
+2560BD180419ACFD74D5F66DD31BF1B934E7B64E748CC95151252AD15FAF2005
+6C734D30D26DFC23718D00C9FBE113A40A9DC5685F07A0201FA748A4116D69DD
+65E10AF83FA4AD53C4130846C703EAC6748EBA15ECC44BB4E9402CC4C4B75B78
+C0CFD428CD377867C74EDE17833D69F8840F2CFE5A1817A41AEE75C7FF288EBB
+31012604E066F8F3E1783A94D81AA9F5F64A749D457A008DB5AB146114221258
+B314DC5738630CDFB4827F9AECCEADD888ECB3A7DF47022A6C629452FF54E360
+70E38E72E4AEB4F4660B3DFF80BBC43F3562BB7B254FA86606E7F83868F9A0D1
+A9B2DCF267B8696F5C70AD811F88A7F16417B3D958AC1DC5AAAB1EEFE04F6FD2
+228DB732D1B4FF62C5C27956C2AC4D9D8664A07B9CD71493D78A3C0F157DEEFB
+04E12BFA1A2F4CC6CBB02E4CC5CA3E8BCC3E0E2E1A64A7B1942E95022BDB34E6
+157DEFE50E41C785CF9AC73684BF49A3541FAD59A1A22F17EB6B6523E9397506
+F5DE864EC40EF1EDCDAC5683F0025A2F9ECEC40DB69E03F39C09833162FEEED1
+50211931877DFAFD1AD95FB8B05847AB51C95338DEFF5AE18EB3DDCF2A786F6C
+4D38ADCEEB944ECE60B82BB068318306F7598B166962800DFA7CD3518C1EA0D6
+4F5AD48208EEB8F60DD5799203342229E9DE9688DF1AC8B199C5BD8AFACB732A
+79081866ED73082CDC6E391F618F36545F59BBE9DECA4BF5BBA8572A66308222
+F3AB21A2FD400E1D5F5AB897307340A274606D15657EA5D19FCB932F9F037F05
+03C9CCD4D9A79339A1157B2D725810E21031FF0B07319666F4154787BE88089C
+D08551FF4D7FCBC31E1B1C33585D62D185F0146FEC998E2A16DBFEE0C1C60E5B
+E196969E68B35BD6B41CFDF8065B8D483C9797E2F847E81E44ED315EAF1D3C22
+0B61209F1F56A22C1694AD16CE228305986E55661485A005935657DDA8DB7B2E
+A5CC38CB5583C0DD1DF29DEBB277B4705BA3BF5391AB57909E8888123AB72080
+CD050ABDA976F4232ED10FFB2D1B321EB14DF3BC16BD3B3B09C763E8AE443859
+80B4F62D888CB482AE32D3C8D81B166107AE507B53B8679DAAE558151FA9B010
+A45CE34B88BD4EB95E7DE41277F03A343114E904AB0827CE9E3ED93E95318BF7
+CF51B3E32AFA4B84249074D7071F5268FE3C8F4A8B58AAA63494CC1CBFA4D7D9
+999251A76D99D261EB8AF8C0D5E9AA59284DCE0C9B6E150662A18F0F601E2519
+6204EBBD240955811392FC1099F5B4DB0782AF4E33F8A2CD594C0A7CF2CCEFD9
+73CF5A6661BFB1F2F437AA86B89BA67B999CF90A38BCF64BDC76276A09F93537
+A288B0898D7E361F90919D272246D4B0C09DBB9960FAA0CC2DC39A14B8282E58
+B1F7243B1AE573C7CBD74A9CDE09A1921F8CF7BE00297D286BC2FD3AA11CB06E
+3D7A2C52D10F878E51C9AFE8F16668C0E1FD7F90E2743A65C382B91F4D76AFA7
+AF041C9DE7A83B48D89B770FFB53C1B066682D6A9A1E48E5CDA32A46F8F8B085
+DD0ED34438161EF33711496CC2B8E640793E1E9BFFAABDAC89DCE6833EAA71F7
+578E20D43D3739FF58D41C1EB8C63414CAAE2FC534D677134D218DAA40A13E36
+59EAED3B3648BD7A3607868F43E0C85B2E04B67FB07F564FB9D14CE479B9763E
+B0FEA84500D86F75517670F03715A50AC0AFD0B71090E530F6CFBF3E6226C609
+2AC4726F8D1C6C1362524D9F658F7FB532BE1C05D74A3A46CA935EAFC5CD9828
+3511C71910A24B326E2C994A9ECCDA2C4879802B5A2651449E7445E84A9D50D1
+4968CDA95450FE448EEDBD06FD1FE20178A752B95E59CD5729353FD982FDB318
+2DCC5254DF36CC72B4758CBAC3267723627796AB2C3048BA3422679BF381C838
+76F0EFA03CDA22FCA4E6C19D08C849CC1005859796FE8A17E0278CB0D04E6CAE
+CDF828F23397B59BF7511624EE4A27730A79250C2B094995660C43230995E255
+02C65BC6C853C981A5EF9EA9A5A5E455477D996005167153638EED63F55B08DB
+218C65137F17B871E0F75D9128484A64FD8290BF50914BD98BFEBDF8D689AB0C
+D011ACA2B89EFA51396CE71097ABD82EEA261A4E592AEB824DB9E444D25ABA68
+F4B65D5526A6B70A7CC23AE476AB155B0903CECDB2AEDB1BED5537E291F215A2
+2C69E73C4B09A6108A0A1E16A218C1790CF5B4D2E6199F0269DBE62199F9166B
+96D6610E3F42F573F9EBF70145A5D0D2D87F7599A56974284F5F92B274F249C4
+3801B3B138140C78ECFC061AA8844A41A029FB1A90CD09222BD9971F9B8C7488
+9A448CDE2D62C2270B34068F87AF5C5CE86A443D5F2F0F9C78D84EDADFC1CAB3
+119F7D3897D89D6D95A2F72DB6AE9D17FDABC7B3D9F1E1EC514EFD82D912569A
+7DFF257929A5D0B3B88D7253E11FEEC431C73B9A1D56BB87A2C73B45AE345026
+CC27558FB4A4D34FE528060CE0425C77EFFF57FC6C9C8E9CEE24B78CA06F052B
+540BCDB2F118F9A06F708BEC473274C882313BF600050BB6CF36C58F9AB8A701
+502CB618F0FE530A7AFBE9DFAB8B150C787540968A68A5EE07123969C884D7D4
+BC48CE82C27B3B192442508420176E10107EF453B20FF400C12A980C7246B12D
+290EBBC3DCDCDF25ACEF0E6470C40890EBDB4285B9A03C7566B45578AC4906C0
+E15029A768A2FD07F7FE0FAE46C92F2BD601BAD9BF06EE83083568BF2F7CE09F
+14FDF7394E7CCD99E9D8930FAC99D14AC9FA211A02D4739F48F6541259192098
+3C15DDA136869EBA347F33818A24CC2BBE88FFB74DF8D3BFBC190E191ED351C5
+4B3CAAD0CDA1B9986DABED2991CEB775F51FF106A35647B6FDDAB142705A2113
+14DB6066929B20CC11242374A0833E5208962C9C079E44E9F5FDC6DE87F70DFF
+CBA137C67BD1EC78D08C73D0FA138339E5F28363BC3B96351A7BD115958BF4F4
+47DB8EDBDD35B2806B741D1CD31FCE5BDA1BE899AB94B520D8A7749F1B1DA579
+3C408B11BD15075B04E99589D9F6327EC85F1862A754D4FC13C49A82043E9FFE
+B5A257C6A87B45386A7125071BF7CD6B3409CDFA9C2BA0DBD61627F9E9160163
+67A8389FC9BE20E1854FCC35C3252E96E687BB0DF1F4CAF4ED4C61FDDB5A3B51
+05213CF547186987D447194A5FEA3243D947B02E80DFF12370FFFC3CC5696371
+B6F1C23A9CD0F6A64E4A019CF6CBAB1FDF44AF866EE19BF59D78BB375280B9CD
+A74E328753A560A20A977934E6B58C905DB51AA3C35EFB6B3B49152C288D6683
+535DD175A81F1DAA1F1EEF1007AB605B822B09CCAD1DF39D016A84D8C603200D
+086F358D55FCA0EACAAFFC1D76EF864541E519D2DD5BDB7D1EE6C7066C7B42B4
+346A0A3042B354824D0C7EFB4E9DD6D6B4BA7E10694901FE227C7EB9B9615855
+59D6A8FACEC963D2F9A93305FE995A3A83055DB229166826641BCDC83740EF7F
+B50AE8171CCD22B230E2784C8CFC1ED22C9C3F5EC90A16603322E2A889CC4DD4
+0FEE8D0DB78FD9B74E2A7FA196AC0AF888A36CE05A899943188920A6DB719076
+CD4B39D3559C992A02DD5B3C47AA1B859F8E6DFAB5F26947A0AB3F30E35FBDE7
+7BC63991C716A54738AFC85A7FC259A874F7619AE7BAE01C1C59A97D595F0AA0
+9CF737C6795EFC15858C11BBA24442B5EE5C6E279C25F022E5D8FA458FE8FDC5
+3FC1C7583963E300B86586F88F42972FC0C56232FC394ED64E275D9889E6FEEC
+13F0F853D1D6C390F1242FF327E23370D8D4BFDD2312415FBB25C759DFEBC763
+34C45C85E0E82108F790215F5CCAEC481BF451C34EE685E85270702194A740BC
+6697B6BCBFB850E7727D3104702988326DF435C7127C3645E3307C877191955C
+84D52B3DBD402013610A3D6EB523C4D98100AC761FF5D8D7081371CBB4235215
+D0507160B45196DFC9C390029D883363DA88226787415541E8CA99A7EA1899CD
+B4FB6F6AFEBA08358E7A978AE7E8FC054FD729B735C60BD29C5DEAA39E6CF5BA
+01074B51351E0AFB5B9185B7033AA1E410613284DB9299A3B3986E60A2E9C178
+88DDF8444A6C8CD7A140E1E4A84C33F25D184EC3DA1BE13CC019825C19D246EC
+7D55C87B8685707E3BCEECA0D6BA729C045B3DF4AAC711C019FF2E8F80CF7BE9
+37BCB4852BEDD366103A4C73C4CDF0F495D9A07E005E98696B863C25BB79086F
+281865CEF0EA2E1D8E48FC3966B93C2FC3854AF80225F9CEEDF97F0254F2B419
+DB4BFB43BC0D392E17BFDD433A18F11478D955873277FF45E00DC49C5B7F2DB2
+02E129C246C31320FCA3428D185C0E8F413D4566EEDD044A87D68E75F9FA9A87
+156FC6E2C9223DDD57548508AFBCE5F9D429D156D06D9140954511656027BE45
+F8658279BD85EB6EA1BF7E760226D750C5C6BCEA47D8E5648014431946877B59
+0804F03058E80FB624970E85C40DC80E265DF761CA2646579FC5BF43B706260B
+67B0D308A04F0E5950A4BC8A635E1263A60743F59B124E726AEB9F39B44EE7D4
+ECCEDEBA0031272A266E69B90F24403662B09DFB5C6CB855E553B38EED88742E
+114A0B159D1A3C41D782818842F567C616EA6751408F89CA8177D1E625D8B2CF
+2B6F0EA9DD7003D93ECF7C9665FF1F8ABDAF859D04D208481217300DA1DDFFB7
+654FCE01FA87539AF944F27A9F833D4DD166582850BDC8A54296EB7707DB578C
+854FDE7CA891F11B9C82415BA4A4FB9B123D043E86C390576DB5E86EFB220D24
+741EE8A174D30D462700AF8D22083B91167410876185A11FA32469A0B807E249
+B59CE0DC5E01BD846B32575371F4C1308C7229DCAE0849B680D4AA30CC7B8769
+DAA9B72BD93B32D26F11BA8BA05410B57F9A103F941B1170B36E5DB60548FE51
+3369FC3F55785EC754C8A1800414B9E8114601996042AD4F4CEC7CD0AAC679B5
+B5D6D321CDFC4AC16BBC3FE44652767533973DAA76786228A8D0B835F7BDF74E
+FCF2F2025E2C4EB5B4009E7965A4DEB180129065FB47A093BAC368BB1FB2766D
+0D97AA715BD2C2D692FFC56C18E2333DDDF66FE21E87255B7B50DBB7D79CE1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMR8
+%!PS-AdobeFont-1.1: CMR8 1.0
+%%CreationDate: 1991 Aug 20 16:39:40
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-36 -250 1070 750}readonly def
+/UniqueID 5000791 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
+48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
+9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
+0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
+8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
+EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
+FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
+9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
+D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
+9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
+ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
+10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
+83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
+2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA912A2BCC6CA6105B29
+044005DDBEAF88E0F05541BBD233977A447B469F013D8535A9D7023CC0FB7B49
+A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0
+23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
+19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
+1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
+8BF147F0B2D22726583618BBD081A7CBB0F10ACEFC161043760929406853BF52
+3EC809222FB195795F19F76FF7541EE3E7A0ABD4F0D9ACD5039881353B0964DE
+AA5F4BF19DAC50B2AB87AF57E4384D8E8CA2E26121C778BA9DB6AF926C29B3EC
+C51DCAEC6811F219E002EF7EBA102BC5B409BBA3EA06FF63321D004D0FDF986A
+4ABA9BF9171846319418EC2DA26255ACEB6B4869FF71CC9027A3F36EE4B98837
+58AEBC43692F20B492410BDD93F6817C48DE242FDF30AD76568E792C3A665C58
+44C54E752A1A87728330533622720E65799B3ED33230FEA1D4C22BC367D9F547
+F667E5A90597799D54BF50BB11337A7DDF67A7FB6F52B15A2876973A8352650C
+CF74C4575B0A43BCD33DF8D7961642B509468FB6E92B23263E8FB5615E223AB3
+6CCFD05B612CDE7B555B7FA92AF3E5E7DFF8D973FC3791C97D145D4EA72946AA
+89AC3CC4016DD03878383BD5906C224CE197E8126D217114547E4D96E0AD8E65
+A4DC61A106F023AAF1BC47E496F9C9DF8C42DBDAE44E33FB910984F73E5949E9
+99DBE07EF7825C060BFEA997291B25FDAA70B09BB13CD8CF4A480A232E21919A
+E9887FD8BC9EF086AA85F50AD7C889DF09696A34CEF35D8CBFABFCD8CF6776E3
+76EE2342139FBC0133E18F11B2F0C6679FF971775F67F937CAB200820AFE75EF
+9A589A8FC9E20AC601FA521E3D7915D50FB94F3B39BF46EEE1928A09BA1A6442
+F924B2C1B490A622F67917273E141EDCBE6945244F5A671B8BC2F92AE560EEE0
+975E335B484214FF4F5B15D4700D3208F4844D6AA4B5D67C05D5BDA16C5F1D84
+63E49D9DA5443D596106C094583A83704DAF474505F9EEE80CACDD901BFC8571
+56846DF88902B435C79681E8A508F9CC42C7809A975EB756747E700B28485E1F
+FD7E6D86EC9285A095DB0DDE4FC086D5C7AAFAE10A145AF9E3D1E7CAA2AFAC08
+88A23EBDC79670AA8CFFE38DDD204BE3224C4609757633C029BE2509391B80F3
+19FEE5F3AB163506FD274929767D3D3FBC06B5A7DFE7ED1D4A93C3E41689C5AE
+A84A914904CDB6D2A60F1ACFE5001268F67DC07634E2F52164C4ACB0BBD16F1A
+87E9428A3FAE4A0207C8A1860D8E0696C748A8457403EE1A801CABA8E2D2203C
+B8F565B065C449EEE679AB1C1BB241DC14CD367557EE8BAFC76383B7E30F353B
+2A1695F7FE392192514F9DF81564C81E282DFE6502C213ECA87A66A5057B72D5
+73A3A848C2BC2FF6A0E0AFB313EA45D7FE2E328AC3016FD8802EE4538AAEA5E8
+947B2DD12CC78E53D47423EBAAA312035B1E6BCD86FF619796B170BF834BDD99
+90169BE96C0EBD84B97C244705525D1D60E88231B825D93B1D700728D8919CA1
+6518CCFA5C2768068D76EDCD7A22A6D4C42FD4CCD3E28C61D3B46C3510B78931
+DB7655923FB7E94062A8955859B0C5A9180F54972CDEC0661D1B6F4DC58EA397
+CD341EE81EB212CE34580EF988CAD9477B119766FFB7D1CB2F1376CCB238C6E8
+EA3C9313F8018CB60DCE502378BB3F49EAA6C680B62E73A01DF8C4347D00D2F5
+863114D3D9B00E9A7E8E6EB7D6F6FA6C10103A641174A6131DCF49CFE1D641C3
+F61B89CC6B2A69C55B691934E1E4B0E8D67E592EC7BFFF841BFF3A4A574EB3E9
+9C3FC6A9B177E2AFCE1D7BAE9AB6B361DA451E88F493702A6A34764D5120BBB9
+210A43932754B18409AA1B5EEA960F3D9EB27FE9D70430DF93ABB6F4B91FC467
+2F5BBA217AA35DBCC7F3E752D847DCA8B85FA0FDC8DCD6825777899CA8FE22BE
+BBEF9C8D1A1C8B44DF3016948B9C28B66A287D4410C9650F95607DBECF0BA8FE
+FABD6676D359E9552C5BEB2FB2889F5E3D5232B2B5353616EBFC2309B6D4959E
+6EF07CB014A149AE040CB5865A9BD3EB34588C9850A93060AF4A056BD4717142
+7F8B25A5ADBD8FFC26701BF936CBF17306B831756D88435DF01B2B875BEE18C3
+456728338AEFE6C9A7CED1384319FA59A743D25C5AA157F7A0D3477A362A0BE4
+17CD9297CE707258B89B88C6C826EA26700A58AE1F5164995EC4DC0E8E1281C4
+000230B6AA110BB6CA46B754E6F8AD09B5355BB515ECB328239362BAD7C59272
+E6932894CBDA403725C583A1009D4996310FDB839BF9B4AEC033E1BE2D35110F
+683A33913C2AA953369BE268EDCDAD6C50E38DF26AC3BCA358CDA00F540A1A49
+CE2D47C55DDAF4C24B3B8759238D5D4F9AD4B771D2A33AD905092A95F83B0FB2
+734A420FD1AD12DA80DA11BC469634B6AE4D6F66BB1636384A8C47010E53C401
+E628BA3659089E4921C080C7E05858193D0C40E0C9B05D6DAC0F74B1834925ED
+46A45A6983943E2B12E0A8A1CED859BCBC46350968514823198443693CE806DD
+28C71ED2E71AFCD8E418E1B2D13B82299D2FFDF346AD454EE37340CE52684FC8
+615AD8E9D2BE0EEA0B8B079C5E48EDB4CA82D2FB1D8684CAC5089379BD833E2F
+14F4A81AA27B49EA54DE490D19AE2281BB39474C8AF6A1B9EABE8D9B09E284C8
+483EF3A6F0CAEA501F62799CF1E6DC4B637D02E99FB51E328DC2AE144B3F715C
+7A16F9C0F1B6C97A4464C87AA4D113A54A3FC1AF77B5D4CB4EAB75CD9BF22A29
+1A24AA5EA470B632B04984501C4028C197E5E1D1C402284C6B2100DE79FBE6BA
+51404E105F0F86F8940E4ABE72B534DA426AD0A8DE5D35B84966C4E99DF0082A
+E44F82EBEC804D7ADEA1CBEB134527433A075B2ABB7598D04B673D442874B0DB
+9AC93C9FDA219F1D91A1EC35CDD6B3272E1C32539EC6046EE0EA6DD3E4A48987
+162B3AEABA2A42845320CB9E12EFC8E17A72701C38FF5759A2B8592C7935A88C
+C7384FC3A9B60CBB3E9E70E49CCFC7F3A116F9903583F51B385FC7DDC0E9A9B9
+CD0B5C38F0D89D490809D449FB3755B8EC83A4DD979EB995376600BFF7F38A0C
+604E6BD6A7F033D92400E988725116A2B364ECEBD706FA978315735499EA0C9C
+990C15B6B70C2A74960F1FC37B448D61B768E8235BE90A19F9D7DDD3C7135B94
+40B107F1CCBFB04656920E01413C5128B0AB583A26398D82526492583EDFAED9
+B1B953655EF05FA42547467F072E229D7135228A0DBBA87708D07BEA319C6409
+7D48C3CC8BC7B4B1F6D04E3915D79FE4167CC462F2598F1F1606C785FD1E9538
+717B45099C35C3B3894506F898D83C838FD4530A1EE0C11335D74828BEF6E111
+B041AE57F24722ECECABBEB1CCCC9C8AF3BA599688694A8C35581E29D503F089
+B98E96529FC4B1058B8E23782D2F9AF14E7C4105298638A5E29847640A7486D1
+3BB1A79F86FB2DFE5A03C1371E4D7B95B388515DF5A5E50887CF3B29F1984D84
+F75C9EA0D77A925492CE608E90A96C280F7E86AFFC852B058937C948C6BE22A1
+0E28FBDC6167ECD6BF9547135FA62C46B21341EF230079684FE18D96984790ED
+908D58AACFBD0830C5D8D3220F2EEEA0FA6B21CE7433B5FC517E64303F7145C4
+22D09ED0758B40F1DAD62DEF3C201BEAA94AA345D0002B809D602E2F89CE8CBA
+5DBF38FB7B09EB01A508E655A068E83AD44EF21FB94BF63B017D86F85B3D5BD3
+F2B6BEFCB4E51F264991DD7C60931B55BCA29BCBDE2850333CDD069AAD68E630
+741E8FEA3C880D4D06E2E1BE457FD5CB53432A4A967870C8BCF142821F20E506
+F7A998D034E608CFA62DE8C3B9CA4358DAE3B848F0D437F8A8159B54B4115E07
+22A279338EA0A3C85B72257F0CB7BB210925AC87CDD912959ECDBE86D27336C1
+F6D5A21457DCE672F20358A65A3E40DB43821FECD679131891D89B8B3DC6CDCC
+EC6FD74D1ED22D3793E1633A735C20B257C591855F0EB703612C1ECCB179FB15
+A313CB0834F6D16CBDA8B6993C477E765C786AB86E3089E01C4918F2ED9AA149
+694B62BB249E654E2C592CDE345C7D898531EFDBBC95DC95B90DA35A7C1F49B8
+72012676DEAF762E8BA52F2A79B877FA34EBC0D332C9B38930CF47C769F6381B
+41BC928EDF77085C3726D0F980EAC0D7E0A32BF70A21AFB4B4A214054A3B9A48
+BF8321ABA58373C6697BCE4D3028BE2F8D8D31A50731A84A09543835422F01EB
+CF74436F6C9C8592DB8D9BCCF3674D393F0915DA10F1D8DC218B55ADA7349584
+AF31B0B60BD69047BAA7456571F846FBB7E5E094080E7653ABB8AA29E890085C
+38AE13B004E54E1E1B922B08D6D07A086CC533E7ED87FF44B402009098A4D9AA
+E4F3930F459AF1A400A7BA85F5F7E0E3AD3E514D29222463DC18DCFBD444E106
+8B335C699B5BCDF254E170CDE093357483E18482DC80E0A54CD500F14F0E7249
+F603D1B462CA94C71B46B6B1FA9D5091E34B8CC2CF599F7435297FB66F5D48FA
+7572A000A16E444A83772BF2B05688CE41029FBFA0B17AE1C7CF6D361F257E21
+23CEB2DF1FF2111765E2B34D27800A7349BCABAB2C080F816AFF76CEE128401B
+C43F1BEDAF5794DEB1A298ED61633ECC24969169D021FA32EEDB5055226E399A
+A7BAFB70A624A7AD76608416ABE23C450D7E70C6959DCBF03B845168C2839166
+493D3355FBC4FB00B96C9B8AE6583D02A1999AE46BC882AA85D66B526F207E5E
+0AD5FD3EF0ABA378D56562E9DCD1263D78F8BBADF9EAAEBB52AFB72F348D822B
+B82303C874FD3E6187C25990EC297DA7806D2CDF2C1030F137D333CEC7FA4DE8
+41DD9114E582EF366A6DFFC2E01A16F0122718736BF9B1A2D50A3EBD48F0561D
+4A391E7FDA3727422F521476E7DBB76FC4AE557D4CB7040C8917A61C17211D68
+2176A97B3B8DC4F6F8A95031B68D00F7D0CBFA6684B5BB7D8A357F5AB6639858
+D730FD5FA1C02E9F97301E42A6CE735435B3BBA80C1B53AC645D2C1F351153FF
+D4E4A0EBC453314CA575D5B151A9AA1ADC1A1A5AA79664397F3217E24CD81B3A
+ECE0BA0D6F4A6427FBE37320726A841980070C1159C3901E3E8F1C07F7EC7A8B
+428FB4423E598ADBD4E22E137D6529C588ACDE86B869B914A1A95318F9B089CD
+BA2652842C8AD3E63EEFE546B2F09A3CC465933F8F4FD9882CFFF650DEB06658
+A20B633B3290005B1C1EAD65723A4E6F690311705FD1B0CFDA227D7E7D3B0DEF
+59AC88DE4D22D7AEE169F2455C7EB0209D4DAD5CBB9860BA701AB526E4C7FBA7
+FD9B1662E3DE2DCD193EEE7BD18D68EF0328C46D023A7C7AF34FA60D43308F4B
+0554F7043C1833B13094C7C72BFEC5108CAB7FF8B65EDDFA0EE11881F3554E29
+583F7CF64267BC470B5C1F170D31E8C7BCAAAEE41586E3BDE7CEB625F4B04120
+76083615F281D011357BFBE006315B2D821F05754FA853C710F459EDCF1F346D
+22B569FA4B373962FA2C659196317632B962C84B98BEF32141BC60ABE433459F
+920620A5D02631E384B86BDBE056185E5D66C3567715709B905E2A06ABEF89A4
+7C0E2ECC7EA17CDDBC0035AD01A1DE89CB6CA97FC14C3BA6B693120CC6BF8CF9
+44F50B63E69681B859C38ACD3683B2C619E39FCA40E5C12274ACBDCDFE8CC111
+DCA3FB07C11E52D39B3E0394B01723969E0CBF1F104772670363A09F29D7EE87
+77BB82420FA3CCCADC9516F5439D570279F035CBD0B3962BAF7B635965401636
+9EFCDC2FF1B04382DBF5BD2CD19CEC9F3B51CFD446D242454803EB8EBBF1F134
+C8EF82414B204BA307433A05AC5DD19ED2AFF67211193DC6819F10FA9318B157
+C9CB661248C02FE2673D4CABE69A20EB2820283C08DB0922BEE054306748E4B8
+91946D5DF12F3D30EEAAE38F79A65319209B2158837E0D1D39D42DB06444C8CA
+5A40F3FD7F42EF6B74765B9D6866AC87D76AC1D1C040D17D3E905AFADFBAF0F8
+7F3978A9A8395979EC07D0BDE80E3D42AE312310247E78446697DB0D3840A51F
+3C8F3B529CB8F26AB863CDBDE1E30F97F42A05F58B3E91C4709050674097E01F
+21B99F98090288B857675EF4264C36932BD56B99CB22DF90016DC8A69C210B5C
+4C34333E2B58014CDA465D73B0ECC2F971D1348751B271167C6BD624917AF015
+213C1AE4EB4D6CD8DDBD0C0BCCEAF3F3E883E4A526DA548E3AE665FC54315436
+EF05026950C500C3ECC1F6064725FD5602F0E892695A6993FC6A87B2ACB96907
+3E44F141A7F55B4964AA281B6E09EAD3D17CA9D5FEC455D0F86AE5BD008751F7
+0D63C9A8627F492E2FD1483370BCD0DF33DDE857E9F8433CDEFCE4B02C60AE1C
+3EED2F7BDC50AA172E2FA00291DC71AC2695AC12AC797FF7D15D0E8C5B21FB55
+DC3E109C1AFA49E6D3F30B1C8AEC3CED7B210E9179B57DD5FA9FAA3DE9950C69
+1A7ADD7A9FCD6C17719CF70A0D427F8070229DE9E2894F8759DD71821238816D
+594544573EB6C30530DBD16539427A829FE98E711CA5B2740095B9FD36276FD1
+3FDD540ABB094D03ACC45FA9AD01D892FE8CE30FA613DD4FA754880C646DAD8B
+93372472D897CA32B84A58164B20BD322FC29594D0930C9406E7B736B74E8766
+CC4DCA58487AF93351E4C0078B38CF7E31B4CB8C223C339D4DA42571119856D2
+F0C68DA2CB254FD6CBEF4FDE3E309B5F6FE8A6D7B44E4AC065C1B79D2B16DAC7
+02E597D73088DFFF688EA96D9E72E3E5419AC7A99D7B58AF8587CB6E853B6131
+95BA5AE058809E32A3D072F50C8FBF4D0DFADD6E992BFEF5CBCF1039A2A7E689
+1BEFDFB04EC241C34629F5AAFC06EEAC05637E2E4792FE142F48CC5145FDDB73
+52708B00611BECB47B94BCB55AFEB796E3E4D3F06EFDB0CE6450F12863E4DD5A
+0935240700CAE9B81E4D3D0A5AAF17D0C1A279F6F11742C9FBBA6FFFBA168C55
+735ED654ED3FA24A565DC0B1A9AFA9A44130E5CBF92B82FCCAF73DEDAACFD669
+0605D02EDCCABEA4A227F28A576FEA5B5318B68053E539E86CC18FC55727536E
+1CF8B1A7C40291044C17C5C2D8E18C5922887120704B819587B5A33C4528287E
+F0A2F9527B997854CD877FDAB96903F4BA8803C9C7D61E724993A0E7BDBCB496
+4F5AD996B519F86009254B081E32E93F282CE95FB0DD281A4973D4D0BFFE68A8
+3F0E199DF122754A557E7B6D73B67E1EFE2E1B219D80B6F2C2AC4C373CA73DFA
+B4A993E71143DCFC8CC84C661C672CFE83B8CDB7E28BAB9F230C822682964C5D
+2B54037976CED27FABBA43042B38DD96D692E98F6E7A20C435A469EAE880FDAD
+768016E39A51B902518F131DB096259CB222AEFC0FDF9CBD82531B34B8295CB3
+B1ECE0F397DB6B4B1D1F2C1ECAEBD71B97CD5B510341611AB5BE4A5EF9CE300F
+BD691EAAEDF57B6D585B27345D03147555DF906976C1AC2F95ED3A35853BED76
+554192A5BE7ED25898D8C9728A39CDE39D5E02DD02E9E719A4689AA59FF39B1F
+C9D89032E09E5AD8A64EB24BBDFD79AA6BE4659DC05A0568FD808BA7895B4C05
+6C511B8CAC8FFEB08CA271264D61D5C894315055CA842E50710273023EF5D489
+C3BAFDFB601FEE2DA54FA552B2878A0AD8EB5D7E812437F4650F7170F809575E
+8D038E35B29C32F707B1BFE57D2AA5DA2AF23FE8B3D8C533B8518CEBEF534E15
+69A01E4D8D69F262B9DC2D15CCE7372C3A76FBE5183106E1036705BCC83F3C3A
+FC8AFE4A96C06D0C7781ACB721721B980B87A4C481BB4A656535D9F51C0ED3DD
+9854247C788789B9E6341E1BC43BE6B62A8D2D7976BAFEDAAF618DA03C14C961
+77104F6CF1F9D3231BAB1460CBEF935F5FF42B65967702DECED0D02179E9B646
+43BDB7AC41E2316C8D720C15963DC7832454C717A2388EA42127EB01AB80186E
+556998759E200CD7FAEE373FD3618435143B198257B9F35BC40E33C3BAF6022A
+BEB9D17122C09AA7EE7F58C32160B43E03934ECC65FDED1C3B9BF21858FB7920
+236C832457D298800438531822E1772849E67987B35158F6DA1FD3A3F5A3E564
+B88F98155B678E39BBB8083E8B71E0D4CC0B5FC2B707FE47379FDC040CD5C5CA
+D8D730CF6920E772231AA1AA0F1647E6DB488B8721B8D788AFE95CB0C1D461F2
+F47B8E69CB327090A741773714739B898E8831F2476201A345F828C4B4B7861A
+C6898325965DBB1F5EAF82D0D76B3B0FD34F2C26AB975AE793B8E442608EEA59
+4FDCE8508CCBC90385ADCB98DDB926E14F5B0E6753A7918A9DBFED088DA9805A
+6DE843148B384756AC4A04E2509E290BC9C1C75350799E8917D7D09B922C62E5
+B2F6DB234C0CEB92753C7D4BDA4E146D0B71064BA773969F816ED9B8EB71DB47
+1812AA97E08444EBBF8B365DF86E06747A222A9BF26C72347EC77A24D594D9C2
+1A612033B071CE656D0BAD462322DAAD74083FD761C0EAE10A03620AA6DDB154
+A0CEC3F8987A2FED9F4BFC02D90DDA261885E738771C81DD918A03D633D9003A
+3AC8F1337CD0A0AECB63121C76F840F7D9BBF7AF1BBB3678D6C9764CD85E72B6
+14E5E388D616559D2694499FA80D61F5053AEB5E4B55BEB697008D5404497B8F
+CC69652DC03A76237FA23D10CB68E5880A7ADE2575B31B54F10C268813F4B0C9
+1FC1E54CC5C37BB4053536C14453CAE6990AE22D3E74E82BB2608D6B4CDB369D
+065D18D2813026453CF911CF7C2333230F466C74C87728273F38C2EB6C3FB9E3
+D17634C0C28A76889AC3A2C5693060A5F0AEE214B090C055D52776A53E632404
+0772D2DB1269AF13430C25F51692FF6392137B142D1C3094F53F5AB9FE4CE32B
+E758D3AD09FBC4976AD60C457B290874FE7B6ABE54AFCC4F56AED40DDA532465
+AF22CAE2F3EF1CC4B689364F39255AA5BACB5120D8EE8F39D58AB98FB489669A
+7800A1B5D13B36FDA95B8053C15C9B66E8B5622174B4D6B01D49888A73BB9DBA
+22A3AE699D725021F052B96D2B76E2FF25C61095CA21A1800820183A16D4E2B0
+1968F422C761CF59770D75355811914419E6B9A624C114FC53CED7DD80C92BA3
+267BFDF01CD2D33540F5DB420388EE1EA536F7FB7619D3B00A34AF9ACE09BF60
+BFFCB3EE98F8E751231A94E70F49495BCB5AEC508041FE26F9FCFC38DFB7B7F4
+CAE3D60AF6C656D62F90BA6ABAC3CA1ADBDE709782366475D50ED30F67D9BF2B
+EC7105CA22A743D5A7BA4B7B16C0871AC38CDFE9A165920AB712E992BF1F0838
+46BBA68353AA0EB2A3B7851938B5C0BD617A91B47BE536EEE1CF4C9542D184C4
+92A798FAC3452075EC6F931C724EE15C18587F1EEC9EE90DD5F3670E7ADE9B72
+828813D0BC116CD5B39031A20CF5453FAB9B77C40BB9E3401433E9E494E9047E
+0E8E2F36B5E8DCB181375CF98506928FDD6F907769D83794E9B663FA26808BFB
+A5486D2036DF0283765C35A848E10972A70E0C8DA0A6CDB3224A15C74A9F0A09
+AD75C5807E2CD5BB82E94EDFAF8E4946A60BB63ECC3FD0B03A3B4DA73A875FFD
+84590E796DA58AAC47F05DD6BD99986FCCA6EC80985015CC720BAD6DBAF21EA8
+729FB5AA85D91C9AE221DE7C65DD537701F6ECDDEBF4DC7F3E6F8E8A1A917DCE
+D53E6BD03C9F9053A3AB7F41B3F152F975D8D55307170C9C61D6EEE56A2D47F3
+8B97728F98B958F2CCF21C86A5765C5FCF1C78B020174628BFA439BBEC241906
+C37520DA9BEC389A3F2F30E19F44EFCEA08B13CD33B5337EE434220EA836F314
+8BB7AD4474A1986F6BD74878198266DA13C489A6D995AA96D7C6D52B0FB3CD7D
+CEEF2D2D5823052D675C1B5615E794BB08B01A2B81B49C4D1F56AA31C9B4FEBD
+0B26B30E3591B06C3939D57B89698ACEF90AA629138D8CF8914D554462B578A3
+30EF36AFE4E54DA09CBC28E1FA269739E85585B649F2F92F9D8BA67C21BAB667
+9D229DFAFFDAD907F911DA8D92A889CD4EF143DC9C3663135AD73AE2958AAB4E
+2ED4C642ADB1D4752077FE0A4D9EFD9BA4FEE0CF063F0825823D9D0625FD8AD6
+693B2DF499255F85C4A927AD9EDC46E1E3E7F9607B689BD1AAB7893B2B0B6BB5
+5D0A3B0DAD7D09117F75B9D149DCE9E139D424F3BAF7051F33F1B7C687BC7CA9
+F18EFE617ECCE79C7D028C7DE780179FCFC26430C46553D378596D7A2ECEC876
+6245F7DAB2DC3303279BC8D48B29C1987586EF5D0ED2380BFC775C39EEEF4AC3
+D37FFD79FBFEF28B59104A06720A04A95CDD63FF80D6BE6580F51D1AA9A5C150
+B7919E0070AE5FD51D0913868F094B0B72E402405EAF9E1B4A5E0F12C694C0B3
+0C27A34DDD703B50BF20E0596163B68BAF57201BFAFC0003CEF86C345670EAF8
+3747D7800ACA9775AF17E86C6934E1839C7DBEFA9B5643A14469CB4D7E899A3D
+16990A484A44E6104F075628D26FA0E9D860557D92D700EEB3B0A65EE5CD1608
+60168DD6A7D124608DAEF0E1EA9CF48C9B41DC24FE1AEABD582CF6608D45D3BE
+B5E5457520FB95AEBCD716E38C317B8BE48066260EE2E6B2A10FACF46507629A
+50C3C81E322FFA26F4110A0799A6AB0C7EF1B7779E295938F4551C715E44B0BD
+4969C5B710F510F476FB15ED0CD1D854D3ABE782667066111E0225B0A1C44F59
+47F73C7DCFF60B275CF8537C06DBFE629ACD0C0F3F48D574D388CC2F95B4EF18
+961588BC15842347A1676C7C7F55538967454E065BFEF5C2E270DCB36D80A5D6
+2E1529A9890AF8DFB474B354F39804F48063830587EA4E271079780E84F76860
+B8D4159F8897579A70B4503329979A6EA0FE4B199ACF509363FF184DE28452B8
+7311E849ACE4132ED733B25719DDE36CEF7B29B5707C09927BEAB25FEF52C71D
+0C9F7F39F2D08E6669B86EB5CB8D90BC1E7566FBDE0EE87A55D50E733008D457
+2D81631F3599E93C776EB59C620BF118AF3010777B0240CE7DB42A6786723ACE
+E54B0AD66D257261041968F88B386126501B16005730CBC68ACDE21B73D16F0A
+F15D90BF1ABFEE94F8B862362AF2E36D323F28C2665C57D22F5A718930B14B1E
+D8943E10FB9AA3AADC4930A6E78C1FC15F1F1DDA7C832E2163F6CD70FFAC04D2
+8B04C206384BB66E96320C8559452968967EEAB10E9E579C87DCED7AF394F93E
+A5F0E9EC82825F2FA364E33040B1B1F294FA4C5E536D012EC0209B72E08FED9C
+4948761E0AD756DB78EB1C9E6DE99761BDBDD8BE8CB042112299DF825F68C53E
+300EE1AFA59C7FA408092CAB515AEDC9D3873948A4B4B6D78A799DBA9FD3628B
+D1947AB0AD9D594DDDD16997BCBFD44DE3F68D556EA982823FB851B381527276
+D0C68AA3EB370BA46F93AF52580932534AB73D609021411A9E0F0009E7821FCF
+27181278CB75E994318E0C1B4C84DDA3C52291D2CDE0C45A509DD29518083AF2
+E3EFB3271BBB843080671C2ADD01A0D956EB48FB1166AEB5E8FC92A2D988BA5C
+698131A1A6E4C51ABC3CD6D8D7BFE390A70838454BB6AB2CA40B1110575C3AA1
+73523DAF9BCD863A0708854890A24E63A05B272873A1323B00DF14759F78AA5D
+453670FD92756E8654D0ED19883758D1B00E78CCE7DECD064907E27CD4167625
+27A0BA98448069C7B3D21FF1F53412ED84364526C3DA1574B175D68BA7626EE5
+6323C7E472614B86D77E2FD6E47C2D01A2F4D755F3307CFC06C094E233FCE72E
+4845F7E31652A90B1DC8B940AA48A402281486F2200DE05BDDB5B69DDB965FAB
+7BF0CBA38A2E5A7E91084ABE9B12A855F8747400561FD5C368D1997D3411227A
+96AADDABF8E558826E73B474FE9E51A967DBE0C44133193EE765B8B224373A32
+7564FBF11B80986534A81D033ED05EE15A77B79493A6D69496D71ECDCFBF1731
+8E2FF0FF0125E3D186A4DDC597E478D525FA8E8058C3F131BC525EFD8B840CDB
+EA2A792DF2AD54C513762859E34C3589DE590AE441804FBA07CB25BDA09EA7CF
+40AFFEA627E46B1A461E2E5AB9C6B611B7E45C008EA5BC6EABADCC2541786210
+B319320D086BA982E7F6520E8EC957174D159CEB2CF3B858A4B903D9F47F2B8F
+7ADCA2C5645447871D264E7FA1C8414CDB12B163C7BAA7533B25536E6DBB68F2
+7C215B25F3CD02163D3F5A562057083F3078F25708A62F627B0BFFF7A5221E6D
+46A032EDEA888F00E6A23E59020B2C0A2BDC06322AC1F324D88CFD3B8FF74AE6
+084574963B4A3B06CD39F9CD0403D2D20D5EF4CE271CB18F792E3EFDAEA66B3C
+CD2A4FB743E9D8E2DB995125D1F18BDEC5CAD402F4D90B2F8DB7ABC6841664E4
+1486BC2332C4E8F4A6F5B7A20AF10D041C8AA138B5F16EB1778A7485F003287D
+01465EC47D5DE48546B13529A708CFAADEA60BFCC6EB1D6EC3DC36B512788BB3
+038125961302DB9761403C3B8016344897C590FC99CE273F2B224C799980FFD2
+3CEFD589FFBDA045E65ED55B9E3FAF327B4818FF9D49518B63EDEDFE31549146
+D971BEC326ED65033E8F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 55380996 39158280 1000 600 600 (refcard.dvi)
+@start /Fa 197[20 58[{ TeXaae443f0Encoding ReEncodeFont }1
+66.4176 /CMMI8 rf /Fb 134[35 3[38 24 29 30 1[36 36 40
+58 18 2[22 36 33 1[33 36 33 33 36 51[26 45[{
+ TeX74afc74cEncoding ReEncodeFont }19 66.4176 /CMTI8
+rf /Fc 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
+49.8132 /CMSY6 rf /Fd 134[32 1[43 32 34 24 24 24 1[34
+30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 11[45 1[34
+2[41 1[45 54 3[22 1[47 39 41 1[43 42 45 10[30 30 1[30
+30 30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }43
+49.8132 /CMR6 rf /Fe 129[41 5[43 1[43 45 32 32 34 1[45
+41 45 68 23 2[23 45 41 25 37 45 36 45 40 72[36 4[41 2[23
+3[45 47 11[{ TeXf7b6d320Encoding ReEncodeFont }26 66.4176
+/CMBX8 rf /Ff 130[35 35 35 35 35 35 35 35 35 35 35 35
+35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
+35 35 35 35 35 3[35 2[35 35 35 1[35 2[35 35 4[35 35 35
+35 35 35 35 35 35 35 1[35 1[35 4[35 35 35 35 35 35 35
+35 35 35 35 35 35 35 35 1[35 35 35 35 35 33[{
+ TeX09fbbfacEncoding ReEncodeFont }74 66.4176 /CMTT8
+rf /Fg 129[57 3[51 1[60 1[60 64 45 45 47 60 64 57 64
+95 32 1[35 32 64 57 35 53 64 51 64 56 2[57 9[80 64 86
+1[78 86 1[109 69 1[59 43 90 1[72 75 1[83 81 87 18[32
+38 3[45 45 15[51 4[57 6[64 67 11[{ TeXf7b6d320Encoding ReEncodeFont }48
+99.6264 /CMBX10 rf /Fh 129[35 3[31 1[37 51 37 39 27 28
+28 37 39 35 39 59 20 1[22 20 39 35 22 31 39 31 39 35
+2[35 1[35 6[53 51 39 52 55 48 55 53 65 44 2[25 1[55 46
+48 54 2[53 6[20 7[35 2[35 20 24 20 2[27 27 5[35 9[31
+4[35 2[20 3[39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }57
+66.4176 /CMR8 rf /Fi 129[69 9[53 54 57 2[69 76 115 3[38
+2[42 63 76 61 1[67 2[69 8[106 2[103 3[108 6[108 1[90
+1[99 8[38 58[{ TeXf7b6d320Encoding ReEncodeFont }21 119.552
+/CMBX10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ @landscape end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin @landscape 1 0 bop -555 -364 a Fi(GNU)45
+b(Emacs:)62 b(Cart)o(~)-68 b(ao)45 b(de)i(Refer)m(^)-66
+b(encia)259 -266 y Fh(\(para)24 b(v)n(ers~)-35 b(ao)24
+b(22\))-450 -59 y Fg(Iniciando)37 b(o)i(Emacs)-450 97
+y Fh(P)n(ara)24 b(en)n(trar)f(no)i(GNU)e(Emacs,)h(digite:)31
+b Ff(emacs)-450 300 y Fg(Saindo)37 b(do)h(Emacs)-450
+455 y Fh(susp)r(ende)25 b(ou)f(minimiza)f(o)g(Emacs)476
+b Ff(C-z)-450 525 y Fh(encerra)24 b(o)g(Emacs)933 b Ff(C-x)36
+b(C-c)-450 709 y Fg(Arquiv)m(os)-450 865 y Fe(abre)23
+b Fh(um)h(arquiv)n(o)910 b Ff(C-x)36 b(C-f)-450 934 y
+Fe(salv)-5 b(a)23 b Fh(um)g(arquiv)n(o)h(em)g(disco)603
+b Ff(C-x)36 b(C-s)-450 1004 y Fh(salv)l(a)24 b Fe(to)r(dos)f
+Fh(arquiv)n(os)h(ab)r(ertos)543 b Ff(C-x)36 b(s)-450
+1074 y Fe(insere)24 b Fh(outro)g(arquiv)n(o)g(neste)g(bu\013er)409
+b Ff(C-x)36 b(i)-450 1144 y Fh(substitui)24 b(este)g(arquiv)n(o)g(p)r
+(or)g(outro)463 b Ff(C-x)36 b(C-v)-450 1213 y Fh(salv)l(a)24
+b(o)g(bu\013er)g(em)f(um)h(arquiv)n(o)g(esp)r(eci\014cado)155
+b Ff(C-x)36 b(C-w)-450 1283 y Fh(alterna)22 b(o)g(estado)g(de)g(somen)n
+(te)h(leitura)e(do)h(bu\013er)71 b Ff(C-x)36 b(C-q)-450
+1494 y Fg(Ajuda)h(\(Help\))-450 1661 y Fh(T)-6 b(ecle)24
+b Ff(C-h)h Fh(\(ou)f Ff(F1)p Fh(\))h(e)f(siga)f(as)h(instru\030)-31
+b(c~)c(oes.)-450 1759 y(remo)n(v)n(e)24 b(a)g(janela)g(de)g(a)t(juda)
+666 b Ff(C-x)36 b(1)-450 1829 y Fh(rola)23 b(a)h(janela)g(de)g(a)t
+(juda)766 b Ff(C-M-v)-450 1927 y Fh(aprop)r(os:)30 b(mostra)22
+b(comandos)g(que)h(casam)e(com)h(a)-450 1997 y(string)990
+1927 y Ff(C-h)36 b(a)-450 2063 y Fh(descrev)n(e)25 b(fun\030)-31
+b(c~)c(ao)24 b(asso)r(ciada)h(a)f(teclas)392 b Ff(C-h)36
+b(k)-450 2132 y Fh(descrev)n(e)25 b(uma)f(fun\030)-31
+b(c~)c(ao)803 b Ff(C-h)36 b(f)-450 2202 y Fh(busca)24
+b(informa\030)-31 b(c~)c(oes)24 b(esp)r(ec)-8 b(\023)-27
+b(\020\014cas)25 b(do)f(mo)r(do)249 b Ff(C-h)36 b(m)-450
+2405 y Fg(Recup)s(erando-se)g(de)h(Erros)-450 2561 y
+Fe(ab)r(orta)22 b Fh(uma)i(op)r(era\030)-31 b(c~)c(ao)756
+b Ff(C-g)-450 2631 y Fe(recup)r(era)24 b Fh(arquiv)n(os)f(ap\023)-35
+b(os)25 b(crash)313 b Ff(M-x)36 b(recover-session)-450
+2700 y Fh(desfaz)24 b(uma)g(altera\030)-31 b(c~)c(ao)25
+b(\()p Fe(undo)p Fh(\))400 b Ff(C-x)36 b(u,)g(C-_)g Fh(or)f
+Ff(C-/)-450 2770 y Fh(restaura)24 b(um)f(bu\013er)h(para)g(o)g(arquiv)n
+(o)252 b Ff(M-x)36 b(revert-buffer)-450 2840 y Fh(redesenha)25
+b(a)f(tela)942 b Ff(C-l)-450 3024 y Fg(Busca)38 b(Incremen)m(tal)-450
+3179 y Fh(busca)24 b(para)g(fren)n(te)907 b Ff(C-s)-450
+3249 y Fh(busca)24 b(para)g(tr\023)-35 b(as)965 b Ff(C-r)-450
+3319 y Fh(busca)24 b(p)r(or)g(express~)-35 b(ao)24 b(regular)584
+b Ff(C-M-s)-450 3389 y Fh(busca)24 b(p)r(or)g(express~)-35
+b(ao)24 b(regular)g(para)f(tr\023)-35 b(as)282 b Ff(C-M-r)-450
+3487 y Fh(seleciona)24 b(a)g(string)g(de)g(p)r(esquisa)g(an)n(terior)
+268 b Ff(M-p)-450 3557 y Fh(seleciona)24 b(a)g(string)g(seguin)n(te)h
+(de)f(p)r(esquisa)260 b Ff(M-n)-450 3626 y Fh(sai)23
+b(da)h(busca)h(incremen)n(tal)681 b Ff(RET)-450 3696
+y Fh(desfaz)24 b(o)g(efeito)g(do)i(\023)-37 b(ultimo)24
+b(caracter)413 b Ff(DEL)-450 3766 y Fh(encerra)24 b(a)g(busca)962
+b Ff(C-g)-450 3864 y Fh(Use)28 b Ff(C-s)g Fh(ou)h Ff(C-r)f
+Fh(no)n(v)l(amen)n(te)i(para)f(rep)r(etir)e(a)h(busca.)45
+b Ff(C-g)29 b Fh(cancela)-450 3934 y(ap)r(enas)c(o)e(que)i(ainda)f(n~)
+-35 b(ao)24 b(foi)f(feito.)-358 4131 y Fd(c)-375 4133
+y Fc(\015)e Fd(2006)h(F)-5 b(ree)22 b(Soft)n(w)n(are)g(F)-5
+b(oundation,)20 b(Inc.)27 b(P)n(ermissions)21 b(on)g(bac)n(k.)28
+b(v2.3)1860 -364 y Fg(Mo)m(vimen)m(ta\030)-51 b(c)o(~)-56
+b(ao)1860 -208 y Fe(a)n(v)-5 b(an\030)-36 b(car)1124
+b(tr)o(\023)-40 b(as)109 b(fren)n(te)1860 -139 y Fh(um)24
+b(caracter)1027 b Ff(C-b)142 b(C-f)1860 -69 y Fh(uma)24
+b(pala)n(vra)1011 b Ff(M-b)142 b(M-f)1860 1 y Fh(uma)24
+b(linha)1085 b Ff(C-p)142 b(C-n)1860 71 y Fh(para)24
+b(in)-8 b(\023)-27 b(\020cio)23 b(ou)h(\014m)g(de)g(linha)579
+b Ff(C-a)142 b(C-e)1860 140 y Fh(sen)n(ten\030)-31 b(ca)1136
+b Ff(M-a)142 b(M-e)1860 210 y Fh(par\023)-35 b(agrafo)1103
+b Ff(M-{)142 b(M-})1860 280 y Fh(p\023)-35 b(agina)1192
+b Ff(C-x)36 b([)71 b(C-x)36 b(])1860 349 y Fh(sexp)1260
+b Ff(C-M-b)72 b(C-M-f)1860 419 y Fh(fun\030)-31 b(c~)c(ao)1194
+b Ff(C-M-a)72 b(C-M-e)1860 489 y Fh(para)24 b(in)-8 b(\023)-27
+b(\020cio)23 b(ou)h(\014m)g(do)g(bu\013er)550 b Ff(M-<)142
+b(M->)1860 587 y Fh(rolar)23 b(para)g(pr\023)-35 b(oxima)24
+b(tela)721 b Ff(C-v)1860 657 y Fh(rolar)23 b(para)g(tela)i(an)n(terior)
+732 b Ff(M-v)1860 727 y Fh(rolar)23 b(para)g(esquerda)843
+b Ff(C-x)36 b(<)1860 796 y Fh(rolar)23 b(para)g(direita)911
+b Ff(C-x)36 b(>)1860 866 y Fh(rolar)23 b(a)h(linha)f(corren)n(te)i
+(para)e(o)h(cen)n(tro)h(da)f(tela)119 b Ff(C-u)36 b(C-l)1860
+1069 y Fg(Cortando)h(e)h(Apagando)1860 1225 y Fe(en)n(tidade)27
+b(a)f(cortar)642 b(tr)o(\023)-40 b(as)250 b(fren)n(te)1860
+1295 y Fh(caracter)25 b(\(apaga,)g(n~)-35 b(ao)24 b(corta\))416
+b Ff(DEL)283 b(C-d)1860 1364 y Fh(pala)n(vra)1027 b Ff(M-DEL)213
+b(M-d)1860 1434 y Fh(linha)23 b(\(at)n(\023)-33 b(e)25
+b(o)f(\014nal\))714 b Ff(M-0)36 b(C-k)142 b(C-k)1860
+1504 y Fh(sen)n(ten\030)-31 b(ca)995 b Ff(C-x)36 b(DEL)142
+b(M-k)1860 1574 y Fh(sexp)1119 b Ff(M--)36 b(C-M-k)72
+b(C-M-k)1860 1672 y Fh(corta)24 b Fe(regi)o(~)-40 b(ao)1044
+b Ff(C-w)1860 1742 y Fh(copia)24 b(a)g Fe(regi)o(~)-40
+b(ao)981 b Ff(M-w)1860 1811 y Fh(cortar)24 b(at)n(\023)-33
+b(e)25 b(a)e(pr\023)-35 b(oxima)24 b(o)r(corr)n(^)-33
+b(encia)24 b(de)g Fb(char)211 b Ff(M-z)36 b Fb(char)1860
+1910 y Fh(colar)24 b(a)h(\023)-37 b(ultima)24 b(coisa)g(cortada)582
+b Ff(C-y)1860 1979 y Fh(substitui)24 b(a)i(\023)-37 b(ult.)31
+b(colagem)24 b(p)r(ela)g(c\023)-35 b(opia)25 b(an)n(terior)106
+b Ff(M-y)1860 2184 y Fg(Marcando)1860 2340 y Fh(p)r(osiciona)24
+b(a)g(marca)g(aqui)730 b Ff(C-@)36 b Fh(or)f Ff(C-SPC)1860
+2410 y Fh(tro)r(ca)24 b(a)g(marca)g(p)r(elo)g(p)r(on)n(to)h(e)f(vice-v)
+n(ersa)281 b Ff(C-x)36 b(C-x)1860 2508 y Fh(colo)r(ca)25
+b(a)e(marca)h Fb(ar)l(g)30 b Fe(pala)n(vras)22 b Fh(adian)n(te)290
+b Ff(M-@)1860 2578 y Fh(marca)24 b(o)g Fe(par)o(\023)-40
+b(agrafo)829 b Ff(M-h)1860 2647 y Fh(marca)24 b(a)g Fe(p)o(\023)-40
+b(agina)935 b Ff(C-x)36 b(C-p)1860 2717 y Fh(marca)24
+b(a)g Fe(sexp)1012 b Ff(C-M-@)1860 2787 y Fh(marca)24
+b(uma)g Fe(fun\030)-36 b(c)o(~)c(ao)839 b Ff(C-M-h)1860
+2857 y Fh(marca)24 b(to)r(do)g Fe(bu\013er)858 b Ff(C-x)36
+b(h)1860 3041 y Fg(Busca)i(e)g(Substitui\030)-51 b(c)o(~)-56
+b(ao)1860 3196 y Fh(Substitui)24 b(in)n(terativ)l(amen)n(te)i(uma)e
+(string)300 b Ff(M-\045)1860 3266 y Fh(usando)25 b(express~)-35
+b(ao)24 b(regular)301 b Ff(M-x)36 b(query-replace-regexp)1860
+3364 y Fh(Resp)r(ostas)24 b(v\023)-35 b(alidas)24 b(no)g(mo)r(do)g(de)g
+(busca)h(e)f(substitui\030)-31 b(c~)c(ao)1860 3463 y
+Fe(substitui)23 b Fh(esta,)h(e)g(prossegue)594 b Ff(SPC)1860
+3533 y Fh(substitui)24 b(esta)g(e)g(en)n(trada)h(e)f(n~)-35
+b(ao)24 b(a)n(v)l(an\030)-31 b(ca)298 b Ff(,)1860 3602
+y Fe(pula)23 b Fh(para)h(a)g(pr\023)-35 b(oxima)23 b(sem)h(substituir)
+331 b Ff(DEL)1860 3672 y Fh(substitui)24 b(em)g(to)r(do)g(o)g(texto)h
+(restan)n(te)388 b Ff(!)1860 3742 y Fe(v)n(olta)22 b
+Fh(para)h(a)h(pala)n(vra)g(an)n(terior)530 b Ff(^)1860
+3811 y Fe(encerra)1177 b Ff(RET)1860 3881 y Fh(en)n(tra)24
+b(na)g(edi\030)-31 b(c~)c(ao)25 b(recursiv)l(a)f(\()p
+Ff(C-M-c)h Fh(para)f(sair\))121 b Ff(C-r)4241 -364 y
+Fg(M)s(\023)-60 b(ultiplas)36 b(Janelas)4241 -223 y Fh(Quando)23
+b(forem)e(mostrados)i(2)g(comandos,)g(o)f(segundo)i(tem)f(comp)r(or-)
+4241 -153 y(tamen)n(to)i(similar)d(para)i(frame.)4241
+-59 y(elimina)f(to)r(das)h(outras)g(janelas)351 b Ff(C-x)36
+b(1)212 b(C-x)36 b(5)g(1)4241 11 y Fh(divide)23 b(a)h(janela,)g(acima)f
+(e)h(abaixo)261 b Ff(C-x)36 b(2)212 b(C-x)36 b(5)g(2)4241
+81 y Fh(elimina)23 b(esta)h(janela)640 b Ff(C-x)36 b(0)212
+b(C-x)36 b(5)g(0)4241 175 y Fh(divide)23 b(a)h(janela,)g(lado)f(a)h
+(lado)606 b Ff(C-x)36 b(3)4241 270 y Fh(rola)23 b(a)h(outra)g(janela)
+870 b Ff(C-M-v)4241 365 y Fh(lev)l(a)24 b(o)f(cursor)h(para)f(outra)i
+(janela)269 b Ff(C-x)36 b(o)212 b(C-x)36 b(5)g(o)4241
+434 y Fh(seleciona)24 b(um)g(bu\013er)f(em)h(outra)g(janela)113
+b Ff(C-x)36 b(4)g(b)141 b(C-x)36 b(5)g(b)4241 504 y Fh(mostra)23
+b(um)h(bu\013er)g(em)f(outra)i(janela)171 b Ff(C-x)36
+b(4)g(C-o)71 b(C-x)36 b(5)g(C-o)4241 574 y Fh(busca)24
+b(um)g(arquiv)n(o)f(em)h(outra)g(janela)160 b Ff(C-x)36
+b(4)g(f)141 b(C-x)36 b(5)g(f)4241 644 y Fh(busca)24 b(arquiv)n(o)g
+(\(ro\))g(em)g(outra)g(janela)140 b Ff(C-x)36 b(4)g(r)141
+b(C-x)36 b(5)g(r)4241 713 y Fh(executa)25 b(Dired)e(em)h(outra)g
+(janela)279 b Ff(C-x)36 b(4)g(d)141 b(C-x)36 b(5)g(d)4241
+783 y Fh(busca)24 b(tag)h(em)e(outra)h(janela)413 b Ff(C-x)36
+b(4)g(.)141 b(C-x)36 b(5)g(.)4241 878 y Fh(aumen)n(ta)25
+b(a)f(janela)f(na)h(v)n(ertical)563 b Ff(C-x)36 b(^)4241
+948 y Fh(estreita)24 b(a)g(janela)948 b Ff(C-x)36 b({)4241
+1017 y Fh(alarga)23 b(a)h(janela)988 b Ff(C-x)36 b(})4241
+1202 y Fg(F)-10 b(ormatando)4241 1343 y Fh(iden)n(ta)24
+b(a)g Fe(linha)f Fh(corren)n(te)h(\(mo)r(do\))473 b Ff(TAB)4241
+1413 y Fh(iden)n(ta)24 b(a)g Fe(regi)o(~)-40 b(ao)22
+b Fh(\(mo)r(do\))706 b Ff(C-M-\\)4241 1482 y Fh(iden)n(ta)24
+b(a)g Fe(sexp)g Fh(\(mo)r(do\))763 b Ff(C-M-q)4241 1552
+y Fh(iden)n(ta)24 b(regi~)-35 b(ao)24 b(rigidamen)n(te)g
+Fb(ar)l(g)30 b Fh(colunas)281 b Ff(C-x)36 b(TAB)4241
+1647 y Fh(insere)23 b(uma)h(no)n(v)l(a)g(linha)g(ap\023)-35
+b(os)24 b(o)g(p)r(on)n(to)347 b Ff(C-o)4241 1717 y Fh(mo)n(v)n(e)24
+b(o)g(restan)n(te)h(da)f(linha)f(para)h(baixo)329 b Ff(C-M-o)4241
+1786 y Fh(apaga)24 b(linhas)g(em)f(branco)i(em)e(torno)i(do)f(p)r(on)n
+(to)112 b Ff(C-x)36 b(C-o)4241 1856 y Fh(jun)n(ta)24
+b(a)g(linha)f(com)h(a)g(an)n(terior)572 b Ff(M-^)4241
+1926 y Fh(apaga)24 b(to)r(dos)h(brancos)f(em)g(torno)g(do)g(p)r(on)n
+(to)212 b Ff(M-\\)4241 1995 y Fh(insere)23 b(um)g(espa\030)-31
+b(co)25 b(em)f(branco)574 b Ff(M-SPC)4241 2090 y Fh(preenc)n(he)25
+b(o)f(par\023)-35 b(agrafo)797 b Ff(M-q)4241 2160 y Fh(de\014ne)24
+b(a)g(coluna)h(limite)e(de)h(preenc)n(himen)n(to)215
+b Ff(C-x)36 b(f)4241 2230 y Fh(de\014ne)24 b(um)g(pre\014xo)g(para)g
+(cada)h(linha)403 b Ff(C-x)36 b(.)4241 2324 y Fh(formata)23
+b(fon)n(te)1024 b Ff(M-o)4241 2490 y Fg(Mai)s(\023)-60
+b(usculas)36 b(e)i(Min)s(\023)-60 b(usculas)4241 2631
+y Fh(P)n(ala)n(vra)23 b(para)h(mai)r(\023)-37 b(usculas)688
+b Ff(M-u)4241 2701 y Fh(P)n(ala)n(vra)23 b(para)h(min)r(\023)-37
+b(usculas)684 b Ff(M-l)4241 2770 y Fh(Primeira)22 b(letra)h(mai)r(\023)
+-37 b(uscula)24 b(\(capitalize\))312 b Ff(M-c)4241 2865
+y Fh(Regi~)-35 b(ao)24 b(para)g(mai)r(\023)-37 b(usculas)713
+b Ff(C-x)36 b(C-u)4241 2935 y Fh(Regi~)-35 b(ao)24 b(para)g(min)r(\023)
+-37 b(usculas)709 b Ff(C-x)36 b(C-l)4241 3120 y Fg(O)i(Minibu\013er)
+4241 3260 y Fh(As)23 b(teclas)h(seguin)n(tes)h(s~)-35
+b(ao)24 b(de\014nidas)g(no)g(minibu\013er.)4241 3355
+y(complete)h(o)e(m\023)-35 b(aximo)24 b(p)r(ossi)-8 b(\023)-27
+b(\020v)n(el)557 b Ff(TAB)4241 3425 y Fh(complete)25
+b(at)n(\023)-33 b(e)24 b(uma)g(pala)n(vra)641 b Ff(SPC)4241
+3494 y Fh(complete)25 b(e)e(execute)861 b Ff(RET)4241
+3564 y Fh(mostre)23 b(as)h(op\030)-31 b(c~)c(oes)25 b(para)f(completar)
+432 b Ff(?)4241 3634 y Fh(busca)24 b(a)g(en)n(trada)h(an)n(terior)e(no)
+h(minibu\013er)250 b Ff(M-p)4241 3704 y Fh(busca)25 b(a)h(pr\023)-35
+b(oxima)25 b(en)n(trada)h(no)g(minibu\013er)e(ou)i(o)4241
+3773 y(default)5681 3704 y Ff(M-n)4241 3826 y Fh(busca)e(regexp)g(no)g
+(hist\023)-35 b(orico)24 b(para)g(tr\023)-35 b(as)355
+b Ff(M-r)4241 3896 y Fh(busca)24 b(regexp)g(no)g(hist\023)-35
+b(orico)24 b(para)g(fren)n(te)297 b Ff(M-s)4241 3966
+y Fh(encerra)24 b(o)f(comando)862 b Ff(C-g)4241 4060
+y Fh(T)-6 b(ecle)22 b Ff(C-x)37 b(ESC)f(ESC)23 b Fh(para)f(editar)g(e)h
+(rep)r(etir)f(o)i(\023)-37 b(ultimo)22 b(comando)i(uti-)4241
+4130 y(lizado.)31 b(T)-6 b(ecle)24 b Ff(F10)h Fh(para)e(ativ)l(ar)h(o)g
+(men)n(u.)p eop end
+%%Page: 2 2
+TeXDict begin @landscape 2 1 bop -555 -364 a Fi(GNU)45
+b(Emacs:)62 b(Cart)o(~)-68 b(ao)45 b(de)i(Refer)m(^)-66
+b(encia)259 -266 y Fh(\(para)24 b(v)n(ers~)-35 b(ao)24
+b(22\))-450 -61 y Fg(Bu\013ers)-450 93 y Fh(seleciona)g(outro)h
+(bu\013er)779 b Ff(C-x)36 b(b)-450 163 y Fh(lista)23
+b(to)r(dos)i(bu\013ers)890 b Ff(C-x)36 b(C-b)-450 233
+y Fh(mata)24 b(um)g(bu\013er)960 b Ff(C-x)36 b(k)-450
+415 y Fg(T)-10 b(ransp)s(osi\030)-51 b(c)o(~)-56 b(ao)-450
+569 y Fh(transp~)-35 b(oe)25 b Fe(caracteres)795 b Ff(C-t)-450
+638 y Fh(transp~)-35 b(oe)25 b Fe(pala)n(vras)858 b Ff(M-t)-450
+708 y Fh(transp~)-35 b(oe)25 b Fe(linhas)945 b Ff(C-x)36
+b(C-t)-450 778 y Fh(transp~)-35 b(oe)25 b Fe(sexps)964
+b Ff(C-M-t)-450 979 y Fg(Corre\030)-51 b(c)o(~)-56 b(ao)38
+b(Ortogr)o(\023)-56 b(a\014ca)-450 1133 y Fh(v)n(eri\014ca)24
+b(a)g(pala)n(vra)g(corren)n(te)639 b Ff(M-$)-450 1203
+y Fh(v)n(eri\014ca)24 b(to)r(das)h(pala)n(vras)e(de)i(uma)e(regi~)-35
+b(ao)152 b Ff(M-x)36 b(ispell-region)-450 1272 y Fh(v)n(eri\014ca)24
+b(to)r(do)h(o)f(bu\013er)656 b Ff(M-x)36 b(ispell-buffer)-450
+1474 y Fg(T)-10 b(ags)-450 1628 y Fh(busca)24 b(uma)g(tag)h(\(uma)f
+(de\014ni\030)-31 b(c~)c(ao\))485 b Ff(M-.)-450 1698
+y Fh(encon)n(tra)25 b(a)f(pr\023)-35 b(oxima)23 b(o)r(corr)n(^)-33
+b(encia)25 b(da)f(tag)282 b Ff(C-u)36 b(M-.)-450 1768
+y Fh(esp)r(eci\014ca)25 b(um)f(no)n(v)n(o)g(arquiv)n(o)g(de)g(tags)142
+b Ff(M-x)36 b(visit-tags-table)-450 1866 y Fh(busca)24
+b(p)r(or)g(regexp)g(em)g(to)r(dos)h(arquiv)n(os)188 b
+Ff(M-x)36 b(tags-search)-450 1936 y Fh(busca)24 b(e)g(subst.)32
+b(em)23 b(to)r(dos)i(arquiv)n(os)119 b Ff(M-x)36 b(tags-query-replace)
+-450 2005 y Fh(con)n(tin)n(ua)c(a)h(\023)-37 b(ultima)31
+b(busca)h(ou)f(busca)h(e)f(substi-)-450 2075 y(tui\030)-31
+b(c~)c(ao)990 2005 y Ff(M-,)-450 2274 y Fg(Shells)-450
+2428 y Fh(executa)26 b(um)d(comando)i(do)f(shell)528
+b Ff(M-!)-450 2498 y Fh(executa)26 b(um)d(comando)i(do)f(shell)f(na)h
+(regi~)-35 b(ao)223 b Ff(M-|)-450 2568 y Fh(\014ltra)24
+b(uma)f(regi~)-35 b(ao)24 b(p)r(or)g(um)f(comando)i(do)f(shell)120
+b Ff(C-u)36 b(M-|)-450 2638 y Fh(inicia)23 b(um)h(shell)f(na)h(janela)g
+Ff(*shell*)420 b(M-x)36 b(shell)-450 2839 y Fg(Ret)o(^)-56
+b(angulos)-450 2993 y Fh(copia)24 b(o)g(ret^)-35 b(angulo)25
+b(para)f(o)f(registrador)330 b Ff(C-x)36 b(r)g(r)-450
+3062 y Fh(corta)24 b(o)g(ret^)-35 b(angulo)912 b Ff(C-x)36
+b(r)g(k)-450 3132 y Fh(cola)24 b(o)g(ret^)-35 b(angulo)947
+b Ff(C-x)36 b(r)g(y)-450 3202 y Fh(abre)24 b(o)g(ret^)-35
+b(angulo,)24 b(mo)n(v)n(e)g(o)g(texto)h(para)f(direita)107
+b Ff(C-x)36 b(r)g(o)-450 3272 y Fh(tro)r(ca)24 b(p)r(or)g(espa\030)-31
+b(cos)25 b(o)e(con)n(te)r(\023)-37 b(udo)26 b(do)e(ret^)-35
+b(angulo)133 b Ff(C-x)36 b(r)g(c)-450 3341 y Fh(an)n(tep~)-35
+b(oe)26 b(uma)e(linha)f(a)h(string)610 b Ff(C-x)36 b(r)g(t)-450
+3542 y Fg(Abreviaturas)-450 3696 y Fh(adiciona)24 b(uma)g(abreviatura)h
+(global)442 b Ff(C-x)36 b(a)g(g)-450 3766 y Fh(adiciona)24
+b(abreviatura)h(ao)f(mo)r(do)g(lo)r(cal)352 b Ff(C-x)36
+b(a)g(l)-450 3836 y Fh(adiciona)24 b(globalmen)n(te)h(expans~)-35
+b(ao)26 b(de)e(abrev.)179 b Ff(C-x)36 b(a)g(i)f(g)-450
+3906 y Fh(adiciona)24 b(lo)r(calmen)n(te)h(expans~)-35
+b(ao)25 b(de)g(abrev.)220 b Ff(C-x)36 b(a)g(i)f(l)-450
+3975 y Fh(explicitamen)n(te)25 b(expande)h(uma)e(abrev)366
+b Ff(C-x)36 b(a)g(e)-450 4073 y Fh(completa)24 b(pala)n(vras)e(com)h
+(base)g(em)f(pala)n(vras)g(an-)-450 4143 y(teriores)990
+4073 y Ff(M-/)1860 -364 y Fg(Express~)-57 b(oes)39 b(Regulares)1860
+-208 y Fh(qualquer)24 b(caracter)h(menos)f(no)n(v)l(a)g(linha)346
+b Ff(.)71 b Fh(\(dot\))1860 -139 y(zero)24 b(ou)g(mais)f(rep)r(eti\030)
+-31 b(c~)c(oes)725 b Ff(*)1860 -69 y Fh(uma)24 b(ou)g(mais)f(rep)r
+(eti\030)-31 b(c~)c(oes)717 b Ff(+)1860 1 y Fh(zero)24
+b(ou)g(uma)g(rep)r(eti\030)-31 b(c~)c(ao)757 b Ff(?)1860
+71 y Fh(protege)25 b(o)f(caracter)g(esp)r(ecial)h Fb(c)565
+b Ff(\\)p Fb(c)1860 140 y Fh(\(\\or"\))1253 b Ff(\\|)1860
+210 y Fh(agrupamen)n(to)1040 b Ff(\\\()36 b Fa(:)11 b(:)h(:)34
+b Ff(\\\))1860 280 y Fh(mesmo)24 b(texto)h(que)f Fb(n)5
+b Fh(-)n(\023)-33 b(esimo)24 b(grup)r(o)447 b Ff(\\)p
+Fb(n)1860 349 y Fh(quebra)24 b(de)g(pala)n(vra)886 b
+Ff(\\b)1860 419 y Fh(sem)24 b(quebra)g(de)g(pala)n(vra)744
+b Ff(\\B)1860 518 y Fe(en)n(tidade)707 b(casa)26 b(in)-9
+b(\023)-32 b(\020cio)70 b(casa)26 b(\014m)1860 587 y
+Fh(linha)856 b Ff(^)400 b($)1860 657 y Fh(pala)n(vra)782
+b Ff(\\<)365 b(\\>)1860 727 y Fh(bu\013er)831 b Ff(\\`)365
+b(\\')1860 796 y Fe(classe)27 b(de)g(caracteres)315 b(casa)26
+b(esses)91 b(casa)26 b(os)h(outros)1860 866 y Fh(conjun)n(to)e(expl)-8
+b(\023)-27 b(\020cito)459 b Ff([)35 b Fa(:)12 b(:)f(:)35
+b Ff(])212 b([^)36 b Fa(:)11 b(:)g(:)35 b Ff(])1860 936
+y Fh(caracter)25 b(de)f(sin)n(taxe)g(de)g(pala)n(vra)84
+b Ff(\\w)365 b(\\W)1860 1006 y Fh(caracter)25 b(de)f(sin)n(taxe)g(de)g
+Fb(c)278 b Ff(\\s)p Fb(c)332 b Ff(\\S)p Fb(c)1860 1201
+y Fg(Conjun)m(tos)37 b(de)g(Carac.)50 b(In)m(ternacionais)1860
+1357 y Fh(esp)r(eci\014ca)25 b(uma)f(l)-8 b(\023)-27
+b(\020ngua)24 b(principal)488 b Ff(C-x)36 b(RET)g(l)1860
+1427 y Fh(mostra)24 b(to)r(dos)g(m)n(\023)-33 b(eto)r(dos)25
+b(de)f(inser\030)-31 b(c~)c(ao)96 b Ff(M-x)36 b(list-input-methods)1860
+1496 y Fh(habilita/desabilita)24 b(um)g(m)n(\023)-33
+b(eto)r(do)25 b(de)f(inser\030)-31 b(c~)c(ao)136 b Ff(C-\\)1860
+1566 y Fh(determina)24 b(o)g(sistema)g(de)g(co)r(di\014ca\030)-31
+b(c~)c(ao)369 b Ff(C-x)36 b(RET)g(c)1860 1636 y Fh(mostra)24
+b(sistemas)f(de)h(co)r(di\014ca\030)-31 b(c~)c(ao)166
+b Ff(M-x)37 b(list-coding-systems)1860 1706 y Fh(escolhe)25
+b(a)e(co)r(di\014ca\030)-31 b(c~)c(ao)26 b(preferida)143
+b Ff(M-x)36 b(prefer-coding-system)1860 1911 y Fg(Info)1860
+2066 y Fh(en)n(tra)24 b(no)g(leitor)g(de)g(Info)760 b
+Ff(C-h)36 b(i)1860 2136 y Fh(busca)24 b(fun\030)-31 b(c~)c(ao)25
+b(ou)f(arquiv)n(o)g(no)g(Info)448 b Ff(C-h)36 b(S)1860
+2234 y Fh(Mo)n(vimen)n(ta\030)-31 b(c~)c(ao)25 b(em)f(um)g(no)r(do:)
+1931 2333 y(rola)f(para)h(fren)n(te)891 b Ff(SPC)1931
+2402 y Fh(rola)23 b(para)h(tr\023)-35 b(as)949 b Ff(DEL)1931
+2472 y Fh(in)-8 b(\023)-27 b(\020cio)23 b(do)h(no)r(do)933
+b Ff(.)71 b Fh(\(dot\))1860 2570 y(Mo)n(vimen)n(ta\030)-31
+b(c~)c(ao)25 b(en)n(tre)g(no)r(dos:)1931 2669 y Fe(pr\023)-41
+b(oximo)22 b Fh(no)r(do)902 b Ff(n)1931 2738 y Fh(no)r(do)24
+b Fe(an)n(terior)911 b Ff(p)1931 2808 y Fh(mo)n(v)n(er)23
+b(cima)h Fe(cima)824 b Ff(u)1931 2878 y Fh(seleciona)24
+b(item)g(do)g(men)n(u)g(p)r(elo)g(nome)311 b Ff(m)1931
+2948 y Fh(seleciona)24 b Fb(n)5 b Fh(-)n(\023)-33 b(esimo)23
+b(item)h(do)g(men)n(u)385 b Fb(n)1931 3017 y Fh(segue)24
+b(refer)n(^)-33 b(encia)24 b(cruzada)h(\(return)f(with)f
+Ff(l)p Fh(\))133 b Ff(f)1931 3087 y Fh(retorna)26 b(\023)-37
+b(ultimo)23 b(no)r(do)i(visitado)483 b Ff(l)1931 3157
+y Fh(retorna)24 b(ao)g(diret\023)-35 b(orio)23 b(de)h(no)r(dos)470
+b Ff(d)1931 3227 y Fh(ir)22 b(para)i(o)g(top)r(o)h(do)f(arquiv)n(o)f
+(Info)445 b Ff(t)1931 3296 y Fh(ir)22 b(para)i(qualquer)g(no)r(do)h(p)r
+(or)e(nome)382 b Ff(g)1860 3395 y Fh(Outros:)1931 3493
+y(executar)25 b Fe(tutorial)c Fh(do)j(Info)575 b Ff(h)1931
+3563 y Fe(sair)22 b Fh(Info)1097 b Ff(q)1931 3633 y Fh(busca)24
+b(p)r(or)f(express~)-35 b(ao)25 b(regular)513 b Ff(M-s)4170
+-364 y Fg(Registrador)4170 -208 y Fh(salv)l(a)24 b(regi~)-35
+b(ao)24 b(em)f(um)h(registrador)488 b Ff(C-x)36 b(r)g(s)4170
+-139 y Fh(insere)23 b(o)h(con)n(te)r(\023)-37 b(udo)26
+b(do)e(registrador)f(no)h(bu\013er)150 b Ff(C-x)36 b(r)g(i)4170
+-40 y Fh(salv)l(a)24 b(v)l(alor)f(do)h(p)r(on)n(to)h(no)f(registrador)
+361 b Ff(C-x)36 b(r)g(SPC)4170 29 y Fh(salta)24 b(para)g(o)g(p)r(on)n
+(to)h(salv)n(o)e(no)h(registrador)243 b Ff(C-x)36 b(r)g(j)4170
+234 y Fg(Macros)i(de)g(T)-10 b(eclado)4170 390 y Fe(inicia)22
+b Fh(a)i(de\014ni\030)-31 b(c~)c(ao)25 b(de)f(uma)g(macro)436
+b Ff(C-x)36 b(\()4170 460 y Fe(encerra)23 b Fh(a)h(de\014ni\030)-31
+b(c~)c(ao)25 b(de)f(uma)g(macro)362 b Ff(C-x)36 b(\))4170
+529 y Fe(executa)24 b Fh(a)h(\023)-37 b(ultima)24 b(macro)g(de\014nida)
+410 b Ff(C-x)36 b(e)4170 599 y Fh(adiciona)24 b(a)i(\023)-37
+b(ultima)24 b(macro)f(de\014nida)426 b Ff(C-u)36 b(C-x)g(\()4170
+669 y Fh(nomeia)24 b(a)i(\023)-37 b(ultima)23 b(macro)h(de\014nida)129
+b Ff(M-x)37 b(name-last-kbd-macro)4170 739 y Fh(insere)23
+b(uma)h(de\014ni\030)-31 b(c~)c(ao)25 b(em)f(Lisp)318
+b Ff(M-x)36 b(insert-kbd-macro)4170 942 y Fg(Lidando)h(com)i(Emacs)f
+(Lisp)4170 1097 y Fh(a)n(v)l(alia)24 b Fe(sexp)g Fh(an)n(tes)h(do)f(p)r
+(on)n(to)603 b Ff(C-x)36 b(C-e)4170 1167 y Fh(a)n(v)l(alia)24
+b(a)g Fe(defun)g Fh(corren)n(te)712 b Ff(C-M-x)4170 1237
+y Fh(a)n(v)l(alia)24 b(a)g Fe(regi)o(~)-40 b(ao)824 b
+Ff(M-x)36 b(eval-region)4170 1306 y Fh(l)n(^)-33 b(e)23
+b(e)h(a)n(v)l(alia)g(o)g(minibu\013er)736 b Ff(M-:)4170
+1376 y Fh(carrega)24 b(do)g(diret\023)-35 b(orio)23 b(padr~)-35
+b(ao)25 b(do)f(sistema)106 b Ff(M-x)36 b(load-library)4170
+1581 y Fg(P)m(ersonaliza\030)-51 b(c)o(~)-56 b(ao)37
+b(Simples)4170 1737 y Fh(p)r(ersonaliza)24 b(v)l(ari\023)-35
+b(av)n(eis)24 b(e)g(fon)n(tes)408 b Ff(M-x)36 b(customize)4170
+1835 y Fh(F)-6 b(azendo)25 b(teclas)g(de)f(atalho)h(globais)e(em)h
+(Emacs)g(Lisp)f(\(exemplos\):)4170 1933 y Ff(\(global-set-key)40
+b("\\C-cg")d('goto-line\))4170 2003 y(\(global-set-key)j("\\M-#")d
+('query-replace-regexp\))4170 2208 y Fg(Escrev)m(endo)h(Comandos)4170
+2364 y Ff(\(defun)f Fb(c)l(ommand-name)43 b Ff(\()p Fb(ar)l(gs)5
+b Ff(\))4241 2433 y(")p Fb(do)l(cumentation)g Ff(")38
+b(\(interactive)g(")p Fb(template)5 b Ff("\))4241 2503
+y Fb(b)l(o)l(dy)h Ff(\))4170 2601 y Fh(Um)23 b(exemplo:)4170
+2700 y Ff(\(defun)37 b(this-line-to-top-of-win)q(dow)42
+b(\(line\))4241 2769 y("Reposition)c(line)e(point)h(is)f(on)g(to)g(top)
+g(of)g(window.)4170 2839 y(With)g(ARG,)h(put)f(point)h(on)f(line)g
+(ARG.")4241 2909 y(\(interactive)i("P"\))4241 2979 y(\(recenter)f(\(if)
+g(\(null)f(line\))4735 3048 y(0)4664 3118 y(\(prefix-numeric-value)41
+b(line\)\)\)\))4170 3216 y Fh(A)19 b(esp)r(eci\014cao)i
+Ff(interactive)i Fh(explica)d(como)g(in)n(terativ)l(amen)n(te)i(ler)d
+(ar-)4170 3286 y(gumen)n(tos.)32 b(T)-6 b(ecle)25 b Ff(C-h)36
+b(f)f(interactive)27 b Fh(para)d(mais)f(detalhes.)4463
+3550 y Fd(Cop)n(yrigh)n(t)4766 3548 y(c)4749 3550 y Fc(\015)e
+Fd(2006)h(F)-5 b(ree)22 b(Soft)n(w)n(are)h(F)-5 b(oundation,)20
+b(Inc.)4627 3606 y(v2.3)i(for)f(GNU)f(Emacs)h(v)n(ersion)h(22,)f(2006)
+4760 3661 y(designed)f(b)n(y)h(Stephen)f(Gildea)4170
+3746 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e
+(distribute)f(copies)j(of)f(this)f(card)h(pro-)4170 3802
+y(vided)23 b(the)h(cop)n(yrigh)n(t)h(notice)g(and)f(this)f(p)r
+(ermission)h(notice)g(are)h(preserv)n(ed)g(on)4170 3857
+y(all)20 b(copies.)4170 3942 y(F)-5 b(or)21 b(copies)g(of)g(the)g(GNU)e
+(Emacs)i(man)n(ual,)f(write)h(to)g(the)f(F)-5 b(ree)22
+b(Soft)n(w)n(are)g(F)-5 b(oun-)4170 3998 y(dation,)29
+b(Inc.,)g(51)g(F)-5 b(ranklin)28 b(Street,)h(Fifth)f(Flo)r(or,)h
+(Boston,)i(MA)d(02110-1301)4170 4053 y(USA)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/etc/pt-br-refcard.tex b/etc/pt-br-refcard.tex
new file mode 100644
index 00000000000..900855911d7
--- /dev/null
+++ b/etc/pt-br-refcard.tex
@@ -0,0 +1,686 @@
+% Reference Card for GNU Emacs version 22 on Unix systems
+%**start of header
+\newcount\columnsperpage
+\newcount\letterpaper
+
+% This file can be printed with 1, 2, or 3 columns per page (see below).
+% Specify how many you want here.
+
+\columnsperpage=3
+
+% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
+% only when columnsperpage is 2 or 3.
+
+\letterpaper=0
+
+% Nothing else needs to be changed below this line.
+% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004,
+% 2006 Free Software Foundation, Inc.
+
+% This file is part of GNU Emacs.
+
+% GNU Emacs 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.
+
+% GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+% Boston, MA 02110-1301, USA.
+
+% This file is intended to be processed by plain TeX (TeX82).
+%
+% The final reference card has six columns, three on each side.
+% This file can be used to produce it in any of three ways:
+% 1 column per page
+% produces six separate pages, each of which needs to be reduced to 80%.
+% This gives the best resolution.
+% 2 columns per page
+% produces three already-reduced pages.
+% You will still need to cut and paste.
+% 3 columns per page
+% produces two pages which must be printed sideways to make a
+% ready-to-use 8.5 x 11 inch reference card.
+% For this you need a dvi device driver that can print sideways.
+% Which mode to use is controlled by setting \columnsperpage above.
+%
+% To compile and print this document:
+% tex refcard.tex
+% dvips -t landscape refcard.dvi
+%
+% Author:
+% Stephen Gildea
+% Internet: gildea@stop.mail-abuse.org
+%
+% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
+% for their many good ideas.
+
+% If there were room, it would be nice to see a section on Dired.
+
+% Translated from English to Portuguese by Rodrigo Real, send comments
+% and suggestions to rreal@ucpel.tche.br. Thanks to Mario Goulart for
+% the opinions.
+
+
+\def\versionnumber{2.3}
+\def\year{2006}
+
+\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
+ \centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
+ Permissions on back. v\versionnumber}}
+
+\def\copyrightnotice{
+\vskip 1ex plus 2 fill\begingroup\small
+\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
+\centerline{v\versionnumber{} for GNU Emacs version 22, \year}
+\centerline{designed by Stephen Gildea}
+
+Permission is granted to make and distribute copies of
+this card provided the copyright notice and this permission notice
+are preserved on all copies.
+
+For copies of the GNU Emacs manual, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+\endgroup}
+
+% make \bye not \outer so that the \def\bye in the \else clause below
+% can be scanned without complaint.
+\def\bye{\par\vfill\supereject\end}
+
+\newdimen\intercolumnskip %horizontal space between columns
+\newbox\columna %boxes to hold columns already built
+\newbox\columnb
+
+\def\ncolumns{\the\columnsperpage}
+
+\message{[\ncolumns\space
+ column\if 1\ncolumns\else s\fi\space per page]}
+
+\def\scaledmag#1{ scaled \magstep #1}
+
+% This multi-way format was designed by Stephen Gildea October 1986.
+% Note that the 1-column format is fontfamily-independent.
+\if 1\ncolumns %one-column format uses normal size
+ \hsize 4in
+ \vsize 10in
+ \voffset -.7in
+ \font\titlefont=\fontname\tenbf \scaledmag3
+ \font\headingfont=\fontname\tenbf \scaledmag2
+ \font\smallfont=\fontname\sevenrm
+ \font\smallsy=\fontname\sevensy
+
+ \footline{\hss\folio}
+ \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
+\else %2 or 3 columns uses prereduced size
+ \hsize 3.2in
+ \if 1\the\letterpaper
+ \vsize 7.95in
+ \else
+ \vsize 7.65in
+ \fi
+ \hoffset -.75in
+ \voffset -.745in
+ \font\titlefont=cmbx10 \scaledmag2
+ \font\headingfont=cmbx10 \scaledmag1
+ \font\smallfont=cmr6
+ \font\smallsy=cmsy6
+ \font\eightrm=cmr8
+ \font\eightbf=cmbx8
+ \font\eightit=cmti8
+ \font\eighttt=cmtt8
+ \font\eightmi=cmmi8
+ \font\eightsy=cmsy8
+ \textfont0=\eightrm
+ \textfont1=\eightmi
+ \textfont2=\eightsy
+ \def\rm{\eightrm}
+ \def\bf{\eightbf}
+ \def\it{\eightit}
+ \def\tt{\eighttt}
+ \if 1\the\letterpaper
+ \normalbaselineskip=.8\normalbaselineskip
+ \else
+ \normalbaselineskip=.7\normalbaselineskip
+ \fi
+ \normallineskip=.8\normallineskip
+ \normallineskiplimit=.8\normallineskiplimit
+ \normalbaselines\rm %make definitions take effect
+
+ \if 2\ncolumns
+ \let\maxcolumn=b
+ \footline{\hss\rm\folio\hss}
+ \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
+ \else \if 3\ncolumns
+ \let\maxcolumn=c
+ \nopagenumbers
+ \else
+ \errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
+ \errmessage{Illegal number of columns per page}
+ \fi\fi
+
+%% \intercolumnskip=.46in
+ \intercolumnskip=.65in
+ \def\abc{a}
+ \output={% %see The TeXbook page 257
+ % This next line is useful when designing the layout.
+ %\immediate\write16{Column \folio\abc\space starts with \firstmark}
+ \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
+ \else\if a\abc
+ \global\setbox\columna\columnbox \global\def\abc{b}
+ %% in case we never use \columnb (two-column mode)
+ \global\setbox\columnb\hbox to -\intercolumnskip{}
+ \else
+ \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
+ \def\multicolumnformat{\shipout\vbox{\makeheadline
+ \hbox{\box\columna\hskip\intercolumnskip
+ \box\columnb\hskip\intercolumnskip\columnbox}
+ \makefootline}\advancepageno}
+ \def\columnbox{\leftline{\pagebody}}
+
+ \def\bye{\par\vfill\supereject
+ \if a\abc \else\null\vfill\eject\fi
+ \if a\abc \else\null\vfill\eject\fi
+ \end}
+\fi
+
+% we won't be using math mode much, so redefine some of the characters
+% we might want to talk about
+\catcode`\^=12
+\catcode`\_=12
+
+\chardef\\=`\\
+\chardef\{=`\{
+\chardef\}=`\}
+
+\hyphenation{mini-buf-fer}
+
+\parindent 0pt
+\parskip 1ex plus .5ex minus .5ex
+
+\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
+
+% newcolumn - force a new column. Use sparingly, probably only for
+% the first column of a page, which should have a title anyway.
+\outer\def\newcolumn{\vfill\eject}
+
+% title - page title. Argument is title text.
+\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
+
+% section - new major section. Argument is section name.
+\outer\def\section#1{\par\filbreak
+ \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
+ \vskip 2ex plus 1ex minus 1.5ex}
+
+\newdimen\keyindent
+
+% beginindentedkeys...endindentedkeys - key definitions will be
+% indented, but running text, typically used as headings to group
+% definitions, will not.
+\def\beginindentedkeys{\keyindent=1em}
+\def\endindentedkeys{\keyindent=0em}
+\endindentedkeys
+
+% paralign - begin paragraph containing an alignment.
+% If an \halign is entered while in vertical mode, a parskip is never
+% inserted. Using \paralign instead of \halign solves this problem.
+\def\paralign{\vskip\parskip\halign}
+
+% \<...> - surrounds a variable name in a code example
+\def\<#1>{{\it #1\/}}
+
+% kbd - argument is characters typed literally. Like the Texinfo command.
+\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
+
+% beginexample...endexample - surrounds literal text, such a code example.
+% typeset in a typewriter font with line breaks preserved
+\def\beginexample{\par\leavevmode\begingroup
+ \obeylines\obeyspaces\parskip0pt\tt}
+{\obeyspaces\global\let =\ }
+\def\endexample{\endgroup}
+
+% key - definition of a key.
+% \key{description of key}{key-name}
+% prints the description left-justified, and the key-name in a \kbd
+% form near the right margin.
+\def\key#1#2{\leavevmode\hbox to \hsize{\vtop
+ {\hsize=.75\hsize\rightskip=1em
+ \hskip\keyindent\relax#1}\kbd{#2}\hfil}}
+
+\newbox\metaxbox
+\setbox\metaxbox\hbox{\kbd{M-x }}
+\newdimen\metaxwidth
+\metaxwidth=\wd\metaxbox
+
+% metax - definition of a M-x command.
+% \metax{description of command}{M-x command-name}
+% Tries to justify the beginning of the command name at the same place
+% as \key starts the key name. (The "M-x " sticks out to the left.)
+\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
+ {\hskip\keyindent\relax#1\hfil}%
+ \hskip -\metaxwidth minus 1fil
+ \kbd{#2}\hfil}}
+
+% threecol - like "key" but with two key names.
+% for example, one for doing the action backward, and one for forward.
+\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad
+ &\kbd{#3}\hfil\quad\cr}
+
+
+%**end of header
+
+
+\title{GNU Emacs: Cart\~ao de Refer\^encia}
+\centerline{(para vers\~ao 22)}
+
+\section{Iniciando o Emacs}
+
+Para entrar no GNU Emacs, digite: \kbd{emacs}
+
+\section{Saindo do Emacs}
+
+\key{suspende ou minimiza o Emacs}{C-z}
+\key{encerra o Emacs}{C-x C-c}
+
+\section{Arquivos}
+
+\key{{\bf abre} um arquivo}{C-x C-f}
+\key{{\bf salva} um arquivo em disco}{C-x C-s}
+\key{salva {\bf todos} arquivos abertos}{C-x s}
+\key{{\bf insere} outro arquivo neste buffer}{C-x i}
+\key{substitui este arquivo por outro}{C-x C-v}
+\key{salva o buffer em um arquivo especificado}{C-x C-w}
+\key{alterna o estado de somente leitura do buffer}{C-x C-q}
+
+\section{Ajuda (Help)}
+
+Tecle \kbd{C-h} (ou \kbd{F1}) e siga as instru{\c{c}}{\~o}es.
+
+\key{remove a janela de ajuda}{C-x 1}
+\key{rola a janela de ajuda}{C-M-v}
+
+\key{apropos: mostra comandos que casam com a string}{C-h a}
+\key{descreve fun{\c{c}}{\~a}o associada a teclas}{C-h k}
+\key{descreve uma fun{\c{c}}{\~a}o}{C-h f}
+\key{busca informa{\c{c}}{\~o}es espec{\'\i}ficas do modo}{C-h m}
+
+\section{Recuperando-se de Erros}
+
+\key{{\bf aborta} uma opera{\c{c}}{\~a}o}{C-g}
+\metax{{\bf recupera} arquivos ap{\'o}s crash}{M-x recover-session}
+\metax{desfaz uma altera{\c{c}}{\~a}o ({\bf undo})}{C-x u, C-_ {\rm or} C-/}
+\metax{restaura um buffer para o arquivo}{M-x revert-buffer}
+\key{redesenha a tela}{C-l}
+
+\section{Busca Incremental}
+
+\key{busca para frente}{C-s}
+\key{busca para tr{\'a}s}{C-r}
+\key{busca por express{\~a}o regular}{C-M-s}
+\key{busca por express{\~a}o regular para tr{\'a}s}{C-M-r}
+
+\key{seleciona a string de pesquisa anterior}{M-p}
+\key{seleciona a string seguinte de pesquisa}{M-n}
+\key{sai da busca incremental}{RET}
+\key{desfaz o efeito do {\'u}ltimo caracter}{DEL}
+\key{encerra a busca}{C-g}
+
+Use \kbd{C-s} ou \kbd{C-r} novamente para repetir a busca.
+\kbd{C-g} cancela apenas o que ainda n{\~a}o foi feito.
+
+\shortcopyrightnotice
+
+\section{Movimenta{\c{c}}{\~a}o}
+
+\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
+\threecol{{\bf avan{\c{c}}ar}}{{\bf tr{\'a}s}}{{\bf frente}}
+\threecol{um caracter}{C-b}{C-f}
+\threecol{uma palavra}{M-b}{M-f}
+\threecol{uma linha}{C-p}{C-n}
+\threecol{para in{\'\i}cio ou fim de linha}{C-a}{C-e}
+\threecol{senten{\c{c}}a}{M-a}{M-e}
+\threecol{par{\'a}grafo}{M-\{}{M-\}}
+\threecol{p{\'a}gina}{C-x [}{C-x ]}
+\threecol{sexp}{C-M-b}{C-M-f}
+\threecol{fun{\c{c}}{\~a}o}{C-M-a}{C-M-e}
+\threecol{para in{\'\i}cio ou fim do buffer}{M-<}{M->}
+}
+
+\key{rolar para pr{\'o}xima tela}{C-v}
+\key{rolar para tela anterior}{M-v}
+\key{rolar para esquerda}{C-x <}
+\key{rolar para direita}{C-x >}
+\key{rolar a linha corrente para o centro da tela}{C-u C-l}
+
+\section{Cortando e Apagando}
+
+\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
+\threecol{{\bf entidade a cortar}}{{\bf tr{\'a}s}}{{\bf frente}}
+\threecol{caracter (apaga, n{\~a}o corta)}{DEL}{C-d}
+\threecol{palavra}{M-DEL}{M-d}
+\threecol{linha (at{\'e} o final)}{M-0 C-k}{C-k}
+\threecol{senten{\c{c}}a}{C-x DEL}{M-k}
+\threecol{sexp}{M-- C-M-k}{C-M-k}
+}
+
+\key{corta {\bf regi{\~a}o}}{C-w}
+\key{copia a {\bf regi{\~a}o}}{M-w}
+\key{cortar at{\'e} a pr{\'o}xima ocorr{\^e}ncia de {\it char}}{M-z {\it char}}
+
+\key{colar a {\'u}ltima coisa cortada}{C-y}
+\key{substitui a {\'u}lt. colagem pela c{\'o}pia anterior}{M-y}
+
+\section{Marcando}
+
+\key{posiciona a marca aqui}{C-@ {\rm or} C-SPC}
+\key{troca a marca pelo ponto e vice-versa}{C-x C-x}
+
+\key{coloca a marca {\it arg\/} {\bf palavras} adiante}{M-@}
+\key{marca o {\bf par{\'a}grafo}}{M-h}
+\key{marca a {\bf p{\'a}gina}}{C-x C-p}
+\key{marca a {\bf sexp}}{C-M-@}
+\key{marca uma {\bf fun{\c{c}}{\~a}o}}{C-M-h}
+\key{marca todo {\bf buffer}}{C-x h}
+
+\section{Busca e Substitui{\c{c}}{\~a}o}
+
+\key{Substitui interativamente uma string}{M-\%}
+% query-replace-regexp is bound to C-M-% but that can't be typed on
+% consoles.
+\metax{usando express{\~a}o regular}{M-x query-replace-regexp}
+
+Respostas v{\'a}lidas no modo de busca e substitui{\c{c}}{\~a}o
+
+\key{{\bf substitui} esta, e prossegue}{SPC}
+\key{substitui esta e entrada e n{\~a}o avan{\c{c}}a}{,}
+\key{{\bf pula} para a pr{\'o}xima sem substituir}{DEL}
+\key{substitui em todo o texto restante}{!}
+\key{{\bf volta} para a palavra anterior}{^}
+\key{{\bf encerra}}{RET}
+\key{entra na edi{\c{c}}{\~a}o recursiva (\kbd{C-M-c} para sair)}{C-r}
+
+
+\section{M{\'u}ltiplas Janelas}
+
+Quando forem mostrados 2 comandos, o segundo tem comportamento similar
+para frame.
+
+{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
+\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
+\threecol{elimina todas outras janelas}{C-x 1\ \ \ \ }{C-x 5 1}
+\threecol{divide a janela, acima e abaixo}{C-x 2\ \ \ \ }{C-x 5 2}
+\threecol{elimina esta janela}{C-x 0\ \ \ \ }{C-x 5 0}
+}}
+\key{divide a janela, lado a lado}{C-x 3}
+
+\key{rola a outra janela}{C-M-v}
+
+{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
+\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
+\threecol{leva o cursor para outra janela}{C-x o}{C-x 5 o}
+
+\threecol{seleciona um buffer em outra janela}{C-x 4 b}{C-x 5 b}
+\threecol{mostra um buffer em outra janela}{C-x 4 C-o}{C-x 5 C-o}
+\threecol{busca um arquivo em outra janela}{C-x 4 f}{C-x 5 f}
+\threecol{busca arquivo (ro) em outra janela}{C-x 4 r}{C-x 5 r}
+\threecol{executa Dired em outra janela}{C-x 4 d}{C-x 5 d}
+\threecol{busca tag em outra janela}{C-x 4 .}{C-x 5 .}
+}}
+
+\key{aumenta a janela na vertical}{C-x ^}
+\key{estreita a janela}{C-x \{}
+\key{alarga a janela}{C-x \}}
+
+\section{Formatando}
+
+\key{identa a {\bf linha} corrente (modo)}{TAB}
+\key{identa a {\bf regi{\~a}o} (modo)}{C-M-\\}
+\key{identa a {\bf sexp} (modo)}{C-M-q}
+\key{identa regi{\~a}o rigidamente {\it arg\/} colunas}{C-x TAB}
+
+\key{insere uma nova linha ap{\'o}s o ponto}{C-o}
+\key{move o restante da linha para baixo}{C-M-o}
+\key{apaga linhas em branco em torno do ponto}{C-x C-o}
+\key{junta a linha com a anterior}{M-^}
+\key{apaga todos brancos em torno do ponto}{M-\\}
+\key{insere um espa{\c{c}}o em branco}{M-SPC}
+
+\key{preenche o par{\'a}grafo}{M-q}
+\key{define a coluna limite de preenchimento}{C-x f}
+\key{define um prefixo para cada linha}{C-x .}
+
+\key{formata fonte}{M-o}
+
+\section{Mai{\'u}sculas e Min{\'u}sculas}
+
+\key{Palavra para mai{\'u}sculas}{M-u}
+\key{Palavra para min{\'u}sculas}{M-l}
+\key{Primeira letra mai{\'u}scula (capitalize)}{M-c}
+
+\key{Regi{\~a}o para mai{\'u}sculas}{C-x C-u}
+\key{Regi{\~a}o para min{\'u}sculas}{C-x C-l}
+
+\section{O Minibuffer}
+
+As teclas seguintes s{\~a}o definidas no minibuffer.
+
+\key{complete o m{\'a}ximo possi{\'\i}vel}{TAB}
+\key{complete at{\'e} uma palavra}{SPC}
+\key{complete e execute}{RET}
+\key{mostre as op{\c{c}}{\~o}es para completar}{?}
+\key{busca a entrada anterior no minibuffer}{M-p}
+\key{busca a pr{\'o}xima entrada no minibuffer ou o default}{M-n}
+\key{busca regexp no hist{\'o}rico para tr{\'a}s}{M-r}
+\key{busca regexp no hist{\'o}rico para frente}{M-s}
+\key{encerra o comando}{C-g}
+
+Tecle \kbd{C-x ESC ESC} para editar e repetir o {\'u}ltimo comando
+utilizado. Tecle \kbd{F10} para ativar o menu.
+
+\newcolumn
+\title{GNU Emacs: Cart\~ao de Refer\^encia}
+\centerline{(para vers\~ao 22)}
+
+\section{Buffers}
+
+\key{seleciona outro buffer}{C-x b}
+\key{lista todos buffers}{C-x C-b}
+\key{mata um buffer}{C-x k}
+
+\section{Transposi{\c{c}}{\~a}o}
+
+\key{transp{\~o}e {\bf caracteres}}{C-t}
+\key{transp{\~o}e {\bf palavras}}{M-t}
+\key{transp{\~o}e {\bf linhas}}{C-x C-t}
+\key{transp{\~o}e {\bf sexps}}{C-M-t}
+
+\section{Verifica{\c{c}}{\~a}o Ortogr{\'a}fica}
+
+\key{verifica a palavra corrente}{M-\$}
+\metax{verifica todas palavras de uma regi{\~a}o}{M-x ispell-region}
+\metax{verifica todo o buffer}{M-x ispell-buffer}
+
+\section{Tags}
+
+\key{busca uma tag (uma defini{\c{c}}{\~a}o)}{M-.}
+\key{encontra a pr{\'o}xima ocorr{\^e}ncia da tag}{C-u M-.}
+\metax{especifica um novo arquivo de tags}{M-x visit-tags-table}
+
+\metax{busca por regexp em todos arquivos}{M-x tags-search}
+\metax{busca e subst. em todos arquivos}{M-x tags-query-replace}
+\key{continua a {\'u}ltima busca ou busca e substitui{\c{c}}{\~a}o}{M-,}
+
+\section{Shells}
+
+\key{executa um comando do shell}{M-!}
+\key{executa um comando do shell na regi{\~a}o}{M-|}
+\key{filtra uma regi{\~a}o por um comando do shell}{C-u M-|}
+\key{inicia um shell na janela \kbd{*shell*}}{M-x shell}
+
+\section{Ret{\^a}ngulos}
+
+\key{copia o ret{\^a}ngulo para o registrador}{C-x r r}
+\key{corta o ret{\^a}ngulo}{C-x r k}
+\key{cola o ret{\^a}ngulo}{C-x r y}
+\key{abre o ret{\^a}ngulo, move o texto para direita}{C-x r o}
+\key{troca por espa{\c{c}}os o conte{\'u}do do ret{\^a}ngulo}{C-x r c}
+\key{antep{\~o}e uma linha a string}{C-x r t}
+
+\section{Abreviaturas}
+
+\key{adiciona uma abreviatura global}{C-x a g}
+\key{adiciona abreviatura ao modo local}{C-x a l}
+\key{adiciona globalmente expans{\~a}o de abrev.}{C-x a i g}
+\key{adiciona localmente expans{\~a}o de abrev.}{C-x a i l}
+\key{explicitamente expande uma abrev}{C-x a e}
+
+\key{completa com base em palavras anteriores}{M-/}
+
+
+\section{Express{\~o}es Regulares}
+
+\key{qualquer caracter exceto nova linha}{. {\rm(dot)}}
+\key{zero ou mais repeti{\c{c}}{\~o}es}{*}
+\key{uma ou mais repeti{\c{c}}{\~o}es}{+}
+\key{zero ou uma repeti{\c{c}}{\~a}o}{?}
+\key{protege o caracter especial {\it c\/}}{\\{\it c}}
+\key{(``or'')}{\\|}
+\key{agrupamento}{\\( {\rm$\ldots$} \\)}
+\key{mesmo texto que {\it n\/}-{\'e}simo grupo}{\\{\it n}}
+\key{quebra de palavra}{\\b}
+\key{sem quebra de palavra}{\\B}
+
+\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
+\threecol{{\bf entidade}}{{\bf casa in{\'\i}cio}}{{\bf casa fim}}
+\threecol{linha}{^}{\$}
+\threecol{palavra}{\\<}{\\>}
+\threecol{buffer}{\\`}{\\'}
+
+\threecol{{\bf classe de caracteres}}{{\bf casa esses}}{{\bf casa os outros}}
+\threecol{conjunto expl{\'\i}cito}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
+\threecol{caracter de sintaxe de palavra}{\\w}{\\W}
+\threecol{caracter de sintaxe de {\it c}}{\\s{\it c}}{\\S{\it c}}
+}
+
+\section{Conjuntos de Carac. Internacionais}
+
+\key{especifica uma l{\'\i}ngua principal}{C-x RET l}
+\metax{mostra todos m{\'e}todos de inser{\c{c}}{\~a}o}{M-x list-input-methods}
+\key{habilita/desabilita um m{\'e}todo de inser{\c{c}}{\~a}o}{C-\\}
+\key{determina o sistema de codifica{\c{c}}{\~a}o}{C-x RET c}
+\metax{mostra sistemas de codifica{\c{c}}{\~a}o}{M-x list-coding-systems}
+\metax{escolhe a codifica{\c{c}}{\~a}o preferida}{M-x prefer-coding-system}
+
+\section{Info}
+
+\key{entra no leitor de Info}{C-h i}
+\key{busca fun{\c{c}}{\~a}o ou arquivo no Info}{C-h S}
+\beginindentedkeys
+
+Movimenta{\c{c}}{\~a}o em um nodo:
+
+\key{rola para frente}{SPC}
+\key{rola para tr{\'a}s}{DEL}
+\key{in{\'\i}cio do nodo}{. {\rm (dot)}}
+
+Movimenta{\c{c}}{\~a}o entre nodos:
+
+\key{{\bf pr{\'o}ximo} nodo}{n}
+\key{nodo {\bf anterior}}{p}
+\key{mover cima {\bf cima}}{u}
+\key{seleciona item do menu pelo nome}{m}
+\key{seleciona {\it n\/}-{\'e}simo item do menu}{{\it n}}
+\key{segue refer{\^e}ncia cruzada (retorna com \kbd{l})}{f}
+\key{retorna {\'u}ltimo nodo visitado}{l}
+\key{retorna ao diret{\'o}rio de nodos}{d}
+\key{ir para o topo do arquivo Info}{t}
+\key{ir para qualquer nodo por nome}{g}
+
+Outros:
+
+\key{executar {\bf tutorial} do Info}{h}
+\key{busca pelo assunto no {\'\i}ndice}{i}
+\key{busca por express{\~a}o regular}{s}
+\key{{\bf sair} Info}{q}
+
+\endindentedkeys
+
+\section{Registrador}
+
+\key{salva regi{\~a}o em um registrador}{C-x r s}
+\key{insere o conte{\'u}do do registrador no buffer}{C-x r i}
+
+\key{salva valor do ponto no registrador}{C-x r SPC}
+\key{salta para o ponto salvo no registrador}{C-x r j}
+
+\section{Macros de Teclado}
+
+\key{{\bf inicia} a defini{\c{c}}{\~a}o de uma macro}{C-x (}
+\key{{\bf encerra} a defini{\c{c}}{\~a}o de uma macro}{C-x )}
+\key{{\bf executa} a {\'u}ltima macro definida}{C-x e}
+\key{adiciona a {\'u}ltima macro definida}{C-u C-x (}
+\metax{nomeia a {\'u}ltima macro definida}{M-x name-last-kbd-macro}
+\metax{insere uma defini{\c{c}}{\~a}o em Lisp}{M-x insert-kbd-macro}
+
+\section{Lidando com Emacs Lisp}
+
+\key{avalia {\bf sexp} antes do ponto}{C-x C-e}
+\key{avalia a {\bf defun} corrente}{C-M-x}
+\metax{avalia a {\bf regi{\~a}o}}{M-x eval-region}
+\key{l{\^e} e avalia o minibuffer}{M-:}
+\metax{carrega do diret{\'o}rio padr{\~a}o do sistema}{M-x load-library}
+
+\section{Personaliza{\c{c}}{\~a}o Simples}
+
+\metax{personaliza vari{\'a}veis e fontes}{M-x customize}
+
+% The intended audience here is the person who wants to make simple
+% customizations and knows Lisp syntax.
+
+Fazendo teclas de atalho globais em Emacs Lisp (exemplos):
+
+\beginexample%
+(global-set-key "\\C-cg" 'goto-line)
+(global-set-key "\\M-\#" 'query-replace-regexp)
+\endexample
+
+\section{Escrevendo Comandos}
+
+\beginexample%
+(defun \<command-name> (\<args>)
+ "\<documentation>" (interactive "\<template>")
+ \<body>)
+\endexample
+
+Um exemplo:
+
+\beginexample%
+(defun this-line-to-top-of-window (line)
+ "Reposition line point is on to top of window.
+With ARG, put point on line ARG."
+ (interactive "P")
+ (recenter (if (null line)
+ 0
+ (prefix-numeric-value line))))
+\endexample
+
+A especifica{\c{c}}{\~a}o \kbd{interactive} explica como ler
+interativamente argumentos. Tecle \kbd{C-h f interactive} para mais
+detalhes.
+
+\copyrightnotice
+
+\bye
+
+% Local variables:
+% compile-command: "tex pt-br-refcard"
+% coding: iso-latin-1
+% End:
+
+% arch-tag: 56bf248c-a1f3-443d-93f7-02d7aea67d94
diff --git a/etc/refcard.tex b/etc/refcard.tex
index 218a6cc8e36..42a2cba4456 100644
--- a/etc/refcard.tex
+++ b/etc/refcard.tex
@@ -598,8 +598,9 @@ Moving between nodes:
Other:
\key{run Info {\bf tutorial}}{h}
+\key{look up a subject in the indices}{i}
+\key{search nodes for regexp}{s}
\key{{\bf quit} Info}{q}
-\key{search nodes for regexp}{M-s}
\endindentedkeys
diff --git a/etc/ru-refcard.tex b/etc/ru-refcard.tex
index 72fbe28e86f..b2057f6c884 100644
--- a/etc/ru-refcard.tex
+++ b/etc/ru-refcard.tex
@@ -436,8 +436,9 @@ apropos: ÐÏËÁÚÁÔØ ËÏÍÁÎÄÙ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÔÒÏËÅ & \kbd{C-h a} \\
\begin{tabular}{p{\ColWidth}l}
ÚÁÐÕÓÔÉÔØ {\bf ÕÞÅÂÎÉË} ÐÏ ÓÉÓÔÅÍÅ ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{h} \\
+ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{s} \\
+% look up a subject in the indices & \kbd{i} % FIXME
{\bf ÐÒÅËÒÁÔÉÔØ ÒÁÂÏÔÕ} Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ & \kbd{q} \\
-ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{M-s} \\
\end{tabular}
\section{òÅÇÉÓÔÒÙ}
@@ -515,5 +516,10 @@ With ARG, put point on line ARG."
%\end{multicols}
\end{document}
+
+% Local variables:
+% compile-command: "latex ru-refcard"
+% coding: cyrillic-koi8
+% End:
% arch-tag: 868a12f6-4339-4a14-a56e-4a3937277a9e
diff --git a/etc/sk-refcard.tex b/etc/sk-refcard.tex
index 6bc8edb9378..353451ecc27 100644
--- a/etc/sk-refcard.tex
+++ b/etc/sk-refcard.tex
@@ -592,8 +592,9 @@ Pohyb medzi uzlami:
Ïal¹ie:
\key{spusti» {\bf tútorial} k~Infu}{h}
-\key{{\bf skonèi»} Info}{q}
+% \key{look up a subject in the indices}{i} % FIXME
\key{vyhµada» re»azec v uzloch}{M-s}
+\key{{\bf skonèi»} Info}{q}
\endindentedkeys
diff --git a/etc/spook.lines b/etc/spook.lines
index 9f1f05900a2..d0bda6d12ef 100644
--- a/etc/spook.lines
+++ b/etc/spook.lines
Binary files differ
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 16c4e538939..9ba3191ed46 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-23 Francesco Potort,Al(B <pot@gnu.org>
+
+ * pop.c (pop_open, socket_connection, KPOP_SERVICE): Added
+ comments explaining why the "kpop" service is never used.
+
2006-05-13 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in (lisp1): Add fringe.elc.
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 7d6bcc5cdc9..5dcbf2d2483 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -135,7 +135,7 @@ static char *find_crlf __P((char *, int));
#define KPOP_PORT 1109
#define POP_SERVICE "pop3" /* we don't want the POP2 port! */
#ifdef KERBEROS
-#define KPOP_SERVICE "kpop"
+#define KPOP_SERVICE "kpop" /* never used: look for 20060515 to see why */
#endif
char pop_error[ERROR_MAX];
@@ -264,10 +264,11 @@ pop_open (host, username, password, flags)
return (0);
}
}
- if (password)
+ if (password) /* always true, detected 20060515 */
flags |= POP_NO_KERBEROS;
else
- password = username;
+ password = username; /* dead code, detected 20060515 */
+ /** "kpop" service is never used: look for 20060515 to see why **/
sock = socket_connection (host, flags);
if (sock == -1)
@@ -1047,6 +1048,7 @@ socket_connection (host, flags)
bzero ((char *) &addr, sizeof (addr));
addr.sin_family = AF_INET;
+ /** "kpop" service is never used: look for 20060515 to see why **/
#ifdef KERBEROS
service = (flags & POP_NO_KERBEROS) ? POP_SERVICE : KPOP_SERVICE;
#else
@@ -1073,6 +1075,7 @@ socket_connection (host, flags)
}
else
{
+ /** "kpop" service is never used: look for 20060515 to see why **/
#ifdef KERBEROS
addr.sin_port = htons ((flags & POP_NO_KERBEROS) ?
POP_PORT : KPOP_PORT);
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7732edb6b24..fa03faa1833 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,160 @@
+2006-05-23 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * emacs-lisp/ewoc.el (ewoc-delete): New function.
+ (ewoc-filter): Use `ewoc-delete'.
+
+ * emacs-lisp/bindat.el (bindat-pack): Doc fix.
+
+2006-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * textmodes/bibtex.el (bibtex-format-entry, bibtex-clean-entry):
+ Signal more user-friendly error messages.
+
+ * complete.el (PC-do-completion): Undo the addition of implicit
+ wildcards if they did not lead to finding any match.
+ (read-file-name-internal): Don't add the final > if the completion is
+ not finished.
+
+2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * textmodes/bibtex.el (bibtex-maintain-sorted-entries):
+ Quote safe-local-variable predicate.
+
+2006-05-22 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * emacs-lisp/ewoc.el (ewoc-set-data): New function.
+
+2006-05-21 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
+
+ * textmodes/bibtex.el (bibtex-maintain-sorted-entries): Mark as safe.
+
+ * progmodes/make-mode.el (makefile-special-targets-list)
+ (makefile-macro-table, makefile-target-table): Mark as risky.
+ (makefile-query-one-target-method): Make this the alias for the
+ following variable.
+ (makefile-query-one-target-method-function): Make this the real name.
+
+ * textmodes/artist.el (artist-text-renderer): Make this the alias
+ for the following variable.
+ (artist-text-renderer-function): Make this the real name.
+
+ * textmodes/flyspell.el (flyspell-generic-check-word-p): Make this
+ the alias for the following variable.
+ (flyspell-generic-check-word-predicate): Make this the real name.
+
+ * textmodes/ispell.el (ispell-format-word): Make this the alias
+ for the following variable.
+ (ispell-format-word-function): Make this the real name.
+ (ispell-message-text-end): Mark as risky.
+
+ * skeleton.el (skeleton-transformation, skeleton-filter)
+ (skeleton-pair-filter): Make these the aliases for the following
+ variables.
+ (skeleton-transformation-function, skeleton-filter-function)
+ (skeleton-pair-filter-function): Make these the real names.
+
+ * progmodes/sh-script.el (sh-mode): Use skeleton-filter-function
+ and skeleton-pair-filter-function.
+
+ * textmodes/sgml-mode.el (sgml-transformation): Make this the
+ alias for the following variable.
+ (sgml-transformation-function): Make this the real name.
+ (sgml-tag-alist): Mark as risky.
+
+2006-05-21 Richard Stallman <rms@gnu.org>
+
+ * simple.el (kill-region): Interactively, pass point, then mark.
+
+2006-05-22 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * emacs-lisp/ewoc.el (ewoc-create): Add autoload cookie.
+
+2006-05-21 Romain Francoise <romain@orebokech.com>
+
+ * dired-x.el (dired-mode-map): Don't bind M-g.
+
+2006-05-20 Richard Stallman <rms@gnu.org>
+
+ * dired.el (dired-mode-map): Put dired-goto-file on j, not M-g.
+ (dired-goto-file): Doc fix.
+
+2006-05-21 Kim F. Storm <storm@cua.dk>
+
+ * emulation/cua-base.el: Mention customizing cua-mode as alternative
+ way to enable built-in cua-mode if user loads older CUA-mode package.
+
+ * ido.el (ido-read-file-name): Bind ido-show-dot-for-dired to nil
+ if default-filename is specified.
+
+2006-05-20 Eli Zaretskii <eliz@gnu.org>
+
+ * menu-bar.el (menu-bar-manuals-menu) <info-apropos>: New menu item.
+
+ * info.el (info-apropos): Make sure current-file and current-node
+ have non-nil values. Speed up by using add-to-list instead of
+ manual consing.
+
+2006-05-20 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> (tiny change)
+
+ * progmodes/make-mode.el (makefile-mode): Doc fix.
+
+2006-05-20 Eli Zaretskii <eliz@gnu.org>
+
+ * dired-aux.el (dired-do-shell-command): Doc fix.
+
+2006-05-20 Kevin Ryde <user42@zip.com.au>
+
+ * info-xref.el (info-xref-check-all-custom): Skip :tag part of
+ ``(custom-manual :tag "Foo" "(foo)Node")''.
+
+2006-05-20 Karl Chen <quarl@cs.berkeley.edu>
+
+ * progmodes/cc-vars.el (c-backslash-column): Mark as safe if its
+ value is an integer.
+
+2006-05-20 Eli Zaretskii <eliz@gnu.org>
+
+ * mail/rmail.el (rmail-mime-charset-pattern): Add "?:" before
+ "format".
+ (rmail-convert-to-babyl-format): Undo the change from 2006-04-19.
+
+2006-05-20 Martin Rudalics <rudalics@gmx.at>
+
+ * progmodes/hideif.el (show-ifdef-block): Fix bug where parts of
+ a hidden block remained hidden if `hide-ifdef-lines' is non-nil.
+
+2006-05-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/gud.el (gdb-script-font-lock-keywords): Use a stricter
+ regexp for keywords.
+
+2006-05-20 Masayuki FUJII <boochang@m4.kcn.ne.jp> (tiny change)
+
+ * dnd.el (dnd-get-local-file-name): Specify LITERAL in
+ replace-regexp-in-string.
+
+ * term/w32-win.el (w32-drag-n-drop): Substitute '/' for '\',
+ encode, and escape file name on conversion to URL.
+
+2006-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * dnd.el (dnd-handle-one-url): Change 3rd arg ARG to URL.
+ Don't unescape URL.
+ (dnd-get-local-file-name): Unescape URL on conversion to file name.
+
+ * x-dnd.el (x-dnd-handle-file-name): Encode and escape file names
+ on conversion to URLs.
+
+ * net/browse-url.el (browse-url-file-url): Encode file name on
+ conversion to URL.
+
+ * term/mac-win.el (mac-ae-open-documents): Escape file name on
+ conversion to URL.
+
+2006-05-19 Eli Zaretskii <eliz@gnu.org>
+
+ * progmodes/cc-styles.el (c-style-alist): Doc fix.
+
2006-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* term/mac-win.el (mac-bytes-to-digits): Remove function.
@@ -41,14 +198,14 @@
* emacs-lisp/ewoc.el (ewoc--adjust): New func.
(ewoc--insert-new-node): Don't insert trailing newline.
- Instead, adjust succesor nodes' start markers.
+ Instead, adjust successor nodes's start markers.
(ewoc--refresh-node): Delete all text from current node's start
- marker to the next one's; adjust successor nodes' start markers.
+ marker to the next one's; adjust successor nodes's start markers.
(ewoc--create): Doc fixes.
(ewoc--refresh): Don't insert newline.
(ewoc--set-hf): Use `ewoc--set-buffer-bind-dll-let*'.
- * pcvs.el (cvs-make-cvs-buffer): Specify
- extra newline for ewoc's header and footer.
+ * pcvs.el (cvs-make-cvs-buffer):
+ Specify extra newline for ewoc's header and footer.
(cvs-update-header): Update initial header recognition.
Append newline to final header and footer values.
* pcvs-info.el (cvs-fileinfo-pp): Insert trailing newline.
@@ -502,7 +659,7 @@
reference to the Lisp manual to the warning about pure space
overflow.
-2006-05-05 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
+2006-05-05 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> (tiny change)
* textmodes/ispell.el (ispell-buffer-local-dict): Add a `no-reload'
argument to avoid the call to `ispell-internal-change-dictionary'
diff --git a/lisp/complete.el b/lisp/complete.el
index 6620db860c3..d0e3fbe8ddf 100644
--- a/lisp/complete.el
+++ b/lisp/complete.el
@@ -369,7 +369,7 @@ of `minibuffer-completion-table' and the minibuffer contents.")
(str (buffer-substring beg end))
(incname (and filename (string-match "<\\([^\"<>]*\\)>?$" str)))
(ambig nil)
- basestr
+ basestr origstr
env-on
regex
p offset
@@ -415,7 +415,7 @@ of `minibuffer-completion-table' and the minibuffer contents.")
(file-name-nondirectory dir))
"*/" file))
(setq dir (file-name-directory dir)))
- (setq str (concat dir file))))
+ (setq origstr str str (concat dir file))))
;; Look for wildcard expansions in directory name
(and filename
@@ -443,7 +443,14 @@ of `minibuffer-completion-table' and the minibuffer contents.")
(setq str (concat dir (file-name-nondirectory str)))
(insert str)
(setq end (+ beg (length str)))))
- (setq filename nil table nil pred nil))))
+ (if origstr
+ ;; If the wildcards were introduced by us, it's possible
+ ;; that read-file-name-internal (especially our
+ ;; PC-include-file advice) can still find matches for the
+ ;; original string even if we couldn't, so remove the
+ ;; added wildcards.
+ (setq str origstr)
+ (setq filename nil table nil pred nil)))))
;; Strip directory name if appropriate
(if filename
@@ -943,10 +950,11 @@ absolute rather than relative to some directory on the SEARCH-PATH."
(if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0))
(let* ((string (ad-get-arg 0))
(action (ad-get-arg 2))
- (name (substring string (match-beginning 1) (match-end 1)))
+ (name (match-string 1 string))
(str2 (substring string (match-beginning 0)))
(completion-table
- (mapcar (lambda (x) (format "<%s>" x))
+ (mapcar (lambda (x)
+ (format (if (string-match "/\\'" x) "<%s" "<%s>") x))
(PC-include-file-all-completions
name (PC-include-file-path)))))
(setq ad-return-value
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index e07689973e4..b4cb8933194 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -493,7 +493,8 @@ the Dired buffer, so output files usually are created there instead of
in a subdir.
In a noninteractive call (from Lisp code), you must specify
-the list of file names explicitly with the FILE-LIST argument."
+the list of file names explicitly with the FILE-LIST argument, which
+can be produced by `dired-get-marked-files', for example."
;;Functions dired-run-shell-command and dired-shell-stuff-it do the
;;actual work and can be redefined for customization.
(interactive
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 0a467920f11..4d3734bbd5a 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -251,7 +251,6 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
(define-key dired-mode-map "*." 'dired-mark-extension)
(define-key dired-mode-map "\M-!" 'dired-smart-shell-command)
(define-key dired-mode-map "w" 'dired-copy-filename-as-kill)
-(define-key dired-mode-map "\M-g" 'dired-goto-file)
(define-key dired-mode-map "\M-G" 'dired-goto-subdir)
(define-key dired-mode-map "F" 'dired-do-find-marked-files)
(define-key dired-mode-map "Y" 'dired-do-relsymlink)
diff --git a/lisp/dired.el b/lisp/dired.el
index 7209248a75a..ca50e3b5767 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1212,9 +1212,9 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
(define-key map "f" 'dired-find-file)
(define-key map "\C-m" 'dired-advertised-find-file)
(define-key map "g" 'revert-buffer)
- (define-key map "\M-g" 'dired-goto-file)
(define-key map "h" 'describe-mode)
(define-key map "i" 'dired-maybe-insert-subdir)
+ (define-key map "j" 'dired-goto-file)
(define-key map "k" 'dired-do-kill-lines)
(define-key map "l" 'dired-do-redisplay)
(define-key map "m" 'dired-mark)
@@ -2218,7 +2218,7 @@ instead of `dired-actual-switches'."
(forward-line 1))))
(defun dired-goto-file (file)
- "Go to file line of FILE in this dired buffer."
+ "Go to line describing file FILE in this dired buffer."
;; Return value of point on success, else nil.
;; FILE must be an absolute file name.
;; Loses if FILE contains control chars like "\007" for which ls
diff --git a/lisp/dnd.el b/lisp/dnd.el
index dec57481570..85881b3261f 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -69,39 +69,34 @@ if some action was made, or nil if the URL is ignored."
;; Functions
-(defun dnd-handle-one-url (window action arg)
+(defun dnd-handle-one-url (window action url)
"Handle one dropped url by calling the appropriate handler.
The handler is first located by looking at `dnd-protocol-alist'.
If no match is found here, and the value of `browse-url-browser-function'
is a pair of (REGEXP . FUNCTION), those regexps are tried for a match.
If no match is found, just call `dnd-insert-text'.
WINDOW is where the drop happend, ACTION is the action for the drop,
-ARG is the URL that has been dropped.
+URL is what has been dropped.
Returns ACTION."
(require 'browse-url)
- (let* ((uri (replace-regexp-in-string
- "%[A-Z0-9][A-Z0-9]"
- (lambda (arg)
- (format "%c" (string-to-number (substring arg 1) 16)))
- arg))
- ret)
+ (let (ret)
(or
(catch 'done
(dolist (bf dnd-protocol-alist)
- (when (string-match (car bf) uri)
- (setq ret (funcall (cdr bf) uri action))
+ (when (string-match (car bf) url)
+ (setq ret (funcall (cdr bf) url action))
(throw 'done t)))
nil)
(when (not (functionp browse-url-browser-function))
(catch 'done
(dolist (bf browse-url-browser-function)
- (when (string-match (car bf) uri)
+ (when (string-match (car bf) url)
(setq ret 'private)
- (funcall (cdr bf) uri action)
+ (funcall (cdr bf) url action)
(throw 'done t)))
nil))
(progn
- (dnd-insert-text window action uri)
+ (dnd-insert-text window action url)
(setq ret 'private)))
ret))
@@ -134,6 +129,11 @@ Return nil if URI is not a local file."
((string-match "^file:" uri) ; Old KDE, Motif, Sun
(substring uri (match-end 0))))))
(when (and f must-exist)
+ (setq f (replace-regexp-in-string
+ "%[A-Z0-9][A-Z0-9]"
+ (lambda (arg)
+ (format "%c" (string-to-number (substring arg 1) 16)))
+ f nil t))
(let* ((decoded-f (decode-coding-string
f
(or file-name-coding-system
diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el
index 455b049dc8a..823fcf869b6 100644
--- a/lisp/emacs-lisp/bindat.el
+++ b/lisp/emacs-lisp/bindat.el
@@ -171,8 +171,8 @@
;; | INTEGER_CONSTANT
;; | DEREF
-;; DEREF ::= ( [NAME | INTEGER]... ) -- Field NAME or Array index relative to
-;; current structure spec.
+;; DEREF ::= ( [NAME | INTEGER]... ) -- Field NAME or Array index relative
+;; to current structure spec.
;; -- see bindat-get-field
;; A `union' specification
@@ -415,7 +415,9 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
((eq type 'repeat)
(let ((index 0))
(while (< index len)
- (bindat--length-group (nth index (bindat-get-field struct field)) (nthcdr tail item))
+ (bindat--length-group
+ (nth index (bindat-get-field struct field))
+ (nthcdr tail item))
(setq index (1+ index)))))
((eq type 'union)
(let ((tag len) (cases (nthcdr tail item)) case cc)
@@ -436,7 +438,7 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
(setq pos (+ pos len))))))))
(defun bindat-length (spec struct)
- "Calculate raw-data length for STRUCT according to bindat specification SPEC."
+ "Calculate raw-data length for STRUCT according to bindat SPEC."
(let ((pos 0))
(bindat--length-group struct spec)
pos))
@@ -557,7 +559,9 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
((eq type 'repeat)
(let ((index 0))
(while (< index len)
- (bindat--pack-group (nth index (bindat-get-field struct field)) (nthcdr tail item))
+ (bindat--pack-group
+ (nth index (bindat-get-field struct field))
+ (nthcdr tail item))
(setq index (1+ index)))))
((eq type 'union)
(let ((tag len) (cases (nthcdr tail item)) case cc)
@@ -577,13 +581,14 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
(defun bindat-pack (spec struct &optional raw-data pos)
"Return binary data packed according to SPEC for structured data STRUCT.
-Optional third arg RAW-DATA is a pre-allocated string or vector to unpack into.
+Optional third arg RAW-DATA is a pre-allocated string or vector to pack into.
Optional fourth arg POS is the starting offset into RAW-DATA.
Note: The result is a multibyte string; use `string-make-unibyte' on it
to make it unibyte if necessary."
(let ((no-return raw-data))
(unless pos (setq pos 0))
- (unless raw-data (setq raw-data (make-vector (+ pos (bindat-length spec struct)) 0)))
+ (unless raw-data
+ (setq raw-data (make-vector (+ pos (bindat-length spec struct)) 0)))
(bindat--pack-group struct spec)
(if no-return nil (concat raw-data))))
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el
index 7742de944cb..2cb90738072 100644
--- a/lisp/emacs-lisp/ewoc.el
+++ b/lisp/emacs-lisp/ewoc.el
@@ -96,6 +96,7 @@
;;
;; (defun ewoc-create (pretty-printer &optional header footer)
;; (defalias 'ewoc-data 'ewoc--node-data)
+;; (defun ewoc-set-data (node data)
;; (defun ewoc-location (node)
;; (defun ewoc-enter-first (ewoc data)
;; (defun ewoc-enter-last (ewoc data)
@@ -106,6 +107,7 @@
;; (defun ewoc-nth (ewoc n)
;; (defun ewoc-map (map-function ewoc &rest args)
;; (defun ewoc-filter (ewoc predicate &rest args)
+;; (defun ewoc-delete (ewoc &rest nodes)
;; (defun ewoc-locate (ewoc &optional pos guess)
;; (defun ewoc-invalidate (ewoc &rest nodes)
;; (defun ewoc-goto-prev (ewoc arg)
@@ -255,7 +257,7 @@ NODE and leaving the new node's start there. Return the new node."
;;; ===========================================================================
;;; Public members of the Ewoc package
-
+;;;###autoload
(defun ewoc-create (pretty-printer &optional header footer)
"Create an empty ewoc.
@@ -296,6 +298,10 @@ respectively, of the ewoc."
\(fn NODE)")
+(defun ewoc-set-data (node data)
+ "Set NODE to encapsulate DATA."
+ (setf (ewoc--node-data node) data))
+
(defun ewoc-enter-first (ewoc data)
"Enter DATA first in EWOC.
Return the new node."
@@ -371,6 +377,27 @@ arguments will be passed to MAP-FUNCTION."
(ewoc--refresh-node pp node))
(setq node (ewoc--node-next dll node))))))
+(defun ewoc-delete (ewoc &rest nodes)
+ "Delete NODES from EWOC."
+ (ewoc--set-buffer-bind-dll-let* ewoc
+ ((L nil) (R nil))
+ (dolist (node nodes)
+ ;; If we are about to delete the node pointed at by last-node,
+ ;; set last-node to nil.
+ (if (eq (ewoc--last-node ewoc) node)
+ (setf (ewoc--last-node ewoc) nil))
+ (delete-region (ewoc--node-start-marker node)
+ (ewoc--node-start-marker (ewoc--node-next dll node)))
+ (set-marker (ewoc--node-start-marker node) nil)
+ (setf L (ewoc--node-left node)
+ R (ewoc--node-right node)
+ ;; Link neighbors to each other.
+ (ewoc--node-right L) R
+ (ewoc--node-left R) L
+ ;; Forget neighbors.
+ (ewoc--node-left node) nil
+ (ewoc--node-right node) nil))))
+
(defun ewoc-filter (ewoc predicate &rest args)
"Remove all elements in EWOC for which PREDICATE returns nil.
Note that the buffer for EWOC will be current-buffer when PREDICATE
@@ -381,28 +408,13 @@ ARGS are given they will be passed to the PREDICATE."
(ewoc--set-buffer-bind-dll-let* ewoc
((node (ewoc--node-nth dll 1))
(footer (ewoc--footer ewoc))
- (next nil)
- (L nil) (R nil)
+ (goodbye nil)
(inhibit-read-only t))
(while (not (eq node footer))
- (setq next (ewoc--node-next dll node))
(unless (apply predicate (ewoc--node-data node) args)
- ;; If we are about to delete the node pointed at by last-node,
- ;; set last-node to nil.
- (if (eq (ewoc--last-node ewoc) node)
- (setf (ewoc--last-node ewoc) nil))
- (delete-region (ewoc--node-start-marker node)
- (ewoc--node-start-marker (ewoc--node-next dll node)))
- (set-marker (ewoc--node-start-marker node) nil)
- (setf L (ewoc--node-left node)
- R (ewoc--node-right node)
- ;; Link neighbors to each other.
- (ewoc--node-right L) R
- (ewoc--node-left R) L
- ;; Forget neighbors.
- (ewoc--node-left node) nil
- (ewoc--node-right node) nil))
- (setq node next))))
+ (push node goodbye))
+ (setq node (ewoc--node-next dll node)))
+ (apply 'ewoc-delete ewoc goodbye)))
(defun ewoc-locate (ewoc &optional pos guess)
"Return the node that POS (a buffer position) is within.
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index 3ea0cd6b6d9..245c274abd3 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -1498,8 +1498,8 @@ shifted movement key, set `cua-highlight-region-shift-only'."
;;;###autoload (eval-after-load 'CUA-mode
;;;###autoload '(error (concat "\n\n"
-;;;###autoload "CUA-mode is now part of the standard GNU Emacs distribution,\n"
-;;;###autoload "so you may now enable and customize CUA via the Options menu.\n\n"
+;;;###autoload "CUA-mode is now part of the standard GNU Emacs distribution, so you may\n"
+;;;###autoload "now enable CUA via the Options menu or by customizing option `cua-mode'.\n\n"
;;;###autoload "You have loaded an older version of CUA-mode which does\n"
;;;###autoload "not work correctly with this version of GNU Emacs.\n\n"
;;;###autoload (if user-init-file (concat
diff --git a/lisp/ido.el b/lisp/ido.el
index d03c002d597..1c2617b814d 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -4475,6 +4475,8 @@ See `read-file-name' for additional parameters."
(ido-directory-too-big (and (not ido-directory-nonreadable)
(ido-directory-too-big-p ido-current-directory)))
(ido-work-directory-index -1)
+ (ido-show-dot-for-dired (and ido-show-dot-for-dired
+ (not default-filename)))
(ido-work-file-index -1)
(ido-find-literal nil))
(setq ido-exit nil)
diff --git a/lisp/info-xref.el b/lisp/info-xref.el
index 75bc72f25b4..a6acfa8021c 100644
--- a/lisp/info-xref.el
+++ b/lisp/info-xref.el
@@ -301,7 +301,10 @@ quite a while."
(lambda (symbol)
(dolist (link (get symbol 'custom-links))
(when (memq (car link) '(custom-manual info-link))
- (if (info-xref-goto-node-p (cadr link))
+ ;; skip :tag part of (custom-manual :tag "Foo" "(foo)Node")
+ (if (eq :tag (cadr link))
+ (setq link (cddr link)))
+ (if (info-xref-goto-node-p (cadr link))
(setq good (1+ good))
(setq bad (1+ bad))
;; symbol-file gives nil for preloaded variables, would need
diff --git a/lisp/info.el b/lisp/info.el
index 163441893db..2737999b090 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2907,11 +2907,20 @@ Build a menu of the possible matches."
manuals matches node nodes)
(let ((Info-fontify-maximum-menu-size nil))
(Info-directory)
+ ;; current-node and current-file are nil when they invoke info-apropos
+ ;; as the first Info command, i.e. info-apropos loads info.el. In that
+ ;; case, we use (DIR)Top instead, to avoid signalling an error after
+ ;; the search is complete.
+ (when (null current-node)
+ (setq current-file Info-current-file)
+ (setq current-node Info-current-node))
(message "Searching indices...")
(goto-char (point-min))
(re-search-forward "\\* Menu: *\n" nil t)
(while (re-search-forward "\\*.*: *(\\([^)]+\\))" nil t)
- (setq manuals (cons (match-string 1) manuals)))
+ ;; add-to-list makes sure we don't have duplicates in `manuals',
+ ;; so that the following dolist loop runs faster.
+ (add-to-list 'manuals (match-string 1)))
(dolist (manual (nreverse manuals))
(message "Searching %s" manual)
(condition-case err
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index faeec5abf02..195eb60830c 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -624,7 +624,7 @@ the variable `rmail-mime-feature'.")
;;;###autoload
(defvar rmail-mime-charset-pattern
(concat "^content-type:[ ]*text/plain;"
- "\\(?:[ \t\n]*\\(format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*"
+ "\\(?:[ \t\n]*\\(?:format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*"
"[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?")
"Regexp to match MIME-charset specification in a header of message.
The first parenthesized expression should match the MIME-charset name.")
@@ -1994,7 +1994,7 @@ is non-nil if the user has supplied the password interactively.
(re-search-backward
rmail-mime-charset-pattern
start t))))
- (intern (downcase (match-string 2))))))
+ (intern (downcase (match-string 1))))))
(rmail-decode-region start (point) mime-charset)))))
;; Add an X-Coding-System: header if we don't have one.
(save-excursion
@@ -2155,7 +2155,7 @@ is non-nil if the user has supplied the password interactively.
(re-search-backward
rmail-mime-charset-pattern
start t))))
- (intern (downcase (match-string 2))))))
+ (intern (downcase (match-string 1))))))
(rmail-decode-region start (point) mime-charset)))
(save-excursion
(goto-char start)
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index a9987d589fd..9615e2e7ff1 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1338,6 +1338,9 @@ key, a click, or a menu-item"))
(define-key menu-bar-manuals-menu [order-emacs-manuals]
'(menu-item "Ordering Manuals" view-order-manuals
:help "How to order manuals from the Free Software Foundation"))
+(define-key menu-bar-manuals-menu [info-apropos]
+ '(menu-item "Lookup Subject in all manuals..." info-apropos
+ :help "Find description of a subject in all installed manuals"))
(define-key menu-bar-manuals-menu [info]
'(menu-item "All Other Manuals (Info)" Info-directory
:help "Read any of the installed manuals"))
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 101b9cf210d..3f514a2aaab 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -680,6 +680,10 @@ interactively. Turn the filename into a URL with function
(defun browse-url-file-url (file)
"Return the URL corresponding to FILE.
Use variable `browse-url-filename-alist' to map filenames to URLs."
+ (let ((coding (and default-enable-multibyte-characters
+ (or file-name-coding-system
+ default-file-name-coding-system))))
+ (if coding (setq file (encode-coding-string file coding))))
;; URL-encode special chars, do % first
(let ((s 0))
(while (setq s (string-match "%" file s))
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el
index 6f623623535..c2b9b435e4c 100644
--- a/lisp/progmodes/cc-styles.el
+++ b/lisp/progmodes/cc-styles.el
@@ -264,7 +264,7 @@ element of the list is added with `add-hook'.
Do not change this variable directly. Use the function `c-add-style'
to add new styles or modify existing styles (it is not a good idea to
modify existing styles -- you should create a new style that inherits
-the existing style.")
+the existing style).")
;; Functions that manipulate styles
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 64e38be62d0..0e6738710c5 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -812,6 +812,7 @@ macro exceeds this column then the next tab stop from that line is
used as alignment column instead."
:type 'integer
:group 'c)
+;;;###autoload(put 'c-backslash-column 'safe-local-variable 'integerp)
(defcustom-c-stylevar c-backslash-max-column 72
"*Maximum alignment column for line continuation backslashes.
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index d2e6cfc4ae4..bda30b196e1 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -3166,7 +3166,7 @@ class of the file (using s to separate nested class ids)."
(defvar gdb-script-font-lock-keywords
'(("^define\\s-+\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-function-name-face))
("\\$\\(\\w+\\)" (1 font-lock-variable-name-face))
- ("^\\s-*\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-keyword-face))))
+ ("^\\s-*\\(\\w\\(\\w\\|\\s_\\)*\\)" (1 font-lock-keyword-face))))
;; FIXME: The keyword "end" associated with "document"
;; should have font-lock-keyword-face (currently font-lock-doc-face).
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 04e44e2dac1..a100424108d 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -928,15 +928,17 @@ Return as (TOP . BOTTOM) the extent of ifdef block."
(setq hide-ifdef-hiding t))
(setq buffer-read-only (or hide-ifdef-read-only hif-outside-read-only)))
-
(defun show-ifdef-block ()
"Show the ifdef block (true or false part) enclosing or before the cursor."
(interactive)
- (if hide-ifdef-lines
- (save-excursion
- (beginning-of-line)
- (hif-show-ifdef-region (1- (point)) (progn (end-of-line) (point))))
- (let ((top-bottom (hif-find-ifdef-block)))
+ (let ((top-bottom (hif-find-ifdef-block)))
+ (if hide-ifdef-lines
+ (hif-show-ifdef-region
+ (save-excursion
+ (goto-char (car top-bottom)) (line-beginning-position))
+ (save-excursion
+ (goto-char (1+ (cdr top-bottom)))
+ (hif-end-of-line) (point)))
(hif-show-ifdef-region (1- (car top-bottom)) (cdr top-bottom)))))
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 3bbfeaac683..66507dd78df 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -246,6 +246,7 @@ You will be offered to complete on one of those in the minibuffer whenever
you enter a \".\" at the beginning of a line in `makefile-mode'."
:type '(repeat (list string))
:group 'makefile)
+(put 'makefile-special-targets-list 'risky-local-variable t)
(defcustom makefile-runtime-macros-list
'(("@") ("&") (">") ("<") ("*") ("^") ("+") ("?") ("%") ("$"))
@@ -544,7 +545,8 @@ This should identify a `make' command that can handle the `-q' option."
:type 'string
:group 'makefile)
-(defcustom makefile-query-one-target-method 'makefile-query-by-make-minus-q
+(defcustom makefile-query-one-target-method-function
+ 'makefile-query-by-make-minus-q
"*Function to call to determine whether a make target is up to date.
The function must satisfy this calling convention:
@@ -560,6 +562,8 @@ The function must satisfy this calling convention:
makefile, any nonzero integer value otherwise."
:type 'function
:group 'makefile)
+(defvaralias 'makefile-query-one-target-method
+ 'makefile-query-one-target-method-function)
(defcustom makefile-up-to-date-buffer-name "*Makefile Up-to-date overview*"
"*Name of the Up-to-date overview buffer."
@@ -670,9 +674,11 @@ The function must satisfy this calling convention:
(defvar makefile-target-table nil
"Table of all target names known for this buffer.")
+(put 'makefile-target-table 'risky-local-variable t)
(defvar makefile-macro-table nil
"Table of all macro names known for this buffer.")
+(put 'makefile-macro-table 'risky-local-variable t)
(defvar makefile-browser-client
"A buffer in Makefile mode that is currently using the browser.")
@@ -724,11 +730,10 @@ The function must satisfy this calling convention:
If you are editing a file for a different make, try one of the
variants `makefile-automake-mode', `makefile-gmake-mode',
-`makefile-makepp-mode', `makefile-bsdmake-mode' or,
-`makefile-imake-mode'All but the
-last should be correctly chosen based on the file name, except if
-it is *.mk. This function ends by invoking the function(s)
-`makefile-mode-hook'.
+`makefile-makepp-mode', `makefile-bsdmake-mode' or,
+`makefile-imake-mode'. All but the last should be correctly
+chosen based on the file name, except if it is *.mk. This
+function ends by invoking the function(s) `makefile-mode-hook'.
It is strongly recommended to use `font-lock-mode', because that
provides additional parsing information. This is used for
@@ -1616,7 +1621,8 @@ with the generated name!"
(defun makefile-query-targets (filename target-table prereq-list)
"Fill the up-to-date overview buffer.
-Checks each target in TARGET-TABLE using `makefile-query-one-target-method'
+Checks each target in TARGET-TABLE using
+`makefile-query-one-target-method-function'
and generates the overview, one line per target name."
(insert
(mapconcat
@@ -1625,7 +1631,7 @@ and generates the overview, one line per target name."
(no-prereqs (not (member target-name prereq-list)))
(needs-rebuild (or no-prereqs
(funcall
- makefile-query-one-target-method
+ makefile-query-one-target-method-function
target-name
filename))))
(format "\t%s%s"
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index bb8659ed662..ab3da050456 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1390,11 +1390,11 @@ with your script for an edit-interpret-debug cycle."
(make-local-variable 'sh-shell-file)
(make-local-variable 'sh-shell)
(make-local-variable 'skeleton-pair-alist)
- (make-local-variable 'skeleton-pair-filter)
+ (make-local-variable 'skeleton-pair-filter-function)
(make-local-variable 'comint-dynamic-complete-functions)
(make-local-variable 'comint-prompt-regexp)
(make-local-variable 'font-lock-defaults)
- (make-local-variable 'skeleton-filter)
+ (make-local-variable 'skeleton-filter-function)
(make-local-variable 'skeleton-newline-indent-rigidly)
(make-local-variable 'sh-shell-variables)
(make-local-variable 'sh-shell-variables-initialized)
@@ -1422,10 +1422,10 @@ with your script for an edit-interpret-debug cycle."
(font-lock-syntactic-face-function
. sh-font-lock-syntactic-face-function))
skeleton-pair-alist '((?` _ ?`))
- skeleton-pair-filter 'sh-quoted-p
+ skeleton-pair-filter-function 'sh-quoted-p
skeleton-further-elements '((< '(- (min sh-indentation
(current-column)))))
- skeleton-filter 'sh-feature
+ skeleton-filter-function 'sh-feature
skeleton-newline-indent-rigidly t
sh-indent-supported-here nil)
(set (make-local-variable 'parse-sexp-ignore-comments) t)
diff --git a/lisp/simple.el b/lisp/simple.el
index 0e46b5969fb..a2f21465fad 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2541,7 +2541,9 @@ to make one entry in the kill ring.
In Lisp code, optional third arg YANK-HANDLER, if non-nil,
specifies the yank-handler text property to be set on the killed
text. See `insert-for-yank'."
- (interactive "r")
+ ;; Pass point first, then mark, because the order matters
+ ;; when calling kill-append.
+ (interactive (list (point) (mark)))
(condition-case nil
(let ((string (filter-buffer-substring beg end t)))
(when string ;STRING is nil if BEG = END
@@ -3635,10 +3637,14 @@ Outline mode sets this."
(setq new (point))
;; Process intangibility within a line.
- ;; Move to the chosen destination position from above,
- ;; with intangibility processing enabled.
-
- ;; Avoid calling point-entered and point-left.
+ ;; With inhibit-point-motion-hooks bound to nil, a call to
+ ;; goto-char moves point past intangible text.
+
+ ;; However, inhibit-point-motion-hooks controls both the
+ ;; intangibility and the point-entered/point-left hooks. The
+ ;; following hack avoids calling the point-* hooks
+ ;; unnecessarily. Note that we move *forward* past intangible
+ ;; text when the initial and final points are the same.
(goto-char new)
(let ((inhibit-point-motion-hooks nil))
(goto-char new)
diff --git a/lisp/skeleton.el b/lisp/skeleton.el
index 0b3fc82f025..d51fd91c3b4 100644
--- a/lisp/skeleton.el
+++ b/lisp/skeleton.el
@@ -39,14 +39,15 @@
;; page 3: mirror-mode, an example for setting up paired insertion
-(defvar skeleton-transformation 'identity
+(defvar skeleton-transformation-function 'identity
"*If non-nil, function applied to literal strings before they are inserted.
It should take strings and characters and return them transformed, or nil
which means no transformation.
Typical examples might be `upcase' or `capitalize'.")
+(defvaralias 'skeleton-transformation 'skeleton-transformation-function)
; this should be a fourth argument to defvar
-(put 'skeleton-transformation 'variable-interactive
+(put 'skeleton-transformation-function 'variable-interactive
"aTransformation function: ")
@@ -75,8 +76,9 @@ The variables `v1' and `v2' are still set when calling this.")
;;;###autoload
-(defvar skeleton-filter 'identity
+(defvar skeleton-filter-function 'identity
"Function for transforming a skeleton proxy's aliases' variable value.")
+(defvaralias 'skeleton-filter 'skeleton-filter-function)
(defvar skeleton-untabify t
"When non-nil untabifies when deleting backwards with element -ARG.")
@@ -157,7 +159,7 @@ This command can also be an abbrev expansion (3rd and 4th columns in
Optional second argument STR may also be a string which will be the value
of `str' whereas the skeleton's interactor is then ignored."
- (skeleton-insert (funcall skeleton-filter skeleton)
+ (skeleton-insert (funcall skeleton-filter-function skeleton)
;; Pretend C-x a e passed its prefix arg to us
(if (or arg current-prefix-arg)
(prefix-numeric-value (or arg
@@ -199,7 +201,7 @@ SKELETON is made up as (INTERACTOR ELEMENT ...). INTERACTOR may be nil if
not needed, a prompt-string or an expression for complex read functions.
If ELEMENT is a string or a character it gets inserted (see also
-`skeleton-transformation'). Other possibilities are:
+`skeleton-transformation-function'). Other possibilities are:
\\n go to next line and indent according to mode
_ interesting point, interregion here
@@ -360,7 +362,7 @@ automatically, and you are prompted to fill in the variable parts.")))
(backward-delete-char-untabify (- element))
(delete-backward-char (- element)))
(insert (if (not literal)
- (funcall skeleton-transformation element)
+ (funcall skeleton-transformation-function element)
element))))
((or (eq element '\n) ; actually (eq '\n 'n)
;; The sequence `> \n' is handled specially so as to indent the first
@@ -464,7 +466,7 @@ will attempt to insert pairs of matching characters.")
"*If this is nil, paired insertion is inhibited before or inside a word.")
-(defvar skeleton-pair-filter (lambda () nil)
+(defvar skeleton-pair-filter-function (lambda () nil)
"Attempt paired insertion if this function returns nil, before inserting.
This allows for context-sensitive checking whether pairing is appropriate.")
@@ -490,7 +492,7 @@ Elements might be (?` ?` _ \"''\"), (?\\( ? _ \" )\") or (?{ \\n > _ \\n ?} >).
With no ARG, if `skeleton-pair' is non-nil, pairing can occur. If the region
is visible the pair is wrapped around it depending on `skeleton-autowrap'.
Else, if `skeleton-pair-on-word' is non-nil or we are not before or inside a
-word, and if `skeleton-pair-filter' returns nil, pairing is performed.
+word, and if `skeleton-pair-filter-function' returns nil, pairing is performed.
Pairing is also prohibited if we are right after a quoting character
such as backslash.
@@ -512,7 +514,7 @@ symmetrical ones, and the same character twice for the others."
(and (not mark)
(or overwrite-mode
(if (not skeleton-pair-on-word) (looking-at "\\w"))
- (funcall skeleton-pair-filter))))
+ (funcall skeleton-pair-filter-function))))
(self-insert-command (prefix-numeric-value arg))
(skeleton-insert (cons nil skeleton) (if mark -1))))))
@@ -526,13 +528,13 @@ symmetrical ones, and the same character twice for the others."
;; (kill-all-local-variables)
;; (make-local-variable 'skeleton-pair)
;; (make-local-variable 'skeleton-pair-on-word)
-;; (make-local-variable 'skeleton-pair-filter)
+;; (make-local-variable 'skeleton-pair-filter-function)
;; (make-local-variable 'skeleton-pair-alist)
;; (setq major-mode 'mirror-mode
;; mode-name "Mirror"
;; skeleton-pair-on-word t
;; ;; in the middle column insert one or none if odd window-width
-;; skeleton-pair-filter (lambda ()
+;; skeleton-pair-filter-function (lambda ()
;; (if (>= (current-column)
;; (/ (window-width) 2))
;; ;; insert both on next line
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 88b91b74aa4..5ad2fe700cb 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -1616,7 +1616,10 @@ in `selection-converter-alist', which see."
(let ((ae (mac-event-ae event)))
(dolist (file-name (mac-ae-list ae nil 'undecoded-file-name))
(if file-name
- (dnd-open-local-file (concat "file:" file-name) nil)))
+ (dnd-open-local-file
+ (concat "file://"
+ (mapconcat 'url-hexify-string
+ (split-string file-name "/") "/")) nil)))
(let ((selection-range (mac-ae-selection-range ae))
(search-text (mac-ae-text-for-search ae)))
(cond (selection-range
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index 3987ad66f6a..31a794eeaa1 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -112,6 +112,14 @@ Switch to a buffer editing the last file dropped."
(if (and (> x 0) (> y 0))
(set-frame-selected-window nil window))
(mapcar (lambda (file-name)
+ (let ((f (subst-char-in-string ?\\ ?/ file-name))
+ (coding (or file-name-coding-system
+ default-file-name-coding-system)))
+ (setq file-name
+ (mapconcat 'url-hexify-string
+ (split-string (encode-coding-string f coding)
+ "/")
+ "/")))
(dnd-handle-one-url window 'private
(concat "file:" file-name)))
(car (cdr (cdr event)))))
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 9305bdbf9bc..d5dcdd0d9ef 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -365,10 +365,11 @@ Example:
"*If in X Windows, use this pointer shape while drawing with the mouse.")
-(defcustom artist-text-renderer 'artist-figlet
+(defcustom artist-text-renderer-function 'artist-figlet
"Function for doing text rendering."
:group 'artist-text
:type 'symbol)
+(defvaralias 'artist-text-renderer 'artist-text-renderer-function)
(defcustom artist-figlet-program "figlet"
@@ -2910,23 +2911,25 @@ Let blanks in TEXT overwrite any text already in the buffer."
(defun artist-text-see-thru (x y)
"Prompt for text to render, render it at X,Y.
-This is done by calling the function specified by `artist-text-renderer',
-which must return a list of strings, to be inserted in the buffer.
+This is done by calling the function specified by
+`artist-text-renderer-function', which must return a list of strings,
+to be inserted in the buffer.
Text already in the buffer ``shines thru'' blanks in the rendered text."
(let* ((input-text (read-string "Type text to render: "))
- (rendered-text (artist-funcall artist-text-renderer input-text)))
+ (rendered-text (artist-funcall artist-text-renderer-function input-text)))
(artist-text-insert-see-thru x y rendered-text)))
(defun artist-text-overwrite (x y)
"Prompt for text to render, render it at X,Y.
-This is done by calling the function specified by `artist-text-renderer',
-which must return a list of strings, to be inserted in the buffer.
+This is done by calling the function specified by
+`artist-text-renderer-function', which must return a list of strings,
+to be inserted in the buffer.
Blanks in the rendered text overwrites any text in the buffer."
(let* ((input-text (read-string "Type text to render: "))
- (rendered-text (artist-funcall artist-text-renderer input-text)))
+ (rendered-text (artist-funcall artist-text-renderer-function input-text)))
(artist-text-insert-overwrite x y rendered-text)))
;;
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index e4f0a3db545..74ec8beffa2 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -87,7 +87,7 @@ If this is a function, call it to generate the initial field text."
:type '(choice (const :tag "None" nil)
(string :tag "Initial text")
(function :tag "Initialize Function" :value fun)
- (other :tag "Default" t)))
+ (const :tag "Default" t)))
(put 'bibtex-include-OPTkey 'risky-local-variable t)
(defcustom bibtex-user-optional-fields
@@ -153,7 +153,7 @@ narrowed to just the entry."
(defcustom bibtex-maintain-sorted-entries nil
"If non-nil, BibTeX mode maintains all entries in sorted order.
Allowed non-nil values are:
-plain All entries are sorted alphabetically.
+plain or t All entries are sorted alphabetically.
crossref All entries are sorted alphabetically unless an entry has a
crossref field. These crossrefed entries are placed in
alphabetical order immediately preceding the main entry.
@@ -165,7 +165,10 @@ See also `bibtex-sort-ignore-string-entries'."
:type '(choice (const nil)
(const plain)
(const crossref)
- (const entry-class)))
+ (const entry-class)
+ (const t)))
+(put 'bibtex-maintain-sorted-entries 'safe-local-variable
+ '(lambda (a) (memq a '(nil t plain crossref entry-class))))
(defcustom bibtex-sort-entry-class
'(("String")
@@ -1800,7 +1803,8 @@ Formats current entry according to variable `bibtex-entry-format'."
;; identify entry type
(goto-char (point-min))
- (re-search-forward bibtex-entry-type)
+ (or (re-search-forward bibtex-entry-type nil t)
+ (error "Not inside a BibTeX entry"))
(let ((beg-type (1+ (match-beginning 0)))
(end-type (match-end 0)))
(setq entry-list (assoc-string (buffer-substring-no-properties
@@ -3876,7 +3880,8 @@ At end of the cleaning process, the functions in
(interactive "P")
(let ((case-fold-search t)
(start (bibtex-beginning-of-entry))
- (_ (looking-at bibtex-any-entry-maybe-empty-head))
+ (_ (or (looking-at bibtex-any-entry-maybe-empty-head)
+ (error "Not inside a BibTeX entry")))
(entry-type (bibtex-type-in-head))
(key (bibtex-key-in-head)))
;; formatting
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 54b67a258a6..c20ecef31e0 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -271,21 +271,23 @@ If `flyspell-large-region' is nil, all regions are treated as small."
;;* using flyspell with mail-mode add the following expression */
;;* in your .emacs file: */
;;* (add-hook 'mail-mode */
-;;* '(lambda () (setq flyspell-generic-check-word-p */
-;;* 'mail-mode-flyspell-verify))) */
+;;* '(lambda () (setq flyspell-generic-check-word-predicate */
+;;* 'mail-mode-flyspell-verify))) */
;;*---------------------------------------------------------------------*/
-(defvar flyspell-generic-check-word-p nil
+(defvar flyspell-generic-check-word-predicate nil
"Function providing per-mode customization over which words are flyspelled.
Returns t to continue checking, nil otherwise.
Flyspell mode sets this variable to whatever is the `flyspell-mode-predicate'
property of the major mode name.")
-(make-variable-buffer-local 'flyspell-generic-check-word-p)
+(make-variable-buffer-local 'flyspell-generic-check-word-predicate)
+(defvaralias 'flyspell-generic-check-word-p
+ 'flyspell-generic-check-word-predicate)
;;*--- mail mode -------------------------------------------------------*/
(put 'mail-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
(put 'message-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
(defun mail-mode-flyspell-verify ()
- "This function is used for `flyspell-generic-check-word-p' in Mail mode."
+ "Function used for `flyspell-generic-check-word-predicate' in Mail mode."
(let ((header-end (save-excursion
(goto-char (point-min))
(re-search-forward
@@ -313,7 +315,7 @@ property of the major mode name.")
;;*--- texinfo mode ----------------------------------------------------*/
(put 'texinfo-mode 'flyspell-mode-predicate 'texinfo-mode-flyspell-verify)
(defun texinfo-mode-flyspell-verify ()
- "This function is used for `flyspell-generic-check-word-p' in Texinfo mode."
+ "Function used for `flyspell-generic-check-word-predicate' in Texinfo mode."
(save-excursion
(forward-word -1)
(not (looking-at "@"))))
@@ -321,7 +323,7 @@ property of the major mode name.")
;;*--- tex mode --------------------------------------------------------*/
(put 'tex-mode 'flyspell-mode-predicate 'tex-mode-flyspell-verify)
(defun tex-mode-flyspell-verify ()
- "This function is used for `flyspell-generic-check-word-p' in LaTeX mode."
+ "Function used for `flyspell-generic-check-word-predicate' in LaTeX mode."
(and
(not (save-excursion
(re-search-backward "^[ \t]*%%%[ \t]+Local" nil t)))
@@ -338,7 +340,7 @@ property of the major mode name.")
(put 'html-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
(defun sgml-mode-flyspell-verify ()
- "This function is used for `flyspell-generic-check-word-p' in SGML mode."
+ "Function used for `flyspell-generic-check-word-predicate' in SGML mode."
(not (save-excursion
(let ((this (point-marker))
(s (progn (beginning-of-line) (point-marker)))
@@ -368,7 +370,7 @@ property of the major mode name.")
"Faces corresponding to text in programming-mode buffers.")
(defun flyspell-generic-progmode-verify ()
- "Used for `flyspell-generic-check-word-p' in programming modes."
+ "Used for `flyspell-generic-check-word-predicate' in programming modes."
(let ((f (get-text-property (point) 'face)))
(memq f flyspell-prog-text-faces)))
@@ -376,7 +378,8 @@ property of the major mode name.")
(defun flyspell-prog-mode ()
"Turn on `flyspell-mode' for comments and strings."
(interactive)
- (setq flyspell-generic-check-word-p 'flyspell-generic-progmode-verify)
+ (setq flyspell-generic-check-word-predicate
+ 'flyspell-generic-progmode-verify)
(flyspell-mode 1)
(run-hooks 'flyspell-prog-mode-hook))
@@ -563,10 +566,10 @@ in your .emacs file.
(add-hook 'pre-command-hook (function flyspell-pre-command-hook) t t)
;; we bound flyspell action to after-change hook
(add-hook 'after-change-functions 'flyspell-after-change-function nil t)
- ;; set flyspell-generic-check-word-p based on the major mode
+ ;; set flyspell-generic-check-word-predicate based on the major mode
(let ((mode-predicate (get major-mode 'flyspell-mode-predicate)))
(if mode-predicate
- (setq flyspell-generic-check-word-p mode-predicate)))
+ (setq flyspell-generic-check-word-predicate mode-predicate)))
;; the welcome message
(if (and flyspell-issue-message-flag
flyspell-issue-welcome-flag
@@ -979,8 +982,8 @@ Mostly we check word delimiters."
(flyspell-word (flyspell-get-word following))
start end poss word)
(if (or (eq flyspell-word nil)
- (and (fboundp flyspell-generic-check-word-p)
- (not (funcall flyspell-generic-check-word-p))))
+ (and (fboundp flyspell-generic-check-word-predicate)
+ (not (funcall flyspell-generic-check-word-predicate))))
t
(progn
;; destructure return flyspell-word info list.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index fed06a572bb..7bfedb1bd97 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -416,11 +416,12 @@ The following values are supported:
:type 'boolean
:group 'ispell)
-(defcustom ispell-format-word (function upcase)
+(defcustom ispell-format-word-function (function upcase)
"*Formatting function for displaying word being spell checked.
The function must take one string argument and return a string."
:type 'function
:group 'ispell)
+(defvaralias 'ispell-format-word 'ispell-format-word-function)
(defcustom ispell-use-framepop-p nil
"When non-nil ispell uses framepop to display choices in a dedicated frame.
@@ -1595,7 +1596,7 @@ quit spell session exited."
;; But that is silly; if the user asks for it, we should do it. - rms.
(or quietly
(message "Checking spelling of %s..."
- (funcall ispell-format-word word)))
+ (funcall ispell-format-word-function word)))
(ispell-send-string "%\n") ; put in verbose mode
(ispell-send-string (concat "^" word "\n"))
;; wait until ispell has processed word
@@ -1611,7 +1612,7 @@ quit spell session exited."
(cond ((eq poss t)
(or quietly
(message "%s is correct"
- (funcall ispell-format-word word)))
+ (funcall ispell-format-word-function word)))
(and (fboundp 'extent-at)
(extent-at start)
(and (fboundp 'delete-extent)
@@ -1619,8 +1620,8 @@ quit spell session exited."
((stringp poss)
(or quietly
(message "%s is correct because of root %s"
- (funcall ispell-format-word word)
- (funcall ispell-format-word poss)))
+ (funcall ispell-format-word-function word)
+ (funcall ispell-format-word-function poss)))
(and (fboundp 'extent-at)
(extent-at start)
(and (fboundp 'delete-extent)
@@ -1633,7 +1634,8 @@ quit spell session exited."
(set-extent-property ext 'face ispell-highlight-face)
(set-extent-property ext 'priority 2000)))
(beep)
- (message "%s is incorrect"(funcall ispell-format-word word))))
+ (message "%s is incorrect"
+ (funcall ispell-format-word-function word))))
(t ; prompt for correct word.
(save-window-excursion
(setq replace (ispell-command-loop
@@ -3359,6 +3361,7 @@ Don't read buffer-local settings or word lists."
"*End of text which will be checked in `ispell-message'.
If it is a string, limit at first occurrence of that regular expression.
Otherwise, it must be a function which is called to get the limit.")
+(put 'ispell-message-text-end 'risky-local-variable t)
(defun ispell-mime-multipartp (&optional limit)
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index ff6df4a5a56..6136d22e432 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -49,13 +49,14 @@
:type 'integer
:group 'sgml)
-(defcustom sgml-transformation 'identity
- "*Default value for `skeleton-transformation' (which see) in SGML mode."
+(defcustom sgml-transformation-function 'identity
+ "*Default value for `skeleton-transformation-function' in SGML mode."
:type 'function
:group 'sgml)
-(put 'sgml-transformation 'variable-interactive
+(put 'sgml-transformation-function 'variable-interactive
"aTransformation function: ")
+(defvaralias 'sgml-transformation 'sgml-transformation-function)
(defcustom sgml-mode-hook nil
"Hook run by command `sgml-mode'.
@@ -335,6 +336,7 @@ an optional alist of possible values."
:type '(repeat (cons (string :tag "Tag Name")
(repeat :tag "Tag Rule" sexp)))
:group 'sgml)
+(put 'sgml-tag-alist 'risky-local-variable t)
(defcustom sgml-tag-help
'(("!" . "Empty declaration for comment")
@@ -391,7 +393,7 @@ a DOCTYPE or an XML declaration."
(defun sgml-mode-facemenu-add-face-function (face end)
(if (setq face (cdr (assq face sgml-face-tag-alist)))
(progn
- (setq face (funcall skeleton-transformation face))
+ (setq face (funcall skeleton-transformation-function face))
(setq facemenu-end-add-face (concat "</" face ">"))
(concat "<" face ">"))
(error "Face not configured for %s mode" mode-name)))
@@ -415,8 +417,8 @@ An argument of N to a tag-inserting command means to wrap it around
the next N words. In Transient Mark mode, when the mark is active,
N defaults to -1, which means to wrap it around the current region.
-If you like upcased tags, put (setq sgml-transformation 'upcase) in
-your `.emacs' file.
+If you like upcased tags, put (setq sgml-transformation-function 'upcase)
+in your `.emacs' file.
Use \\[sgml-validate] to validate your document with an SGML parser.
@@ -460,7 +462,8 @@ Do \\[describe-key] on the following bindings to discover what they do.
(sgml-xml-guess)
(if sgml-xml-mode
(setq mode-name "XML")
- (set (make-local-variable 'skeleton-transformation) sgml-transformation))
+ (set (make-local-variable 'skeleton-transformation-function)
+ sgml-transformation-function))
;; This will allow existing comments within declarations to be
;; recognized.
(set (make-local-variable 'comment-start-skip) "\\(?:<!\\)?--[ \t]*")
@@ -604,9 +607,9 @@ This only works for Latin-1 input."
(if sgml-name-8bit-mode "ON" "OFF")))
;; When an element of a skeleton is a string "str", it is passed
-;; through skeleton-transformation and inserted. If "str" is to be
-;; inserted literally, one should obtain it as the return value of a
-;; function, e.g. (identity "str").
+;; through `skeleton-transformation-function' and inserted.
+;; If "str" is to be inserted literally, one should obtain it as
+;; the return value of a function, e.g. (identity "str").
(defvar sgml-tag-last nil)
(defvar sgml-tag-history nil)
@@ -614,9 +617,10 @@ This only works for Latin-1 input."
"Prompt for a tag and insert it, optionally with attributes.
Completion and configuration are done according to `sgml-tag-alist'.
If you like tags and attributes in uppercase do \\[set-variable]
-skeleton-transformation RET upcase RET, or put this in your `.emacs':
- (setq sgml-transformation 'upcase)"
- (funcall (or skeleton-transformation 'identity)
+`skeleton-transformation-function' RET `upcase' RET, or put this
+in your `.emacs':
+ (setq sgml-transformation-function 'upcase)"
+ (funcall (or skeleton-transformation-function 'identity)
(setq sgml-tag-last
(completing-read
(if (> (length sgml-tag-last) 0)
@@ -639,7 +643,7 @@ skeleton-transformation RET upcase RET, or put this in your `.emacs':
;; For xhtml's `tr' tag, we should maybe use \n instead.
(if (eq v2 t) (setq v2 nil))
;; We use `identity' to prevent skeleton from passing
- ;; `str' through skeleton-transformation a second time.
+ ;; `str' through `skeleton-transformation-function' a second time.
'(("") v2 _ v2 "</" (identity ',str) ?>))
((eq (car v2) t)
(cons '("") (cdr v2)))
@@ -670,12 +674,12 @@ If QUIET, do not print a message when there are no attributes for TAG."
(if (stringp (car alist))
(progn
(insert (if (eq (preceding-char) ?\s) "" ?\s)
- (funcall skeleton-transformation (car alist)))
+ (funcall skeleton-transformation-function (car alist)))
(sgml-value alist))
(setq i (length alist))
(while (> i 0)
(insert ?\s)
- (insert (funcall skeleton-transformation
+ (insert (funcall skeleton-transformation-function
(setq attribute
(skeleton-read '(completing-read
"Attribute: "
@@ -1981,12 +1985,12 @@ Can be used as a value for `html-mode-hook'."
"\" name=\"" (or v1 (setq v1 (skeleton-read "Name: ")))
"\" value=\"" str ?\"
(when (y-or-n-p "Set \"checked\" attribute? ")
- (funcall skeleton-transformation
+ (funcall skeleton-transformation-function
(if sgml-xml-mode " checked=\"checked\"" " checked")))
(if sgml-xml-mode " />" ">")
(skeleton-read "Text: " (capitalize str))
(or v2 (setq v2 (if (y-or-n-p "Newline after text? ")
- (funcall skeleton-transformation
+ (funcall skeleton-transformation-function
(if sgml-xml-mode "<br />" "<br>"))
"")))
\n))
@@ -2001,12 +2005,12 @@ Can be used as a value for `html-mode-hook'."
"\" name=\"" (or (car v2) (setcar v2 (skeleton-read "Name: ")))
"\" value=\"" str ?\"
(when (and (not v1) (setq v1 (y-or-n-p "Set \"checked\" attribute? ")))
- (funcall skeleton-transformation
+ (funcall skeleton-transformation-function
(if sgml-xml-mode " checked=\"checked\"" " checked")))
(if sgml-xml-mode " />" ">")
(skeleton-read "Text: " (capitalize str))
(or (cdr v2) (setcdr v2 (if (y-or-n-p "Newline after text? ")
- (funcall skeleton-transformation
+ (funcall skeleton-transformation-function
(if sgml-xml-mode "<br />" "<br>"))
"")))
\n))
diff --git a/lisp/tumme.el b/lisp/tumme.el
index 6a53ed16948..8f6e43e9cd6 100644
--- a/lisp/tumme.el
+++ b/lisp/tumme.el
@@ -976,7 +976,7 @@ displayed."
(defun tumme-tag-files (arg)
"Tag marked file(s) in dired. With prefix ARG, tag file at point."
(interactive "P")
- (let ((tag (read-string "Tag to add: "))
+ (let ((tag (read-string "Tags to add (separate tags with a semicolon): "))
curr-file files)
(if arg
(setq files (dired-get-filename))
@@ -986,7 +986,7 @@ displayed."
(defun tumme-tag-thumbnail ()
"Tag current thumbnail."
(interactive)
- (let ((tag (read-string "Tag to add: ")))
+ (let ((tag (read-string "Tags to add (separate tags with a semicolon): ")))
(tumme-write-tag (tumme-original-file-name) tag))
(tumme-update-property
'tags (tumme-list-tags (tumme-original-file-name))))
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index 3ad9a5f0e2c..04ef4f0b6dc 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -257,14 +257,20 @@ STRING is the uri-list as a string. The URIs are separated by \r\n."
retval))
(defun x-dnd-handle-file-name (window action string)
- "Prepend file:// to file names and call `dnd-handle-one-url'.
+ "Convert file names to URLs and call `dnd-handle-one-url'.
WINDOW is the window where the drop happened.
STRING is the file names as a string, separated by nulls."
(let ((uri-list (split-string string "[\0\r\n]" t))
+ (coding (and default-enable-multibyte-characters
+ (or file-name-coding-system
+ default-file-name-coding-system)))
retval)
(dolist (bf uri-list)
;; If one URL is handeled, treat as if the whole drop succeeded.
- (let* ((file-uri (concat "file://" bf))
+ (if coding (setq bf (encode-coding-string bf coding)))
+ (let* ((file-uri (concat "file://"
+ (mapconcat 'url-hexify-string
+ (split-string bf "/") "/")))
(did-action (dnd-handle-one-url window action file-uri)))
(when did-action (setq retval did-action))))
retval))
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 39bf92c54d1..de08e3fb459 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,33 @@
+2006-05-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Pointer Shape): @end table -> @end defvar.
+
+2006-05-22 Richard Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode menus.
+
+ * frames.texi (Pointer Shape): Node renamed from Pointer Shapes.
+ Contents rewritten; material from old Pointer Shape node moved here.
+
+ * display.texi (Pointer Shape): Node deleted.
+ (Image Descriptors): Minor cleanup.
+
+2006-05-21 Richard Stallman <rms@gnu.org>
+
+ * syntax.texi (Parsing Expressions): Update info on which STATE
+ elements are ignored.
+
+2006-05-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * hooks.texi (Standard Hooks): Correct typo.
+
+ * gpl.texi (GPL): ifinfo -> ifnottex.
+
+2006-05-19 Michael Ernst <mernst@alum.mit.edu> (tiny change)
+
+ * searching.texi (Simple Match Data): Warn about match data being
+ set anew by every search.
+
2006-05-17 Richard Stallman <rms@gnu.org>
* minibuf.texi (Minibuffer History): Clarify.
diff --git a/lispref/display.texi b/lispref/display.texi
index b9051f5ca6e..a77c895276e 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -26,7 +26,6 @@ that Emacs presents to the user.
font, colors, etc.
* Fringes:: Controlling window fringes.
* Scroll Bars:: Controlling vertical scroll bars.
-* Pointer Shape:: Controlling the mouse pointer shape.
* Display Property:: Enabling special display features.
* Images:: Displaying images in Emacs buffers.
* Buttons:: Adding clickable buttons to Emacs buffers.
@@ -3193,26 +3192,6 @@ buffer's scroll bars, measured in pixels. A value of @code{nil} means
to use the value specified by the frame.
@end defvar
-@node Pointer Shape
-@section Pointer Shape
-
- Normally, the mouse pointer has the @code{text} shape over text and
-the @code{arrow} shape over window areas which do not correspond to
-any buffer text. You can specify the mouse pointer shape over text or
-images via the @code{pointer} text property, and for images with the
-@code{:pointer} and @code{:map} image properties.
-
- The available pointer shapes are: @code{text} (or @code{nil}),
-@code{arrow}, @code{hand}, @code{vdrag}, @code{hdrag},
-@code{modeline}, and @code{hourglass}.
-
-@defvar void-text-area-pointer
-@tindex void-text-area-pointer
-This variable specifies the mouse pointer shape in void text areas,
-i.e. the areas after the end of a line or below the last line in the
-buffer. The default is to use the @code{arrow} (non-text) pointer.
-@end defvar
-
@node Display Property
@section The @code{display} Property
@cindex display specification
@@ -3841,11 +3820,11 @@ A polygon is a cons
@code{(poly . [@var{x0} @var{y0} @var{x1} @var{y1} ...])}
where each pair in the vector describes one corner in the polygon.
-When the mouse pointer is above a hot-spot area of an image, the
+When the mouse pointer lies on a hot-spot area of an image, the
@var{plist} of that hot-spot is consulted; if it contains a @code{help-echo}
-property it defines a tool-tip for the hot-spot, and if it contains
-a @code{pointer} property, it defines the shape of the mouse cursor when
-it is over the hot-spot.
+property, that defines a tool-tip for the hot-spot, and if it contains
+a @code{pointer} property, that defines the shape of the mouse cursor when
+it is on the hot-spot.
@xref{Pointer Shape}, for available pointer shapes.
When you click the mouse when the mouse pointer is over a hot-spot, an
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index 9d99236b629..7d7bfa0ab6e 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -784,7 +784,7 @@ Frames
* Mouse Position:: Asking where the mouse is, or moving it.
* Pop-Up Menus:: Displaying a menu for the user to select from.
* Dialog Boxes:: Displaying a box to ask yes or no.
-* Pointer Shapes:: Specifying the shape of the mouse pointer.
+* Pointer Shape:: Specifying the shape of the mouse pointer.
* Window System Selections::Transferring text to and from other windows.
* Color Names:: Getting the definitions of color names.
* Text Terminal Colors:: Defining colors for text-only terminals.
@@ -1003,7 +1003,6 @@ Emacs Display
for text characters: font, colors, etc.
* Fringes:: Controlling window fringes.
* Scroll Bars:: Controlling vertical scroll bars.
-* Pointer Shape:: Controlling the mouse pointer shape.
* Display Property:: Enabling special display features.
* Images:: Displaying images in Emacs buffers.
* Buttons:: Adding clickable buttons to Emacs buffers.
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 2c2b8e10641..a433203a93e 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -62,7 +62,7 @@ The frame is displayed on an MS-DOS terminal.
* Mouse Position:: Asking where the mouse is, or moving it.
* Pop-Up Menus:: Displaying a menu for the user to select from.
* Dialog Boxes:: Displaying a box to ask yes or no.
-* Pointer Shapes:: Specifying the shape of the mouse pointer.
+* Pointer Shape:: Specifying the shape of the mouse pointer.
* Window System Selections:: Transferring text to and from other X clients.
* Drag and Drop:: Internals of Drag-and-Drop implementation.
* Color Names:: Getting the definitions of color names.
@@ -1564,30 +1564,49 @@ for instance using the window manager, then this produces a quit and
@code{x-popup-dialog} does not return.
@end defun
-@node Pointer Shapes
-@section Pointer Shapes
+@node Pointer Shape
+@section Pointer Shape
@cindex pointer shape
@cindex mouse pointer shape
- These variables specify which shape to use for the mouse pointer in
-various situations, when using the X Window System:
+ You can specify the mouse pointer style for particular text or
+images using the @code{pointer} text property, and for images with the
+@code{:pointer} and @code{:map} image properties. The values you can
+use in these properties are @code{text} (or @code{nil}), @code{arrow},
+@code{hand}, @code{vdrag}, @code{hdrag}, @code{modeline}, and
+@code{hourglass}. @code{text} stands for the usual mouse pointer
+style used over text.
+
+ Over void parts of the window (parts that do not correspond to any
+of the buffer contents), the mouse pointer usually uses the
+@code{arrow} style, but you can specify a different style (one of
+those above) by setting @code{void-text-area-pointer}.
+
+@defvar void-text-area-pointer
+@tindex void-text-area-pointer
+This variable specifies the mouse pointer style for void text areas.
+These include the areas after the end of a line or below the last line
+in the buffer. The default is to use the @code{arrow} (non-text)
+pointer style.
+@end defvar
-@table @code
-@item x-pointer-shape
-@vindex x-pointer-shape
-This variable specifies the pointer shape to use ordinarily in the Emacs
-frame.
+ You can specify what the @code{text} pointer style really looks like
+by setting the variable @code{x-pointer-shape}.
-@item x-sensitive-text-pointer-shape
-@vindex x-sensitive-text-pointer-shape
+@defvar x-pointer-shape
+This variable specifies the pointer shape to use ordinarily in the
+Emacs frame, for the @code{text} pointer style.
+@end defvar
+
+@defvar x-sensitive-text-pointer-shape
This variable specifies the pointer shape to use when the mouse
is over mouse-sensitive text.
-@end table
+@end defvar
These variables affect newly created frames. They do not normally
-affect existing frames; however, if you set the mouse color of a frame,
-that also updates its pointer shapes based on the current values of
-these variables. @xref{Color Parameters}.
+affect existing frames; however, if you set the mouse color of a
+frame, that also installs the current value of those two variables.
+@xref{Color Parameters}.
The values you can use, to specify either of these pointer shapes, are
defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos
diff --git a/lispref/gpl.texi b/lispref/gpl.texi
index efd43cdefcf..d3ffb26719b 100644
--- a/lispref/gpl.texi
+++ b/lispref/gpl.texi
@@ -67,9 +67,9 @@ modification follow.
@iftex
@unnumberedsec Terms and Conditions for Copying, Distribution and Modification
@end iftex
-@ifinfo
+@ifnottex
@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end ifinfo
+@end ifnottex
@enumerate 0
@item
@@ -292,9 +292,9 @@ of promoting the sharing and reuse of software generally.
@iftex
@heading NO WARRANTY
@end iftex
-@ifinfo
+@ifnottex
@center NO WARRANTY
-@end ifinfo
+@end ifnottex
@item
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
@@ -322,9 +322,9 @@ POSSIBILITY OF SUCH DAMAGES.
@iftex
@heading END OF TERMS AND CONDITIONS
@end iftex
-@ifinfo
+@ifnottex
@center END OF TERMS AND CONDITIONS
-@end ifinfo
+@end ifnottex
@page
@unnumberedsec How to Apply These Terms to Your New Programs
diff --git a/lispref/hooks.texi b/lispref/hooks.texi
index 410e975ad57..842211d6be5 100644
--- a/lispref/hooks.texi
+++ b/lispref/hooks.texi
@@ -305,7 +305,7 @@ Manual}.
@item today-invisible-calendar-hook
@iftex
-@infref{Calendar Customizing,, emacs-xtra}.
+@inforef{Calendar Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing,,, emacs}.
diff --git a/lispref/searching.texi b/lispref/searching.texi
index 505122fdd16..e93cee42a3b 100644
--- a/lispref/searching.texi
+++ b/lispref/searching.texi
@@ -1264,6 +1264,12 @@ subexpression is numbered 1, the second 2, and so on. Only regular
expressions can have subexpressions---after a simple string search, the
only information available is about the entire match.
+ Every successful search sets the match data. Therefore, you should
+query the match data immediately after searching, before calling any
+other function that might perform another search. Alternatively, you
+may save and restore the match data (@pxref{Saving Match Data}) around
+the call to functions that could perform another search.
+
A search which fails may or may not alter the match data. In the
past, a failing search did not do this, but we may change it in the
future. So don't try to rely on the value of the match data after
diff --git a/lispref/syntax.texi b/lispref/syntax.texi
index 1575ebeb850..9a763b7357a 100644
--- a/lispref/syntax.texi
+++ b/lispref/syntax.texi
@@ -662,10 +662,9 @@ string, or the end of a comment or a string, whichever comes first.
@cindex parse state
The fifth argument @var{state} is a ten-element list of the same form
-as the value of this function, described below. (It is OK to omit the
-last two elements of this list.) The return value of one call may be
-used to initialize the state of the parse on another call to
-@code{parse-partial-sexp}.
+as the value of this function, described below. The return value of
+one call may be used to initialize the state of the parse on another
+call to @code{parse-partial-sexp}.
The result is a list of ten elements describing the final state of
the parse:
@@ -721,11 +720,13 @@ this element is @code{nil}.
Internal data for continuing the parsing. The meaning of this
data is subject to change; it is used if you pass this list
as the @var{state} argument to another call.
-
@end enumerate
-Elements 0, 3, 4, 5, 7 and 9 are significant in the argument
-@var{state}.
+Elements 1, 2, and 6 are ignored in the argument @var{state}. Element
+8 is used only to set the corresponding element of the return value,
+in certain simple cases. Element 9 is used only to set element 1 of
+the return value, in trivial cases where parsing starts and stops
+within the same pair of parentheses.
@cindex indenting with parentheses
This function is most often used to compute indentation for languages
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 0bd79a323c7..0a8480b7724 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,13 @@
+2006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * xlwmenu.c: Include xterm.h if emacs instead of declaring functions
+ used.
+ (string_width): Declare as static.
+ (Start, pop_up_menu): Set is_hint to 0 before calling
+ handle_motion_event.
+ (pop_up_menu): Return value and parameters for x_catch_errors and
+ x_uncatch_errors changed.
+
2005-09-27 Dan Nicolaescu <dann@ics.uci.edu>
* xlwmenu.c (find_next_selectable):
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 7b35f0ce62a..1a0dcf7d0b3 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -53,21 +53,8 @@ extern int gray_bitmap_width;
extern int gray_bitmap_height;
extern char *gray_bitmap_bits;
-/* Defined in xterm.c. */
-extern int x_alloc_nearest_color_for_widget __P ((Widget, Colormap, XColor*));
-extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap,
- unsigned long *,
- double, int));
-extern int x_catch_errors __P ((Display*));
-extern void x_uncatch_errors P_ ((Display *, int));
-extern int x_had_errors_p __P ((Display*));
-extern void x_clear_errors __P ((Display*));
-extern unsigned long x_copy_dpy_color __P ((Display *, Colormap,
- unsigned long));
-
-/* Defined in xfaces.c. */
-extern void x_free_dpy_colors __P ((Display *, Screen *, Colormap,
- unsigned long *pixels, int npixels));
+#include "xterm.h"
+
#else /* not emacs */
#include <X11/bitmaps/gray>
@@ -352,7 +339,7 @@ make_old_stack_space (mw, n)
}
/* Size code */
-int
+static int
string_width (mw, s)
XlwMenuWidget mw;
char *s;
@@ -2098,6 +2085,7 @@ Start (w, ev, params, num_params)
mw->menu.windows [0].y = ev->xmotion.y_root - ev->xmotion.y;
/* handles the down like a move, slots are compatible */
+ ev->xmotion.is_hint = 0;
handle_motion_event (mw, &ev->xmotion);
}
}
@@ -2435,7 +2423,6 @@ pop_up_menu (mw, event)
int borderwidth = mw->menu.shadow_thickness;
Screen* screen = XtScreen (mw);
Display *display = XtDisplay (mw);
- int count;
next_release_must_exit = 0;
@@ -2482,7 +2469,7 @@ pop_up_menu (mw, event)
}
#ifdef emacs
- count = x_catch_errors (display);
+ x_catch_errors (display);
#endif
if (XtGrabPointer ((Widget)mw, False,
(PointerMotionMask
@@ -2510,9 +2497,10 @@ pop_up_menu (mw, event)
pointer_grabbed = 0;
XtUngrabPointer ((Widget)mw, event->time);
}
- x_uncatch_errors (display, count);
+ x_uncatch_errors ();
#endif
+ ((XMotionEvent*)event)->is_hint = 0;
handle_motion_event (mw, (XMotionEvent*)event);
}
diff --git a/man/ChangeLog b/man/ChangeLog
index 1f716090c73..a20d1bf4356 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,42 @@
+2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * frames.texi (Menu Bars, Tool Bars): Add index entries.
+
+2006-05-20 Richard Stallman <rms@gnu.org>
+
+ * dired.texi (Dired Navigation): dired-goto-file is now j.
+
+2006-05-20 Luc Teirlinck <teirllm@auburn.edu>
+
+ * dired-x.texi: ifinfo -> ifnottex.
+
+2006-05-20 Eli Zaretskii <eliz@gnu.org>
+
+ * mule.texi (Coding Systems): Mention the undecided-* coding systems
+ and their aliases.
+
+ * msdog.texi (Windows Printing): Mention non-support of plain text
+ printing with some el-cheapo printers, and suggest a workaround.
+
+2006-05-20 Kevin Ryde <user42@zip.com.au>
+
+ * text.texi (TeX Print): tex-dvi-view-command has a default value,
+ remove the bit saying you must set it.
+
+2006-05-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * trouble.texi (Checklist):
+ * text.texi (Text, Auto Fill, Text Mode):
+ * search.texi (Nonincremental Search):
+ * rmail.texi (Rmail Labels):
+ * mule.texi (Input Methods, Multibyte Conversion):
+ * misc.texi (Gnus, Where to Look, PostScript):
+ * maintaining.texi (Create Tags Table):
+ * indent.texi (Indentation Commands):
+ * fixit.texi (Spelling):
+ * emacs.texi (Copying):
+ * custom.texi (Init File): ifinfo -> ifnottex.
+
2006-05-18 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Saving Articles): Clarify gnus-summary-save-article-mail.
@@ -34,8 +73,8 @@
2006-05-12 Eli Zaretskii <eliz@gnu.org>
* calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
- (Displaying the Diary, Special Diary Entries, Importing Diary):
- * building.texi (Compilation Shell):
+ (Displaying the Diary, Special Diary Entries, Importing Diary):
+ * building.texi (Compilation Shell):
* buffers.texi (Several Buffers) [iftex]: Replace @xref's to
emacs-xtra with @inforef's.
diff --git a/man/custom.texi b/man/custom.texi
index 78a51716031..fc9fb51c0d6 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -2111,10 +2111,10 @@ for more information about compiling Emacs Lisp programs.
If you are going to write actual Emacs Lisp programs that go beyond
minor customization, you should read the @cite{Emacs Lisp Reference Manual}.
-@ifinfo
+@ifnottex
@xref{Top, Emacs Lisp, Emacs Lisp, elisp, the Emacs Lisp Reference
Manual}.
-@end ifinfo
+@end ifnottex
@menu
* Init Syntax:: Syntax of constants in Emacs Lisp.
diff --git a/man/dired-x.texi b/man/dired-x.texi
index 54069716797..157ec168d8c 100644
--- a/man/dired-x.texi
+++ b/man/dired-x.texi
@@ -94,7 +94,7 @@ notice identical to this one except for the removal of this paragraph
@page
-@ifinfo
+@ifnottex
@node Top
@comment node-name, next, previous, up
@@ -145,7 +145,7 @@ For @file{dired-x.el} revision 2
@end menu
-@end ifinfo
+@end ifnottex
@node Introduction, Installation, Top, Top
@comment node-name, next, previous, up
@@ -162,12 +162,12 @@ the code using @code{gmhist} history functions was replaced with code using
the mini-buffer history now built into GNU Emacs. Finally, a few other
features have been added and a few more functions have been bound to keys.
-@ifinfo
+@ifnottex
@menu
* Features::
* Technical Details::
@end menu
-@end ifinfo
+@end ifnottex
@node Features, Technical Details, , Introduction
@comment node-name, next, previous, up
@@ -279,12 +279,12 @@ initialization file @file{default.el} in the @file{site-lisp} directory, put
This will load @file{dired-x.el} when Dired is first invoked (for example,
when you first type @kbd{C-x d}).
-@ifinfo
+@ifnottex
@menu
* Optional Installation Dired Jump::
* Optional Installation File At Point::
@end menu
-@end ifinfo
+@end ifnottex
@node Optional Installation Dired Jump, Optional Installation File At Point, , Installation
@comment node-name, next, previous, up
@@ -409,13 +409,13 @@ In order to make Dired Omit work you first need to load @file{dired-x.el}
inside @code{dired-load-hook} (@pxref{Installation}) and then evaluate
@code{(dired-omit-mode 1)} in some way (@pxref{Omitting Variables}).
-@ifinfo
+@ifnottex
@menu
* Omitting Variables::
* Omitting Examples::
* Omitting Technical::
@end menu
-@end ifinfo
+@end ifnottex
@node Omitting Variables, Omitting Examples, , Omitting Files in Dired
@comment node-name, next, previous, up
@@ -839,13 +839,13 @@ Flag all files with a certain extension for deletion. A @samp{.} is
@emph{not} automatically prepended to the string entered.
@end table
-@ifinfo
+@ifnottex
@menu
* Advanced Cleaning Functions::
* Advanced Cleaning Variables::
* Special Marking Function::
@end menu
-@end ifinfo
+@end ifnottex
@node Advanced Cleaning Functions, Advanced Cleaning Variables, , Advanced Mark Commands
@comment node-name, next, previous, up
diff --git a/man/dired.texi b/man/dired.texi
index 1e3582bebb0..9bb57b38279 100644
--- a/man/dired.texi
+++ b/man/dired.texi
@@ -96,8 +96,8 @@ so common in Dired that it deserves to be easy to type.) @key{DEL}
(move up and unflag) is often useful simply for moving up.
@findex dired-goto-file
-@kindex M-g @r{(Dired)}
- @kbd{M-g} (@code{dired-goto-file}) moves point to the line that
+@kindex j @r{(Dired)}
+ @kbd{j} (@code{dired-goto-file}) moves point to the line that
describes a specified file or directory.
Some additional navigation commands are available when the Dired
diff --git a/man/emacs.texi b/man/emacs.texi
index 7843788a99b..047a3b849d9 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -1227,9 +1227,9 @@ modification follow.
@iftex
@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@end iftex
-@ifinfo
+@ifnottex
@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end ifinfo
+@end ifnottex
@enumerate 0
@item
@@ -1452,9 +1452,9 @@ of promoting the sharing and reuse of software generally.
@iftex
@heading NO WARRANTY
@end iftex
-@ifinfo
+@ifnottex
@center NO WARRANTY
-@end ifinfo
+@end ifnottex
@item
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
@@ -1482,9 +1482,9 @@ POSSIBILITY OF SUCH DAMAGES.
@iftex
@heading END OF TERMS AND CONDITIONS
@end iftex
-@ifinfo
+@ifnottex
@center END OF TERMS AND CONDITIONS
-@end ifinfo
+@end ifnottex
@page
@unnumberedsec How to Apply These Terms to Your New Programs
diff --git a/man/files.texi b/man/files.texi
index 65edbc22e36..3eb413b4687 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -261,17 +261,17 @@ copies the file into the displayed directory. For details, see
you had visited an existing empty file. If you make any changes and
save them, the file is created.
- Emacs recognizes from the contents of a file which convention it uses
-to separate lines---newline (used on GNU/Linux and on Unix),
-carriage-return linefeed (used on Microsoft systems), or just
-carriage-return (used on the Macintosh)---and automatically converts the
-contents to the normal Emacs convention, which is that the newline
-character separates lines. This is a part of the general feature of
-coding system conversion (@pxref{Coding Systems}), and makes it possible
-to edit files imported from different operating systems with
-equal convenience. If you change the text and save the file, Emacs
-performs the inverse conversion, changing newlines back into
-carriage-return linefeed or just carriage-return if appropriate.
+ Emacs recognizes from the contents of a file which end-of-line
+convention it uses to separate lines---newline (used on GNU/Linux and
+on Unix), carriage-return linefeed (used on Microsoft systems), or
+just carriage-return (used on the Macintosh)---and automatically
+converts the contents to the normal Emacs convention, which is that
+the newline character separates lines. This is a part of the general
+feature of coding system conversion (@pxref{Coding Systems}), and
+makes it possible to edit files imported from different operating
+systems with equal convenience. If you change the text and save the
+file, Emacs performs the inverse conversion, changing newlines back
+into carriage-return linefeed or just carriage-return if appropriate.
@vindex find-file-run-dired
If the file you specify is actually a directory, @kbd{C-x C-f} invokes
diff --git a/man/fixit.texi b/man/fixit.texi
index fed37ce9705..1d7c1b6eb41 100644
--- a/man/fixit.texi
+++ b/man/fixit.texi
@@ -267,9 +267,9 @@ case-convert it and go on typing. @xref{Case}.@refill
This section describes the commands to check the spelling of a single
word or of a portion of a buffer. These commands work with the spelling
checker programs Aspell and Ispell, which are not part of Emacs.
-@ifinfo
+@ifnottex
@xref{Top, Aspell,, aspell, The Aspell Manual}.
-@end ifinfo
+@end ifnottex
@table @kbd
@item M-x flyspell-mode
diff --git a/man/frames.texi b/man/frames.texi
index 227aab7559d..2b53bd58d2d 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -865,6 +865,8 @@ protocol, are currently supported.
@section Menu Bars
@cindex Menu Bar mode
@cindex mode, Menu Bar
+@findex menu-bar-mode
+@vindex menu-bar-mode
You can turn display of menu bars on or off with @kbd{M-x
menu-bar-mode} or by customizing the variable @code{menu-bar-mode}.
@@ -904,6 +906,8 @@ global tool bar.
XPM icons if Emacs was built with XPM support. Otherwise, the tool
bar uses monochrome icons (PBM or XBM format).
+@findex tool-bar-mode
+@vindex tool-bar-mode
You can turn display of tool bars on or off with @kbd{M-x
tool-bar-mode} or by customizing the option @code{tool-bar-mode}.
diff --git a/man/indent.texi b/man/indent.texi
index 319244bface..d5c69daa192 100644
--- a/man/indent.texi
+++ b/man/indent.texi
@@ -154,9 +154,9 @@ point, until it is underneath the next indentation point in the previous line.
An indentation point is the end of a sequence of whitespace or the end of
the line. If point is farther right than any indentation point in the
previous line, @code{indent-relative} runs @code{tab-to-tab-stop}
-@ifinfo
+@ifnottex
(@pxref{Tab Stops}),
-@end ifinfo
+@end ifnottex
@iftex
(see next section),
@end iftex
diff --git a/man/maintaining.texi b/man/maintaining.texi
index 1307ce6a229..42af2f93aeb 100644
--- a/man/maintaining.texi
+++ b/man/maintaining.texi
@@ -355,9 +355,9 @@ the syntax of several languages, as described in
@iftex
the previous section.
@end iftex
-@ifinfo
+@ifnottex
@ref{Tag Syntax}.
-@end ifinfo
+@end ifnottex
Here is how to run @code{etags}:
@example
diff --git a/man/misc.texi b/man/misc.texi
index 9e5d2835e20..b8c3c133a60 100644
--- a/man/misc.texi
+++ b/man/misc.texi
@@ -30,9 +30,9 @@ Usenet news. It can also be used to read and respond to messages from a
number of other sources---mail, remote directories, digests, and so on.
Here we introduce Gnus and describe several basic features.
-@ifinfo
+@ifnottex
For full details, see @ref{Top, Gnus,, gnus, The Gnus Manual}.
-@end ifinfo
+@end ifnottex
@iftex
For full details on Gnus, type @kbd{M-x info} and then select the Gnus
manual.
@@ -238,10 +238,10 @@ for @var{regexp}.
@c Too many references to the name of the manual if done with xref in TeX!
Gnus is powerful and customizable. Here are references to a few
-@ifinfo
+@ifnottex
additional topics:
-@end ifinfo
+@end ifnottex
@iftex
additional topics in @cite{The Gnus Manual}:
@@ -274,7 +274,7 @@ Send an article to a newsgroup.@*
See section ``Composing Messages.''
@end itemize
@end iftex
-@ifinfo
+@ifnottex
@itemize @bullet
@item
Follow discussions on specific topics.@*
@@ -304,7 +304,7 @@ name, subject, or string in the body of the articles.@*
Send an article to a newsgroup.@*
@xref{Composing Messages, , , gnus, The Gnus Manual}.
@end itemize
-@end ifinfo
+@end ifnottex
@end ignore
@node Shell, Emacs Server, Gnus, Top
@@ -1503,9 +1503,9 @@ rendition of the current buffer as a cursive handwritten document. It
can be customized in group @code{handwrite}. This function only
supports ISO 8859-1 characters.
-@ifinfo
+@ifnottex
The following section describes variables for customizing these commands.
-@end ifinfo
+@end ifnottex
@node PostScript Variables, Printing Package, PostScript, Printing
@section Variables for PostScript Hardcopy
diff --git a/man/msdog.texi b/man/msdog.texi
index 0dfb57ffdc9..17185e952a0 100644
--- a/man/msdog.texi
+++ b/man/msdog.texi
@@ -328,6 +328,12 @@ the default directory of the current buffer, so if the file name in
files, each one in the directory of the buffer from which the printing
was done.
+ If the value of @code{printer-name} is correct, but printing does
+not produce the hardcopy on your printer, it is possible that your
+printer does not support printing plain text (some cheap printers omit
+this functionality). In that case, as a workaround, try the
+PostScript print commands, described below, to the same printer
+
@findex print-buffer @r{(MS-DOS)}
@findex print-region @r{(MS-DOS)}
@vindex lpr-headers-switches @r{(MS-DOS)}
diff --git a/man/mule.texi b/man/mule.texi
index e2dd270c772..c2f789ec800 100644
--- a/man/mule.texi
+++ b/man/mule.texi
@@ -429,9 +429,9 @@ immediately delete it. For example, you could type @kbd{e e @key{DEL}
Another method, more general but not quite as easy to type, is to use
@kbd{C-\ C-\} between two characters to stop them from combining. This
is the command @kbd{C-\} (@code{toggle-input-method}) used twice.
-@ifinfo
+@ifnottex
@xref{Select Input Method}.
-@end ifinfo
+@end ifnottex
@cindex incremental search, input method interference
@kbd{C-\ C-\} is especially useful inside an incremental search,
@@ -563,9 +563,9 @@ through your choice of language environment
@iftex
(see above).
@end iftex
-@ifinfo
+@ifnottex
(@pxref{Language Environments}).
-@end ifinfo
+@end ifnottex
If you do not specify a choice, the default is Latin-1.
If you insert a character in the range 0200 through 0237, which
@@ -679,6 +679,13 @@ predictable. For example, the coding system @code{iso-latin-1} has
variants @code{iso-latin-1-unix}, @code{iso-latin-1-dos} and
@code{iso-latin-1-mac}.
+@cindex @code{undecided}, coding system
+ The coding systems @code{unix}, @code{dos}, and @code{mac} are
+aliases for @code{undecided-unix}, @code{undecided-dos}, and
+@code{undecided-mac}, respectively. These coding systems specify only
+the end-of-line conversion, and leave the character code conversion to
+be deduced from the text itself.
+
The coding system @code{raw-text} is good for a file which is mainly
@acronym{ASCII} text, but may contain byte values above 127 which are
not meant to encode non-@acronym{ASCII} characters. With
diff --git a/man/rmail.texi b/man/rmail.texi
index 3ad50ff3b71..5c6c2e5011b 100644
--- a/man/rmail.texi
+++ b/man/rmail.texi
@@ -550,9 +550,9 @@ labels. Any given label is either present or absent on a particular
message. A few label names have standard meanings and are given to
messages automatically by Rmail when appropriate; these special labels
are called @dfn{attributes}.
-@ifinfo
+@ifnottex
(@xref{Rmail Attributes}.)
-@end ifinfo
+@end ifnottex
All other labels are assigned only by users.
@table @kbd
diff --git a/man/search.texi b/man/search.texi
index 4ea3053dea7..88c31d5fc0b 100644
--- a/man/search.texi
+++ b/man/search.texi
@@ -372,9 +372,9 @@ specify is empty. (Such an empty argument would otherwise be
useless.) But it does not call @code{search-forward} right away. First
it checks the next input character to see if is @kbd{C-w},
which specifies a word search.
-@ifinfo
+@ifnottex
@xref{Word Search}.
-@end ifinfo
+@end ifnottex
@kbd{C-r @key{RET}} does likewise, for a reverse incremental search.
@findex search-forward
diff --git a/man/text.texi b/man/text.texi
index f9b1d312453..07ccac4b9a5 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -39,9 +39,9 @@ input to @TeX{}, you would use @TeX{}
@iftex
mode (@pxref{TeX Mode}).
@end iftex
-@ifinfo
+@ifnottex
mode.
-@end ifinfo
+@end ifnottex
For input to groff or nroff, use Nroff mode.
Instead of using a text formatter, you can edit formatted text in
@@ -473,9 +473,9 @@ automatically from the second or first line of a paragraph.
cannot merge lines. So editing in the middle of a paragraph can result in
a paragraph that is not correctly filled. The easiest way to make the
paragraph properly filled again is usually with the explicit fill commands.
-@ifinfo
+@ifnottex
@xref{Fill Commands}.
-@end ifinfo
+@end ifnottex
Many users like Auto Fill mode and want to use it in all text files.
The section on init files says how to arrange this permanently for yourself.
@@ -934,7 +934,7 @@ mode, Outline mode, and Mail mode. Hook functions on
@code{text-mode-hook} can look at the value of @code{major-mode} to see
which of these modes is actually being entered. @xref{Hooks}.
-@ifinfo
+@ifnottex
Emacs provides two other modes for editing text that is to be passed
through a text formatter to produce fancy formatted printed output.
@xref{Nroff Mode}, for editing input to the formatter nroff.
@@ -945,7 +945,7 @@ text at various levels of detail. You can view either the outline
headings alone or both headings and text; you can also hide some of the
headings at lower levels from view to make the high level structure more
visible. @xref{Outline Mode}.
-@end ifinfo
+@end ifnottex
@node Outline Mode
@section Outline Mode
@@ -1596,9 +1596,7 @@ directory, such as @code{"/tmp"}.
you can do so by setting the values of the variables @code{tex-run-command},
@code{latex-run-command}, @code{slitex-run-command},
@code{tex-dvi-print-command}, @code{tex-dvi-view-command}, and
-@code{tex-show-queue-command}. You @emph{must} set the value of
-@code{tex-dvi-view-command} for your particular terminal; this variable
-has no default value. The other variables have default values that may
+@code{tex-show-queue-command}. The default values may
(or may not) be appropriate for your system.
Normally, the file name given to these commands comes at the end of
diff --git a/man/trouble.texi b/man/trouble.texi
index 9e09dac4d43..a462c2468b7 100644
--- a/man/trouble.texi
+++ b/man/trouble.texi
@@ -890,10 +890,10 @@ understand it at all. And if we can't understand what bug you are
trying to fix, or why your patch should be an improvement, we mustn't
install it.
-@ifinfo
+@ifnottex
@xref{Sending Patches}, for guidelines on how to make it easy for us to
understand and install your patches.
-@end ifinfo
+@end ifnottex
@item
A guess about what the bug is or what it depends on.
diff --git a/src/ChangeLog b/src/ChangeLog
index 5acc6313bbb..c2fdb389729 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,40 @@
+2006-05-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.c (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
+ (fn_keycode_to_keycode_table) [MAC_OSX]: New variable.
+ (mac_set_unicode_keystroke_event) [TARGET_API_MAC_CARBON]: New function.
+ (XTread_socket) [TARGET_API_MAC_CARBON]: Use it.
+ (XTread_socket) [MAC_OSX]: Try 'uchr' Unicode keyboard-layout
+ resource to backtranslate key with modifiers.
+ (XTread_socket): Don't set read_socket_inev around AEProcessAppleEvent.
+
+2006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * xterm.c: Remove declarations already in xterm.h
+
+ * xterm.h: Add extern declarations for x_clear_errors,
+ x_fully_uncatch_errors, x_catching_errors and
+ x_alloc_lighter_color_for_widget. Remove duplicated declarations.
+
+2006-05-21 Richard Stallman <rms@gnu.org>
+
+ * buffer.c (syms_of_buffer, Fmake_overlay): Doc fixes.
+
+2006-05-20 Kim F. Storm <storm@cua.dk>
+
+ * xfaces.c (best_matching_font): Fix crash in 2006-05-17 change.
+
+2006-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.c (convert_fn_keycode): Fix last change.
+
+2006-05-19 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (init_environment): Perform the processing of environment
+ variables on a copy of default variables and their values, not on
+ the original. Simplify code that calls ExpandEnvironmentStrings
+ and make buf1[] and buf2[] more visible for easier debugging.
+
2006-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* frame.c (x_set_border_width): Remove #ifndef MAC_OS.
@@ -49,6 +86,13 @@
* xdisp.c (display_tool_bar_line): Don't adjust tool-bar height by more than
height of one frame default line.
+2006-05-17 Richard Stallman <rms@gnu.org>
+
+ * xfaces.c (better_font_p): Any font beats no font.
+ (best_matching_font): Simplify based on above change.
+
+ * buffer.c (Fprevious_overlay_change, Fnext_overlay_change): Doc fixes.
+
2006-05-16 Kim F. Storm <storm@cua.dk>
* xterm.c (handle_one_xevent): Check that f is not NULL before
@@ -113,7 +157,7 @@
[MAC_OS] (gif_load): Emulate Graphic Control Extension block.
* macfns.c (x_to_mac_color): Fix shift amount change.
- [USE_MAC_FONT_PANEL] (mac_set_font): Use x_get_focus_frame.
+ (mac_set_font) [USE_MAC_FONT_PANEL]: Use x_get_focus_frame.
[USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility): Doc fix.
* macselect.c (Vmac_service_selection) [MAC_OSX]: Rename from
diff --git a/src/buffer.c b/src/buffer.c
index 6317c14d393..3dff44a6b86 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3584,10 +3584,10 @@ If omitted, BUFFER defaults to the current buffer.
BEG and END may be integers or markers.
The fourth arg FRONT-ADVANCE, if non-nil, makes the marker
for the front of the overlay advance when text is inserted there
-(which means the text *is not* included in the overlay).
+\(which means the text *is not* included in the overlay).
The fifth arg REAR-ADVANCE, if non-nil, makes the marker
for the rear of the overlay advance when text is inserted there
-(which means the text *is* included in the overlay). */)
+\(which means the text *is* included in the overlay). */)
(beg, end, buffer, front_advance, rear_advance)
Lisp_Object beg, end, buffer;
Lisp_Object front_advance, rear_advance;
@@ -5769,7 +5769,7 @@ the actual bitmap shown in the left or right fringe for the logical
indicator. LEFT and RIGHT are the bitmaps shown in the left and/or
right fringe for the specific indicator. The LEFT1 or RIGHT1 bitmaps
are used only for the `bottom' and `one-line' indicators when the last
-(only) line in has no final newline. BITMAPS may also be a single
+\(only) line in has no final newline. BITMAPS may also be a single
symbol which is used in both left and right fringes. */);
DEFVAR_PER_BUFFER ("fringe-cursor-alist",
@@ -6016,7 +6016,7 @@ this variable has no effect; the cursor appears as a hollow box. */);
doc: /* Additional space to put between lines when displaying a buffer.
The space is measured in pixels, and put below lines on window systems.
If value is a floating point number, it specifies the spacing relative
-to the default frame line height. */);
+to the default frame line height. nil means add no extra space. */);
DEFVAR_PER_BUFFER ("cursor-in-non-selected-windows",
&current_buffer->cursor_in_non_selected_windows, Qnil,
diff --git a/src/coding.h b/src/coding.h
index be68753acb2..81dcb7f08ad 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -462,7 +462,10 @@ struct coding_system
|| (coding)->common_flags & CODING_REQUIRE_DECODING_MASK)
/* Return 1 if the coding system CODING requires code conversion on
- encoding. */
+ encoding.
+ The non-multibyte part of the condition is to support encoding of
+ unibyte strings/buffers generated by string-as-unibyte or
+ (set-buffer-multibyte nil) from multibyte strings/buffers. */
#define CODING_REQUIRE_ENCODING(coding) \
((coding)->src_multibyte \
|| (coding)->common_flags & CODING_REQUIRE_ENCODING_MASK)
diff --git a/src/intervals.c b/src/intervals.c
index e69ff701387..20c4c191a93 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -2016,6 +2016,10 @@ set_point_both (buffer, charpos, bytepos)
register INTERVAL to, from, toprev, fromprev;
int buffer_point;
int old_position = BUF_PT (buffer);
+ /* This ensures that we move forward past intangible text when the
+ initial position is the same as the destination, in the rare
+ instances where this is important, e.g. in line-move-finish
+ (simple.el). */
int backwards = (charpos < old_position ? 1 : 0);
int have_overlays;
int original_position;
diff --git a/src/macterm.c b/src/macterm.c
index 68959758e98..e793e5d04f0 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -9629,7 +9629,12 @@ keycode_to_xkeysym (int keyCode, int *xKeySym)
return *xKeySym != 0;
}
-static unsigned char fn_keycode_to_xkeysym_table[] = {
+#ifdef MAC_OSX
+/* Table for translating Mac keycode with the laptop `fn' key to that
+ without it. Destination symbols in comments are keys on US
+ keyboard, and they may not be the same on other types of
+ keyboards. */
+static unsigned char fn_keycode_to_keycode_table[] = {
/*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*0x20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9639,113 +9644,27 @@ static unsigned char fn_keycode_to_xkeysym_table[] = {
/*0x38*/ 0, 0, 0, 0,
/*0x3C*/ 0, 0, 0, 0,
- /*0x40*/ 0, 0x2e /*kp-. = .*/, 0, 0x50 /*kp-* = 'p'*/,
- /*0x44*/ 0, '/' /*kp-+*/, 0, 0,
- /*0x48*/ 0, 0, 0, 0x30 /*kp-/ = '0'*/,
- /*0x4C*/ 0, 0, 0x3b /*kp-- = ';'*/, 0,
+ /*0x40*/ 0, 0x2f /*kp-. -> '.'*/, 0, 0x23 /*kp-* -> 'p'*/,
+ /*0x44*/ 0, 0x2c /*kp-+ -> '/'*/, 0, 0x16 /*clear -> '6'*/,
+ /*0x48*/ 0, 0, 0, 0x1d /*kp-/ -> '0'*/,
+ /*0x4C*/ 0x24 /*kp-enter -> return*/, 0, 0x29 /*kp-- -> ';'*/, 0,
- /*0x50*/ 0, 0x2d /*kp-= = '-'*/, 0x6d /*kp-0 = 'm'*/, 0x6a /*kp-1 = 'j'*/,
- /*0x54*/ 0x6b /*kp-2 = 'k'*/, 0x6c /*kp-3 = 'l'*/, 'u' /*kp-4*/, 'i' /*kp-5*/,
- /*0x58*/ 'o' /*kp-6*/, '7' /*kp-7*/, 0, '8' /*kp-8*/,
- /*0x5C*/ '9' /*kp-9*/, 0, 0, 0,
+ /*0x50*/ 0, 0x1b /*kp-= -> '-'*/, 0x2e /*kp-0 -> 'm'*/, 0x26 /*kp-1 -> 'j'*/,
+ /*0x54*/ 0x28 /*kp-2 -> 'k'*/, 0x25 /*kp-3 -> 'l'*/, 0x20 /*kp-4 -> 'u'*/, 0x22 /*kp-5 ->'i'*/,
+ /*0x58*/ 0x1f /*kp-6 -> 'o'*/, 0x1a /*kp-7 -> '7'*/, 0, 0x1c /*kp-8 -> '8'*/,
+ /*0x5C*/ 0x19 /*kp-9 -> '9'*/, 0, 0, 0,
/*0x60*/ 0, 0, 0, 0,
/*0x64*/ 0, 0, 0, 0,
/*0x68*/ 0, 0, 0, 0,
/*0x6C*/ 0, 0, 0, 0,
- /*0x70*/ 0, 0, 0, 0,
- /*0x74*/ 0, 0, 0, 0,
- /*0x78*/ 0, 0, 0, 0,
+ /*0x70*/ 0, 0, 0, 0x7b /*home -> left*/,
+ /*0x74*/ 0x7e /*pgup -> up*/, 0x33 /*delete -> backspace*/, 0, 0x7c /*end -> right*/,
+ /*0x78*/ 0, 0x7d /*pgdown -> down*/, 0, 0,
/*0x7C*/ 0, 0, 0, 0
};
-static int
-convert_fn_keycode (EventRef eventRef, int keyCode, int *newCode)
-{
-#ifdef MAC_OSX
- /* Use the special map to translate keys when function modifier is
- to be caught. KeyTranslate can't be used in that case.
- We can't detect the function key using the input_event.modifiers,
- because this uses the high word of an UInt32. Therefore,
- we'll just read it out of the original eventRef.
- */
-
-
- /* TODO / known issues
-
- - Fn-Shift-j is regonized as Fn-j and not Fn-J.
- The above table always translates to lower characters. We need to use
- the KCHR keyboard resource (KeyTranslate() ) to map k->K and 8->*.
-
- - The table is meant for English language keyboards, and it will work
- for many others with the exception of key combinations like Fn-ö on
- a German keyboard, which is currently mapped to Fn-;.
- How to solve this without keeping separate tables for all keyboards
- around? KeyTranslate isn't of much help here, as it only takes a 16-bit
- value for keycode with the modifiers in he high byte, i.e. no room for the
- Fn modifier. That's why we need the table.
-
- */
- OSStatus err;
- UInt32 mods = 0;
- if (!NILP(Vmac_function_modifier))
- {
- err = GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32,
- NULL, sizeof (UInt32), NULL, &mods);
- if (err != noErr && mods & kEventKeyModifierFnMask)
- { *newCode = fn_keycode_to_xkeysym_table [keyCode & 0x7f];
-
- return (*newCode != 0);
- }
- }
-#endif
- return false;
-}
-
-static int
-backtranslate_modified_keycode(int mods, int keycode, int def)
-{
- EventModifiers mapped_modifiers =
- (NILP (Vmac_control_modifier) ? 0 : controlKey)
- | (NILP (Vmac_option_modifier) ? 0 : optionKey)
- | (NILP (Vmac_command_modifier) ? 0 : cmdKey);
-
- if (mods & mapped_modifiers)
- {
- /* This code comes from Keyboard Resource,
- Appendix C of IM - Text. This is necessary
- since shift is ignored in KCHR table
- translation when option or command is pressed.
- It also does not translate correctly
- control-shift chars like C-% so mask off shift
- here also.
-
- Not done for combinations with the option key (alt)
- unless it is to be caught by Emacs: this is
- to preserve key combinations translated by the OS
- such as Alt-3.
- */
- /* Mask off modifier keys that are mapped to some Emacs
- modifiers. */
- int new_modifiers = mods & ~mapped_modifiers;
- /* set high byte of keycode to modifier high byte*/
- int new_keycode = keycode | new_modifiers;
- Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
- unsigned long some_state = 0;
- return (int) KeyTranslate (kchr_ptr, new_keycode,
- &some_state) & 0xff;
- /* TO DO: Recognize two separate resulting characters, "for
- example, when the user presses Option-E followed by N, you
- can map this through the KeyTranslate function using the
- U.S. 'KCHR' resource to produce ´n, which KeyTranslate
- returns as two characters in the bytes labeled Character code
- 1 and Character code 2." (from Carbon API doc) */
-
- }
- else
- return def;
-}
-
+#endif /* MAC_OSX */
#if !USE_CARBON_EVENTS
static RgnHandle mouse_region = NULL;
@@ -9819,6 +9738,44 @@ mac_post_mouse_moved_event ()
return err;
}
+
+static void
+mac_set_unicode_keystroke_event (code, buf)
+ UniChar code;
+ struct input_event *buf;
+{
+ int charset_id, c1, c2;
+
+ if (code < 0x80)
+ {
+ buf->kind = ASCII_KEYSTROKE_EVENT;
+ buf->code = code;
+ }
+ else if (code < 0x100)
+ {
+ if (code < 0xA0)
+ charset_id = CHARSET_8_BIT_CONTROL;
+ else
+ charset_id = charset_latin_iso8859_1;
+ buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+ buf->code = MAKE_CHAR (charset_id, code, 0);
+ }
+ else
+ {
+ if (code < 0x2500)
+ charset_id = charset_mule_unicode_0100_24ff,
+ code -= 0x100;
+ else if (code < 0x33FF)
+ charset_id = charset_mule_unicode_2500_33ff,
+ code -= 0x2500;
+ else if (code >= 0xE000)
+ charset_id = charset_mule_unicode_e000_ffff,
+ code -= 0xE000;
+ c1 = (code / 96) + 32, c2 = (code % 96) + 32;
+ buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+ buf->code = MAKE_CHAR (charset_id, c1, c2);
+ }
+}
#endif
/* Emacs calls this whenever it wants to read an input event from the
@@ -10338,55 +10295,39 @@ XTread_socket (sd, expected, hold_quit)
{
int keycode = (er.message & keyCodeMask) >> 8;
int xkeysym;
+ static SInt16 last_key_script = -1;
+ SInt16 current_key_script;
+ UInt32 modifiers = er.modifiers, mapped_modifiers;
+
+ mapped_modifiers =
+ (NILP (Vmac_control_modifier) ? 0 : controlKey)
+ | (NILP (Vmac_option_modifier) ? 0 : optionKey)
+ | (NILP (Vmac_command_modifier) ? 0 : cmdKey);
#if USE_CARBON_EVENTS && defined (MAC_OSX)
+ mapped_modifiers |=
+ (NILP (Vmac_function_modifier) ? 0 : kEventKeyModifierFnMask);
+
+ GetEventParameter (eventRef, kEventParamKeyModifiers,
+ typeUInt32, NULL,
+ sizeof (UInt32), NULL, &modifiers);
+
/* When using Carbon Events, we need to pass raw keyboard
events to the TSM ourselves. If TSM handles it, it
will pass back noErr, otherwise it will pass back
"eventNotHandledErr" and we can process it
normally. */
- if ((mac_pass_command_to_system
- || !(er.modifiers & cmdKey))
- && (mac_pass_control_to_system
- || !(er.modifiers & controlKey))
- && (NILP (Vmac_option_modifier)
- || !(er.modifiers & optionKey)))
+ if (!(modifiers
+ & mapped_modifiers
+ & ~(mac_pass_command_to_system ? cmdKey : 0)
+ & ~(mac_pass_control_to_system ? controlKey : 0)))
if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
!= eventNotHandledErr)
- break;
+ break;
#endif
if (er.what == keyUp)
break;
-#if 0
- if (dpyinfo->x_focus_frame == NULL)
- {
- /* Beep if keyboard input occurs when all the frames
- are invisible. */
- SysBeep (1);
- break;
- }
-#endif
-
- {
- static SInt16 last_key_script = -1;
- SInt16 current_key_script = GetScriptManagerVariable (smKeyScript);
-
- if (last_key_script != current_key_script)
- {
- struct input_event event;
-
- EVENT_INIT (event);
- event.kind = LANGUAGE_CHANGE_EVENT;
- event.arg = Qnil;
- event.code = current_key_script;
- event.timestamp = timestamp;
- kbd_buffer_store_event (&event);
- count++;
- }
- last_key_script = current_key_script;
- }
-
ObscureCursor ();
f = mac_focus_frame (dpyinfo);
@@ -10398,51 +10339,156 @@ XTread_socket (sd, expected, hold_quit)
dpyinfo->mouse_face_hidden = 1;
}
- /* translate the keycode back to determine the original key */
- /* Convert key code if function key is pressed.
- Otherwise, if non-ASCII-event, take care of that
- without re-translating the key code. */
-#if USE_CARBON_EVENTS
- if (convert_fn_keycode (eventRef, keycode, &xkeysym))
+ current_key_script = GetScriptManagerVariable (smKeyScript);
+ if (last_key_script != current_key_script)
{
- inev.code = xkeysym;
- /* this doesn't work - tried to add shift modifiers */
- inev.code =
- backtranslate_modified_keycode(er.modifiers & (~0x2200),
- xkeysym | 0x80, xkeysym);
- inev.kind = ASCII_KEYSTROKE_EVENT;
+ struct input_event event;
+
+ EVENT_INIT (event);
+ event.kind = LANGUAGE_CHANGE_EVENT;
+ event.arg = Qnil;
+ event.code = current_key_script;
+ event.timestamp = timestamp;
+ kbd_buffer_store_event (&event);
+ count++;
+ last_key_script = current_key_script;
}
- else
+
+#ifdef MAC_OSX
+ if (modifiers & kEventKeyModifierFnMask
+ && keycode <= 0x7f
+ && fn_keycode_to_keycode_table[keycode])
+ keycode = fn_keycode_to_keycode_table[keycode];
#endif
- if (keycode_to_xkeysym (keycode, &xkeysym))
- {
- inev.code = 0xff00 | xkeysym;
- inev.kind = NON_ASCII_KEYSTROKE_EVENT;
- }
- else
- {
- inev.code =
- backtranslate_modified_keycode(er.modifiers, keycode,
- er.message & charCodeMask);
- inev.kind = ASCII_KEYSTROKE_EVENT;
- }
- }
+ if (keycode_to_xkeysym (keycode, &xkeysym))
+ {
+ inev.kind = NON_ASCII_KEYSTROKE_EVENT;
+ inev.code = 0xff00 | xkeysym;
+ }
+ else if (modifiers & mapped_modifiers)
+ {
+ /* translate the keycode back to determine the
+ original key */
+#ifdef MAC_OSX
+ static SInt16 last_key_layout_id = 0;
+ static Handle uchr_handle = (Handle)-1;
+ SInt16 current_key_layout_id =
+ GetScriptVariable (current_key_script, smScriptKeys);
+
+ if (uchr_handle == (Handle)-1
+ || last_key_layout_id != current_key_layout_id)
+ {
+ uchr_handle = GetResource ('uchr', current_key_layout_id);
+ last_key_layout_id = current_key_layout_id;
+ }
+
+ if (uchr_handle)
+ {
+ OSStatus status;
+ UInt16 key_action = er.what - keyDown;
+ UInt32 modifier_key_state =
+ (modifiers & ~mapped_modifiers) >> 8;
+ UInt32 keyboard_type = LMGetKbdType ();
+ SInt32 dead_key_state = 0;
+ UniChar code;
+ UniCharCount actual_length;
+
+ status = UCKeyTranslate ((UCKeyboardLayout *)*uchr_handle,
+ keycode, key_action,
+ modifier_key_state,
+ keyboard_type,
+ kUCKeyTranslateNoDeadKeysMask,
+ &dead_key_state,
+ 1, &actual_length, &code);
+ if (status == noErr && actual_length == 1)
+ mac_set_unicode_keystroke_event (code, &inev);
+ }
+#endif /* MAC_OSX */
+
+ if (inev.kind == NO_EVENT)
+ {
+ /* This code comes from Keyboard Resource,
+ Appendix C of IM - Text. This is necessary
+ since shift is ignored in KCHR table
+ translation when option or command is pressed.
+ It also does not translate correctly
+ control-shift chars like C-% so mask off shift
+ here also. */
+ /* Mask off modifier keys that are mapped to some
+ Emacs modifiers. */
+ int new_modifiers = er.modifiers & ~mapped_modifiers;
+ /* set high byte of keycode to modifier high byte*/
+ int new_keycode = keycode | new_modifiers;
+ Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
+ unsigned long some_state = 0;
+ UInt32 new_char_code;
+
+ new_char_code = KeyTranslate (kchr_ptr, new_keycode,
+ &some_state);
+ if (new_char_code == 0)
+ /* Seems like a dead key. Append up-stroke. */
+ new_char_code = KeyTranslate (kchr_ptr,
+ new_keycode | 0x80,
+ &some_state);
+ if (new_char_code)
+ {
+ inev.kind = ASCII_KEYSTROKE_EVENT;
+ inev.code = new_char_code & 0xff;
+ }
+ }
+ }
+
+ if (inev.kind == NO_EVENT)
+ {
+ inev.kind = ASCII_KEYSTROKE_EVENT;
+ inev.code = er.message & charCodeMask;
+ }
#if USE_CARBON_EVENTS
- inev.modifiers = mac_event_to_emacs_modifiers (eventRef);
+ inev.modifiers = mac_event_to_emacs_modifiers (eventRef);
#else
- inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
+ inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
+#endif
+ inev.modifiers |= (extra_keyboard_modifiers
+ & (meta_modifier | alt_modifier
+ | hyper_modifier | super_modifier));
+ XSETFRAME (inev.frame_or_window, f);
+
+#if TARGET_API_MAC_CARBON
+ if (inev.kind == ASCII_KEYSTROKE_EVENT
+ && inev.code >= 0x80 && inev.modifiers)
+ {
+ OSStatus err;
+ TextEncoding encoding = kTextEncodingMacRoman;
+ TextToUnicodeInfo ttu_info;
+
+ UpgradeScriptInfoToTextEncoding (current_key_script,
+ kTextLanguageDontCare,
+ kTextRegionDontCare,
+ NULL, &encoding);
+ err = CreateTextToUnicodeInfoByEncoding (encoding, &ttu_info);
+ if (err == noErr)
+ {
+ UniChar code;
+ Str255 pstr;
+ ByteCount unicode_len;
+
+ pstr[0] = 1;
+ pstr[1] = inev.code;
+ err = ConvertFromPStringToUnicode (ttu_info, pstr,
+ sizeof (UniChar),
+ &unicode_len, &code);
+ if (err == noErr && unicode_len == sizeof (UniChar))
+ mac_set_unicode_keystroke_event (code, &inev);
+ DisposeTextToUnicodeInfo (&ttu_info);
+ }
+ }
#endif
- inev.modifiers |= (extra_keyboard_modifiers
- & (meta_modifier | alt_modifier
- | hyper_modifier | super_modifier));
- XSETFRAME (inev.frame_or_window, f);
+ }
break;
case kHighLevelEvent:
- read_socket_inev = &inev;
AEProcessAppleEvent (&er);
- read_socket_inev = NULL;
break;
default:
diff --git a/src/w32.c b/src/w32.c
index 71799befdbb..f11ffb7a785 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -950,11 +950,11 @@ init_environment (char ** argv)
struct stat ignored;
char default_home[MAX_PATH];
- static struct env_entry
+ static const struct env_entry
{
char * name;
char * def_value;
- } env_vars[] =
+ } dflt_envvars[] =
{
{"HOME", "C:/"},
{"PRELOAD_WINSOCK", NULL},
@@ -971,6 +971,17 @@ init_environment (char ** argv)
{"LANG", NULL},
};
+#define N_ENV_VARS sizeof(dflt_envvars)/sizeof(dflt_envvars[0])
+
+ /* We need to copy dflt_envvars[] and work on the copy because we
+ don't want the dumped Emacs to inherit the values of
+ environment variables we saw during dumping (which could be on
+ a different system). The defaults above must be left intact. */
+ struct env_entry env_vars[N_ENV_VARS];
+
+ for (i = 0; i < N_ENV_VARS; i++)
+ env_vars[i] = dflt_envvars[i];
+
/* For backwards compatibility, check if a .emacs file exists in C:/
If not, then we can try to default to the appdata directory under the
user's profile, which is more likely to be writable. */
@@ -1005,7 +1016,7 @@ init_environment (char ** argv)
LOCALE_SABBREVLANGNAME | LOCALE_USE_CP_ACP,
locale_name, sizeof (locale_name)))
{
- for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
+ for (i = 0; i < N_ENV_VARS; i++)
{
if (strcmp (env_vars[i].name, "LANG") == 0)
{
@@ -1069,7 +1080,7 @@ init_environment (char ** argv)
}
}
- for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
+ for (i = 0; i < N_ENV_VARS; i++)
{
if (!getenv (env_vars[i].name))
{
@@ -1084,20 +1095,17 @@ init_environment (char ** argv)
if (lpval)
{
- if (dwType == REG_EXPAND_SZ)
- {
- char buf1[SET_ENV_BUF_SIZE], buf2[SET_ENV_BUF_SIZE];
+ char buf1[SET_ENV_BUF_SIZE], buf2[SET_ENV_BUF_SIZE];
- ExpandEnvironmentStrings ((LPSTR) lpval, buf1, sizeof(buf1));
- _snprintf (buf2, sizeof(buf2)-1, "%s=%s", env_vars[i].name, buf1);
- _putenv (strdup (buf2));
- }
+ if (dwType == REG_EXPAND_SZ)
+ ExpandEnvironmentStrings ((LPSTR) lpval, buf1, sizeof(buf1));
else if (dwType == REG_SZ)
+ strcpy (buf1, lpval);
+ if (dwType == REG_EXPAND_SZ || dwType == REG_SZ)
{
- char buf[SET_ENV_BUF_SIZE];
-
- _snprintf (buf, sizeof(buf)-1, "%s=%s", env_vars[i].name, lpval);
- _putenv (strdup (buf));
+ _snprintf (buf2, sizeof(buf2)-1, "%s=%s", env_vars[i].name,
+ buf1);
+ _putenv (strdup (buf2));
}
if (!dont_free)
diff --git a/src/xfaces.c b/src/xfaces.c
index 0a77a24189f..1b9a9c079f1 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -6653,7 +6653,7 @@ best_matching_font (f, attrs, fonts, nfonts, width_ratio, needs_overstrike)
best = NULL;
/* Find the best match among the non-scalable fonts. */
- for (i = 1; i < nfonts; ++i)
+ for (i = 0; i < nfonts; ++i)
if (!font_scalable_p (fonts + i)
&& better_font_p (specified, fonts + i, best, 1, avgwidth))
{
@@ -6694,30 +6694,30 @@ best_matching_font (f, attrs, fonts, nfonts, width_ratio, needs_overstrike)
best = fonts + i;
}
}
-
- if (needs_overstrike)
- {
- enum xlfd_weight want_weight = specified[XLFD_WEIGHT];
- enum xlfd_weight got_weight = best->numeric[XLFD_WEIGHT];
-
- if (want_weight > XLFD_WEIGHT_MEDIUM && want_weight > got_weight)
- {
- /* We want a bold font, but didn't get one; try to use
- overstriking instead to simulate bold-face. However,
- don't overstrike an already-bold fontn unless the
- desired weight grossly exceeds the available weight. */
- if (got_weight > XLFD_WEIGHT_MEDIUM)
- *needs_overstrike = (got_weight - want_weight) > 2;
- else
- *needs_overstrike = 1;
- }
- }
}
/* We should have found SOME font. */
if (best == NULL)
abort ();
+ if (! exact_p && needs_overstrike)
+ {
+ enum xlfd_weight want_weight = specified[XLFD_WEIGHT];
+ enum xlfd_weight got_weight = best->numeric[XLFD_WEIGHT];
+
+ if (want_weight > XLFD_WEIGHT_MEDIUM && want_weight > got_weight)
+ {
+ /* We want a bold font, but didn't get one; try to use
+ overstriking instead to simulate bold-face. However,
+ don't overstrike an already-bold fontn unless the
+ desired weight grossly exceeds the available weight. */
+ if (got_weight > XLFD_WEIGHT_MEDIUM)
+ *needs_overstrike = (got_weight - want_weight) > 2;
+ else
+ *needs_overstrike = 1;
+ }
+ }
+
if (font_scalable_p (best))
font_name = build_scalable_font_name (f, best, pt);
else
@@ -7091,7 +7091,7 @@ realize_default_face (f)
face = realize_face (c, attrs, 0, NULL, DEFAULT_FACE_ID);
#ifdef HAVE_WINDOW_SYSTEM
-#ifdef HAVE_X_WINDOWS
+#ifdef HAVE_X_WINDOWS
if (FRAME_X_P (f) && face->font != FRAME_FONT (f))
/* As the font specified for the frame was not acceptable as a
font for the default face (perhaps because auto-scaled fonts
diff --git a/src/xterm.c b/src/xterm.c
index 356ee3b963b..cc06c48df33 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -324,22 +324,10 @@ static int x_alloc_nearest_color_1 P_ ((Display *, Colormap, XColor *));
static void x_set_window_size_1 P_ ((struct frame *, int, int, int));
static const XColor *x_color_cells P_ ((Display *, int *));
static void x_update_window_end P_ ((struct window *, int, int));
-void x_delete_display P_ ((struct x_display_info *));
static int x_io_error_quitter P_ ((Display *));
-void x_catch_errors P_ ((Display *));
-void x_uncatch_errors P_ ((void));
-void x_lower_frame P_ ((struct frame *));
-void x_scroll_bar_clear P_ ((struct frame *));
-int x_had_errors_p P_ ((Display *));
-void x_wm_set_size_hint P_ ((struct frame *, long, int));
-void x_raise_frame P_ ((struct frame *));
-void x_set_window_size P_ ((struct frame *, int, int, int));
-void x_wm_set_window_state P_ ((struct frame *, int));
-void x_wm_set_icon_pixmap P_ ((struct frame *, int));
static struct terminal *x_create_terminal P_ ((struct x_display_info *));
void x_delete_terminal P_ ((struct terminal *));
-void x_initialize P_ ((void));
static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
static int x_compute_min_glyph_bounds P_ ((struct frame *));
static void x_update_end P_ ((struct frame *));
diff --git a/src/xterm.h b/src/xterm.h
index b54c39f2fd0..03d7b630d65 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -961,10 +961,6 @@ void x_delete_display P_ ((struct x_display_info *));
void x_make_frame_visible P_ ((struct frame *));
void x_iconify_frame P_ ((struct frame *));
void x_wm_set_size_hint P_ ((struct frame *, long, int));
-void x_catch_errors P_ ((Display *));
-int x_had_errors_p P_ ((Display *));
-void x_uncatch_errors P_ ((void));
-void x_check_errors P_ ((Display *, char *));
int x_text_icon P_ ((struct frame *, char *));
int x_bitmap_icon P_ ((struct frame *, Lisp_Object));
void x_set_window_size P_ ((struct frame *, int, int, int));
@@ -980,7 +976,10 @@ extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object));
extern void x_catch_errors P_ ((Display *));
extern void x_check_errors P_ ((Display *, char *));
extern int x_had_errors_p P_ ((Display *));
+extern int x_catching_errors P_ ((void));
extern void x_uncatch_errors P_ ((void));
+extern void x_clear_errors P_ ((Display *));
+extern void x_fully_uncatch_errors P_ ((void));
extern void x_set_window_size P_ ((struct frame *, int, int, int));
extern void x_set_mouse_position P_ ((struct frame *, int, int));
extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int));
@@ -1000,6 +999,9 @@ extern void x_initialize P_ ((void));
extern unsigned long x_copy_color P_ ((struct frame *, unsigned long));
#ifdef USE_X_TOOLKIT
extern XtAppContext Xt_app_con;
+extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap,
+ unsigned long *,
+ double, int));
#endif
extern void x_query_colors P_ ((struct frame *f, XColor *, int));
extern void x_query_color P_ ((struct frame *f, XColor *));