Skip to content
Permalink
90204ec6ef
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
8803 lines (8802 sloc) 226 KB
%%
%% This is file `hyperref.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% hyperref.dtx (with options: `package')
%%
%% File: hyperref.dtx Copyright 1995-2001 Sebastian Rahtz,
%% with portions written by David Carlisle and Heiko Oberdiek,
%% 2001-2012 Heiko Oberdiek.
%%
%% This file is part of the `Hyperref Bundle'.
%% -------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Heiko Oberdiek.
%%
%% The list of all files belonging to the `Hyperref Bundle' is
%% given in the file `manifest.txt'.
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{hyperref}
[2012/11/06 v6.83m %
Hypertext links for LaTeX]
\begingroup
\@makeother\`%
\@makeother\=%
\edef\x{%
\edef\noexpand\x{%
\endgroup
\noexpand\toks@{%
\catcode 96=\noexpand\the\catcode`\noexpand\`\relax
\catcode 61=\noexpand\the\catcode`\noexpand\=\relax
}%
}%
\noexpand\x
}%
\x
\@makeother\`
\@makeother\=
\def\Hy@SetCatcodes{%
\@makeother\`%
\@makeother\=%
\catcode`\$=3 %
\catcode`\&=4 %
\catcode`\^=7 %
\catcode`\_=8 %
\@makeother\|%
\@makeother\:%
\@makeother\(%
\@makeother\)%
\@makeother\[%
\@makeother\]%
\@makeother\/%
\@makeother\!%
\@makeother\<%
\@makeother\>%
\@makeother\.%
\@makeother\;%
\@makeother\+%
\@makeother\-%
\@makeother\"%
\@makeother\'%
}
\begingroup
\def\x#1{\catcode`\noexpand#1=\the\catcode`#1\relax}%
\xdef\Hy@RestoreCatcodes{%
\the\toks@
\x\$%
\x\&%
\x\^%
\x\_%
\x\|%
\x\:%
\x\(%
\x\)%
\x\[%
\x\]%
\x\/%
\x\!%
\x\<%
\x\>%
\x\.%
\x\;%
\x\+%
\x\-%
\x\"%
\x\'%
}%
\endgroup
\Hy@SetCatcodes
\IfFileExists{hobsub-hyperref.sty}{%
\RequirePackage{hobsub-hyperref}[2011/01/30]%
}{}
\RequirePackage{ltxcmds}[2010/11/12]
\RequirePackage{ifpdf}[2006/02/20]
\RequirePackage{pdftexcmds}[2009/04/10]
\@ifpackagelater{pdftexcmds}{2010/11/04}{}{%
\ltx@IfUndefined{pdfdraftmode}{%
\let\pdf@ifdraftmode\ltx@secondoftwo
}{%
\ifpdf
\def\pdf@ifdraftmode{%
\ifnum\pdfdraftmode=\ltx@one
\expandafter\ltx@firstoftwo
\else
\expandafter\ltx@secondoftwo
\fi
}%
\else
\let\pdf@ifdraftmode\ltx@secondoftwo
\fi
}%
}
\RequirePackage{infwarerr}[2010/04/08]
\RequirePackage{keyval}[1997/11/10]
\RequirePackage{kvsetkeys}[2007/09/29]
\RequirePackage{kvdefinekeys}[2011/04/07]
\RequirePackage{pdfescape}[2007/11/11]
\RequirePackage{ifvtex}
\RequirePackage{ifxetex}[2006/08/21]
\RequirePackage{hycolor}
\RequirePackage{letltxmacro}[2008/06/13]
\RequirePackage{auxhook}[2009/12/14]
\def\Hy@Error{\@PackageError{hyperref}}
\def\Hy@Warning{\@PackageWarning{hyperref}}
\def\Hy@WarningNoLine{\@PackageWarningNoLine{hyperref}}
\def\Hy@Info{\@PackageInfo{hyperref}}
\def\Hy@InfoNoLine{\@PackageInfoNoLine{hyperref}}
\def\Hy@Message#1{%
\GenericWarning{%
(hyperref)\@spaces\@spaces\@spaces\@spaces
}{%
Package hyperref Message: #1\ltx@gobble
}%
}
\chardef\Hy@VersionChecked=0 %
\def\Hy@VersionCheck#1{%
\begingroup
\ltx@IfUndefined{ver@hyperref.sty}{%
\Hy@Error{%
This should not happen!\MessageBreak
Missing hyperref version%
}\@ehd
}{%
\ltx@IfUndefined{ver@#1}{%
\Hy@Error{%
This should not happen!\MessageBreak
Missing version of `#1'%
}\@ehd
}{%
\def\x##1##2##3{%
\expandafter\expandafter\expandafter\Hy@@VersionCheck
\expandafter\expandafter\expandafter##2%
\csname ver@##3\endcsname##1##1\@nil
}%
\x{ }\y{hyperref.sty}%
\x{ }\z{#1}%
\ifx\y\z
\else
\edef\a{#1}%
\edef\b{\HyOpt@CustomDriver.def}%
\ifx\a\b
\Hy@WarningNoLine{%
Version mismatch (custom driver)!\MessageBreak
* \y: hyperref.sty\MessageBreak
* \z: \a
}%
\else
\Hy@Error{%
Version mismatch!\MessageBreak
* \y: hyperref.sty\MessageBreak
* \z: \a
}\@ehd
\fi
\fi
}%
}%
\endgroup
\chardef\Hy@VersionChecked=1 %
}
\def\Hy@@VersionCheck #1#2 #3 #4\@nil{%
\def#1{#2 #3}%
}
\ltx@IfUndefined{pdfmatch}{%
\def\Hy@Match#1#2#3#4#5{}%
}{%
\def\Hy@Match#1#2#3{%
\begingroup
\edef\^{\ltx@backslashchar\string^}%
\edef\.{\ltx@backslashchar.}%
\edef\[{\ltx@backslashchar[}% ]]
\edef\${\ltx@backslashchar$}%
\edef\({\ltx@backslashchar(}%
\edef\){\ltx@backslashchar)}%
\edef\|{\ltx@backslashchar|}%
\edef\*{\ltx@backslashchar*}%
\edef\+{\ltx@backslashchar+}%
\edef\?{\ltx@backslashchar?}%
\edef\{{\ltx@backslashchar\ltx@leftbracechar}%
\edef\}{\ltx@rightbracechar}%
\edef\\{\ltx@backslashchar\ltx@backslashchar}%
\let\ \ltx@space
\ifcase\pdfmatch#2{#3}{#1} %
\endgroup
\expandafter\ltx@secondoftwo
\or
\endgroup
\expandafter\ltx@firstoftwo
\else
\Hy@Warning{%
Internal error: Wrong pattern!\MessageBreak
--> #3 <--\MessageBreak
Pattern check ignored%
}%
\endgroup
\expandafter\ltx@firstoftwo
\fi
}%
\ltx@ifpackagelater{ltxcmds}{2010/09/11}{}{%
\begingroup
\lccode`0=`\{\relax
\lowercase{\endgroup
\def\ltx@leftbracechar{0}%
}%
\begingroup
\lccode`0=`\}\relax
\lowercase{\endgroup
\def\ltx@rightbracechar{0}%
}%
}%
}
\@ifundefined{AfterBeginDocument}{%
\def\AfterBeginDocument{\AtBeginDocument}%
}{}%
\def\Hy@AtBeginDocument{%
\ltx@LocalAppendToMacro\Hy@AtBeginDocumentHook
}
\def\Hy@AtEndOfPackage{%
\ltx@LocalAppendToMacro\Hy@AtEndOfPackageHook
}
\let\Hy@AtBeginDocumentHook\ltx@empty
\let\Hy@AtEndOfPackageHook\ltx@empty
\AtEndOfPackage{%
\Hy@AtEndOfPackageHook
\let\Hy@AtEndOfPackageHook\@undefined
\AfterBeginDocument{%
\Hy@AtBeginDocumentHook{}%
\let\Hy@AtBeginDocumentHook\@undefined
}%
}
\RequirePackage{kvoptions}[2009/07/21]
\newif\ifHy@stoppedearly
\newif\ifHy@typexml
\newif\ifHy@activeanchor
\newif\ifHy@backref
\newif\ifHy@bookmarks
\newif\ifHy@bookmarksnumbered
\newif\ifHy@bookmarksopen
\newif\ifHy@breaklinks
\newif\ifHy@pdfcenterwindow
\newif\ifHy@CJKbookmarks
\newif\ifHy@colorlinks
\newif\ifHy@destlabel
\newif\ifHy@draft
\let\Hy@finaltrue\Hy@draftfalse
\let\Hy@finalfalse\Hy@drafttrue
\newif\ifHy@pdfescapeform
\newif\ifHy@hyperfigures
\newif\ifHy@pdffitwindow
\newif\ifHy@frenchlinks
\newif\ifHy@hyperfootnotes
\newif\ifHy@hyperindex
\newif\ifHy@hypertexnames
\newif\ifHy@implicit
\newif\ifHy@linktocpage
\newif\ifHy@localanchorname
\newif\ifHy@pdfmenubar
\newif\ifHy@naturalnames
\newif\ifHy@nesting
\newif\ifHy@pdfnewwindowset
\newif\ifHy@pdfnewwindow
\newif\ifHy@ocgcolorlinks
\newif\ifHy@pageanchor
\newif\ifHy@pdfpagelabels
\newif\ifHy@pdfpagehidden
\newif\ifHy@pdfstring
\newif\ifHy@plainpages
\newif\ifHy@psize
\newif\ifHy@raiselinks
\newif\ifHy@seminarslides
\newif\ifHy@setpagesize
\newif\ifHy@texht
\newif\ifHy@psdextra
\newif\ifHy@pdftoolbar
\newif\ifHy@unicode
\newif\ifHy@pdfusetitle
\newif\ifHy@verbose
\let\Hy@debugtrue\Hy@verbosetrue
\let\Hy@debugfalse\Hy@verbosefalse
\newif\ifHy@pdfwindowui
\newif\ifHy@pdfdisplaydoctitle
\newif\ifHy@pdfa
\Hy@backreffalse
\Hy@bookmarksnumberedfalse
\Hy@bookmarksopenfalse
\Hy@bookmarkstrue
\Hy@breaklinksfalse
\Hy@pdfcenterwindowfalse
\Hy@CJKbookmarksfalse
\Hy@destlabelfalse
\Hy@pdfescapeformfalse
\Hy@hyperfiguresfalse
\Hy@pdffitwindowfalse
\Hy@hyperfootnotestrue
\Hy@hyperindextrue
\Hy@hypertexnamestrue
\Hy@implicittrue
\Hy@linktocpagefalse
\Hy@localanchornamefalse
\Hy@pdfmenubartrue
\Hy@naturalnamesfalse
\Hy@nestingfalse
\Hy@pdfnewwindowsetfalse
\Hy@pdfnewwindowfalse
\Hy@pageanchortrue
\Hy@pdfpagelabelstrue
\Hy@pdfpagehiddenfalse
\Hy@pdfstringfalse
\Hy@plainpagesfalse
\Hy@raiselinksfalse
\Hy@setpagesizetrue
\Hy@texhtfalse
\Hy@psdextrafalse
\Hy@pdftoolbartrue
\Hy@typexmlfalse
\Hy@unicodefalse
\Hy@pdfusetitlefalse
\Hy@verbosefalse
\Hy@pdfwindowuitrue
\Hy@pdfdisplaydoctitlefalse
\Hy@pdfafalse
\def\Hy@StepCount#1{\advance#1 by 1 }%
\def\Hy@GlobalStepCount#1{\global\advance#1 by 1 }%
\newdimen\@linkdim
\let\Hy@driver\ltx@empty
\let\MaybeStopEarly\relax
\newcount\Hy@linkcounter
\newcount\Hy@pagecounter
\Hy@linkcounter0
\Hy@pagecounter0
\let\Hy@ReturnEnd\@empty
\long\def\Hy@ReturnAfterFiFiEnd#1\fi#2\Hy@ReturnEnd{\fi\fi#1}
\long\def\Hy@ReturnAfterElseFiFiEnd#1\else#2\Hy@ReturnEnd{\fi\fi#1}
\def\Hy@safe@activestrue{\csname @safe@activestrue\endcsname}
\def\Hy@safe@activesfalse{\csname @safe@activesfalse\endcsname}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname dimexpr\endcsname\relax
\def\hypercalcbpdef#1#2{%
\begingroup
\toks@{}%
\HyCal@scan#2\hypercalcbp\@nil
\expandafter\endgroup
\expandafter\def\expandafter#1\expandafter{\the\toks@}%
}%
\def\HyCal@scan#1\hypercalcbp#2\@nil{%
\toks@\expandafter{\the\toks@ #1}%
\ifx\\#2\\%
\else
\ltx@ReturnAfterFi{%
\HyCal@do#2\@nil
}%
\fi
}%
\def\HyCal@do#1#2\@nil{%
\@ifpackageloaded{calc}{}{%
\Hy@Warning{%
For calculations \string\hypercalcbp\space needs\MessageBreak
package calc or e-TeX%
}%
}%
\setlength{\dimen@}{#1}%
\setlength{\dimen@}{0.99626401\dimen@}%
\edef\x{%
\toks@{%
\the\toks@
\strip@pt\dimen@
}%
}\x
\HyCal@scan#2\@nil
}%
\else
\def\hypercalcbp#1{%
\strip@pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
}%
\def\hypercalcbpdef{\def}%
\fi
\def\pdfstringdef#1#2{%
\begingroup
\escapechar`\\%
\edef\0{\string\0}%
\edef\1{\string\1}%
\edef\2{\string\2}%
\edef\3{\string\3}%
\ifHy@unicode
\edef\8{\string\8}%
\edef\9{\string\9}%
\fontencoding{PU}%
\HyPsd@UTFviii
\def\ifpdfstringunicode##1##2{##1}%
\else
\fontencoding{PD1}%
\def\ifpdfstringunicode##1##2{##2}%
\fi
\let\utf@viii@undeferr\HyPsd@utf@viii@undeferr
\enc@update
\@inmathwarn\pdfstringdef
\let\@inmathwarn\HyPsd@inmathwarn
\let\add@accent\HyPsd@add@accent
\let\{\textbraceleft
\let\}\textbraceright
\let\\\textbackslash
\let\#\textnumbersign
\let\$\textdollar
\let\%\textpercent
\let\&\textampersand
\let\_\textunderscore
\let\P\textparagraph
\let\ldots\textellipsis
\let\dots\textellipsis
\def\\{\pdfstringdefWarn\\}%
\def\newline{\pdfstringdefWarn\newline}%
\def\TeX{TeX}%
\def\LaTeX{La\TeX}%
\def\LaTeXe{%
\LaTeX2%
\ifHy@unicode\textepsilon\else e\fi
}%
\def\eTeX{%
\ifHy@unicode\textepsilon\else e\fi
-\TeX%
}%
\def\SliTeX{Sli\TeX}%
\def\MF{Metafont}%
\def\MP{Metapost}%
\let\fontencoding\@gobble
\let\fontfamily\@gobble
\let\fontseries\@gobble
\let\fontshape\@gobble
\let\fontsize\@gobbletwo
\let\selectfont\@empty
\let\usefont\@gobblefour
\let\emph\@firstofone
\let\textnormal\@firstofone
\let\textrm\@firstofone
\let\textsf\@firstofone
\let\texttt\@firstofone
\let\textbf\@firstofone
\let\textmd\@firstofone
\let\textit\@firstofone
\let\textsc\@firstofone
\let\textsl\@firstofone
\let\textup\@firstofone
\let\normalfont\@empty
\let\rmfamily\@empty
\let\sffamily\@empty
\let\ttfamily\@empty
\let\bfseries\@empty
\let\mdseries\@empty
\let\itshape\@empty
\let\scshape\@empty
\let\slshape\@empty
\let\upshape\@empty
\let\em\@empty
\let\rm\@empty
\let\Huge\@empty
\let\LARGE\@empty
\let\Large\@empty
\let\footnotesize\@empty
\let\huge\@empty
\let\large\@empty
\let\normalsize\@empty
\let\scriptsize\@empty
\let\small\@empty
\let\tiny\@empty
\let\mathversion\@gobble
\let\phantom\@gobble
\let\vphantom\@gobble
\let\hphantom\@gobble
\let\ding\HyPsd@ding
\let\Cube\HyPsd@DieFace
\def\begin#1{\csname#1\endcsname}%
\def\end#1{\csname end#1\endcsname}%
\def\textcolor##1##{\@secondoftwo}%
\def\MakeUppercase{\MakeUppercaseUnsupportedInPdfStrings}%
\def\MakeLowercase{\MakeLowercaseUnsupportedInPdfStrings}%
\ifHy@psdextra
\ifHy@unicode
\csname psdmapshortnames\endcsname
\csname psdaliasnames\endcsname
\fi
\fi
\let\foreignlanguage\@secondoftwo
\let\textlatin\@firstofone
\ltx@IfUndefined{language@group}{}{%
\csname HyPsd@babel@\language@group\endcsname
}%
\HyPsd@GreekPatch
\HyPsd@SpanishPatch
\HyPsd@RussianPatch
\HyPsd@BabelPatch
\let\@safe@activestrue\relax
\let\@safe@activesfalse\relax
\let\cyr\relax
\let\es@roman\@Roman
\let\glqq\textglqq
\let\grqq\textgrqq
\let\glq\textglq
\let\grq\textgrq
\let\flqq\textflqq
\let\frqq\textfrqq
\let\flq\textflq
\let\frq\textfrq
\let\if@mid@expandable\@firstoftwo
\HyPsd@AMSclassfix
\let\hspace\HyPsd@hspace
\let\label\@gobble
\let\index\@gobble
\let\glossary\@gobble
\let\href\HyPsd@href
\let\@mkboth\@gobbletwo
\let\ref\HyPsd@ref
\let\pageref\HyPsd@pageref
\let\nameref\HyPsd@nameref
\let\autoref\HyPsd@autoref
\let\leavevmode\@empty
\let\mbox\@empty
\def\halign{\pdfstringdefWarn\halign\@gobble}%
\let\ignorespaces\HyPsd@ignorespaces
\let\Hy@SectionAnchorHref\@gobble
\let\ensuremath\@firstofone
\HyPsd@CJKhook
\Hy@pdfstringtrue
\pdfstringdefPreHook
\HyPsd@LetUnexpandableSpace\space
\HyPsd@LetUnexpandableSpace\ %
\HyPsd@LetUnexpandableSpace~%
\HyPsd@LetUnexpandableSpace\nobreakspace
\ltx@IfUndefined{@xspace}{%
\let\xspace\HyPsd@ITALCORR
}{%
\let\xspace\HyPsd@XSPACE
}%
\let\/\HyPsd@ITALCORR
\let\bgroup\/%
\let\egroup\/%
\let\discretionary\@gobbletwo
\def\@ifnextchar{\HyPsd@ifnextchar\@ifnextchar}%
\def\kernel@ifnextchar{\HyPsd@ifnextchar\kernel@ifnextchar}%
\def\new@ifnextchar{\HyPsd@ifnextchar\new@ifnextchar}%
\let\@protected@testopt\HyPsd@protected@testopt
\let\@protected@testopt@xargs\HyPsd@protected@testopt
\begingroup
\let\GenericError\@gobblefour
\let\GenericWarning\@gobbletwo
\let\GenericInfo\@gobbletwo
\ifx\nofrenchguillemets\@undefined
\else
\nofrenchguillemets
\fi
\let\Hy@temp\xdef
\let\def\HyPsd@DefCommand
\let\gdef\HyPsd@DefCommand
\let\edef\HyPsd@DefCommand
\let\xdef\HyPsd@DefCommand
\let\futurelet\HyPsd@LetCommand
\let\let\HyPsd@LetCommand
\Hy@temp#1{#2}%
\endgroup
\ifx#1\@empty
\else
\HyPsd@ProtectSpaces#1%
\let\HyPsd@String\@empty
\expandafter\HyPsd@RemoveBraces\expandafter{#1|}%
\global\let#1\HyPsd@String
\let\HyPsd@SPACEOPTI\relax
{%
\let\HyPsd@String\@empty
\expandafter\HyPsd@CheckCatcodes#1\HyPsd@End
\global\let#1\HyPsd@String
}%
\expandafter\HyPsd@RemoveMask\expandafter
|\expandafter\@empty#1\HyPsd@End#1%
\expandafter
\HyPsd@Subst\expandafter{\HyPsd@GLYPHERR}{\relax}#1%
\let\HyPsd@String\@empty
\expandafter\HyPsd@GlyphProcess#1\relax\@empty
\global\let#1\HyPsd@String
\HyPsd@StringSubst{\\}{\textbackslash}#1%
\ifHy@unicode
\expandafter\HyPsd@StringSubst\csname 80\040\endcsname
\HyPsd@SPACEOPTI#1%
\edef\Hy@temp@A{\HyPsd@SPACEOPTI\HyPsd@SPACEOPTI\80\273}%
\expandafter\HyPsd@Subst\expandafter{\Hy@temp@A}%
{\HyPsd@SPACEOPTI\80\273}#1%
\else
\HyPsd@StringSubst{\040}\HyPsd@SPACEOPTI#1%
\expandafter\HyPsd@Subst\expandafter{%
\expandafter\HyPsd@SPACEOPTI\expandafter\HyPsd@SPACEOPTI
\string\273}{\HyPsd@SPACEOPTI\273}#1%
\fi
\ifHy@unicode
\HyPsd@StringSubst{\)}{\80\051}#1%
\HyPsd@Subst){\80\051}#1%
\let\HyPsd@empty\relax
\expandafter\HyPsd@StringSubst\csname 80\051\endcsname
{\HyPsd@empty\80\051}#1%
\else
\HyPsd@StringSubst{\)}{\051}#1%
\HyPsd@Subst){\051}#1%
\let\HyPsd@empty\relax
\HyPsd@StringSubst{\051}{\HyPsd@empty\string\)}#1%
\fi
\expandafter\HyPsd@Subst\expandafter{\/}\HyPsd@empty#1%
\ltx@IfUndefined{@xspace}{%
}{%
\let\HyPsd@xspace\relax
\expandafter\HyPsd@Subst\expandafter
{\HyPsd@XSPACE}\HyPsd@xspace#1%
\let\HyPsd@xspace\HyPsd@doxspace
}%
\xdef#1{#1\HyPsd@empty}%
\HyPsd@Subst{---}\textemdash#1%
\HyPsd@Subst{--}\textendash#1%
\HyPsd@Subst{!`}\textexclamdown#1%
\HyPsd@Subst{?`}\textquestiondown#1%
\let\HyPsd@empty\@empty
\ifHy@unicode
\HyPsd@StringSubst\(\textparenleft#1%
\HyPsd@Subst(\textparenleft#1%
\else
\HyPsd@StringSubst\({\050}#1%
\HyPsd@Subst({\050}#1%
\HyPsd@StringSubst{\050}{\string\(}#1%
\fi
\ifHy@unicode
\edef\HyPsd@SPACEOPTI{\80\040}%
\else
\let\HyPsd@SPACEOPTI\HyPsd@spaceopti
\fi
\xdef#1{#1\@empty}%
\fi
\endgroup
\begingroup
\ifHy@unicode
\HyPsd@ConvertToUnicode#1%
\ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto
\ltx@IfUndefined{StringEncodingConvertTest}{%
}{%
\EdefUnescapeString\HyPsd@temp#1%
\ifxetex
\let\HyPsd@UnescapedString\HyPsd@temp
\StringEncodingConvertTest\HyPsd@temp\HyPsd@temp
{utf16be}{ascii-print}{%
\EdefEscapeString\HyPsd@temp\HyPsd@temp
\global\let#1\HyPsd@temp
\HyPsd@EscapeTeX#1%
\Hy@unicodefalse
}{%
\HyPsd@ToBigChars#1%
}%
\else
\StringEncodingConvertTest\HyPsd@temp\HyPsd@temp
{utf16be}{pdfdoc}{%
\EdefEscapeString\HyPsd@temp\HyPsd@temp
\global\let#1\HyPsd@temp
\HyPsd@EscapeTeX#1%
\Hy@unicodefalse
}{}%
\fi
}%
\fi
\fi
\HyPsd@XeTeXBigCharsfalse
\pdfstringdefPostHook#1%
\endgroup
}
\def\Hy@pdfstringdef#1#2{%
\pdfstringdef\Hy@gtemp{#2}%
\let#1\Hy@gtemp
}
\edef\Hy@temp{\catcode0=\the\catcode0\relax}
\catcode\z@=12 %
\ifxetex
\expandafter\@firstofone
\else
\let\HyPsd@XeTeXBigCharstrue\@empty
\let\HyPsd@XeTeXBigCharsfalse\@empty
\expandafter\@gobble
\fi
{%
\newif\ifHyPsd@XeTeXBigChars
\def\HyPsd@XeTeXBigCharsfalse{%
\global\let\ifHyPsd@XeTeXBigChars\iffalse
}%
\def\HyPsd@XeTeXBigCharstrue{%
\global\let\ifHyPsd@XeTeXBigChars\iftrue
}%
\def\HyPsd@ToBigChars#1{%
\ifHyPsd@XeTeXBigChars
\EdefEscapeHex\HyPsd@UnescapedString{%
\expandafter\@gobbletwo\HyPsd@UnescapedString
}%
\begingroup
\toks@{}%
\escapechar=92\relax
\let\x\HyPsd@ToBigChar
\expandafter\HyPsd@ToBigChar\HyPsd@UnescapedString
\relax\relax\relax\relax\relax\relax\relax
\edef\x{%
\endgroup
\gdef\noexpand#1{\the\toks@}%
}%
\x
\fi
}%
\def\HyPsd@ToBigChar#1#2#3#4{%
\ifx\relax#1\relax
\let\x\relax
\else
\count@="#1#2#3#4\relax
\let\y\@empty
\lccode\z@=\count@
\ifnum\count@=40 % (
\let\y\@backslashchar
\else
\ifnum\count@=41 % )
\let\y\@backslashchar
\else
\ifnum\count@=92 % backslash
\let\y\@backslashchar
\else
\ifnum\count@=10 % newline
\edef\y##1{\string\n}%
\else
\ifnum\count@=13 % carriage return
\edef\y##1{\string\r}%
\fi
\fi
\fi
\fi
\fi
\lowercase{%
\toks@\expandafter{%
\the\expandafter\toks@
\y
^^@%
}%
}%
\fi
\x
}%
}
\Hy@temp
\@ifpackageloaded{linguex}{%
\let\HyLinguex@OrgB\b
\let\HyLinguex@OrgC\c
\let\HyLinguex@OrgD\d
\def\HyLinguex@Restore{%
\let\b\HyLinguex@OrgB
\let\c\HyLinguex@OrgC
\let\d\HyLinguex@OrgD
}%
\Hy@AtEndOfPackage{%
\pdfstringdefDisableCommands{%
\ltx@IfUndefined{oldb}{}{\let\b\oldb}%
\ltx@IfUndefined{oldc}{}{\let\c\oldc}%
\ltx@IfUndefined{oldd}{}{\let\d\oldd}%
}%
}%
}{%
\let\HyLinguex@Restore\relax
}%
\def\Hy@SaveCatcodeSettings#1{%
\expandafter\edef\csname Hy@cat@#1\endcsname{%
\endlinechar=\the\endlinechar\relax
\catcode32 \the\catcode32\relax % (space)
\catcode34 \the\catcode34\relax % "
\catcode35 \the\catcode35\relax % #
\catcode37 \the\catcode37\relax % (percent)
\catcode40 \the\catcode40\relax % (
\catcode41 \the\catcode41\relax % )
\catcode42 \the\catcode42\relax % *
\catcode46 \the\catcode46\relax % .
\catcode58 \the\catcode58\relax % :
\catcode60 \the\catcode60\relax % <
\catcode61 \the\catcode61\relax % =
\catcode62 \the\catcode62\relax % >
\catcode64 \the\catcode64\relax % @
\catcode91 \the\catcode91\relax % [
\catcode92 \the\catcode92\relax % \
\catcode93 \the\catcode93\relax % ]
\catcode123 \the\catcode123\relax % {
\catcode124 \the\catcode124\relax % |
\catcode125 \the\catcode125\relax % }
}%
\endlinechar=-1 %
\catcode32 10 % (space)
\catcode34 12 % "
\catcode35 6 % #
\catcode37 14 % (percent)
\catcode40 12 % (
\catcode41 12 % )
\catcode42 12 % *
\catcode46 12 % .
\catcode58 12 % :
\catcode60 12 % <
\catcode61 12 % =
\catcode62 12 % >
\catcode91 12 % [
\catcode92 0 % \
\catcode93 12 % ]
\catcode123 1 % {
\catcode124 12 % |
\catcode125 2 % }
\makeatletter
}
\def\Hy@RestoreCatcodeSettings#1{%
\csname Hy@cat@#1\endcsname
\expandafter\let\csname Hy@cat@#1\endcsname\relax
}
\@ifundefined{T@PD1}{%
\Hy@SaveCatcodeSettings{pd1}%
\input{pd1enc.def}%
\Hy@RestoreCatcodeSettings{pd1}%
\HyLinguex@Restore
}{}
\DeclareFontFamily{PD1}{pdf}{}
\DeclareFontShape{PD1}{pdf}{m}{n}{ <-> cmr10 }{}
\DeclareFontSubstitution{PD1}{pdf}{m}{n}
\def\HyPsd@LoadUnicode{%
\@ifundefined{T@PU}{%
\Hy@SaveCatcodeSettings{pu}%
\input{puenc.def}%
\Hy@RestoreCatcodeSettings{pu}%
\HyLinguex@Restore
}{}%
\DeclareFontFamily{PU}{pdf}{}%
\DeclareFontShape{PU}{pdf}{m}{n}{ <-> cmr10 }{}%
\DeclareFontSubstitution{PU}{pdf}{m}{n}%
\HyPsd@LoadExtra
\let\HyPsd@LoadUnicode\relax
}
\def\HyPsd@LoadExtra{%
\ifHy@psdextra
\ltx@iffileloaded{puenc.def}{%
\Hy@SaveCatcodeSettings{psdextra}%
\input{psdextra.def}%
\Hy@RestoreCatcodeSettings{psdextra}%
\let\HyPsd@LoadExtra\relax
}{}%
\fi
}
\def\texorpdfstring{%
\ifHy@pdfstring
\expandafter\@secondoftwo
\else
\expandafter\@firstoftwo
\fi
}
\@ifundefined{pdfstringdefPreHook}{%
\let\pdfstringdefPreHook\@empty
}{}
\@ifundefined{pdfstringdefPostHook}{%
\let\pdfstringdefPostHook\@gobble
}{}
\def\pdfstringdefDisableCommands{%
\begingroup
\makeatletter
\HyPsd@DisableCommands
}
\long\def\HyPsd@DisableCommands#1{%
\ltx@GlobalAppendToMacro\pdfstringdefPreHook{#1}%
\endgroup
}
\let\HyPsd@pdfstringdefDisableCommands\pdfstringdefDisableCommands
\AtBeginDocument{%
\@ifundefined{pdfstringdefDisableCommands}{%
\let\pdfstringdefDisableCommands\HyPsd@pdfstringdefDisableCommands
}{}%
}
\def\pdfstringdefWarn#1{%
\expandafter\noexpand\csname<>-\string#1\endcsname
}
\begingroup
\catcode0=12 %
\def\x{\endgroup
\def\HyPsd@ignorespaces{%
\romannumeral\expandafter`\expandafter^^@%
\romannumeral`^^@%
}%
}%
\x
\def\HyPsd@BabelPatch{%
\let\HyOrg@languageshorthands\languageshorthands
\let\languageshorthands\HyPsd@LanguageShorthands
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdf@strcmp\endcsname\relax
\let\HyPsd@langshort@system\@empty
\def\HyPsd@LanguageShorthands#1{%
\expandafter\ifx\csname HyPsd@langshort@#1\endcsname
\HyPsd@langshort@system
\expandafter\@gobble
\else
\expandafter\@firstofone
\fi
{%
\HyOrg@languageshorthands{#1}%
}%
}%
\else
\def\HyPsd@LanguageShorthands#1{%
\ifnum\pdf@strcmp{#1}{system}=\z@
\expandafter\@gobble
\else
\expandafter\@firstofone
\fi
{%
\HyOrg@languageshorthands{#1}%
}%
}%
\fi
\def\Hy@temp{%
\@ifpackageloaded{babel}{%
\@ifpackagelater{babel}{2008/03/16}{%
\let\Hy@temp\@empty
}{%
\def\HyPsd@BabelPatch{%
\let\HyOrg@languageshorthands\languageshorthands
}%
}%
}{}%
}
\Hy@temp
\expandafter\Hy@AtBeginDocument\expandafter{\Hy@temp}
\newif\ifHy@next
\ltx@IfUndefined{danish@sh@"@sel}{}{%
\def\HyPsd@babel@danish{%
\declare@shorthand{danish}{"|}{}%
\declare@shorthand{danish}{"~}{-}%
}%
}
\ltx@IfUndefined{dutch@sh@"@sel}{}{%
\def\HyPsd@babel@dutch{%
\declare@shorthand{dutch}{"|}{}%
\declare@shorthand{dutch}{"~}{-}%
}%
}
\ltx@IfUndefined{finnish@sh@"@sel}{}{%
\def\HyPsd@babel@finnish{%
\declare@shorthand{finnish}{"|}{}%
}%
}
\ltx@IfUndefined{french@sh@:@sel}{}{%
\def\HyPsd@babel@frenchb{%
\def\guill@spacing{ }%
}%
}
\ltx@IfUndefined{german@sh@"@sel}{}{%
\def\HyPsd@babel@german{%
\declare@shorthand{german}{"f}{f}%
\declare@shorthand{german}{"|}{}%
\declare@shorthand{german}{"~}{-}%
}%
}
\ltx@IfUndefined{macedonian@sh@"@sel}{}{%
\def\HyPsd@babel@macedonian{%
\declare@shorthand{macedonian}{"|}{}%
\declare@shorthand{macedonian}{"~}{-}%
}%
}{}
\ltx@IfUndefined{ngerman@sh@"@sel}{}{%
\def\HyPsd@babel@ngerman{%
\declare@shorthand{ngerman}{"|}{}%
\declare@shorthand{ngerman}{"~}{-}%
}%
}
\ltx@IfUndefined{portuges@sh@"@sel}{}{%
\def\HyPsd@babel@portuges{%
\declare@shorthand{portuges}{"|}{}%
}%
}
\ltx@IfUndefined{russian@sh@"@sel}{}{%
\def\HyPsd@babel@russian{%
\declare@shorthand{russian}{"|}{}%
\declare@shorthand{russian}{"~}{-}%
}%
}
\ltx@IfUndefined{slovene@sh@"@sel}{}{%
\def\HyPsd@babel@slovene{%
\declare@shorthand{slovene}{"|}{}%
}%
}
\ltx@IfUndefined{spanish@sh@>@sel}{}{%
\def\HyPsd@babel@spanish{%
\declare@shorthand{spanish}{<<}{\guillemotleft}%
\declare@shorthand{spanish}{>>}{\guillemotright}%
\declare@shorthand{spanish}{"=}{-}%
\declare@shorthand{spanish}{"~}{-}%
\declare@shorthand{spanish}{"!}{\textexclamdown}%
\declare@shorthand{spanish}{"?}{\textquestiondown}%
}%
}
\ltx@IfUndefined{swedish@sh@"@sel}{}{%
\def\HyPsd@babel@swedish{%
\declare@shorthand{swedish}{"|}{}%
\declare@shorthand{swedish}{"~}{-}%
}%
}
\ltx@IfUndefined{ukrainian@sh@"@sel}{}{%
\def\HyPsd@babel@ukrainian{%
\declare@shorthand{ukrainian}{"|}{}%
\declare@shorthand{ukrainian}{"~}{-}%
}%
}
\ltx@IfUndefined{usorbian@sh@"@sel}{}{%
\def\HyPsd@babel@usorbian{%
\declare@shorthand{usorbian}{"f}{f}%
\declare@shorthand{usorbian}{"|}{}%
}%
}
\ltx@IfUndefined{greek@sh@\string~@sel}{%
\let\HyPsd@GreekPatch\@empty
}{%
\def\HyPsd@GreekPatch{%
\let\greeknumeral\HyPsd@greeknumeral
\let\Greeknumeral\HyPsd@Greeknumeral
}%
}
\def\HyPsd@greeknumeral#1{%
\HyPsd@GreekNum\@firstoftwo{#1}%
}
\def\HyPsd@Greeknumeral#1{%
\HyPsd@GreekNum\@secondoftwo{#1}%
}
\def\HyPsd@GreekNum#1#2{%
\ifHy@unicode
\ifnum#2<\@ne
\@arabic{#2}%
\else
\ifnum#2<1000000 %
\HyPsd@@GreekNum#1{#2}%
\else
\@arabic{#2}%
\fi
\fi
\else
\@arabic{#2}%
\fi
}
\def\HyPsd@@GreekNum#1#2{%
\ifnum#2<\@m
\ifnum#2<10 %
\expandafter\HyPsd@GreekNumI
\expandafter\@gobble\expandafter#1\number#2%
\else
\ifnum#2<100 %
\expandafter\HyPsd@GreekNumII
\expandafter\@gobble\expandafter#1\number#2%
\else
\expandafter\HyPsd@GreekNumIII
\expandafter\@gobble\expandafter#1\number#2%
\fi
\fi
\ifnum#2>\z@
\textnumeralsigngreek
\fi
\else
\ifnum#2<\@M
\expandafter\HyPsd@GreekNumIV\expandafter#1\number#2%
\else
\ifnum#2<100000 %
\expandafter\HyPsd@GreekNumV\expandafter#1\number#2%
\else
\expandafter\HyPsd@GreekNumVI\expandafter#1\number#2%
\fi
\fi
\fi
}
\def\HyPsd@GreekNumI#1#2#3{%
#1{%
\ifnum#3>\z@
\textnumeralsignlowergreek
\fi
}%
\expandafter#2%
\ifcase#3 %
{}{}%
\or\textalpha\textAlpha
\or\textbeta\textBeta
\or\textgamma\textGamma
\or\textdelta\textDelta
\or\textepsilon\textEpsilon
\or\textstigmagreek\textStigmagreek
\or\textzeta\textZeta
\or\texteta\textEta
\or\texttheta\textTheta
\else
{}{}%
\fi
}
\def\HyPsd@GreekNumII#1#2#3#4{%
#1{%
\ifnum#3>\z@
\textnumeralsignlowergreek
\fi
}%
\expandafter#2%
\ifcase#3 %
{}{}%
\or\textiota\textIota
\or\textkappa\textKappa
\or\textlambda\textLambda
\or\textmu\textMu
\or\textnu\textNu
\or\textxi\textXi
\or\textomicron\textOmicron
\or\textpi\textPi
\or\textkoppagreek\textKoppagreek
\else
{}{}%
\fi
\HyPsd@GreekNumI#1#2#4%
}
\def\HyPsd@GreekNumIII#1#2#3#4#5{%
#1{%
\ifnum#3>\z@
\textnumeralsignlowergreek
\fi
}%
\expandafter#2%
\ifcase#3 %
{}{}%
\or\textrho\textRho
\or\textsigma\textSigma
\or\texttau\textTau
\or\textupsilon\textUpsilon
\or\textphi\textPhi
\or\textchi\textChi
\or\textpsi\textPsi
\or\textomega\textOmega
\or\textsampigreek\textSampigreek
\else
{}{}%
\fi
\HyPsd@GreekNumII#1#2#4#5%
}
\def\HyPsd@GreekNumIV#1#2#3#4#5{%
\HyPsd@GreekNumI\@firstofone#1#2%
\HyPsd@@GreekNum#1{#3#4#5}%
}
\def\HyPsd@GreekNumV#1#2#3#4#5#6{%
\HyPsd@GreekNumII\@firstofone#1#2#3%
\HyPsd@@GreekNum#1{#4#5#6}%
}
\def\HyPsd@GreekNumVI#1#2#3#4#5#6#7{%
\HyPsd@GreekNumIII\@firstofone#1#2#3#4%
\HyPsd@@GreekNum#1{#5#6#7}%
}
\def\HyPsd@SpanishPatch{%
\ltx@IfUndefined{es@save@dot}{%
}{%
\let\.\es@save@dot
}%
}
\def\HyPsd@RussianPatch{%
\ltx@IfUndefined{russian@sh@"@-@}{%
}{%
\@namedef{russian@sh@"@-@}{-}%
}%
}
\RequirePackage{intcalc}[2007/09/27]
\def\HyPsd@CJKhook{%
\ltx@ifpackageloaded{CJK}{%
\let\CJK@kern\relax
\let\CJKkern\relax
\let\CJK@CJK\relax
\ifHy@CJKbookmarks
\HyPsd@CJKhook@bookmarks
\fi
\HyPsd@CJKhook@unicode
}{}%
}
\begingroup
\catcode"7F=\active
\toks@{%
\let\CJK@ignorespaces\empty
\def\CJK@char#1{\@gobbletwo}%
\let\CJK@charx\@gobblefour
\let\CJK@punctchar\@gobblefour
\def\CJK@punctcharx#1{\@gobblefour}%
\catcode"7F=\active
\def^^7f#1^^7f#2^^7f{%
\string #1\HyPsd@DecimalToOctal{#2}%
}%
% ... ?
\ifHy@unicode
\def\Hy@cjkpu{\80}%
\else
\let\Hy@cjkpu\@empty
\fi
\HyPsd@CJKActiveChars
}%
\count@=127 %
\@whilenum\count@<255 \do{%
\advance\count@ by 1 %
\lccode`\~=\count@
\lowercase{%
\toks@\expandafter{\the\toks@ ~}%
}%
}%
\toks@\expandafter{\the\toks@ !}%
\xdef\HyPsd@CJKhook@bookmarks{%
\the\toks@
}%
\endgroup
\def\HyPsd@CJKActiveChars#1{%
\ifx#1!%
\let\HyPsd@CJKActiveChars\relax
\else
\edef#1{\noexpand\Hy@cjkpu\string#1}%
\fi
\HyPsd@CJKActiveChars
}
\def\HyPsd@DecimalToOctal#1{%
\ifcase #1 %
\000\or \001\or \002\or \003\or \004\or \005\or \006\or \007%
\or \010\or \011\or \012\or \013\or \014\or \015\or \016\or \017%
\or \020\or \021\or \022\or \023\or \024\or \025\or \026\or \027%
\or \030\or \031\or \032\or \033\or \034\or \035\or \036\or \037%
\or \040\or \041\or \042\or \043\or \044\or \045\or \046\or \047%
\or \050\or \051\or \052\or \053\or \054\or \055\or \056\or \057%
\or 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7%
\or 8\or 9\or \072\or \073\or \074\or \075\or \076\or \077%
\or @\or A\or B\or C\or D\or E\or F\or G%
\or H\or I\or J\or K\or L\or M\or N\or O%
\or P\or Q\or R\or S\or T\or U\or V\or W%
\or X\or Y\or Z\or \133\or \134\or \135\or \136\or \137%
\or \140\or a\or b\or c\or d\or e\or f\or g%
\or h\or i\or j\or k\or l\or m\or n\or o%
\or p\or q\or r\or s\or t\or u\or v\or w%
\or x\or y\or z\or \173\or \174\or \175\or \176\or \177%
\or \200\or \201\or \202\or \203\or \204\or \205\or \206\or \207%
\or \210\or \211\or \212\or \213\or \214\or \215\or \216\or \217%
\or \220\or \221\or \222\or \223\or \224\or \225\or \226\or \227%
\or \230\or \231\or \232\or \233\or \234\or \235\or \236\or \237%
\or \240\or \241\or \242\or \243\or \244\or \245\or \246\or \247%
\or \250\or \251\or \252\or \253\or \254\or \255\or \256\or \257%
\or \260\or \261\or \262\or \263\or \264\or \265\or \266\or \267%
\or \270\or \271\or \272\or \273\or \274\or \275\or \276\or \277%
\or \300\or \301\or \302\or \303\or \304\or \305\or \306\or \307%
\or \310\or \311\or \312\or \313\or \314\or \315\or \316\or \317%
\or \320\or \321\or \322\or \323\or \324\or \325\or \326\or \327%
\or \330\or \331\or \332\or \333\or \334\or \335\or \336\or \337%
\or \340\or \341\or \342\or \343\or \344\or \345\or \346\or \347%
\or \350\or \351\or \352\or \353\or \354\or \355\or \356\or \357%
\or \360\or \361\or \362\or \363\or \364\or \365\or \366\or \367%
\or \370\or \371\or \372\or \373\or \374\or \375\or \376\or \377%
\fi
}
\def\HyPsd@CJKhook@unicode{%
\let\Unicode\HyPsd@CJK@Unicode
\let\CJKnumber\HyPsd@CJKnumber
\let\CJKdigits\HyPsd@CJKdigits
}
\def\HyPsd@CJK@Unicode#1#2{%
\ifnum#1<256 %
\HyPsd@DecimalToOctalFirst{#1}%
\HyPsd@DecimalToOctalSecond{#2}%
\else
\933%
\expandafter\expandafter\expandafter\HyPsd@HighA
\intcalcDiv{#1}{4}!%
\933%
\ifcase\intcalcMod{#1}{4} %
4\or 5\or 6\or 7%
\fi
\HyPsd@DecimalToOctalSecond{#2}%
\fi
}
\def\HyPsd@HighA#1!{%
\expandafter\expandafter\expandafter\HyPsd@HighB
\IntCalcDiv#1!64!!%
\expandafter\expandafter\expandafter\HyPsd@HighD
\IntCalcMod#1!64!!%
}
\def\HyPsd@HighB#1!{%
\expandafter\expandafter\expandafter\HyPsd@HighC
\IntCalcDec#1!!%
}
\def\HyPsd@HighC#1!{%
\IntCalcDiv#1!4!%
\@backslashchar
\IntCalcMod#1!4!%
}
\def\HyPsd@HighD#1!{%
\ifcase\IntCalcDiv#1!8! %
0\or 1\or 2\or 3\or 4\or 5\or 6\or 7%
\fi
\ifcase\IntCalcMod#1!8! %
0\or 1\or 2\or 3\or 4\or 5\or 6\or 7%
\fi
}
\def\HyPsd@DecimalToOctalFirst#1{%
\9%
\ifcase#1 %
000\or 001\or 002\or 003\or 004\or 005\or 006\or 007%
\or 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017%
\or 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027%
\or 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037%
\or 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047%
\or 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057%
\or 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067%
\or 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077%
\or 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107%
\or 120\or 111\or 112\or 113\or 114\or 115\or 116\or 117%
\or 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127%
\or 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137%
\or 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147%
\or 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157%
\or 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167%
\or 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177%
\or 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207%
\or 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217%
\or 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227%
\or 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237%
\or 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247%
\or 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257%
\or 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267%
\or 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277%
\or 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307%
\or 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317%
\or 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327%
\or 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337%
\or 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347%
\or 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357%
\or 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367%
\or 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377%
\fi
}
\def\HyPsd@DecimalToOctalSecond#1{%
\ifcase #1 %
\000\or \001\or \002\or \003\or \004\or \005\or \006\or \007%
\or \010\or \011\or \012\or \013\or \014\or \015\or \016\or \017%
\or \020\or \021\or \022\or \023\or \024\or \025\or \026\or \027%
\or \030\or \031\or \032\or \033\or \034\or \035\or \036\or \037%
\or \040\or \041\or \042\or \043\or \044\or \045\or \046\or \047%
\or \050\or \051\or \052\or \053\or \054\or \055\or \056\or \057%
\or \060\or \061\or \062\or \063\or \064\or \065\or \066\or \067%
\or \070\or \071\or \072\or \073\or \074\or \075\or \076\or \077%
\or \100\or \101\or \102\or \103\or \104\or \105\or \106\or \107%
\or \110\or \111\or \112\or \113\or \114\or \115\or \116\or \117%
\or \120\or \121\or \122\or \123\or \124\or \125\or \126\or \127%
\or \130\or \131\or \132\or \133\or \134\or \135\or \136\or \137%
\or \140\or \141\or \142\or \143\or \144\or \145\or \146\or \147%
\or \150\or \151\or \152\or \153\or \154\or \155\or \156\or \157%
\or \160\or \161\or \162\or \163\or \164\or \165\or \166\or \167%
\or \170\or \171\or \172\or \173\or \174\or \175\or \176\or \177%
\or \200\or \201\or \202\or \203\or \204\or \205\or \206\or \207%
\or \210\or \211\or \212\or \213\or \214\or \215\or \216\or \217%
\or \220\or \221\or \222\or \223\or \224\or \225\or \226\or \227%
\or \230\or \231\or \232\or \233\or \234\or \235\or \236\or \237%
\or \240\or \241\or \242\or \243\or \244\or \245\or \246\or \247%
\or \250\or \251\or \252\or \253\or \254\or \255\or \256\or \257%
\or \260\or \261\or \262\or \263\or \264\or \265\or \266\or \267%
\or \270\or \271\or \272\or \273\or \274\or \275\or \276\or \277%
\or \300\or \301\or \302\or \303\or \304\or \305\or \306\or \307%
\or \310\or \311\or \312\or \313\or \314\or \315\or \316\or \317%
\or \320\or \321\or \322\or \323\or \324\or \325\or \326\or \327%
\or \330\or \331\or \332\or \333\or \334\or \335\or \336\or \337%
\or \340\or \341\or \342\or \343\or \344\or \345\or \346\or \347%
\or \350\or \351\or \352\or \353\or \354\or \355\or \356\or \357%
\or \360\or \361\or \362\or \363\or \364\or \365\or \366\or \367%
\or \370\or \371\or \372\or \373\or \374\or \375\or \376\or \377%
\fi
}
\def\HyPsd@CJKnumber#1{%
\ifnum#1<\z@
\CJK@minus
\expandafter\HyPsd@@CJKnumber\expandafter{\number-\number#1}%
\else
\expandafter\HyPsd@@CJKnumber\expandafter{\number#1}%
\fi
}
\def\HyPsd@@CJKnumber#1{%
\ifcase#1 %
\CJK@zero\or\CJK@one\or\CJK@two\or\CJK@three\or\CJK@four\or
\CJK@five\or\CJK@six\or\CJK@seven\or\CJK@eight\or\CJK@nine\or
\CJK@ten\or\CJK@ten\CJK@one\or\CJK@ten\CJK@two\or
\CJK@ten\CJK@three\or\CJK@ten\CJK@four\or\CJK@ten\CJK@five\or
\CJK@ten\CJK@six\or\CJK@ten\CJK@seven\or\CJK@ten\CJK@eight\or
\CJK@ten\CJK@nine
\else
\ifnum#1<10000 %
\HyPsd@CJKnumberFour#1!\@empty{20}%
\@empty
\else
\ifnum#1<100000000 %
\expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
\IntCalcDiv#1!10000!%
!{}{20}%
\CJK@tenthousand
\expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
\IntCalcMod#1!10000!%
!\CJK@zero{10}%
\@empty
\else
\expandafter\HyPsd@CJKnumberLarge
\number\IntCalcDiv#1!100000000!\expandafter!%
\number\IntCalcMod#1!100000000!!%
\fi
\fi
\fi
}
\def\HyPsd@CJKnumberLarge#1!#2!{%
\HyPsd@CJKnumberFour#1!{}{20}%
\CJK@hundredmillion
\ifnum#2=\z@
\else
\expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
\IntCalcDiv#2!10000!%
!\CJK@zero{10}%
\CJK@tenthousand
\expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
\IntCalcMod#2!10000!%
!\CJK@zero{10}%
\@empty
\fi
}
\def\HyPsd@CJKnumberFour#1!#2#3{%
\ifnum#1=\z@
\expandafter\@gobble
\else
\ifnum#1<1000 %
#2%
\HyPsd@CJKnumberThree#1!{}{#3}%
\else
\HyPsd@@CJKnumber{\IntCalcDiv#1!1000!}%
\CJK@thousand
\expandafter\expandafter\expandafter\HyPsd@CJKnumberThree
\IntCalcMod#1!1000!%
!\CJK@zero{10}%
\fi
\fi
}
\def\HyPsd@CJKnumberThree#1!#2#3{%
\ifnum#1=\z@
\else
\ifnum#1<100 %
#2%
\HyPsd@CJKnumberTwo#1!{}{#3}%
\else
\HyPsd@@CJKnumber{\IntCalcDiv#1!100!}%
\CJK@hundred
\expandafter\expandafter\expandafter\HyPsd@CJKnumberTwo
\IntCalcMod#1!100!%
!\CJK@zero{10}%
\fi
\fi
}
\def\HyPsd@CJKnumberTwo#1!#2#3{%
\ifnum#1=\z@
\else
\ifnum#1<#3 %
#2%
\HyPsd@@CJKnumber{#1}%
\else
\HyPsd@@CJKnumber{\IntCalcDiv#1!10!}%
\CJK@ten
\ifnum\IntCalcMod#1!10!=\z@
\else
\HyPsd@@CJKnumber{\IntCalcMod#1!10!}%
\fi
\fi
\fi
}
\def\HyPsd@CJKdigits#1{%
\ifx*#1\relax
\expandafter\HyPsd@@CJKdigits\expandafter\CJK@zero
\else
\HyPsd@@CJKdigits\CJK@null{#1}%
\fi
}
\def\HyPsd@@CJKdigits#1#2{%
\ifx\\#2\\%
\else
\HyPsd@@@CJKdigits#1#2\@nil
\fi
}%
\def\HyPsd@@@CJKdigits#1#2#3\@nil{%
\HyPsd@CJKdigit#1{#2}%
\ifx\\#3\\%
\expandafter\@gobble
\else
\expandafter\@firstofone
\fi
{%
\HyPsd@@@CJKdigits#1#3\@nil
}%
}
\def\HyPsd@CJKdigit#1#2{%
\ifcase#2 %
#1\or
\CJK@one\or\CJK@two\or\CJK@three\or\CJK@four\or
\CJK@five\or\CJK@six\or\CJK@seven\or\CJK@eight\or\CJK@nine
\fi
}
\def\HyPsd@inmathwarn#1#2{%
\ifx#2\expandafter
\expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
\HyPsd@GLYPHERR
\expandafter\@gobble\string#1%
>%
\expandafter\expandafter\expandafter\HyPsd@EndWithElse
\else
\expandafter\expandafter\expandafter\HyPsd@GobbleFiFi
\fi
\else
\expandafter#2%
\fi
}
\def\HyPsd@GobbleFiFi#1\fi#2\fi{}
\def\HyPsd@EndWithElse#1\else{\else}
\def\HyPsd@add@accent#1#2{%
\HyPsd@GLYPHERR\expandafter\@gobble\string#1+\string#2>%
#2%
}%
\def\HyPsd@LetUnexpandableSpace#1{%
\expandafter\futurelet\expandafter#1\expandafter\@gobble\space\relax
}
\HyPsd@LetUnexpandableSpace\HyPsd@UnexpandableSpace
\edef\HyPsd@XSPACE{\string#\string X}
\edef\HyPsd@ITALCORR{\string#\string I}
\edef\HyPsd@GLYPHERR{\string#\string G}
\def\HyPsd@hspace#1{\HyPsd@@hspace#1*\END}
\def\HyPsd@@hspace#1*#2\END{%
\ifx\\#2\\%
\HyPsd@hspacetest{#1}%
\else
\expandafter\HyPsd@hspacetest
\fi
}
\def\HyPsd@hspacetest#1{\ifdim#1>\z@\space\fi}
\ltx@IfUndefined{tocsection}{%
\let\HyPsd@AMSclassfix\relax
}{%
\def\HyPsd@AMSclassfix{%
\let\tocpart\HyPsd@tocsection
\let\tocchapter\HyPsd@tocsection
\let\tocappendix\HyPsd@tocsection
\let\tocsection\HyPsd@tocsection
\let\tocsubsection\HyPsd@tocsection
\let\tocsubsubsection\HyPsd@tocsection
\let\tocparagraph\HyPsd@tocsection
}%
\def\HyPsd@tocsection#1#2#3{%
\if @#2@\else\if @#1@\else#1 \fi#2. \fi
#3%
}%
}
\def\HyPsd@href#1#{\@secondoftwo}
\def\HyPsd@ref#1{\HyPsd@@ref#1*\END}%
\def\HyPsd@@ref#1*#2\END{%
\ifx\\#2\\%
\HyPsd@@@ref{#1}%
\else
\expandafter\HyPsd@@@ref
\fi
}%
\def\HyPsd@@@ref#1{%
\expandafter\ifx\csname r@#1\endcsname\relax
??%
\else
\expandafter\expandafter\expandafter
\@car\csname r@#1\endcsname\@nil
\fi
}
\def\HyPsd@pageref#1{\HyPsd@@pageref#1*\END}
\def\HyPsd@@pageref#1*#2\END{%
\ifx\\#2\\%
\HyPsd@@@pageref{#1}%
\else
\expandafter\HyPsd@@@pageref
\fi
}
\def\HyPsd@@@pageref#1{%
\expandafter\ifx\csname r@#1\endcsname\relax
??%
\else
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\@car
\expandafter\expandafter\expandafter\@gobble
\csname r@#1\endcsname{}\@nil
\fi
}
\def\HyPsd@nameref#1{\HyPsd@@nameref#1*\END}
\def\HyPsd@@nameref#1*#2\END{%
\ifx\\#2\\%
\HyPsd@@@nameref{#1}%
\else
\expandafter\HyPsd@@@nameref
\fi
}
\def\HyPsd@@@nameref#1{%
\expandafter\ifx\csname r@#1\endcsname\relax
??%
\else
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\@car
\expandafter\expandafter\expandafter\@gobbletwo
\csname r@#1\endcsname{}{}\@nil
\fi
}
\def\HyPsd@autoref#1{\HyPsd@@autoref#1*\END}
\def\HyPsd@@autoref#1*#2\END{%
\ifx\\#2\\%
\HyPsd@@@autoref{#1}%
\else
\expandafter\HyPsd@@@autoref
\fi
}
\def\HyPsd@@@autoref#1{%
\expandafter\ifx\csname r@#1\endcsname\relax
??%
\else
\expandafter\expandafter\expandafter\HyPsd@autorefname
\csname r@#1\endcsname{}{}{}{}\@nil
\expandafter\expandafter\expandafter
\@car\csname r@#1\endcsname\@nil
\fi
}
\def\HyPsd@autorefname#1#2#3#4#5\@nil{%
\ifx\\#4\\%
\else
\HyPsd@@autorefname#4.\@nil
\fi
}
\def\HyPsd@@autorefname#1.#2\@nil{%
\ltx@IfUndefined{#1autorefname}{%
\ltx@IfUndefined{#1name}{%
}{%
\csname#1name\endcsname\space
}%
}{%
\csname#1autorefname\endcsname\space
}%
}
\begingroup
\def\x#1#2{%
\endgroup
\let#1\def
\def\HyPsd@DefCommand##1##2##{%
#1%
\expandafter\noexpand
\csname\expandafter\@gobble\string##1\@empty\endcsname
\@gobble
}%
\let#2\let
\def\HyPsd@@LetCommand##1{%
\expandafter\ifx\csname##1\expandafter\endcsname
\csname iftrue\endcsname
\pdfstringdefWarn\let
\expandafter\@gobble
\else
\expandafter\ifx\csname##1\expandafter\endcsname
\csname iffalse\endcsname
\pdfstringdefWarn\let
\expandafter\expandafter\expandafter\@gobble
\else
#2%
\expandafter\noexpand
\csname##1\expandafter\expandafter\expandafter\endcsname
\fi
\fi
}%
}%
\expandafter\x\csname <def>-command\expandafter\endcsname
\csname <let>-command\endcsname
\def\HyPsd@LetCommand#1{%
\expandafter\expandafter\expandafter\HyPsd@@LetCommand
\expandafter\expandafter\expandafter{%
\expandafter\@gobble\string#1\@empty
}%
}
\def\HyPsd@ifnextchar#1{%
\pdfstringdefWarn#1%
\expandafter\@gobbletwo\@gobble
}
\def\HyPsd@protected@testopt#1{%
\pdfstringdefWarn#1%
\@gobbletwo
}
\def\HyPsd@Warning#1{%
\begingroup
\let\space\ltx@space
\Hy@Warning{#1}%
\endgroup
}
\RequirePackage{etexcmds}[2007/09/09]
\ifetex@unexpanded
\expandafter\@secondoftwo
\else
\expandafter\@firstoftwo
\fi
{%
\def\HyPsd@ProtectSpaces#1{%
\iftrue
\expandafter\HyPsd@@ProtectSpacesFi
\expandafter|\expandafter\@empty#1| \HyPsd@End#1%
\fi
}%
\def\HyPsd@@ProtectSpacesFi#1 #2\HyPsd@End#3\fi{%
\fi
\ifx\scrollmode#2\scrollmode
\HyPsd@RemoveMask#1\HyPsd@End#3%
\else
\gdef#3{#1\HyPsd@UnexpandableSpace#2}%
\expandafter\HyPsd@@ProtectSpacesFi#3\HyPsd@End#3%
\fi
}%
\def\HyPsd@RemoveMask|#1|\HyPsd@End#2{%
\toks@\expandafter{#1}%
\xdef#2{\the\toks@}%
}%
}{%
\let\HyPsd@fi\fi
\def\HyPsd@ProtectSpaces#1{%
\xdef#1{%
\iftrue
\expandafter\HyPsd@@ProtectSpacesFi
\expandafter|\expandafter\@empty#1| %
\HyPsd@fi
}%
\expandafter\HyPsd@RemoveMask#1\HyPsd@End#1%
}%
\def\HyPsd@@ProtectSpacesFi#1 #2\HyPsd@fi{%
\fi
\etex@unexpanded{#1}%
\ifx\scrollmode#2\scrollmode
\else
\HyPsd@@ProtectSpacesFi\HyPsd@UnexpandableSpace#2%
\HyPsd@fi
}%
\def\HyPsd@RemoveMask|#1|\HyPsd@End#2{%
\xdef#2{\etex@unexpanded\expandafter{#1}}%
}%
}
\def\HyPsd@RemoveBraces#1{%
\ifx\scrollmode#1\scrollmode
\else
\HyPsd@@RemoveBracesFi#1\HyPsd@End{#1}%
\fi
}
\def\HyPsd@@RemoveBracesFi#1#2\HyPsd@End#3\fi{%
\fi
\def\Hy@temp@A{#1#2}%
\def\Hy@temp@B{#3}%
\ifx\Hy@temp@A\Hy@temp@B
\expandafter\def\expandafter\HyPsd@String\expandafter{%
\HyPsd@String#1%
}%
\ifx\scrollmode#2\scrollmode
\else
\Hy@ReturnAfterFiFiEnd{%
\HyPsd@RemoveBraces{#2}%
}%
\fi
\else
\def\Hy@temp@A{#1}%
\HyPsd@AppendItalcorr\HyPsd@String
\ifx\Hy@temp@A\@empty
\Hy@ReturnAfterElseFiFiEnd{%
\HyPsd@RemoveBraces{#2}%
}%
\else
\HyPsd@ProtectSpaces\Hy@temp@A
\HyPsd@AppendItalcorr\Hy@temp@A
\Hy@ReturnAfterFiFiEnd{%
\expandafter\HyPsd@RemoveBraces\expandafter
{\Hy@temp@A#2}%
}%
\fi
\fi
\Hy@ReturnEnd
}
\def\HyPsd@AppendItalcorr#1{%
\expandafter\HyPsd@@AppendItalcorr\expandafter{\/}#1%
}
\def\HyPsd@@AppendItalcorr#1#2{%
\expandafter\def\expandafter#2\expandafter{#2#1}%
}
\ltx@IfUndefined{directlua}{%
}{%
\expandafter\ifx\csname\endcsname\relax\fi
}
\begingroup
\catcode`\Q=\active
\let Q\ltx@empty
\gdef\HyPsd@CheckCatcodes#1#2\HyPsd@End{%
\global\let\HyPsd@Rest\relax
\ifcat\relax\noexpand#1\relax
\ifx#1\protect
\else
\ifx#1\penalty
\setbox\z@=\hbox{%
\afterassignment\HyPsd@AfterCountRemove
\count@=#2\HyPsd@End
}%
\else
\ifx#1\kern
\setbox\z@=\hbox{%
\afterassignment\HyPsd@AfterDimenRemove
\dimen@=#2\HyPsd@End
}%
\else
\ifx#1\hskip
\setbox\z@=\hbox{%
\afterassignment\HyPsd@AfterSkipRemove
\skip@=#2\HyPsd@End
}%
\else
\HyPsd@CatcodeWarning{#1}%
\fi
\fi
\fi
\fi
\else
\ifcat\noexpand#1\noexpandQ% active character
\expandafter\expandafter\expandafter\def
\expandafter\expandafter\expandafter\HyPsd@String
\expandafter\expandafter\expandafter{%
\expandafter\HyPsd@String\string#1%
}%
\else
\ifcat#1A% letter
\expandafter\def\expandafter\HyPsd@String\expandafter{%
\HyPsd@String#1%
}%
\else
\ifcat#1 % SPACE
\expandafter\def\expandafter\HyPsd@String\expandafter{%
\HyPsd@String\HyPsd@SPACEOPTI
}%
\else
\ifcat$#1%
\HyPsd@CatcodeWarning{math shift}%
\else
\ifcat&#1%
\HyPsd@CatcodeWarning{alignment tab}%
\else
\ifcat^#1%
\HyPsd@CatcodeWarning{superscript}%
\else
\ifcat_#1%
\HyPsd@CatcodeWarning{subscript}%
\else
\expandafter\def\expandafter\HyPsd@String\expandafter{%
\HyPsd@String#1%
}%
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\ifx\HyPsd@Rest\relax
\ifx\scrollmode#2\scrollmode
\else
\Hy@ReturnAfterFiFiEnd{%
\HyPsd@CheckCatcodes#2\HyPsd@End
}%
\fi
\else
\ifx\HyPsd@Rest\@empty
\else
\Hy@ReturnAfterFiFiEnd{%
\expandafter\HyPsd@CheckCatcodes\HyPsd@Rest\HyPsd@End
}%
\fi
\fi
\Hy@ReturnEnd
}%
\endgroup
\def\HyPsd@AfterCountRemove#1\HyPsd@End{%
\gdef\HyPsd@Rest{#1}%
}
\def\HyPsd@AfterDimenRemove#1\HyPsd@End{%
\ifdim\ifx\HyPsd@String\@empty\z@\else\dimen@\fi>1ex %
\HyPsd@ReplaceSpaceWarning{\string\kern\space\the\dimen@}%
\gdef\HyPsd@Rest{\HyPsd@UnexpandableSpace #1}%
\else
\ifdim\dimen@=\z@
\else
\HyPsd@RemoveSpaceWarning{\string\kern\space\the\dimen@}%
\fi
\gdef\HyPsd@Rest{#1}%
\fi
}
\def\HyPsd@AfterSkipRemove#1\HyPsd@End{%
\ifdim\ifx\HyPsd@String\@empty\z@\else\skip@\fi>1ex %
\HyPsd@ReplaceSpaceWarning{\string\hskip\space\the\skip@}%
\gdef\HyPsd@Rest{\HyPsd@UnexpandableSpace #1}%
\else
\ifdim\skip@=\z@
\else
\HyPsd@RemoveSpaceWarning{\string\kern\space\the\skip@}%
\fi
\gdef\HyPsd@Rest{#1}%
\fi
}
\def\HyPsd@CatcodeWarning#1{%
\HyPsd@Warning{%
Token not allowed in a PDF string (%
\ifHy@unicode
Unicode%
\else
PDFDocEncoding%
\fi
):%
\MessageBreak removing `\HyPsd@RemoveCmdPrefix#1'%
}%
}
\begingroup
\catcode`\|=0 %
\catcode`\\=12 %
|gdef|HyPsd@RemoveCmdPrefix#1{%
|expandafter|HyPsd@@RemoveCmdPrefix
|string#1|@empty\<>-|@empty|@empty
}%
|gdef|HyPsd@@RemoveCmdPrefix#1\<>-#2|@empty#3|@empty{#1#2}%
|endgroup
\def\HyPsd@RemoveSpaceWarning#1{%
\HyPsd@Warning{%
Token not allowed in a PDF string (%
\ifHy@unicode
Unicode%
\else
PDFDocEncoding%
\fi
):%
\MessageBreak #1\MessageBreak
removed%
}%
}
\def\HyPsd@ReplaceSpaceWarning#1{%
\HyPsd@Warning{%
Token not allowed in a PDF string (%
\ifHy@unicode
Unicode%
\else
PDFDocEncoding%
\fi
):%
\MessageBreak #1\MessageBreak
replaced by space%
}%
}
\def\HyPsd@GlyphProcess#1\relax#2\@empty{%
\expandafter\def\expandafter\HyPsd@String\expandafter{%
\HyPsd@String#1%
}%
\ifx\\#2\\%
\else
\ltx@ReturnAfterFi{%
\HyPsd@GlyphProcessWarning#2\@empty
}%
\fi
}
\def\HyPsd@GlyphProcessWarning#1>#2\@empty{%
\HyPsd@@GlyphProcessWarning#1++>%
\HyPsd@GlyphProcess#2\@empty
}
\def\HyPsd@@GlyphProcessWarning#1+#2+#3>{%
\ifx\\#2\\%
\HyPsd@Warning{%
Glyph not defined in %
P\ifHy@unicode U\else D1\fi\space encoding,\MessageBreak
removing `\@backslashchar#1'%
}%
\else
\HyPsd@Warning{%
Composite letter `\@backslashchar#1+#2'\MessageBreak
not defined in P\ifHy@unicode U\else D1\fi\space encoding,%
\MessageBreak
removing `\@backslashchar#1'%
}%
\fi
}
\def\HyPsd@spaceopti#1{ % first space
\ifx\HyPsd@spaceopti#1%
\040%
\else
#1%
\fi
}%
\def\HyPsd@Subst#1#2#3{%
\def\HyPsd@@ReplaceFi##1#1##2\END\fi{%
\fi
##1%
\ifx\scrollmode##2\scrollmode
\else
#2%
\HyPsd@@ReplaceFi##2\END
\fi
}%
\xdef#3{%
\iftrue
\expandafter\HyPsd@@ReplaceFi#3#1\END
\fi
}%
}
\def\HyPsd@StringSubst#1{%
\expandafter\HyPsd@Subst\expandafter{\string#1}%
}
\begingroup
\lccode`\!=`\%%
\lccode`\|=`\\%
\lccode`\(=`\{%
\lccode`\)=`\}%
\lccode`0=\ltx@zero
\lccode`1=\ltx@zero
\lccode`3=\ltx@zero
\lccode`4=\ltx@zero
\lccode`5=\ltx@zero
\lccode`7=\ltx@zero
\lowercase{\endgroup
\def\HyPsd@EscapeTeX#1{%
\HyPsd@Subst!{|045}#1%
\HyPsd@Subst({|173}#1%
\HyPsd@Subst){|175}#1%
}%
}
\def\HyPsd@doxspace#1{%
\ifx#1\relax\else
\ifx#1.\else
\ifx#1:\else
\ifx#1,\else
\ifx#1;\else
\ifx#1!\else
\ifx#1?\else
\ifx#1/\else
\ifx#1-\else
\ifx#1'\else
\HyPsd@SPACEOPTI
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
#1%
}%
\begingroup
\catcode`\|=0 %
\catcode`\\=12 %
|gdef|HyPsd@ConvertToUnicode#1{%
|xdef#1{%
|expandafter|HyPsd@DoConvert#1|@empty|@empty|@empty
}%
|ifx#1|@empty
|else
|xdef#1{%
\376\377%
#1%
}%
|fi
}%
|gdef|HyPsd@DoConvert#1{%
|ifx#1|@empty
|else
|ltx@ReturnAfterFi{%
|ifx#1\%%
\%%
|expandafter|HyPsd@DoEscape
|else
|HyPsd@Char{#1}%
|expandafter|HyPsd@DoConvert
|fi
}%
|fi
}%
|gdef|HyPsd@DoEscape#1{%
|ifx#19%
|expandafter|HyPsd@GetTwoBytes
|else
|ltx@ReturnAfterFi{%
|ifx#18%
00%
|expandafter|HyPsd@GetTwoBytes
|else
#1%
|expandafter|HyPsd@GetOneByte
|fi
}%
|fi
}%
|gdef|HyPsd@GetTwoBytes#1\#2#3#4{%
#1\#2#3#4%
|HyPsd@DoConvert
}%
|gdef|HyPsd@GetOneByte#1#2{%
#1#2%
|HyPsd@DoConvert
}%
|endgroup
\def\HyPsd@GetNextTwoTokens#1#2#3\END#4{%
\xdef#4{#4#1#2}%
\HyPsd@@ConvertToUnicode#3\END#4%
}
\begingroup
\catcode0=9 %
\catcode`\^=7 %
\catcode`\^^^=12 %
\def\x{^^^^0000}%
\expandafter\endgroup
\ifx\x\@empty
\def\HyPsd@Char#1{%
\ifnum`#1<128 %
\@backslashchar 000#1%
\else
\ifnum`#1<65536 %
\expandafter\HyPsd@CharTwoByte\number`#1!%
\else
\expandafter\expandafter\expandafter\HyPsd@CharSurrogate
\intcalcSub{`#1}{65536}!%
\fi
\fi
}%
\def\HyPsd@CharTwoByte#1!{%
\expandafter\expandafter\expandafter\HyPsd@CharOctByte
\IntCalcDiv#1!256!!%
\expandafter\expandafter\expandafter\HyPsd@CharOctByte
\IntCalcMod#1!256!!%
}%
\def\HyPsd@CharOctByte#1!{%
\@backslashchar
\IntCalcDiv#1!64!%
\intcalcDiv{\IntCalcMod#1!64!}{8}%
\IntCalcMod#1!8!%
}%
\def\HyPsd@CharSurrogate#1!{%
\@backslashchar 33%
\IntCalcDiv#1!262144!%
\expandafter\expandafter\expandafter\HyPsd@CharOctByte
\intcalcDiv{\IntCalcMod#1!262144!}{1024}!%
\@backslashchar 33%
\expandafter\expandafter\expandafter\IntCalcAdd
\intcalcDiv{\IntCalcMod#1!1024!}{256}!4!%
\expandafter\expandafter\expandafter\HyPsd@CharOctByte
\IntCalcMod#1!256!!%
}%
\else
\def\HyPsd@Char#1{%
\@backslashchar 000#1%
}%
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname numexpr\endcsname\relax
\let\HyPsd@UTFviii\relax
\else
\begingroup
\lccode`\~=`^^f4\relax
\lowercase{\endgroup
\def\HyPsd@UTFviii{%
\let\UTFviii@two@octets\HyPsd@UTFviii@two
\let\UTFviii@three@octets\HyPsd@UTFviii@three
\let\UTFviii@four@octets\HyPsd@UTFviii@four
\ifx~\HyPsd@UTFviii@ccxliv@undef
\let~\HyPsd@UTFviii@ccxliv@def
\fi
\let\unichar\HyPsd@unichar
}%
}%
\def\HyPsd@UTFviii@ccxliv@undef{\@inpenc@undefined@{utf8}}%
\edef\HyPsd@UTFviii@ccxliv@def{%
\noexpand\UTFviii@four@octets\string ^^f4%
}%
\def\HyPsd@UTFviii@two#1#2{%
\expandafter\HyPsd@UTFviii@@two
\number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|%
\number`#1\expandafter|%
\number\dimexpr.125\dimexpr`#2sp\expandafter\relax\expandafter|%
\number`#2 \@nil
}%
\def\HyPsd@UTFviii@@two#1|#2|#3|#4\@nil{%
\expandafter\8%
\number\numexpr #1-48\expandafter\relax
\csname\number\numexpr #2-4*#1\relax\expandafter\endcsname
\number\numexpr #3-8*%
\number\dimexpr.125\dimexpr#3sp\relax\relax\expandafter\relax
\number\numexpr #4-8*#3\relax
}%
\def\HyPsd@UTFviii@three#1#2#3{%
\expandafter\HyPsd@UTFviii@@three
\number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|%
\number`#1\expandafter|%
\number\ifnum\numexpr`#2-128\relax <32 0\else 1\fi\expandafter|%
\number\dimexpr.25\dimexpr`#2sp\expandafter\relax\expandafter|%
\number`#2\expandafter|%
\number\dimexpr.125\dimexpr`#3sp\expandafter\relax\expandafter|%
\number`#3 \@nil
}%
\def\HyPsd@UTFviii@@three#1|#2|#3|#4|#5|#6|#7\@nil{%
\expandafter\9%
\number\numexpr #1-56\expandafter\relax
\number\numexpr 2*(#2-4*#1)+#3\expandafter\relax
\number\numexpr #4 - 32 -\ifcase#3 0\else 8\fi\expandafter\relax
\csname\number\numexpr #5-4*#4\relax\expandafter\endcsname
\number\numexpr #6-16\expandafter\relax
\number\numexpr #7-8*#6\relax
}%
\def\HyPsd@UTFviii@four#1#2{%
\expandafter\HyPsd@@UTFviii@four\number
\numexpr-1+(`#1-240)*4+\dimexpr.0625\dimexpr`#2sp-128sp%
\expandafter|\number
\numexpr`#2-16*\dimexpr.0625\dimexpr`#2sp|%
}%
\def\HyPsd@@UTFviii@four#1|#2|#3{%
\933\number\dimexpr.25\dimexpr#1sp\relax\relax
\csname\number\numexpr#1-4*\dimexpr.25\dimexpr#1sp\endcsname
\ifodd#2 %
\number\numexpr(#2-1)/2\relax
\else
\number\numexpr#2/2\relax
\fi
\number\numexpr\ifodd#2 4+\fi
\dimexpr.0625\dimexpr`#3sp-128sp\relax\relax\relax
\933%
\expandafter\HyPsd@@@UTFviii@four\number
\numexpr`#3-16*\dimexpr.0625\dimexpr`#3sp|%
}%
\def\HyPsd@@@UTFviii@four#1|#2{%
\number\numexpr4+\dimexpr.25\dimexpr#1sp\relax\relax\relax
\csname\number\numexpr#1-4*\dimexpr.25\dimexpr#1sp\endcsname
\number\dimexpr.125\dimexpr`#2sp-128sp\relax\relax
\number\numexpr`#2-8*\dimexpr.125\dimexpr`#2sp\relax\relax\relax
}%
\def\HyPsd@unichar#1{%
\ifHy@unicode
\ifnum#1>"10FFFF %
\HyPsd@UnicodeReplacementCharacter % illegal
\else
\ifnum#1>"FFFF %
\expandafter\HyPsd@unichar\expandafter{%
\number\numexpr 55296+%
\dimexpr.0009765625\dimexpr\number#1sp-\p@
\relax\relax\relax
}%
\expandafter\HyPsd@unichar\expandafter{%
\number\numexpr#1-9216%
-1024*\dimexpr.0009765625\dimexpr\number#1sp-\p@
\relax\relax\relax
}%
\else
\ifnum#1>"7FF %
\9%
\expandafter\HyPsd@unichar@first@byte\expandafter{%
\number
\dimexpr.00390625\dimexpr\number#1sp\relax\relax
}%
\else
\8%
\number\dimexpr.00390625\dimexpr\number#1sp\relax\relax
\fi
\expandafter\HyPsd@unichar@second@byte\expandafter{%
\number
\numexpr#1-256*\number
\dimexpr.00390625\dimexpr\number#1sp\relax\relax\relax
}%
\fi
\fi
\else
.% unsupported (Unicode -> PDF Doc Encoding)
\fi
}%
\def\HyPsd@UnicodeReplacementCharacter{\9377\375}%
\def\HyPsd@unichar@first@byte#1{%
\number\dimexpr.015625\dimexpr#1sp\relax\relax
\expandafter\HyPsd@unichar@octtwo\expandafter{%
\number
\numexpr#1-64*\number\dimexpr.015625\dimexpr#1sp%
\relax\relax\relax
}%
}%
\def\HyPsd@unichar@second@byte#1{%
\csname\number\dimexpr.015625\dimexpr#1sp\relax\relax\endcsname
\expandafter\HyPsd@unichar@octtwo\expandafter{%
\number
\numexpr#1-64*\number\dimexpr.015625\dimexpr#1sp%
\relax\relax\relax
}%
}%
\def\HyPsd@unichar@octtwo#1{%
\number\dimexpr.125\dimexpr#1sp\relax\relax
\number\numexpr#1-8*\number\dimexpr.125\dimexpr#1sp%
\relax\relax\relax
}%
\fi
\def\HyPsd@utf@viii@undeferr#1#2#3#4#5#6{%
\ifx\@gobble#1%
\else
[Please insert \textbackslash PrerenderUnicode%
\textbraceleft#1\textbraceright\space
into preamble]%
\fi
}%
\def\HyPsd@DieFace#1{%
\ifHy@unicode
\ifnum#1<1 %
\HyPsd@UnicodeReplacementCharacter
\else
\ifnum#1>6 %
\9046\205%
\expandafter\expandafter\expandafter
\HyPsd@DieFaceLarge\intcalcSub{#1}{6}!%
\else
\9046\20\intcalcDec{#1}%
\fi
\fi
\else
.% Die faces are not part of PDFDocEncoding
\fi
}
\def\HyPsd@DieFaceLarge#1!{%
\ifnum#1>6 %
\expandafter\ltx@firstoftwo
\else
\expandafter\ltx@secondoftwo
\fi
{%
\9046\205%
\expandafter\expandafter\expandafter
\HyPsd@DieFaceLarge\IntCalcSub#1!6!!%
}{%
\9046\20\IntCalcDec#1!%
}%
}
\def\HyPsd@MoonPha#1{%
\ifcase\intcalcNum{#1} %
\HyPsd@UnicodeReplacementCharacter
\or % 1
\9330\074\9337\032%
\or % 2
\HyPsd@UnicodeReplacementCharacter
\or % 3
\9330\074\9337\035%
\or % 4
\9330\074\9337\034%
\else
\HyPsd@UnicodeReplacementCharacter
\fi
}
\def\HyPsd@ding#1{%
\ifHy@unicode
\ifnum#1<32 %
\HyPsd@UnicodeReplacementCharacter
\else
\ifnum#1>254 %
\HyPsd@UnicodeReplacementCharacter
\else
\ifnum#1<127 %
\expandafter\expandafter\expandafter
\HyPsd@@ding\intcalcNum{#1}!%
\else
\ifnum#1>160 %
\expandafter\expandafter\expandafter
\HyPsd@@ding\intcalcNum{#1}!%
\else
\HyPsd@UnicodeReplacementCharacter
\fi
\fi
\fi
\fi
\else
.% Dingbats are not part of PDFDocEncoding
\fi
}
\def\HyPsd@@ding#1!{%
\ltx@ifundefined{HyPsd@ding@#1}{%
\ifnum#1<127 %
\9047%
\HyPsd@DecimalToOctalSecond{\IntCalcSub#1!32!}%
\else
\ifnum#1<168 %
\9047\14\IntCalcSub#1!160!%
\else
\ifnum#1>181 %
\9047\HyPsd@DecimalToOctalSecond{\IntCalcSub#1!64!}%
\else
% 172..181 -> U+2460..U+2469
\9044\HyPsd@DecimalToOctalSecond{\IntCalcSub#1!76!}%
\fi
\fi
\fi
}{%
\csname HyPsd@ding@#1\endcsname
}%
}
\@namedef{HyPsd@ding@32}{\space}
\@namedef{HyPsd@ding@37}{\9046\016}% U+260E
\@namedef{HyPsd@ding@42}{\9046\033}% U+261B
\@namedef{HyPsd@ding@43}{\9046\036}% U+261E
\@namedef{HyPsd@ding@72}{\9046\005}% U+2605
\@namedef{HyPsd@ding@108}{\9045\317}% U+25CF
\@namedef{HyPsd@ding@110}{\9045\240}% U+25A0
\@namedef{HyPsd@ding@115}{\9045\262}% U+25B2
\@namedef{HyPsd@ding@116}{\9045\274}% U+25BC
\@namedef{HyPsd@ding@117}{\9045\306}% U+25C6
\@namedef{HyPsd@ding@119}{\9045\327}% U+25D7
\@namedef{HyPsd@ding@168}{\textclubsuitblack}%
\@namedef{HyPsd@ding@169}{\textdiamondsuitblack}%
\@namedef{HyPsd@ding@170}{\textheartsuitblack}%
\@namedef{HyPsd@ding@171}{\textspadesuitblack}%
\@namedef{HyPsd@ding@213}{\textrightarrow}%
\@namedef{HyPsd@ding@214}{\textleftrightarrow}%
\@namedef{HyPsd@ding@215}{\textupdownarrow}%
\@namedef{HyPsd@ding@240}{\HyPsd@UnicodeReplacementCharacter}
\@ifclassloaded{memoir}{%
\Hy@AtEndOfPackage{\RequirePackage{memhfixc}}%
}{}
\@ifpackageloaded{subfigure}{%
\ltx@IfUndefined{sub@label}{%
\Hy@hypertexnamesfalse
}{%
\renewcommand*{\sub@label}[1]{%
\@bsphack
\subfig@oldlabel{#1}%
\if@filesw
\begingroup
\edef\@currentlabstr{%
\expandafter\strip@prefix\meaning\@currentlabelname
}%
\protected@write\@auxout{}{%
\string\newlabel{sub@#1}{%
{\@nameuse{@@thesub\@captype}}%
{\thepage}%
{%
\expandafter\strip@period\@currentlabstr
\relax.\relax\@@@%
}%
{\@currentHref}%
{}%
}%
}%
\endgroup
\fi
\@esphack
}%
\@ifpackagelater{subfigure}{2002/03/26}{}{%
\providecommand*{\toclevel@subfigure}{1}%
\providecommand*{\toclevel@subtable}{1}%
}%
}%
}{}
\ltx@IfUndefined{XR@addURL}{%
}{%
\def\XR@addURL#1{\XR@@dURL#1{}{}{}{}\\}%
\def\XR@@dURL#1#2#3#4#5\\{%
{#1}{#2}%
\if!#4!%
\else
{#3}{#4}{\XR@URL}%
\fi
}%
}
\def\Hy@true{true}
\def\Hy@false{false}
\let\literalps@out\@gobble
\newcommand\pdfbookmark[3][]{}
\def\Acrobatmenu#1#2{\leavevmode#2}
\def\Hy@writebookmark#1#2#3#4#5{}%
\let\HyperRaiseLinkHook\@empty
\def\HyperRaiseLinkDefault{\baselineskip}
\newcount\Hy@SavedSpaceFactor
\def\Hy@SaveSpaceFactor{%
\global\Hy@SavedSpaceFactor=\ifhmode\spacefactor\else\z@\fi
}
\def\Hy@RestoreSpaceFactor{%
\relax
\ifhmode
\ifnum\Hy@SavedSpaceFactor>\z@
\spacefactor=\Hy@SavedSpaceFactor
\fi
\fi
}
\def\Hy@SaveSavedSpaceFactor{%
\edef\Hy@RestoreSavedSpaceFactor{%
\global\Hy@SavedSpaceFactor=\the\Hy@SavedSpaceFactor\relax
}%
}
\def\Hy@raisedlink#1{%
\ifvmode
#1%
\else
\Hy@SaveSpaceFactor
\penalty\@M
\smash{%
\begingroup
\let\HyperRaiseLinkLength\@tempdima
\setlength\HyperRaiseLinkLength\HyperRaiseLinkDefault
\HyperRaiseLinkHook
\expandafter\endgroup
\expandafter\raise\the\HyperRaiseLinkLength\hbox{%
\Hy@RestoreSpaceFactor
#1%
\Hy@SaveSpaceFactor
}%
}%
\Hy@RestoreSpaceFactor
\fi
}
\def\Hy@SaveLastskip{%
\let\Hy@RestoreLastskip\relax
\ifvmode
\ifdim\lastskip=\z@
\let\Hy@RestoreLastskip\nobreak
\else
\begingroup
\skip@=-\lastskip
\edef\x{%
\endgroup
\def\noexpand\Hy@RestoreLastskip{%
\noexpand\ifvmode
\noexpand\nobreak
\vskip\the\skip@
\vskip\the\lastskip\relax
\noexpand\fi
}%
}%
\x
\fi
\else
\ifhmode
\ifdim\lastskip=\z@
\let\Hy@RestoreLastskip\nobreak
\else
\begingroup
\skip@=-\lastskip
\edef\x{%
\endgroup
\def\noexpand\Hy@RestoreLastskip{%
\noexpand\ifhmode
\noexpand\nobreak
\hskip\the\skip@
\hskip\the\lastskip\relax
\noexpand\fi
}%
}%
\x
\fi
\fi
\fi
}%
\SetupKeyvalOptions{%
family=Hyp,%
prefix=HyOpt%
}
\def\IfHyperBooleanExists#1{%
\ltx@ifundefined{Hy@#1false}\ltx@secondoftwo{%
\ltx@ifundefined{KV@Hyp@#1@default}\ltx@secondoftwo\ltx@firstoftwo
}%
}
\@namedef{KV@Hyp@stoppedearly@default}{}
\def\IfHyperBoolean#1{%
\IfHyperBooleanExists{#1}{%
\csname ifHy@#1\endcsname
\expandafter\ltx@firstoftwo
\else
\expandafter\ltx@secondoftwo
\fi
}\ltx@secondoftwo
}
\def\Hy@boolkey#1#2{%
\edef\Hy@tempa{#2}%
\lowercase\expandafter{%
\expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}%
}%
\ifx\Hy@tempa\@empty
\let\Hy@tempa\Hy@true
\fi
\ifx\Hy@tempa\Hy@true
\else
\ifx\Hy@tempa\Hy@false
\else
\let\Hy@tempa\relax
\fi
\fi
\ifx\Hy@tempa\relax
\Hy@WarnOptionValue{#2}{#1}{`true' or 'false'}%
\else
\Hy@Info{Option `#1' set `\Hy@tempa'}%
\csname Hy@#1\Hy@tempa\endcsname
\fi
}
\def\Hy@WarnOptionValue#1#2#3{%
\Hy@Warning{%
Unexpected value `#1'\MessageBreak
of option `#2' instead of\MessageBreak
#3%
}%
}
\def\Hy@DisableOption#1{%
\ltx@ifundefined{KV@Hyp@#1@default}{%
\define@key{Hyp}{#1}%
}{%
\define@key{Hyp}{#1}[]%
}%
{\Hy@WarnOptionDisabled{#1}}%
}
\def\Hy@WarnOptionDisabled#1{%
\Hy@Warning{%
Option `#1' has already been used,\MessageBreak
setting the option has no effect%
}%
}
\def\Hy@CheckOptionValue#1#2#3{%
\begingroup
\edef\x{#1}%
\@onelevel@sanitize\x
\let\y=y%
\def\do##1##2{%
\def\z{##1}%
\@onelevel@sanitize\z
\ifx\x\z
\let\y=n%
\let\do\@gobbletwo
\fi
}%
#3%
\ifx\y y%
\def\do##1##2{%
* `##1'%
\ifx\\##2\\\else\space(##2)\fi
\MessageBreak
}%
\Hy@Warning{%
Values of option `#2':\MessageBreak
#3%
* An empty value disables the option.\MessageBreak
Unknown value `\x'%
}%
\fi
\endgroup
}
\def\Hy@DefNameKey#1{%
\expandafter\Hy@@DefNameKey\csname @#1\endcsname{#1}%
}
\def\Hy@@DefNameKey#1#2#3{%
\define@key{Hyp}{#2}{%
\edef#1{##1}%
\ifx#1\@empty
\else
\Hy@CheckOptionValue{##1}{#2}{#3}%
\fi
}%
\let#1\@empty
}
\def\Hy@UseNameKey#1#2{%
\ifx#2\@empty
\else
/#1/#2%
\fi
}
\define@key{Hyp}{implicit}[true]{%
\Hy@boolkey{implicit}{#1}%
}
\define@key{Hyp}{draft}[true]{%
\Hy@boolkey{draft}{#1}%
}
\define@key{Hyp}{final}[true]{%
\Hy@boolkey{final}{#1}%
}
\let\KV@Hyp@nolinks\KV@Hyp@draft
\def\Hy@ObsoletePaperOption#1{%
\Hy@WarningNoLine{%
Option `#1' is no longer used%
}%
\define@key{Hyp}{#1}[true]{}%
}
\def\Hy@temp#1{%
\define@key{Hyp}{#1}[true]{%
\Hy@ObsoletePaperOption{#1}%
}%
}
\Hy@temp{a4paper}
\Hy@temp{a5paper}
\Hy@temp{b5paper}
\Hy@temp{letterpaper}
\Hy@temp{legalpaper}
\Hy@temp{executivepaper}
\define@key{Hyp}{setpagesize}[true]{%
\Hy@boolkey{setpagesize}{#1}%
}
\define@key{Hyp}{debug}[true]{%
\Hy@boolkey{debug}{#1}%
}
\define@key{Hyp}{linktocpage}[true]{%
\Hy@boolkey{linktocpage}{#1}%
\ifHy@linktocpage
\let\Hy@linktoc\Hy@linktoc@page
\else
\let\Hy@linktoc\Hy@linktoc@section
\fi
}
\chardef\Hy@linktoc@none=0 %
\chardef\Hy@linktoc@section=1 %
\chardef\Hy@linktoc@page=2 %
\chardef\Hy@linktoc@all=3 %
\ifHy@linktocpage
\let\Hy@linktoc\Hy@linktoc@page
\else
\let\Hy@linktoc\Hy@linktoc@section
\fi
\define@key{Hyp}{linktoc}{%
\@ifundefined{Hy@linktoc@#1}{%
\Hy@Warning{%
Unexpected value `#1' of\MessageBreak
option `linktoc' instead of `none',\MessageBreak
`section', `page' or `all'%
}%
}{%
\expandafter\let\expandafter\Hy@linktoc
\csname Hy@linktoc@#1\endcsname
}%
}
\define@key{Hyp}{extension}{\def\XR@ext{#1}}
\let\XR@ext\relax
\define@key{Hyp}{verbose}[true]{%
\Hy@boolkey{verbose}{#1}%
}
\define@key{Hyp}{typexml}[true]{%
\Hy@boolkey{typexml}{#1}%
}
\define@key{Hyp}{raiselinks}[true]{%
\Hy@boolkey{raiselinks}{#1}%
}
\def\Hy@setbreaklinks#1{%
\csname breaklinks#1\endcsname
}
\def\Hy@breaklinks@unsupported{%
\ifx\Hy@setbreaklinks\@gobble
\ifHy@breaklinks
\Hy@WarningNoLine{%
You have enabled option `breaklinks'.\MessageBreak
But driver `\Hy@driver.def' does not suppport this.\MessageBreak
Expect trouble with the link areas of broken links%
}%
\fi
\fi
}
\define@key{Hyp}{breaklinks}[true]{%
\Hy@boolkey{breaklinks}{#1}%
\let\Hy@setbreaklinks\@gobble
}
\define@key{Hyp}{localanchorname}[true]{%
\Hy@boolkey{localanchorname}{#1}%
}
\define@key{Hyp}{pageanchor}[true]{%
\Hy@boolkey{pageanchor}{#1}%
}
\define@key{Hyp}{plainpages}[true]{%
\Hy@boolkey{plainpages}{#1}%
}
\define@key{Hyp}{naturalnames}[true]{%
\Hy@boolkey{naturalnames}{#1}%
}
\define@key{Hyp}{hypertexnames}[true]{%
\Hy@boolkey{hypertexnames}{#1}%
}
\define@key{Hyp}{nesting}[true]{%
\Hy@boolkey{nesting}{#1}%
}
\define@key{Hyp}{destlabel}[true]{%
\Hy@boolkey{destlabel}{#1}%
}
\define@key{Hyp}{unicode}[true]{%
\Hy@boolkey{unicode}{#1}%
\ifHy@unicode
\def\HyPsd@pdfencoding{unicode}%
\HyPsd@LoadUnicode
\else
\def\HyPsd@pdfencoding{pdfdoc}%
\fi
}
\Hy@AtBeginDocument{%
\ifx\HyPsd@LoadUnicode\relax
\else
\def\HyPsd@LoadUnicode{%
\Hy@Error{%
Unicode support for bookmarks is not available.\MessageBreak
Activate unicode support by using one of the options\MessageBreak
`unicode', `pdfencoding=unicode', `pdfencoding=auto'\MessageBreak
in the preamble%
}\@ehc
\global\let\HyPsd@LoadUnicode\relax
\global\Hy@unicodefalse
\global\let\Hy@unicodetrue\Hy@unicodefalse
}%
\fi
}
\define@key{Hyp}{pdfencoding}{%
\edef\HyPsd@temp{#1}%
\ifx\HyPsd@temp\HyPsd@pdfencoding@pdfdoc
\let\HyPsd@pdfencoding\HyPsd@temp
\Hy@unicodefalse
\else
\ifcase\ifx\HyPsd@temp\HyPsd@pdfencoding@unicode
\z@
\else
\ifx\HyPsd@temp\HyPsd@pdfencoding@auto
\z@
\else
\@ne
\fi
\fi
\let\HyPsd@pdfencoding\HyPsd@temp
\hypersetup{unicode}%
\ifHy@unicode
\def\HyPsd@pdfencoding{#1}%
\ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto
\HyPsd@LoadStringEnc
\fi
\else
\Hy@Warning{Cannot switch to unicode bookmarks}%
\let\HyPsd@pdfencoding\HyPsd@pdfencoding@pdfdoc
\fi
\else
\@onelevel@sanitize\HyPsd@temp
\Hy@Warning{%
Values of option `pdfencoding':\MessageBreak
`pdfdoc', `unicode', `auto'.\MessageBreak
Ignoring unknown value `\HyPsd@temp'%
}%
\fi
\fi
}
\def\HyPsd@pdfencoding@auto{auto}
\def\HyPsd@pdfencoding@pdfdoc{pdfdoc}
\def\HyPsd@pdfencoding@unicode{unicode}
\let\HyPsd@pdfencoding\Hy@pdfencoding@pdfdoc
\def\HyPsd@LoadStringEnc{%
\RequirePackage{stringenc}[2009/12/15]%
\let\HyPsd@LoadStringEnc\relax
}
\Hy@AtBeginDocument{%
\@ifpackageloaded{stringenc}{%
\let\HyPsd@LoadStringEnc\relax
}{%
\def\HyPsd@LoadStringEnc{%
\Hy@WarningNoLine{%
Missing package `stringenc'. Use `pdfencoding=auto'\MessageBreak
in the preamble or load the package there%
}%
}%
}%
}
\define@key{Hyp}{psdextra}[true]{%
\Hy@boolkey{psdextra}{#1}%
\HyPsd@LoadExtra
}
\def\hypersetup{\kvsetkeys{Hyp}}
\newif\ifHy@setpdfversion
\define@key{Hyp}{pdfversion}{%
\@ifundefined{Hy@pdfversion@#1}{%
\PackageWarning{hyperref}{%
Unsupported PDF version `#1'.\MessageBreak
Valid values: 1.2 until 1.9%
}%
}{%
\Hy@setpdfversiontrue
\edef\Hy@pdfversion{\@nameuse{Hy@pdfversion@#1}}%
}%
}
\@namedef{Hy@pdfversion@1.2}{2}%
\@namedef{Hy@pdfversion@1.3}{3}%
\@namedef{Hy@pdfversion@1.4}{4}%
\@namedef{Hy@pdfversion@1.5}{5}%
\@namedef{Hy@pdfversion@1.6}{6}%
\@namedef{Hy@pdfversion@1.7}{7}%
\@namedef{Hy@pdfversion@1.8}{8}%
\@namedef{Hy@pdfversion@1.9}{9}%
\def\Hy@pdfversion{2}
\newif\ifHy@DviMode
\let\Hy@DviErrMsg\ltx@empty
\ifpdf
\def\Hy@DviErrMsg{pdfTeX or LuaTeX is running in PDF mode}%
\else
\ifxetex
\def\Hy@DviErrMsg{XeTeX is running}%
\else
\ifvtex
\ifvtexdvi
\Hy@DviModetrue
\else
\def\Hy@DviErrMsg{VTeX is running, but not in DVI mode}%
\fi
\else
\Hy@DviModetrue
\fi
\fi
\fi
\def\HyOpt@CheckDvi#1{%
\ifHy@DviMode
\expandafter\ltx@firstofone
\else
\Hy@Error{%
Wrong DVI mode driver option `#1',\MessageBreak
because \Hy@DviErrMsg
}\@ehc
\expandafter\ltx@gobble
\fi
}
\DeclareVoidOption{tex4ht}{%
\Hy@texhttrue
\kvsetkeys{Hyp}{colorlinks=true}%
\def\BeforeTeXIVht{\RequirePackage{color}}%
\def\Hy@driver{htex4ht}%
\def\MaybeStopEarly{%
\Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
}%
\endinput
}%
}
\DeclareVoidOption{pdftex}{%
\ifpdf
\def\Hy@driver{hpdftex}%
\else
\Hy@Error{%
Wrong driver option `pdftex',\MessageBreak
because pdfTeX in PDF mode is not detected%
}\@ehc
\fi
}
\DeclareVoidOption{nativepdf}{%
\HyOpt@CheckDvi{nativepdf}{%
\def\Hy@driver{hdvips}%
}%
}
\DeclareVoidOption{dvipdfm}{%
\HyOpt@CheckDvi{dvipdfm}{%
\def\Hy@driver{hdvipdfm}%
}%
}
\DeclareVoidOption{dvipdfmx}{%
\HyOpt@CheckDvi{dvipdfmx}{%
\def\Hy@driver{hdvipdfm}%
}%
}
\define@key{Hyp}{dvipdfmx-outline-open}[true]{%
\expandafter\ifx\csname if#1\expandafter\endcsname
\csname iftrue\endcsname
\chardef\SpecialDvipdfmxOutlineOpen\@ne
\else
\chardef\SpecialDvipdfmxOutlineOpen\z@
\fi
}
\DeclareVoidOption{xetex}{%
\ifxetex
\def\Hy@driver{hxetex}%
\else
\Hy@Error{%
Wrong driver option `xetex',\MessageBreak
because XeTeX is not detected%
}\@ehc
\fi
}
\DeclareVoidOption{pdfmark}{%
\HyOpt@CheckDvi{pdfmark}{%
\def\Hy@driver{hdvips}%
}%
}
\DeclareVoidOption{dvips}{%
\HyOpt@CheckDvi{dvips}{%
\def\Hy@driver{hdvips}%
}%
}
\DeclareVoidOption{hypertex}{%
\HyOpt@CheckDvi{hypertex}{%
\def\Hy@driver{hypertex}%
}%
}
\let\Hy@MaybeStopNow\relax
\DeclareVoidOption{vtex}{%
\ifvtex
\ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
\def\Hy@driver{hvtex}%
\else
\ifnum\OpMode=10\relax
\def\Hy@driver{hvtexhtm}%
\def\MaybeStopEarly{%
\Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
}%
\endinput
}%
\else
\Hy@Error{%
Wrong driver option `vtex',\MessageBreak
because of wrong OpMode (\the\OpMode)%
}\@ehc
\fi
\fi
\else
\Hy@Error{%
Wrong driver option `vtex',\MessageBreak
because VTeX is not running%
}\@ehc
\fi
}
\DeclareVoidOption{vtexpdfmark}{%
\ifvtex
\ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
\def\Hy@driver{hvtexmrk}%
\else
\Hy@Error{%
Wrong driver option `vtexpdfmark',\MessageBreak
because of wrong OpMode (\the\OpMode)%
}\@ehc
\fi
\else
\Hy@Error{%
Wrong driver option `vtexpdfmark,\MessageBreak
because VTeX is not running%
}\@ehc
\fi
}
\DeclareVoidOption{dviwindo}{%
\HyOpt@CheckDvi{dviwindo}{%
\def\Hy@driver{hdviwind}%
\kvsetkeys{Hyp}{colorlinks}%
\PassOptionsToPackage{dviwindo}{color}%
}%
}
\DeclareVoidOption{dvipsone}{%
\HyOpt@CheckDvi{dvipsone}{%
\def\Hy@driver{hdvipson}%
}%
}
\DeclareVoidOption{textures}{%
\HyOpt@CheckDvi{textures}{%
\def\Hy@driver{htexture}%
}%
}
\DeclareVoidOption{latex2html}{%
\HyOpt@CheckDvi{latex2html}{%
\Hy@AtBeginDocument{\@@latextohtmlX}%
}%
}
\DeclareVoidOption{ps2pdf}{%
\HyOpt@CheckDvi{ps2pdf}{%
\def\Hy@driver{hdvips}%
}%
}
\let\HyOpt@DriverFallback\ltx@empty
\define@key{Hyp}{driverfallback}{%
\ifHy@DviMode
\def\HyOpt@DriverFallback{#1}%
\Hy@Match\HyOpt@DriverFallback{}{%
^(|dvipdfm|dvipdfmx|dvips|dvipsone|dviwindo|hypertex|ps2pdf|%
latex2html|tex4ht)$%
}{}{%
\Hy@Warning{%
Invalid driver `#1' for option\MessageBreak
`driverfallback'%
}%
\let\HyOpt@DriverFallback\ltx@empty
}%
\fi
}
\let\HyOpt@CustomDriver\ltx@empty
\define@key{Hyp}{customdriver}{%
\IfFileExists{#1.def}{%
\def\HyOpt@CustomDriver{#1}%
}{%
\Hy@Warning{%
Missing driver file `#1.def',\MessageBreak
ignoring custom driver%
}%
}%
}
\define@key{Hyp}{hyperfigures}[true]{%
\Hy@boolkey{hyperfigures}{#1}%
}
\define@key{Hyp}{hyperfootnotes}[true]{%
\Hy@boolkey{hyperfootnotes}{#1}%
}
\def\back@none{none}
\def\back@section{section}
\def\back@page{page}
\def\back@slide{slide}
\define@key{Hyp}{backref}[section]{%
\lowercase{\def\Hy@tempa{#1}}%
\ifx\Hy@tempa\@empty
\let\Hy@tempa\back@section
\fi
\ifx\Hy@tempa\Hy@false
\let\Hy@tempa\back@none
\fi
\ifx\Hy@tempa\back@slide
\let\Hy@tempa\back@section
\fi
\ifx\Hy@tempa\back@page
\PassOptionsToPackage{hyperpageref}{backref}%
\Hy@backreftrue
\else
\ifx\Hy@tempa\back@section
\PassOptionsToPackage{hyperref}{backref}%
\Hy@backreftrue
\else
\ifx\Hy@tempa\back@none
\Hy@backreffalse
\else
\Hy@WarnOptionValue{#1}{backref}{%
`section', `slide', `page', `none',\MessageBreak
or `false'}%
\fi
\fi
\fi
}
\define@key{Hyp}{pagebackref}[true]{%
\edef\Hy@tempa{#1}%
\lowercase\expandafter{%
\expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}%
}%
\ifx\Hy@tempa\@empty
\let\Hy@tempa\Hy@true
\fi
\ifx\Hy@tempa\Hy@true
\PassOptionsToPackage{hyperpageref}{backref}%
\Hy@backreftrue
\else
\ifx\Hy@tempa\Hy@false
\Hy@backreffalse
\else
\Hy@WarnOptionValue{#1}{pagebackref}{`true' or `false'}%
\fi
\fi
}
\define@key{Hyp}{hyperindex}[true]{%
\Hy@boolkey{hyperindex}{#1}%
}
\define@key{Hyp}{encap}[\|]{%
\def\HyInd@EncapChar{#1}%
}
\def\HyLang@afrikaans{%
\def\equationautorefname{Vergelyking}%
\def\footnoteautorefname{Voetnota}%
\def\itemautorefname{Item}%
\def\figureautorefname{Figuur}%
\def\tableautorefname{Tabel}%
\def\partautorefname{Deel}%
\def\appendixautorefname{Bylae}%
\def\chapterautorefname{Hoofstuk}%
\def\sectionautorefname{Afdeling}%
\def\subsectionautorefname{Subafdeling}%
\def\subsubsectionautorefname{Subsubafdeling}%
\def\paragraphautorefname{Paragraaf}%
\def\subparagraphautorefname{Subparagraaf}%
\def\FancyVerbLineautorefname{Lyn}%
\def\theoremautorefname{Teorema}%
\def\pageautorefname{Bladsy}%
}
\def\HyLang@english{%
\def\equationautorefname{Equation}%
\def\footnoteautorefname{footnote}%
\def\itemautorefname{item}%
\def\figureautorefname{Figure}%
\def\tableautorefname{Table}%
\def\partautorefname{Part}%
\def\appendixautorefname{Appendix}%
\def\chapterautorefname{chapter}%
\def\sectionautorefname{section}%
\def\subsectionautorefname{subsection}%
\def\subsubsectionautorefname{subsubsection}%
\def\paragraphautorefname{paragraph}%
\def\subparagraphautorefname{subparagraph}%
\def\FancyVerbLineautorefname{line}%
\def\theoremautorefname{Theorem}%
\def\pageautorefname{page}%
}
\def\HyLang@french{%
\def\equationautorefname{\'Equation}%
\def\footnoteautorefname{note}%
\def\itemautorefname{item}%
\def\figureautorefname{Figure}%
\def\tableautorefname{Tableau}%
\def\partautorefname{Partie}%
\def\appendixautorefname{Appendice}%
\def\chapterautorefname{chapitre}%
\def\sectionautorefname{section}%
\def\subsectionautorefname{sous-section}%
\def\subsubsectionautorefname{sous-sous-section}%
\def\paragraphautorefname{paragraphe}%
\def\subparagraphautorefname{sous-paragraphe}%
\def\FancyVerbLineautorefname{ligne}%
\def\theoremautorefname{Th\'eor\`eme}%
\def\pageautorefname{page}%
}
\def\HyLang@german{%
\def\equationautorefname{Gleichung}%
\def\footnoteautorefname{Fu\ss note}%
\def\itemautorefname{Punkt}%
\def\figureautorefname{Abbildung}%
\def\tableautorefname{Tabelle}%
\def\partautorefname{Teil}%
\def\appendixautorefname{Anhang}%
\def\chapterautorefname{Kapitel}%
\def\sectionautorefname{Abschnitt}%
\def\subsectionautorefname{Unterabschnitt}%
\def\subsubsectionautorefname{Unterunterabschnitt}%
\def\paragraphautorefname{Absatz}%
\def\subparagraphautorefname{Unterabsatz}%
\def\FancyVerbLineautorefname{Zeile}%
\def\theoremautorefname{Theorem}%
\def\pageautorefname{Seite}%
}
\def\HyLang@italian{%
\def\equationautorefname{Equazione}%
\def\footnoteautorefname{nota}%
\def\itemautorefname{punto}%
\def\figureautorefname{Figura}%
\def\tableautorefname{Tabella}%
\def\partautorefname{Parte}%
\def\appendixautorefname{Appendice}%
\def\chapterautorefname{Capitolo}%
\def\sectionautorefname{sezione}%
\def\subsectionautorefname{sottosezione}%
\def\subsubsectionautorefname{sottosottosezione}%
\def\paragraphautorefname{paragrafo}%
\def\subparagraphautorefname{sottoparagrafo}%
\def\FancyVerbLineautorefname{linea}%
\def\theoremautorefname{Teorema}%
\def\pageautorefname{Pag.\@}%
}
\def\HyLang@magyar{%
\def\equationautorefname{Egyenlet}%
\def\footnoteautorefname{l\'abjegyzet}%
\def\itemautorefname{Elem}%
\def\figureautorefname{\'Abra}%
\def\tableautorefname{T\'abl\'azat}%
\def\partautorefname{R\'esz}%
\def\appendixautorefname{F\"uggel\'ek}%
\def\chapterautorefname{fejezet}%
\def\sectionautorefname{szakasz}%
\def\subsectionautorefname{alszakasz}%
\def\subsubsectionautorefname{alalszakasz}%
\def\paragraphautorefname{bekezd\'es}%
\def\subparagraphautorefname{albekezd\'es}%
\def\FancyVerbLineautorefname{sor}%
\def\theoremautorefname{T\'etel}%
\def\pageautorefname{oldal}%
}
\def\HyLang@portuges{%
\def\equationautorefname{Equa\c c\~ao}%
\def\footnoteautorefname{Nota de rodap\'e}%
\def\itemautorefname{Item}%
\def\figureautorefname{Figura}%
\def\tableautorefname{Tabela}%
\def\partautorefname{Parte}%
\def\appendixautorefname{Ap\^endice}%
\def\chapterautorefname{Cap\'itulo}%
\def\sectionautorefname{Se\c c\~ao}%
\def\subsectionautorefname{Subse\c c\~ao}%
\def\subsubsectionautorefname{Subsubse\c c\~ao}%
\def\paragraphautorefname{par\'agrafo}%
\def\subparagraphautorefname{subpar\'agrafo}%
\def\FancyVerbLineautorefname{linha}%
\def\theoremautorefname{Teorema}%
\def\pageautorefname{P\'agina}%
}
\def\HyLang@russian{%
\def\equationautorefname{\cyr\cyrv\cyrery\cyrr.}%
\def\footnoteautorefname{%
\cyr\cyrp\cyro\cyrd\cyrs\cyrt\cyrr.\ \cyrp\cyrr\cyri\cyrm.%
}%
\def\itemautorefname{\cyr\cyrp.}%
\def\figureautorefname{\cyr\cyrr\cyri\cyrs.}%
\def\tableautorefname{\cyr\cyrt\cyra\cyrb\cyrl.}%
\def\partautorefname{\cyr\cyrch.}%
\def\chapterautorefname{\cyr\cyrg\cyrl.}%
\def\sectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
\def\appendixautorefname{\cyr\cyrp\cyrr\cyri\cyrl.}%
\def\subsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
\def\subsubsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
\def\paragraphautorefname{\cyr\cyrp.}%
\def\subparagraphautorefname{\cyr\cyrp.}%
\def\FancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr.}%
\def\theoremautorefname{\cyr\cyrt\cyre\cyro\cyrr.}%
\def\pageautorefname{\cyr\cyrs.}%
}
\def\HyLang@spanish{%
\def\equationautorefname{Ecuaci\'on}%
\def\footnoteautorefname{Nota a pie de p\'agina}%
\def\itemautorefname{Elemento}%
\def\figureautorefname{Figura}%
\def\tableautorefname{Tabla}%
\def\partautorefname{Parte}%
\def\appendixautorefname{Ap\'endice}%
\def\chapterautorefname{Cap\'itulo}%
\def\sectionautorefname{Secci\'on}%
\def\subsectionautorefname{Subsecci\'on}%
\def\subsubsectionautorefname{Subsubsecci\'on}%
\def\paragraphautorefname{P\'arrafo}%
\def\subparagraphautorefname{Subp\'arrafo}%
\def\FancyVerbLineautorefname{L\'inea}%
\def\theoremautorefname{Teorema}%
\def\pageautorefname{P\'agina}%
}
\def\HyLang@vietnamese{%
\def\equationautorefname{Ph\uhorn{}\ohorn{}ng tr\`inh}%
\def\footnoteautorefname{Ch\'u th\'ich}%
\def\itemautorefname{m\d{u}c}%
\def\figureautorefname{H\`inh}%
\def\tableautorefname{B\h{a}ng}%
\def\partautorefname{Ph\`\acircumflex{}n}%
\def\appendixautorefname{Ph\d{u} l\d{u}c}%
\def\chapterautorefname{ch\uhorn{}\ohorn{}ng}%
\def\sectionautorefname{m\d{u}c}%
\def\subsectionautorefname{m\d{u}c}%
\def\subsubsectionautorefname{m\d{u}c}%
\def\paragraphautorefname{\dj{}o\d{a}n}%
\def\subparagraphautorefname{\dj{}o\d{a}n}%
\def\FancyVerbLineautorefname{d\`ong}%
\def\theoremautorefname{\DJ{}\d{i}nh l\'y}%
\def\pageautorefname{Trang}%
}
\def\HyLang@addto#1#2{%
#2%
\@temptokena{#2}%
\ifx#1\relax
\let#1\@empty
\fi
\ifx#1\@undefined
\edef#1{\the\@temptokena}%
\else
\toks@\expandafter{#1}%
\edef#1{\the\toks@\the\@temptokena}%
\fi
\@temptokena{}\toks@\@temptokena
}
\def\HyLang@DeclareLang#1#2#3{%
\@ifpackagewith{babel}{#1}{%
\expandafter\HyLang@addto
\csname extras#1\expandafter\endcsname
\csname HyLang@#2\endcsname
\begingroup
\edef\x{\endgroup
#3%
}%
\x
\@namedef{HyLang@#1@done}{}%
}{}%
\begingroup
\edef\x##1##2{%
\noexpand\ifx##2\relax
\errmessage{No definitions for language #2' found!}%
\noexpand\fi
\endgroup
\noexpand\define@key{Hyp}{#1}[]{%
\noexpand\@ifundefined{HyLang@#1@done}{%
\noexpand\HyLang@addto{\noexpand##1}{\noexpand##2}%
#3%
\noexpand\@namedef{HyLang@#1@done}{}%
}{}%
}%
}%
\expandafter\x\csname extras#1\expandafter\endcsname
\csname HyLang@#2\endcsname
}
\HyLang@DeclareLang{english}{english}{}
\HyLang@DeclareLang{UKenglish}{english}{}
\HyLang@DeclareLang{british}{english}{}
\HyLang@DeclareLang{USenglish}{english}{}
\HyLang@DeclareLang{american}{english}{}
\HyLang@DeclareLang{german}{german}{}
\HyLang@DeclareLang{austrian}{german}{}
\HyLang@DeclareLang{ngerman}{german}{}
\HyLang@DeclareLang{naustrian}{german}{}
\HyLang@DeclareLang{russian}{russian}{\noexpand\hypersetup{unicode}}
\HyLang@DeclareLang{brazil}{portuges}{}
\HyLang@DeclareLang{brazilian}{portuges}{}
\HyLang@DeclareLang{portuguese}{portuges}{}
\HyLang@DeclareLang{spanish}{spanish}{}
\HyLang@DeclareLang{afrikaans}{afrikaans}{}
\HyLang@DeclareLang{french}{french}{}
\HyLang@DeclareLang{frenchb}{french}{}
\HyLang@DeclareLang{francais}{french}{}
\HyLang@DeclareLang{acadian}{french}{}
\HyLang@DeclareLang{canadien}{french}{}
\HyLang@DeclareLang{italian}{italian}{}
\HyLang@DeclareLang{magyar}{magyar}{}
\HyLang@DeclareLang{hungarian}{magyar}{}
\DeclareVoidOption{vietnamese}{%
\HyLang@addto\extrasvietnamese\HyLang@vietnamese
\Hy@AtEndOfPackage{%
\@ifundefined{T@PU}{}{%
\input{puvnenc.def}%
}%
}%
}
\DeclareVoidOption{vietnam}{%
\HyLang@addto\extrasvietnam\HyLang@vietnamese
\Hy@AtEndOfPackage{%
\@ifundefined{T@PU}{}{%
\input{puvnenc.def}%
}%
}%
}
\DeclareVoidOption{arabic}{%
\Hy@AtEndOfPackage{%
\@ifundefined{T@PU}{}{%
\input{puarenc.def}%
}%
}%
}
\define@key{Hyp}{colorlinks}[true]{%
\Hy@boolkey{colorlinks}{#1}%
}
\DeclareVoidOption{hidelinks}{%
\Hy@colorlinksfalse
\Hy@ocgcolorlinksfalse
\Hy@frenchlinksfalse
\def\Hy@colorlink##1{\begingroup}%
\def\Hy@endcolorlink{\endgroup}%
\def\@pdfborder{0 0 0}%
\let\@pdfborderstyle\ltx@empty
}
\define@key{Hyp}{ocgcolorlinks}[true]{%
\Hy@boolkey{ocgcolorlinks}{#1}%
}
\Hy@AtBeginDocument{%
\begingroup
\@ifundefined{OBJ@OCG@view}{%
\ifHy@ocgcolorlinks
\Hy@Warning{%
Driver does not support `ocgcolorlinks',\MessageBreak
using `colorlinks' instead%
}%
\fi
}{}%
\endgroup
}
\define@key{Hyp}{frenchlinks}[true]{%
\Hy@boolkey{frenchlinks}{#1}%
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname chapter\endcsname\relax
\def\toclevel@part{0}%
\else
\def\toclevel@part{-1}%
\fi
\def\toclevel@chapter{0}
\def\toclevel@section{1}
\def\toclevel@subsection{2}
\def\toclevel@subsubsection{3}
\def\toclevel@paragraph{4}
\def\toclevel@subparagraph{5}
\def\toclevel@figure{0}
\def\toclevel@table{0}
\@ifpackageloaded{listings}{%
\providecommand*\theHlstlisting{\thelstlisting}%
\providecommand*\toclevel@lstlisting{0}%
}{}
\@ifpackageloaded{listing}{%
\providecommand*\theHlisting{\thelisting}%
\providecommand*\toclevel@listing{0}%
}{}
\define@key{Hyp}{bookmarks}[true]{%
\Hy@boolkey{bookmarks}{#1}%
}
\define@key{Hyp}{bookmarksopen}[true]{%
\Hy@boolkey{bookmarksopen}{#1}%
}
\let\Hy@bookmarksdepth\c@tocdepth
\define@key{Hyp}{bookmarksdepth}[]{%
\begingroup
\edef\x{#1}%
\ifx\x\empty
\global\let\Hy@bookmarksdepth\c@tocdepth
\else
\@ifundefined{toclevel@\x}{%
\@onelevel@sanitize\x
\edef\y{\expandafter\@car\x\@nil}%
\ifcase 0\expandafter\ifx\y-1\fi
\expandafter\ifnum\expandafter`\y>47 %
\expandafter\ifnum\expandafter`\y<58 1\fi\fi\relax
\Hy@Warning{Unknown document division name (\x)}%
\else
\setbox\z@=\hbox{%
\count@=\x
\xdef\Hy@bookmarksdepth{\the\count@}%
}%
\fi
}{%
\setbox\z@=\hbox{%
\count@=\csname toclevel@\x\endcsname
\xdef\Hy@bookmarksdepth{\the\count@}%
}%
}%
\fi
\endgroup
}
\define@key{Hyp}{bookmarksopenlevel}{%
\def\@bookmarksopenlevel{#1}%
}
\def\@bookmarksopenlevel{\maxdimen}
\define@key{Hyp}{bookmarkstype}{%
\def\Hy@bookmarkstype{#1}%
}
\def\Hy@bookmarkstype{toc}
\define@key{Hyp}{bookmarksnumbered}[true]{%
\Hy@boolkey{bookmarksnumbered}{#1}%
}
\define@key{Hyp}{CJKbookmarks}[true]{%
\Hy@boolkey{CJKbookmarks}{#1}%
}
\def\Hy@temp#1{%
\expandafter\Hy@@temp\csname @#1color\endcsname{#1}%
}
\def\Hy@@temp#1#2#3{%
\define@key{Hyp}{#2color}{%
\HyColor@HyperrefColor{##1}#1%
}%
\def#1{#3}%
}
\Hy@temp{link}{red}
\Hy@temp{anchor}{black}
\Hy@temp{cite}{green}
\Hy@temp{file}{cyan}
\Hy@temp{url}{magenta}
\Hy@temp{menu}{red}
\Hy@temp{run}{\@filecolor}
\define@key{Hyp}{pagecolor}{%
\Hy@WarningPageColor
}
\def\Hy@WarningPageColor{%
\Hy@WarningNoLine{Option `pagecolor' is not available anymore}%
\global\let\Hy@WarningPageColor\relax
}
\define@key{Hyp}{allcolors}{%
\HyColor@HyperrefColor{#1}\@linkcolor
\HyColor@HyperrefColor{#1}\@anchorcolor
\HyColor@HyperrefColor{#1}\@citecolor
\HyColor@HyperrefColor{#1}\@filecolor
\HyColor@HyperrefColor{#1}\@urlcolor
\HyColor@HyperrefColor{#1}\@menucolor
\HyColor@HyperrefColor{#1}\@runcolor
}
\def\hyperbaseurl#1{\def\@baseurl{#1}}
\define@key{Hyp}{baseurl}{\hyperbaseurl{#1}}
\let\@baseurl\@empty
\def\hyperlinkfileprefix#1{\def\Hy@linkfileprefix{#1}}
\define@key{Hyp}{linkfileprefix}{\hyperlinkfileprefix{#1}}
\hyperlinkfileprefix{file:}
\let\@pdfpagetransition\relax
\define@key{Hyp}{pdfpagetransition}{%
\def\@pdfpagetransition{#1}%
}
\let\@pdfpageduration\relax
\define@key{Hyp}{pdfpageduration}{%
\def\@pdfpageduration{#1}%
\Hy@Match\@pdfpageduration{}{%
^(|[0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)$%
}{}{%
\Hy@Warning{%
Invalid value `\@pdfpageduration'\MessageBreak
of option `pdfpageduration'\MessageBreak
is replaced by an empty value%
}%
\let\@pdfpageduration\ltx@empty
}%
}
\newif\ifHy@useHidKey
\Hy@useHidKeyfalse
\define@key{Hyp}{pdfpagehidden}[true]{%
\Hy@boolkey{pdfpagehidden}{#1}%
\ifHy@pdfpagehidden
\global\Hy@useHidKeytrue
\fi
}
\def\Hy@ColorList{cite,file,link,menu,run,url}
\@for\Hy@temp:=\Hy@ColorList\do{%
\edef\Hy@temp{%
\noexpand\define@key{Hyp}{\Hy@temp bordercolor}{%
\noexpand\HyColor@HyperrefBorderColor
{##1}%
\expandafter\noexpand\csname @\Hy@temp bordercolor\endcsname
{hyperref}%
{\Hy@temp bordercolor}%
}%
}%
\Hy@temp
}
\define@key{Hyp}{pagebordercolor}{%
\Hy@WarningPageBorderColor
}
\def\Hy@WarningPageBorderColor{%
\Hy@WarningNoLine{Option `pagebordercolor' is not available anymore}%
\global\let\Hy@WarningPageBorderColor\relax
}
\define@key{Hyp}{allbordercolors}{%
\def\Hy@temp##1##2{%
\HyColor@HyperrefBorderColor{#1}##1{hyperref}{##2bordercolor}%
}%
\Hy@temp\@citebordercolor{cite}%
\Hy@temp\@filebordercolor{file}%
\Hy@temp\@linkbordercolor{link}%
\Hy@temp\@menubordercolor{menu}%
\Hy@temp\@runbordercolor{run}%
\Hy@temp\@urlbordercolor{url}%
}
\define@key{Hyp}{pdfhighlight}{\def\@pdfhighlight{#1}}
\Hy@DefNameKey{pdfhighlight}{%
\do{/I}{Invert}%
\do{/N}{None}%
\do{/O}{Outline}%
\do{/P}{Push}%
}
\define@key{Hyp}{pdfborder}{%
\let\Hy@temp\@pdfborder
\def\@pdfborder{#1}%
\Hy@Match\@pdfborder{}{%
^\HyPat@NonNegativeReal/ %
\HyPat@NonNegativeReal/ %
\HyPat@NonNegativeReal/%
( ?\[\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)*])?$%
}{}{%
\Hy@Warning{%
Invalid value `\@pdfborder'\MessageBreak
for option `pdfborder'.\MessageBreak
Option setting is ignored%
}%
\let\@pdfborder\Hy@temp
}%
}
\define@key{Hyp}{pdfborderstyle}{%
\let\Hy@temp\@pdfborderstyle
\def\@pdfborderstyle{#1}%
\Hy@Match\@pdfborderstyle{}{%
^%
( */Type */Border%
| */W +\HyPat@NonNegativeReal/%
| */S */[SDBIU]%
| */D *\[ *(\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)?)?]%
)* *$%
}{}{%
\Hy@Warning{%
Invalid value `\@pdfborderstyle'\MessageBreak
for option `pdfborderstyle'.\MessageBreak
Option setting is ignored%
}%
\let\@pdfborderstyle\Hy@temp
}%
}
\def\Hy@setpdfborder{%
\ifx\@pdfborder\@empty
\else
/Border[\@pdfborder]%
\fi
\ifx\@pdfborderstyle\@empty
\else
/BS<<\@pdfborderstyle>>%
\fi
}
\Hy@DefNameKey{pdfpagemode}{%
\do{UseNone}{}%
\do{UseOutlines}{}%
\do{UseThumbs}{}%
\do{FullScreen}{}%
\do{UseOC}{PDF 1.5}%
\do{UseAttachments}{PDF 1.6}%
}
\Hy@DefNameKey{pdfnonfullscreenpagemode}{%
\do{UseNone}{}%
\do{UseOutlines}{}%
\do{UseThumbs}{}%
\do{FullScreen}{}%
\do{UseOC}{PDF 1.5}%
\do{UseAttachments}{PDF 1.6}%
}
\Hy@DefNameKey{pdfdirection}{%
\do{L2R}{Left to right}%
\do{R2L}{Right to left}%
}
\Hy@DefNameKey{pdfviewarea}{%
\do{MediaBox}{}%
\do{CropBox}{}%
\do{BleedBox}{}%
\do{TrimBox}{}%
\do{ArtBox}{}%
}
\Hy@DefNameKey{pdfviewclip}{%
\do{MediaBox}{}%
\do{CropBox}{}%
\do{BleedBox}{}%
\do{TrimBox}{}%
\do{ArtBox}{}%
}
\Hy@DefNameKey{pdfprintarea}{%
\do{MediaBox}{}%
\do{CropBox}{}%
\do{BleedBox}{}%
\do{TrimBox}{}%
\do{ArtBox}{}%
}
\Hy@DefNameKey{pdfprintclip}{%
\do{MediaBox}{}%
\do{CropBox}{}%
\do{BleedBox}{}%
\do{TrimBox}{}%
\do{ArtBox}{}%
}
\Hy@DefNameKey{pdfprintscaling}{%
\do{AppDefault}{}%
\do{None}{}%
}
\Hy@DefNameKey{pdfduplex}{%
\do{Simplex}{}%
\do{DuplexFlipShortEdge}{}%
\do{DuplexFlipLongEdge}{}%
}
\Hy@DefNameKey{pdfpicktraybypdfsize}{%
\do{true}{}%
\do{false}{}%
}
\define@key{Hyp}{pdfprintpagerange}{%
\def\@pdfprintpagerange{#1}%
}
\Hy@DefNameKey{pdfnumcopies}{%
\do{2}{two copies}%
\do{3}{three copies}%
\do{4}{four copies}%
\do{5}{five copies}%
}
\define@key{Hyp}{pdfusetitle}[true]{%
\Hy@boolkey{pdfusetitle}{#1}%
}
\def\HyXeTeX@CheckUnicode{%
\ifxetex
\ifHy@unicode
\else
\Hy@WarningNoLine{%
XeTeX driver only supports unicode.\MessageBreak
Enabling option `unicode'%
}%
\kvsetkeys{Hyp}{unicode}%
\fi
\else
\let\HyXeTeX@CheckUnicode\relax
\fi
}
\def\HyPsd@PrerenderUnicode#1{%
\begingroup
\expandafter\ifx\csname PrerenderUnicode\endcsname\relax
\else
\sbox0{%
\let\GenericInfo\@gobbletwo
\let\GenericWarning\@gobbletwo
\let\GenericError\@gobblefour
\PrerenderUnicode{#1}%
}%
\fi
\endgroup
}
\define@key{Hyp}{pdftitle}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{#1}%
\pdfstringdef\@pdftitle{#1}%
}
\define@key{Hyp}{pdfauthor}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{#1}%
\pdfstringdef\@pdfauthor{#1}%
}
\define@key{Hyp}{pdfproducer}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{#1}%
\pdfstringdef\@pdfproducer{#1}%
\ifxetex
\Hy@Warning{%
pdfproducer: %
xdvipdfmx will use its own setting\MessageBreak
instead of the value given%
}%
\else
\def\Hy@temp{hdvipdfm}%
\ifx\Hy@driver\Hy@temp
\Hy@Warning{%
pdfproducer: %
dvipdfm(x) will use its own setting\MessageBreak
instead of the value given%
}%
\fi
\fi
}
\define@key{Hyp}{pdfcreator}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{#1}%
\pdfstringdef\@pdfcreator{#1}%
}
\define@key{Hyp}{pdfcreationdate}{%
\begingroup
\Hy@unicodefalse
\pdfstringdef\@pdfcreationdate{#1}%
\endgroup
}
\define@key{Hyp}{pdfmoddate}{%
\begingroup
\Hy@unicodefalse
\pdfstringdef\@pdfmoddate{#1}%
\endgroup
}
\define@key{Hyp}{pdfsubject}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{#1}%
\pdfstringdef\@pdfsubject{#1}%
}
\define@key{Hyp}{pdfkeywords}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{#1}%
\pdfstringdef\@pdfkeywords{#1}%
}
\define@key{Hyp}{pdftrapped}{%
\lowercase{\edef\Hy@temp{#1}}%
\ifx\Hy@temp\HyInfo@trapped@true
\def\@pdftrapped{True}%
\else
\ifx\Hy@temp\HyInfo@trapped@false
\def\@pdftrapped{False}%
\else
\ifx\Hy@temp\HyInfo@trapped@unknown
\def\@pdftrapped{Unknown}%
\else
\ifx\Hy@temp\@empty
\else
\Hy@Warning{%
Unsupported value `#1'\MessageBreak
for option `pdftrapped'%
}%
\fi
\def\@pdftrapped{}%
\fi
\fi
\fi
}
\def\HyInfo@trapped@true{true}
\def\HyInfo@trapped@false{false}
\def\HyInfo@trapped@unknown{unknown}
\def\HyInfo@TrappedUnsupported{%
\ifx\@pdftrapped\@empty
\else
\Hy@WarningNoLine{`pdftrapped' is not supported by this driver}%
\gdef\HyInfo@TrappedUnsupported{}%
\fi
}
\define@key{Hyp}{pdfinfo}{%
\kvsetkeys{pdfinfo}{#1}%
}
\def\Hy@temp#1{%
\lowercase{\Hy@temp@A{#1}}{#1}%
}
\def\Hy@temp@A#1#2{%
\define@key{pdfinfo}{#2}{%
\hypersetup{pdf#1={##1}}%
}%
}
\Hy@temp{Title}
\Hy@temp{Author}
\Hy@temp{Keywords}
\Hy@temp{Subject}
\Hy@temp{Creator}
\Hy@temp{Producer}
\Hy@temp{CreationDate}
\Hy@temp{ModDate}
\Hy@temp{Trapped}
\newif\ifHyInfo@AddonUnsupported
\kv@set@family@handler{pdfinfo}{%
\HyInfo@AddonHandler{#1}{#2}%
}
\let\HyInfo@do\relax
\def\HyInfo@AddonHandler#1#2{%
\ifx\kv@value\relax
\Hy@Warning{%
Option `pdfinfo': ignoring key `\kv@key' without value%
}%
\else
\EdefEscapeName\HyInfo@KeyEscaped{\kv@key}%
\EdefUnescapeName\HyInfo@Key{\HyInfo@KeyEscaped}%
\expandafter\ifx\csname KV@pdfinfo@\HyInfo@Key\endcsname\relax
\ifHyInfo@AddonUnsupported
\Hy@Warning{%
This driver does not support additional\MessageBreak
information entries, therefore\MessageBreak
`\kv@key' is ignored%
}%
\else
\def\HyInfo@tmp##1{%
\kv@define@key{pdfinfo}{##1}{%
\HyXeTeX@CheckUnicode
\HyPsd@XeTeXBigCharstrue
\HyPsd@PrerenderUnicode{####1}%
\pdfstringdef\HyInfo@Value{####1}%
\global\expandafter
\let\csname HyInfo@Value@##1\endcsname
\HyInfo@Value
}%
}%
\expandafter\HyInfo@tmp\expandafter{\HyInfo@Key}%
\global\expandafter
\let\csname KV@pdfinfo@\HyInfo@Key\expandafter\endcsname
\csname KV@pdfinfo@\HyInfo@Key\endcsname
\xdef\HyInfo@AddonList{%
\HyInfo@AddonList
\HyInfo@do{\HyInfo@Key}%
}%
\kv@parse@normalized{%
\HyInfo@Key={#2}%
}{%
\kv@processor@default{pdfinfo}%
}%
\fi
\else
\kv@parse@normalized{%
\HyInfo@Key={#2}%
}{%
\kv@processor@default{pdfinfo}%
}%
\fi
\fi
}
\def\HyInfo@GenerateAddons{%
\ifHyInfo@AddonUnsupported
\def\HyInfo@Addons{}%
\else
\begingroup
\toks@{}%
\def\HyInfo@do##1{%
\EdefEscapeName\HyInfo@Key{##1}%
\edef\x{%
\toks@{%
\the\toks@
/\HyInfo@Key(\csname HyInfo@Value@##1\endcsname)%
}%
}%
\x
}%
\HyInfo@AddonList
\edef\x{\endgroup
\def\noexpand\HyInfo@Addons{\the\toks@}%
}%
\x
\fi
}
\global\let\HyInfo@AddonList\ltx@empty
\define@key{Hyp}{pdfview}{\calculate@pdfview#1 \\}
\define@key{Hyp}{pdflinkmargin}{\setpdflinkmargin{#1}}
\let\setpdflinkmargin\@gobble
\def\calculate@pdfview#1 #2\\{%
\def\@pdfview{#1}%
\ifx\\#2\\%
\def\@pdfviewparams{ -32768}%
\else
\def\@pdfviewparams{ #2}%
\fi
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname numexpr\endcsname\relax
\def\Hy@number#1{%
\expandafter\@firstofone\expandafter{\number#1}%
}%
\else
\def\Hy@number#1{%
\the\numexpr#1\relax
}%
\fi
\define@key{Hyp}{pdfstartpage}{%
\ifx\\#1\\%
\let\@pdfstartpage\ltx@empty
\else
\edef\@pdfstartpage{\Hy@number{#1}}%
\fi
}%
\define@key{Hyp}{pdfstartview}{%
\ifx\\#1\\%
\let\@pdfstartview\ltx@empty
\else
\hypercalcbpdef\@pdfstartview{/#1}%
\fi
}
\def\HyPat@NonNegativeReal/{%
\ *([0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+) *%
}
\define@key{Hyp}{pdfremotestartview}{%
\ifx\\#1\\%
\def\@pdfremotestartview{/Fit}%
\else
\hypercalcbpdef\@pdfremotestartview{#1}%
\edef\@pdfremotestartview{\@pdfremotestartview}%
\Hy@Match\@pdfremotestartview{}{%
^(XYZ -?(null|\HyPat@NonNegativeReal/) %
-?(null|\HyPat@NonNegativeReal/) %
(null|\HyPat@NonNegativeReal/)|%
Fit(|B|%
(H|V|BH|BV) (null|\HyPat@NonNegativeReal/)|%
R \HyPat@NonNegativeReal/ \HyPat@NonNegativeReal/ %
\HyPat@NonNegativeReal/ \HyPat@NonNegativeReal/%
))$%
}{}{%
\Hy@Warning{%
Invalid value `\@pdfremotestartview'\MessageBreak
of `pdfremotestartview'\MessageBreak
is replaced by `Fit'%
}%
\let\@pdfremotestartview\@empty
}%
\ifx\@pdfremotestartview\@empty
\def\@pdfremotestartview{/Fit}%
\else
\edef\@pdfremotestartview{/\@pdfremotestartview}%
\fi
\fi
}
\define@key{Hyp}{pdfpagescrop}{\edef\@pdfpagescrop{#1}}
\define@key{Hyp}{pdftoolbar}[true]{%
\Hy@boolkey{pdftoolbar}{#1}%
}
\define@key{Hyp}{pdfmenubar}[true]{%
\Hy@boolkey{pdfmenubar}{#1}%
}
\define@key{Hyp}{pdfwindowui}[true]{%
\Hy@boolkey{pdfwindowui}{#1}%
}
\define@key{Hyp}{pdffitwindow}[true]{%
\Hy@boolkey{pdffitwindow}{#1}%
}
\define@key{Hyp}{pdfcenterwindow}[true]{%
\Hy@boolkey{pdfcenterwindow}{#1}%
}
\define@key{Hyp}{pdfdisplaydoctitle}[true]{%
\Hy@boolkey{pdfdisplaydoctitle}{#1}%
}
\define@key{Hyp}{pdfa}[true]{%
\Hy@boolkey{pdfa}{#1}%
}
\define@key{Hyp}{pdfnewwindow}[true]{%
\def\Hy@temp{#1}%
\ifx\Hy@temp\@empty
\Hy@pdfnewwindowsetfalse
\else
\Hy@pdfnewwindowsettrue
\Hy@boolkey{pdfnewwindow}{#1}%
\fi
}
\def\Hy@SetNewWindow{%
\ifHy@pdfnewwindowset
/NewWindow %
\ifHy@pdfnewwindow true\else false\fi
\fi
}
\Hy@DefNameKey{pdfpagelayout}{%
\do{SinglePage}{}%
\do{OneColumn}{}%
\do{TwoColumnLeft}{}%
\do{TwoColumnRight}{}%
\do{TwoPageLeft}{PDF 1.5}%
\do{TwoPageRight}{PDF 1.5}%
}
\define@key{Hyp}{pdflang}{%
\edef\@pdflang{#1}%
\def\Hy@temp{\relax}%
\ifx\@pdflang\Hy@temp
\let\@pdflang\relax
\fi
\ifx\@pdflang\relax
\else
\ifx\@pdflang\ltx@empty
\else
\Hy@Match\@pdflang{icase}{%
^%
[a-z]{1,8}%
(-[a-z0-9]{1,8})*%
$%
}{%
\Hy@Match\@pdflang{icase}{%
^%
(%
% langtag
(% language
[a-z]{2,3}%
([a-z]{3}(-[a-z]{3}){0,2})?% extlang
|[a-z]{4}% reserved for future use
|[a-z]{5,8}% registered language subtag
)%
(-[a-z]{4})?% script
(-([a-z]{2}|[0-9]{3}))?% region
(-([a-z]{5,8}|[0-9][a-z0-9]{3}))*% variant
(-[0-9a-wyz](-[a-z0-9]{2,8})+)*% extension
(-x(-[a-z0-9]{1,8})+)?% privateuse
% privateuse
|x-([a-z0-9]{1,8})+%
% grandfathered/irregular
|en-GB-oed%
|i-(ami|bnn|default|enochian|hak|klingon|lux|%
mingo|navajo|pwn|tao|tay|tsu)%
|sgn-(BE-FR|BE-NL|CH-DE)%
% grandfathered/regular
|art-lojban%
|cel-gaulish%
|no-(bok|nyn)%
|zh-(guoyu|hakka|min|min-nan|xiang)%
)%
$%
}{%
\Hy@Match{-\@pdflang}{icase}{-[a-wyz0-9]-}{%
\Hy@Match\@pdflang{icase}{^x-}{}{%
% remove privateuse
\edef\Hy@temp{-\@pdflang}%
\Hy@Match\Hy@temp{icase}{%
^%
(%
(-[a-wyz0-9]|-[a-z0-9]{2,8})*%
)%
-x-%
}{%
\edef\Hy@temp{%
\expandafter\strip@prefix\pdflastmatch1%
}%
}{}%
\Hy@Match\Hy@temp{icase}{%
(-[a-wyz0-9]-).*\ltx@backslashchar1%
}{%
\Hy@Warning{%
Invalid language identifier `#1'\MessageBreak
for option `pdflang', because it violates\MessageBreak
well-formedness defined in RFC 4646\MessageBreak
by duplicate singleton subtags%
}%
\let\@pdflang\relax
}{}%
}%
}{}%
\ifx\@pdflang\relax
\else
\Hy@Match\@pdflang{icase}{%
^%
[a-zA-Z]{2}-%
(%
aa|AA|%
[qQ][m-zM-Z]|%
[xX][a-zA-Z]|%
zz|ZZ%
)%
(-|$)%
}{%
\Hy@Warning{%
Invalid language identifier `#1'\MessageBreak
for option `pdflang' because of invalid country code%
\MessageBreak
in second subtag (RFC 3066)%
}%
\let\@pdflang\relax
}{}%
\fi
}{%
\Hy@Warning{%
Invalid language identifier `#1'\MessageBreak
for option `pdflang', because it violates\MessageBreak
well-formedness defined in RFC 5646%
}%
\let\@pdflang\relax
}%
}{%
\Hy@Warning{%
Invalid language identifier `#1'\MessageBreak
for option `pdflang' (RFC 3066)%
}%
\let\@pdflang\relax
}%
\fi
\fi
}
\define@key{Hyp}{pdfpagelabels}[true]{%
\Hy@boolkey{pdfpagelabels}{#1}%
}
\define@key{Hyp}{pdfescapeform}[true]{%
\Hy@boolkey{pdfescapeform}{#1}%
}
\def\@linkbordercolor{1 0 0}
\def\@urlbordercolor{0 1 1}
\def\@menubordercolor{1 0 0}
\def\@filebordercolor{0 .5 .5}
\def\@runbordercolor{0 .7 .7}
\def\@citebordercolor{0 1 0}
\def\@pdfhighlight{/I}
\let\@pdftitle\ltx@empty
\let\@pdfauthor\ltx@empty
\let\@pdfproducer\relax
\def\@pdfcreator{LaTeX with hyperref package}
\let\@pdfcreationdate\ltx@empty
\let\@pdfmoddate\ltx@empty
\let\@pdfsubject\ltx@empty
\let\@pdfkeywords\ltx@empty
\let\@pdftrapped\ltx@empty
\let\@pdfpagescrop\ltx@empty
\def\@pdfstartview{/Fit}
\def\@pdfremotestartview{/Fit}
\def\@pdfstartpage{1}
\let\@pdfprintpagerange\ltx@empty
\let\@pdflang\relax
\let\PDF@SetupDoc\@empty
\let\PDF@FinishDoc\@empty
\let\phantomsection\@empty
\let\special@paper\@empty
\def\HyperDestNameFilter#1{#1}
\Hy@AtBeginDocument{%
\begingroup
\edef\x{\@ifundefined{stockheight}\paperheight\stockheight}%
\dimen@=\x\relax
\ifdim\dimen@>\z@
\else
\dimen@=11in\relax
\Hy@WarningNoLine{%
Height of page (\expandafter\string\x) %
is invalid (\the\x),\MessageBreak
using 11in%
}%
\fi
\dimen@=0.99626401\dimen@
\xdef\Hy@pageheight{\strip@pt\dimen@}%
\endgroup
}
\def\HyInd@EncapChar{\|}
\let\hyper@normalise\ExecuteOptions
\let\ExecuteOptions\hypersetup
\Hy@RestoreCatcodes
\InputIfFileExists{hyperref.cfg}{}{}
\Hy@SetCatcodes
\let\ExecuteOptions\hyper@normalise
\ifx\Hy@MaybeStopNow\relax
\else
\Hy@stoppedearlytrue
\expandafter\Hy@MaybeStopNow
\fi
\Hy@stoppedearlyfalse
\SetupKeyvalOptions{family=Hyp}
\DeclareLocalOptions{%
a4paper,a5paper,b5paper,letterpaper,legalpaper,executivepaper%
}
\@ifpackagewith{hyperref}{tex4ht}{%
}{%
\@ifpackageloaded{tex4ht}{%
\PassOptionsToPackage{tex4ht}{hyperref}%
}{%
\ltx@IfUndefined{HCode}{%
}{%
\begingroup
\def\Hy@pkg{tex4ht}%
\def\Hy@temp@A#1\RequirePackage[#2]#3#4\Hy@NIL{%
\def\Hy@param{#2#3}%
\ifx\Hy@param\ltx@empty
\expandafter\ltx@gobble
\else
\def\Hy@param{#3}%
\ifx\Hy@param\Hy@pkg
\PassOptionsToPackage{#2}{tex4ht}%
\expandafter\expandafter\expandafter\@gobble
\else
\expandafter\expandafter\expandafter\ltx@firstofone
\fi
\fi
{\Hy@temp@A#4\Hy@NIL}%
}%
\expandafter
\Hy@temp@A\@documentclasshook\RequirePackage[]{}\Hy@NIL
\endgroup
\PassOptionsToPackage{tex4ht}{hyperref}%
}%
}%
}
\let\ReadBookmarks\relax
\ProcessKeyvalOptions{Hyp}
\def\Hy@xspace@end{}
\ltx@IfUndefined{xspaceaddexceptions}{%
\Hy@AtBeginDocument{%
\ltx@IfUndefined{xspaceaddexceptions}{%
}{%
\def\Hy@xspace@end{%
\ltx@gobble{end for xspace}%
}%
\xspaceaddexceptions{%
\Hy@xspace@end,\hyper@linkend,\hyper@anchorend
}%
}%
}%
}{%
\def\Hy@xspace@end{%
\ltx@gobble{end for xspace}%
}%
\xspaceaddexceptions{\Hy@xspace@end,\hyper@linkend,\hyper@anchorend}%
}
\Hy@AtBeginDocument{%
\ifHy@draft
\let\hyper@@anchor\@gobble
\gdef\hyper@link#1#2#3{#3\Hy@xspace@end}%
\def\hyper@anchorstart#1#2{#2\Hy@xspace@end}%
\def\hyper@anchorend{\Hy@xspace@end}%
\let\hyper@linkstart\@gobbletwo
\def\hyper@linkend{\Hy@xspace@end}%
\def\hyper@linkurl#1#2{#1\Hy@xspace@end}%
\def\hyper@linkfile#1#2#3{#1\Hy@xspace@end}%
\def\hyper@link@[#1]#2#3#4{#4\Hy@xspace@end}%
\def\Acrobatmenu#1#2{\leavevmode#2\Hy@xspace@end}%
\let\PDF@SetupDoc\@empty
\let\PDF@FinishDoc\@empty
\let\@fifthoffive\@secondoftwo
\let\@secondoffive\@secondoftwo
\let\ReadBookmarks\relax
\let\WriteBookmarks\relax
\Hy@WarningNoLine{Draft mode on}%
\fi
\Hy@DisableOption{draft}%
\Hy@DisableOption{nolinks}%
\Hy@DisableOption{final}%
}
\Hy@DisableOption{pdfa}
\ifHy@pdfa
\kvsetkeys{Hyp}{pdfversion=1.4}%
\Hy@DisableOption{pdfversion}%
\def\Hy@Acrobatmenu#1#2{%
\leavevmode
\begingroup
\edef\x{#1}%
\@onelevel@sanitize\x
\ifx\x\Hy@NextPage
\let\y=Y%
\else
\ifx\x\Hy@PrevPage
\let\y=Y%
\else
\ifx\x\Hy@FirstPage
\let\y=Y%
\else
\ifx\x\Hy@LastPage
\let\y=Y%
\else
\let\y=N%
\fi
\fi
\fi
\fi
\expandafter\endgroup
\ifx\y Y%
\else
\Hy@Error{%
PDF/A: Named action `#1' is not permitted%
}\@ehc
{#2}%
\expandafter\@gobble
\fi
}%
\def\Hy@temp#1{%
\expandafter\def\csname Hy@#1\endcsname{#1}%
\expandafter\@onelevel@sanitize\csname Hy@#1\endcsname
}%
\Hy@temp{NextPage}%
\Hy@temp{PrevPage}%
\Hy@temp{FirstPage}%
\Hy@temp{LastPage}%
\else
\def\Hy@Acrobatmenu#1#2{\leavevmode}%
\fi
\Hy@nextfalse
\ltx@IfUndefined{spanish@sh@"@sel}{}{\Hy@nexttrue}
\ltx@IfUndefined{galician@sh@"@sel}{}{\Hy@nexttrue}
\ltx@IfUndefined{estonian@sh@"@sel}{}{\Hy@nexttrue}
\ifHy@next
\let\texttilde\~%
\fi
\def\Hy@wrapper@babel#1#2{%
\begingroup
\Hy@safe@activestrue
\set@display@protect
\edef\x{#2}%
\@onelevel@sanitize\x
\toks@{#1}%
\edef\x{\endgroup\the\toks@{\x}}%
\x
}
\def\Hy@WrapperDef#1{%
\begingroup
\escapechar=\m@ne
\xdef\Hy@gtemp{%
\expandafter\noexpand\csname HyWrap@\string#1\endcsname
}%
\endgroup
\edef#1{%
\noexpand\Hy@wrapper@babel
\expandafter\noexpand\Hy@gtemp
}%
\expandafter\def\Hy@gtemp
}
\ifHy@hyperfigures
\Hy@Info{Hyper figures ON}%
\else
\Hy@Info{Hyper figures OFF}%
\fi
\ifHy@nesting
\Hy@Info{Link nesting ON}%
\else
\Hy@Info{Link nesting OFF}%
\fi
\ifHy@hyperindex
\Hy@Info{Hyper index ON}%
\else
\Hy@Info{Hyper index OFF}%
\fi
\ifHy@plainpages
\Hy@Info{Plain pages ON}%
\else
\Hy@Info{Plain pages OFF}%
\fi
\ifHy@backref
\Hy@Info{Backreferencing ON}%
\else
\Hy@Info{Backreferencing OFF}%
\fi
\ifHy@typexml
\Hy@AtEndOfPackage{%
\RequirePackage{color}%
\RequirePackage{nameref}[2012/07/28]%
}%
\fi
\Hy@DisableOption{typexml}
\ifHy@implicit
\Hy@InfoNoLine{Implicit mode ON; LaTeX internals redefined}%
\else
\Hy@InfoNoLine{Implicit mode OFF; no redefinition of LaTeX internals}%
\def\MaybeStopEarly{%
\Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
}%
\endinput
}%
\Hy@AtBeginDocument{%
\let\autoref\ref
\let\autopageref\pageref
\ifx\@pdfpagemode\@empty
\gdef\@pdfpagemode{UseNone}%
\fi
\global\Hy@backreffalse
}%
\Hy@AtEndOfPackage{%
\global\let\ReadBookmarks\relax
\global\let\WriteBookmarks\relax
}%
\fi
\Hy@DisableOption{implicit}
\Hy@AtEndOfPackage{%
\@ifpackageloaded{tex4ht}{%
\def\Hy@driver{htex4ht}%
\Hy@texhttrue
}{}%
\ifx\Hy@driver\@empty
\else
\def\Hy@temp{hpdftex}%
\ifpdf
\ifx\Hy@driver\Hy@temp
\else
\Hy@WarningNoLine{%
Wrong driver `\Hy@driver.def';\MessageBreak
pdfTeX is running in PDF mode.\MessageBreak
Forcing driver `\Hy@temp.def'%
}%
\let\Hy@driver\Hy@temp
\fi
\else
\ifx\Hy@driver\Hy@temp
\Hy@WarningNoLine{%
Wrong driver `\Hy@driver.def';\MessageBreak
pdfTeX is not running in PDF mode.\MessageBreak
Using default driver%
}%
\let\Hy@driver\@empty
\fi
\fi
\fi
\ifHy@texht
\else
\ifx\Hy@driver\@empty
\else
\def\Hy@temp{hxetex}%
\ifxetex
\ifx\Hy@driver\Hy@temp
\else
\Hy@WarningNoLine{%
Wrong driver `\Hy@driver.def';\MessageBreak
XeTeX is running.\MessageBreak
Forcing driver `\Hy@temp.def' for XeTeX%
}%
\let\Hy@driver\Hy@temp
\fi
\fi
\fi
\fi
\ifx\Hy@driver\@empty
\else
\def\Hy@temp{hvtexhtm}%
\ifvtexhtml
\ifx\Hy@driver\Hy@temp
\else
\Hy@WarningNoLine{%
Wrong driver `\Hy@driver.def';\MessageBreak
VTeX is running in HTML mode.\MessageBreak
Forcing driver `\Hy@temp.def'%
}%
\let\Hy@driver\Hy@temp
\fi
\else
\ifx\Hy@driver\Hy@temp
\Hy@WarningNoLine{%
Wrong driver `\Hy@driver.def';\MessageBreak
VTeX is not running in HTML mode.\MessageBreak
Using default driver%
}%
\let\Hy@driver\@empty
\fi
\fi
\fi
\let\HyOpt@DriverType\ltx@empty
\ifx\HyOpt@CustomDriver\ltx@empty
\ifx\Hy@driver\@empty
\def\HyOpt@DriverType{ (autodetected)}%
\providecommand*{\Hy@defaultdriver}{hypertex}%
\ifpdf
\def\Hy@driver{hpdftex}%
\else
\ifxetex
\def\Hy@driver{hxetex}%
\else
\ifvtexhtml
\def\Hy@driver{hvtexhtm}%
\def\MaybeStopEarly{%
\Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
}%
\endinput
}%
\else
\ifvtexpdf
\def\Hy@driver{hvtex}%
\else
\ifvtexps
\def\Hy@driver{hvtex}%
\else
\ifx\HyOpt@DriverFallback\ltx@empty
\let\Hy@driver\Hy@defaultdriver
\def\HyOpt@DriverType{ (default)}%
\else
\begingroup
\toks@\expandafter{\HyOpt@DriverFallback}%
\edef\x{\endgroup
\noexpand\kvsetkeys{Hyp}{\the\toks@}%
}%
\x
\ifx\Hy@driver\ltx@empty
\let\Hy@driver\Hy@defaultdriver
\def\HyOpt@DriverType{ (default)}%
\else
\def\HyOpt@DriverType{ (fallback)}%
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\ifx\Hy@driver\Hy@defaultdriver
\def\Hy@temp{hdviwind}%
\ifx\Hy@temp\Hy@driver
\kvsetkeys{Hyp}{colorlinks}%
\PassOptionsToPackage{dviwindo}{color}%
\fi
\fi
\fi
\else
\def\HyOpt@DriverType{ (custom)}%
\let\Hy@driver\HyOpt@CustomDriver
\fi
\Hy@Message{Driver\HyOpt@DriverType: \Hy@driver}%
\chardef\Hy@VersionChecked=0 %
\input{\Hy@driver.def}%
\ifcase\Hy@VersionChecked
\Hy@VersionCheck{\Hy@driver.def}%
\fi
\let\@unprocessedoptions\relax
\Hy@RestoreCatcodes
\Hy@DisableOption{tex4ht}%
\Hy@DisableOption{pdftex}%
\Hy@DisableOption{nativepdf}%
\Hy@DisableOption{dvipdfm}%
\Hy@DisableOption{dvipdfmx}%
\Hy@DisableOption{dvipdfmx-outline-open}%
\Hy@DisableOption{pdfmark}%
\Hy@DisableOption{dvips}%
\Hy@DisableOption{hypertex}%
\Hy@DisableOption{vtex}%
\Hy@DisableOption{vtexpdfmark}%
\Hy@DisableOption{dviwindo}%
\Hy@DisableOption{dvipsone}%
\Hy@DisableOption{textures}%
\Hy@DisableOption{latex2html}%
\Hy@DisableOption{ps2pdf}%
\Hy@DisableOption{xetex}%
\Hy@DisableOption{driverfallback}%
\Hy@DisableOption{customdriver}%
\Hy@DisableOption{pdfversion}%
}
\newif\ifHy@DvipdfmxOutlineOpen
\ifxetex
\ifdim\number\XeTeXversion\XeTeXrevision in<0.9995in %
\else
\chardef\SpecialDvipdfmxOutlineOpen\@ne
\Hy@DvipdfmxOutlineOpentrue
\fi
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname SpecialDvipdfmxOutlineOpen\endcsname\relax
\else
\ifnum\SpecialDvipdfmxOutlineOpen>\z@
\Hy@DvipdfmxOutlineOpentrue
\fi
\fi
\def\WriteBookmarks{0}
\def\@bookmarkopenstatus#1{%
\ifHy@bookmarksopen
\ifnum#1<\expandafter\@firstofone\expandafter
{\number\@bookmarksopenlevel} % explicit space
\else
-%
\fi
\else
-%
\fi
}
\ifHy@bookmarks
\Hy@Info{Bookmarks ON}%
\ifx\@pdfpagemode\@empty
\def\@pdfpagemode{UseOutlines}%
\fi
\else
\let\@bookmarkopenstatus\ltx@gobble
\Hy@Info{Bookmarks OFF}%
\Hy@AtEndOfPackage{%
\global\let\ReadBookmarks\relax
\global\let\WriteBookmarks\relax
}%
\ifx\@pdfpagemode\@empty
\def\@pdfpagemode{UseNone}%
\fi
\fi
\Hy@DisableOption{bookmarks}
\def\Hy@CatcodeWrapper#1{%
\let\Hy@EndWrap\ltx@empty
\def\TMP@EnsureCode##1##2{%
\edef\Hy@EndWrap{%
\Hy@EndWrap
\catcode##1 \the\catcode##1\relax
}%
\catcode##1 ##2\relax
}%
\TMP@EnsureCode{10}{12}% ^^J
\TMP@EnsureCode{33}{12}% !
\TMP@EnsureCode{34}{12}% "
\TMP@EnsureCode{36}{3}% $ (math)
\TMP@EnsureCode{38}{4}% & (alignment)
\TMP@EnsureCode{39}{12}% '
\TMP@EnsureCode{40}{12}% (
\TMP@EnsureCode{41}{12}% )
\TMP@EnsureCode{42}{12}% *
\TMP@EnsureCode{43}{12}% +
\TMP@EnsureCode{44}{12}% ,
\TMP@EnsureCode{45}{12}% -
\TMP@EnsureCode{46}{12}% .
\TMP@EnsureCode{47}{12}% /
\TMP@EnsureCode{58}{12}% :
\TMP@EnsureCode{59}{12}% ;
\TMP@EnsureCode{60}{12}% <
\TMP@EnsureCode{61}{12}% =
\TMP@EnsureCode{62}{12}% >
\TMP@EnsureCode{63}{12}% ?
\TMP@EnsureCode{91}{12}% [
\TMP@EnsureCode{93}{12}% ]
\TMP@EnsureCode{94}{7}% ^ (superscript)
\TMP@EnsureCode{95}{8}% _ (subscript)
\TMP@EnsureCode{96}{12}% `
\TMP@EnsureCode{124}{12}% |
\TMP@EnsureCode{126}{13}% ~ (active)
#1\relax
\Hy@EndWrap
}
\Hy@AtBeginDocument{%
\ifHy@ocgcolorlinks
\kvsetkeys{Hyp}{colorlinks}%
\ifHy@pdfa
\Hy@Warning{%
PDF/A: Optional Content Groups are prohibited,\MessageBreak
using `colorlinks' instead of `ocgcolorlinks'%
}%
\Hy@ocgcolorlinksfalse
\fi
\fi
\ifHy@ocgcolorlinks
\else
\Hy@DisableOption{ocgcolorlinks}%
\fi
\ifHy@colorlinks
\def\@pdfborder{0 0 0}%
\let\@pdfborderstyle\@empty
\ifHy@typexml
\else
\Hy@CatcodeWrapper{%
\RequirePackage{color}%
}%
\fi
\def\Hy@colorlink#1{%
\begingroup
\HyColor@UseColor#1%
}%
\def\Hy@endcolorlink{\endgroup}%
\Hy@Info{Link coloring ON}%
\else
\ifHy@frenchlinks
\def\Hy@colorlink#1{\begingroup\fontshape{sc}\selectfont}%
\def\Hy@endcolorlink{\endgroup}%
\Hy@Info{French linking ON}%
\else
\def\Hy@colorlink#1{\begingroup}%
\def\Hy@endcolorlink{\endgroup}%
\Hy@Info{Link coloring OFF}%
\fi
\fi
\Hy@DisableOption{colorlinks}%
\Hy@DisableOption{frenchlinks}%
\ifHy@texht
\long\def\@firstoffive#1#2#3#4#5{#1}%
\long\def\@secondoffive#1#2#3#4#5{#2}%
\long\def\@thirdoffive#1#2#3#4#5{#3}%
\long\def\@fourthoffive#1#2#3#4#5{#4}%
\long\def\@fifthoffive#1#2#3#4#5{#5}%
\providecommand*\@safe@activestrue{}%
\providecommand*\@safe@activesfalse{}%
\def\T@ref#1{%
\Hy@safe@activestrue
\expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}%
\Hy@safe@activesfalse
}%
\def\T@pageref#1{%
\Hy@safe@activestrue
\expandafter\@setref\csname r@#1\endcsname\@secondoffive{#1}%
\Hy@safe@activesfalse
}%
\else
\ifHy@typexml
\else
\Hy@CatcodeWrapper{%
\RequirePackage{nameref}[2012/07/28]%
}%
\fi
\fi
\DeclareRobustCommand\ref{%
\@ifstar\@refstar\T@ref
}%
\DeclareRobustCommand\pageref{%
\@ifstar\@pagerefstar\T@pageref
}%
\DeclareRobustCommand*{\nameref}{%
\@ifstar\@namerefstar\T@nameref
}%
}
\Hy@AtBeginDocument{%
\ifHy@texht
\else
\Hy@CatcodeWrapper\ReadBookmarks
\fi
}
\ifHy@backref
\RequirePackage{backref}%
\else
\let\Hy@backout\@gobble
\fi
\Hy@DisableOption{backref}
\Hy@DisableOption{pagebackref}
\Hy@activeanchorfalse
\begingroup
\endlinechar=-1 %
\catcode`\^^A=14 %
\catcode`\^^M\active
\catcode`\%\active
\catcode`\#\active
\catcode`\_\active
\catcode`\$\active
\catcode`\&\active
\gdef\hyper@normalise{^^A
\begingroup
\catcode`\^^M\active
\def^^M{ }^^A
\catcode`\%\active
\let%\@percentchar
\let\%\@percentchar
\catcode`\#\active
\def#{\hyper@hash}^^A
\def\#{\hyper@hash}^^A
\@makeother\&^^A
\edef&{\string&}^^A
\edef\&{\string&}^^A
\edef\textunderscore{\string_}^^A
\let\_\textunderscore
\catcode`\_\active
\let_\textunderscore
\let~\hyper@tilde
\let\~\hyper@tilde
\let\textasciitilde\hyper@tilde
\let\\\@backslashchar
\edef${\string$}^^A
\Hy@safe@activestrue
\hyper@n@rmalise
}^^A
\catcode`\#=6 ^^A
\gdef\Hy@ActiveCarriageReturn{^^M}^^A
\gdef\hyper@n@rmalise#1#2{^^A
\def\Hy@tempa{#2}^^A
\ifx\Hy@tempa\Hy@ActiveCarriageReturn
\ltx@ReturnAfterElseFi{^^A
\hyper@@normalise{#1}^^A
}^^A
\else
\ltx@ReturnAfterFi{^^A
\hyper@@normalise{#1}{#2}^^A
}^^A
\fi
}^^A
\gdef\hyper@@normalise#1#2{^^A
\edef\Hy@tempa{^^A
\endgroup
\noexpand#1{\Hy@RemovePercentCr#2%^^M\@nil}^^A
}^^A
\Hy@tempa
}^^A
\gdef\Hy@RemovePercentCr#1%^^M#2\@nil{^^A
#1^^A
\ifx\limits#2\limits
\else
\ltx@ReturnAfterFi{^^A
\Hy@RemovePercentCr #2\@nil
}^^A
\fi
}^^A
\endgroup
\providecommand*\hyper@chars{%
\let\#\hyper@hash
\let\%\@percentchar
\Hy@safe@activestrue
}
\def\hyperlink#1#2{%
\hyper@@link{}{#1}{#2}%
}
\def\Hy@VerboseLinkStart#1#2{%
\ifHy@verbose
\begingroup
\Hy@safe@activestrue
\xdef\Hy@VerboseGlobalTemp{(#1) `#2'}%
\Hy@Info{Reference \Hy@VerboseGlobalTemp}%
\xdef\Hy@VerboseGlobalTemp{%
\Hy@VerboseGlobalTemp, %
line \the\inputlineno
}%
\endgroup
\let\Hy@VerboseLinkInfo\Hy@VerboseGlobalTemp
\@onelevel@sanitize\Hy@VerboseLinkInfo
\fi
}
\def\Hy@VerboseLinkInfo{<VerboseLinkInfo>}
\def\Hy@VerboseLinkStop{%
\ifHy@verbose
\begingroup
\edef\x{\endgroup
\write\m@ne{%
Package `hyperref' Info: %
End of reference \Hy@VerboseLinkInfo.%
}%
}%
\x
\fi
}
\def\Hy@VerboseAnchor#1{%
\ifHy@verbose
\begingroup
\Hy@safe@activestrue
\Hy@Info{Anchor `\HyperDestNameFilter{#1}'}%
\endgroup
\fi
}
\def\Hy@AllowHyphens{%
\relax
\ifhmode
\penalty\@M
\hskip\z@skip
\fi
}
\DeclareRobustCommand*{\href}[1][]{%
\begingroup
\setkeys{href}{#1}%
\@ifnextchar\bgroup\Hy@href{\hyper@normalise\href@}%
}
\def\Hy@href#{%
\hyper@normalise\href@
}
\begingroup
\catcode`\$=6 %
\catcode`\#=12 %
\gdef\href@$1{\expandafter\href@split$1##\\}%
\gdef\href@split$1#$2#$3\\$4{%
\hyper@@link{$1}{$2}{$4}%
\endgroup
}%
\endgroup
\define@key{href}{page}{%
\def\Hy@href@page{#1}%
}
\let\Hy@href@page\@empty
\newcount\c@Hy@tempcnt
\def\theHy@tempcnt{\the\c@Hy@tempcnt}
\def\Hy@MakeRemoteAction{%
\ifx\Hy@href@page\@empty
\def\Hy@href@page{0}%
\else
\setcounter{Hy@tempcnt}{\Hy@href@page}%
\ifnum\c@Hy@tempcnt<\@ne
\Hy@Warning{%
Invalid page number (\theHy@tempcnt)\MessageBreak
for remote PDF file.\MessageBreak
Using page 1%
}%
\def\Hy@href@page{0}%
\else
\global\advance\c@Hy@tempcnt\m@ne
\edef\Hy@href@page{\theHy@tempcnt}%
\fi
\fi
\ifx\Hy@href@nextactionraw\@empty
\else
\Hy@pdfnewwindowsettrue
\Hy@pdfnewwindowtrue
\fi
}
\define@key{href}{pdfremotestartview}{%
\setkeys{Hyp}{pdfremotestartview={#1}}%
}
\let\KV@href@pdfnewwindow\KV@Hyp@pdfnewwindow
\let\KV@href@pdfnewwindow@default\KV@Hyp@pdfnewwindow@default
\newif\ifHy@href@ismap
\define@key{href}{ismap}[true]{%
\ltx@IfUndefined{Hy@href@ismap#1}{%
\Hy@Error{%
Invalid value (#1) for key `ismap'.\MessageBreak
Permitted values are `true' or `false'.\MessageBreak
Ignoring `ismap'%
}\@ehc
}{%
\csname Hy@href@ismap#1\endcsname
}%
}
\let\Hy@href@nextactionraw\@empty
\define@key{href}{nextactionraw}{%
\edef\Hy@href@nextactionraw{#1}%
\ifx\Hy@href@nextactionraw\@empty
\else
\Hy@Match\Hy@href@nextactionraw{}{%
^(\HyPat@ObjRef/|<<.*/S[ /].+>>|%
\[( ?\HyPat@ObjRef/|<<.*/S[ /].+>>)+ ?])$%
}{}{%
\Hy@Warning{Invalid value for `nextactionraw':\MessageBreak
\Hy@href@nextactionraw\MessageBreak
The action is discarded%
}%
}%
\ifx\Hy@href@nextactionraw\@empty
\else
\edef\Hy@href@nextactionraw{/Next \Hy@href@nextactionraw}%
\fi
\fi
}
\def\HyPat@ObjRef/{.+}
\RequirePackage{url}
\let\HyOrg@url\url
\def\Hurl{\begingroup \Url}
\DeclareRobustCommand*{\nolinkurl}{\hyper@normalise\nolinkurl@}
\def\nolinkurl@#1{\Hurl{#1}}
\DeclareRobustCommand*{\url}{\hyper@normalise\url@}
\def\url@#1{\hyper@linkurl{\Hurl{#1}}{#1}}
\DeclareRobustCommand*{\hyperimage}{\hyper@normalise\hyper@image}
\providecommand\hyper@image[2]{#2}
\def\hypertarget#1#2{%
\ifHy@nesting
\hyper@@anchor{#1}{#2}%
\else
\hyper@@anchor{#1}{\relax}#2%
\fi
}
\DeclareRobustCommand*{\hyperref}{%
\@ifnextchar[{\Hy@babelnormalise\label@hyperref}\@hyperref
}
\def\Hy@babelnormalise#1[#2]{%
\begingroup
\Hy@safe@activestrue
\edef\Hy@tempa{%
\endgroup
\noexpand#1[{#2}]%
}%
\Hy@tempa
}
\def\@hyperref{\hyper@normalise\@@hyperref}
\def\@@hyperref#1#2#3{%
\edef\ref@one{\ifx\\#2\\\else#2.\fi#3}%
\expandafter\tryhyper@link\ref@one\\{#1}%
}
\def\tryhyper@link#1\\#2{%
\hyper@@link{#2}{#1}%
}
\def\hyperdef{\@ifnextchar[{\label@hyperdef}{\@hyperdef}}
\def\@hyperdef#1#2#3{%, category, name, text
\ifx\\#1\\%
\def\Hy@AnchorName{#2}%
\else
\def\Hy@AnchorName{#1.#2}%
\fi
\ifHy@nesting
\expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{#3}%
\else
\expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{\relax}#3%
\fi
}
\def\label@hyperref[#1]{%
\expandafter\label@@hyperref\csname r@#1\endcsname{#1}%
}%
\def\label@@hyperref#1#2#3{%
\ifx#1\relax
\protect\G@refundefinedtrue
\@latex@warning{%
Hyper reference `#2' on page \thepage \space undefined%
}%
\begingroup
#3%
\endgroup
\else
\hyper@@link{\expandafter\@fifthoffive#1}%
{\expandafter\@fourthoffive#1\@empty\@empty}{#3}%
\fi
}
\def\label@hyperdef[#1]#2#3#4{% label name, category, name,
% anchor text
\@bsphack
\ifx\\#2\\%
\def\Hy@AnchorName{#3}%
\else
\def\Hy@AnchorName{#2.#3}%
\fi
\if@filesw
\protected@write\@auxout{}{%
\string\newlabel{#1}{{}{}{}{\Hy@AnchorName}{}}%
}%
\fi
\@esphack
\ifHy@nesting
\expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{#4}%
\else
\expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{\relax}#4%
\fi
}
\newdimen\XeTeXLinkMargin
\setlength{\XeTeXLinkMargin}{2pt}
\ifxetex
\font\XeTeXLink@font=pzdr at 1sp\relax
\newcommand*{\XeTeXLink@space}{%
\begingroup
\XeTeXLink@font
\@xxxii
\endgroup
}%
\newcommand{\XeTeXLinkBox}[1]{%
\begingroup
\leavevmode
\sbox\z@{#1}%
\begingroup
\dimen@=\dp\z@
\advance\dimen@\XeTeXLinkMargin
\setbox\tw@=\llap{%
\hb@xt@\XeTeXLinkMargin{%
\lower\dimen@\hbox{\XeTeXLink@space}%
\hss
}%
}%
\dp\tw@=\dp\z@
\ht\tw@=\ht\z@
\copy\tw@
\endgroup
\copy\z@
\dimen@=\ht\z@
\advance\dimen@\XeTeXLinkMargin
\setbox\tw@=\rlap{%
\hb@xt@\XeTeXLinkMargin{%
\hss
\raise\dimen@\hbox{\XeTeXLink@space}%
}%
}%
\dp\tw@=\dp\z@
\ht\tw@=\ht\z@
\copy\tw@
\endgroup
}%
\else
\newcommand*{\XeTeXLinkBox}[1]{%
\begingroup
\leavevmode
\sbox\z@{#1}%
\copy\z@
\endgroup
}%
\fi
\def\hyper@@link{\let\Hy@reserved@a\relax
\@ifnextchar[{\hyper@link@}{\hyper@link@[link]}%
}
\def\hyper@link@[#1]#2#3#4{%
\ltx@ifempty{#4}{% link text
\Hy@Warning{Suppressing empty link}%
}{%
\begingroup
\protected@edef\Hy@tempa{#2}%
\edef\Hy@tempb{#3}%
\ifx\Hy@tempa\ltx@empty
\ifx\Hy@tempb\ltx@empty
\Hy@Warning{Suppressing link with empty target}%
\toks@{%
\endgroup
\ltx@secondoftwo
}%
\else
\toks@{%
\endgroup
\hyper@link{#1}%
}%
\fi
\else
\toks@{%
\endgroup
\expandafter\hyper@readexternallink#2\\{#1}%
}%
\fi
\Hy@safe@activesfalse
\toks@\expandafter{%
\the\expandafter\toks@
\expandafter{\Hy@tempb}{#4}%
}%
\the\toks@
}%
}
\def\hyper@readexternallink#1\\#2#3#4{%
\begingroup
\let\\\relax
\expandafter\endgroup
\expandafter\@@hyper@@readexternallink#1\\{#2}{#3}{#4}%
}
\def\@@hyper@@readexternallink#1\\#2#3#4{%
\@hyper@readexternallink{#2}{#3}{#4}#1::\\{#1}%
}
\def\@pdftempwordfile{file}%
\def\@pdftempwordrun{run}%
\def\@hyper@readexternallink#1#2#3#4:#5:#6\\#7{%
\ifx\\#6\\%
\@hyper@linkfile file:#7\\{#3}{#2}{#7}%
\else
\ifx\\#4\\%
\@hyper@linkfile file:#7\\{#3}{#2}{#7}%
\else
\def\@pdftempa{#4}%
\ifx\@pdftempa\@pdftempwordfile
\@hyper@linkfile#7\\{#3}{#2}{#7}%
\else
\ifx\@pdftempa\@pdftempwordrun
\ifHy@pdfa
\Hy@Error{%
PDF/A: Launch action is prohibited%
}\@ehc
\begingroup
\leavevmode
#2%
\endgroup
\else
\@hyper@launch#7\\{#3}{#2}%
\fi
\else
\hyper@linkurl{#3}{#7\ifx\\#2\\\else\hyper@hash#2\fi}%
\fi
\fi
\fi
\fi
}
\def\@hyper@launch run:#1\\#2#3{% filename, anchor text, linkname
\hyper@linkurl{#2}{%
\Hy@linkfileprefix
#1%
\ifx\\#3\\%
\else
\hyper@hash
#3%
\fi
}%
}
\def\@hyper@linkfile file:#1\\#2#3#4{%
%file url,link string, name, original uri
\filename@parse{#1}%
\ifx\filename@ext\relax
\edef\filename@ext{\XR@ext}%
\fi
\def\use@file{\filename@area\filename@base.\filename@ext}%
\Hy@IfStringEndsWith\filename@ext\XR@ext{%
\hyper@linkfile{#2}{\use@file}{#3}%
}{%
\ifx\@baseurl\@empty
\hyper@linkurl{#2}{%
#4\ifx\\#3\\\else\hyper@hash#3\fi
}%
\else
\hyper@linkurl{#2}{\use@file\ifx\\#3\\\else\hyper@hash#3\fi}%
\fi
}%
}
\def\Hy@IfStringEndsWith#1#2{%
\begingroup
\edef\x{#1}%
\@onelevel@sanitize\x
\edef\x{.\x$}%
\edef\y{#2}%
\@onelevel@sanitize\y
\edef\y{.\y$}%
\expandafter\def\expandafter\z\expandafter##\expandafter1\y##2\@nil{%
\endgroup
\ifx\relax##2\relax
\expandafter\ltx@secondoftwo
\else
\expandafter\ltx@firstoftwo
\fi
}%
\expandafter\expandafter\expandafter\z\expandafter\x\y\@nil
}
\def\Hy@StringLocalhost{localhost}
\@onelevel@sanitize\Hy@StringLocalhost
\def\Hy@CleanupFile#1{%
\edef#1{#1}%
\expandafter\Hy@@CleanupFile#1\hbox///\hbox\@nil{#1}%
}
\def\Hy@@CleanupFile#1//#2/#3\hbox#4\@nil#5{%
\begingroup
\toks@{\endgroup}%
\def\x{#1}%
\ifx\x\@empty
\def\x{#2}%
\ifx\x\@empty
\toks@{\endgroup\def#5{/#3}}%
\else
\@onelevel@sanitize\x
\ifx\x\Hy@StringLocalhost
\toks@{\endgroup\def#5{/#3}}%
\fi
\fi
\fi
\the\toks@
}
\long\def\hyper@@anchor#1#2{\@hyper@@anchor#1\relax#2\relax}
\long\def\@hyper@@anchor#1\relax#2#3\relax{%
\ifx\\#1\\%
#2\Hy@Warning{Ignoring empty anchor}%
\else
\def\anchor@spot{#2#3}%
\let\put@me@back\@empty
\ifx\relax#2\relax
\else
\ifHy@nesting
\else
\ifcat a\noexpand#2\relax
\else
\ifcat 0\noexpand#2 \relax
\else
\let\anchor@spot\@empty
\def\put@me@back{#2#3}%
\fi
\fi
\fi
\fi
\ifHy@activeanchor
\anchor@spot
\else
\hyper@anchor{#1}%
\fi
\expandafter\put@me@back
\fi
\let\anchor@spot\@empty
}
\let\anchor@spot\ltx@empty
\ifHy@destlabel
\def\hyper@newdestlabel#1#2{%
\begingroup
\Hy@safe@activestrue
\edef\x{\endgroup
\noexpand\@newl@bel{HyDL}{#1}{#2}%
}%
\x
}%
\providecommand*{\hyper@destlabel@hook}{}%
\newcommand*{\Hy@DestRename}[2]{%
\ltx@IfUndefined{HyDL!#1}{%
\begingroup
\Hy@safe@activestrue
\edef\dest@name{#1}%
\edef\label@name{#2}%
\hyper@destlabel@hook
\Hy@IsNotEmpty{dest@name}{%
\Hy@IsNotEmpty{label@name}{%
\global\expandafter
\let\csname HyDL!#1\endcsname\ltx@empty
\if@filesw
\protected@write\@auxout{}{%
\string\hyper@newdestlabel
{#1}%
{\label@name}%
}%
\fi
}%
}%
\endgroup
}{}%
}%
\newcommand*{\HyperDestRename}[2]{%
\AtBeginDocument{%
\Hy@DestRename{#1}{#2}%
}%
}%
\AtBeginDocument{%
\let\HyperDestRename\Hy@DestRename
}%
\def\Hy@IsNotEmpty#1{%
\ltx@IfUndefined{#1}\ltx@gobble{%
\expandafter\ifx\csname#1\endcsname\ltx@empty
\expandafter\ltx@gobble
\else
\expandafter\ltx@firstofone
\fi
}%
}%
\ltx@GlobalAppendToMacro\label@hook{%
\HyperDestRename\@currentHref\label@name
}%
\def\HyperDestLabelReplace#1{%
\ltx@ifundefined{HyDL@#1}{%
#1%
}{%
\csname HyDL@#1\endcsname
}%
}%
\let\HyperDestNameFilter\HyperDestLabelReplace
\else
\let\hyper@newdestlabel\ltx@gobbletwo
\let\HyperDestLabelReplace\ltx@firstofone
\let\HyperDestRename\ltx@gobbletwo
\fi
\Hy@DisableOption{destlabel}
\AddLineBeginAux{%
\string\providecommand\string\hyper@newdestlabel[2]{}%
}
\let\htmladdimg\hyperimage
\def\htmladdnormallink#1#2{\href{#2}{#1}}
\def\htmladdnormallinkfoot#1#2{\href{#2}{#1}\footnote{#2}}
\def\htmlref#1#2{% anchor text, label
\label@hyperref[{#2}]{#1}%
}
\def\@@latextohtmlX{%
\let\hhyperref\hyperref
\def\hyperref##1##2##3##4{% anchor text for HTML
% text to print before label in print
% label
% post-label text in print
##2\ref{##4}##3%
}%
}
\RequirePackage{bitset}
\def\HyField@NewFlag#1#2{%
\lowercase{\HyField@NewOption{#2}}%
\lowercase{\HyField@NewBitsetFlag{#2}}{#2}{#1}%
}
\def\HyField@NewFlagOnly#1#2{%
\lowercase{\HyField@NewBitsetFlag{#2}}{#2}{#1}%
}
\def\HyField@NewOption#1{%
\expandafter\newif\csname ifFld@#1\endcsname
\define@key{Field}{#1}[true]{%
\lowercase{\Field@boolkey{##1}}{#1}%
}%
}
\def\HyField@NewBitsetFlag#1#2#3#4{%
\begingroup
\count@=#4\relax
\advance\count@\m@ne
\def\x##1{%
\endgroup
\expandafter\def\csname HyField@#3@#1\endcsname{##1}%
\expandafter\ifx\csname HyField@#3@##1\endcsname\relax
\expandafter\edef\csname HyField@#3@##1\endcsname{%
(\number#4) #2%
}%
\else
\expandafter\edef\csname HyField@#3@##1\endcsname{%
\csname HyField@#3@##1\endcsname
/#2%
}%
\fi
}%
\expandafter\x\expandafter{\the\count@}%
}
\def\HyField@UseFlag#1#2{%
\lowercase{\HyField@@UseFlag{#2}}{#1}%
}
\def\HyField@@UseFlag#1#2{%
\bitsetSetValue{HyField@#2}{%
\csname HyField@#2@#1\endcsname
}{%
\csname ifFld@#1\endcsname 1\else 0\fi
}%
}
\def\HyField@SetFlag#1#2{%
\lowercase{\HyField@@SetFlag{#2}}{#1}%
}
\def\HyField@@SetFlag#1#2{%
\bitsetSetValue{HyField@#2}{%
\csname HyField@#2@#1\endcsname
}{1}%
}
\def\HyField@PrintFlags#1#2{%
\ifHy@verbose
\begingroup
\let\Hy@temp\@empty
\let\MessageBreak\relax
\expandafter\@for\expandafter\x\expandafter:\expandafter=%
\bitsetGetSetBitList{HyField@#1}\do{%
\edef\Hy@temp{%
\Hy@temp
\csname HyField@#1@\x\endcsname\MessageBreak
}%
}%
\edef\x{\endgroup
\noexpand\Hy@Info{%
Field flags: %
\expandafter\ifx\@car#1\@nil S\else/\fi
#1 %
\bitsetGetDec{HyField@#1} %
(0x\bitsetGetHex{HyField@#1}{32})\MessageBreak
\Hy@temp
for #2%
}%
}\x
\fi
}
\HyField@NewFlag{Ff}{ReadOnly}{1}
\HyField@NewFlag{Ff}{Required}{2}
\HyField@NewFlag{Ff}{NoExport}{3}
\HyField@NewFlag{Ff}{NoToggleToOff}{15}
\HyField@NewFlag{Ff}{Radio}{16}
\HyField@NewFlag{Ff}{Pushbutton}{17}
\HyField@NewFlag{Ff}{RadiosInUnison}{26}
\HyField@NewFlag{Ff}{Multiline}{13}
\HyField@NewFlag{Ff}{Password}{14}
\HyField@NewFlag{Ff}{FileSelect}{21}% PDF 1.4
\HyField@NewFlag{Ff}{DoNotSpellCheck}{23}% PDF 1.4
\HyField@NewFlag{Ff}{DoNotScroll}{24}% PDF 1.4
\HyField@NewFlag{Ff}{Comb}{25}% PDF 1.4
\HyField@NewFlag{Ff}{RichText}{26}% PDF 1.5
\HyField@NewFlag{Ff}{Combo}{18}
\HyField@NewFlag{Ff}{Edit}{19}
\HyField@NewFlag{Ff}{Sort}{20}
\HyField@NewFlag{Ff}{MultiSelect}{22}% PDF 1.4
\HyField@NewFlag{Ff}{CommitOnSelChange}{27}% PDF 1.5
\newif\ifFld@popdown
\define@key{Field}{popdown}[true]{%
\lowercase{\Field@boolkey{#1}}{popdown}%
}
\HyField@NewFlag{F}{Invisible}{1}
\HyField@NewFlag{F}{Hidden}{2}% PDF 1.2
\HyField@NewFlag{F}{Print}{3}% PDF 1.2
\HyField@NewFlag{F}{NoZoom}{4}% PDF 1.2
\HyField@NewFlag{F}{NoRotate}{5}% PDF 1.3
\HyField@NewFlag{F}{NoView}{6}% PDF 1.3
\HyField@NewFlag{F}{Locked}{8}% PDF 1.4
\HyField@NewFlag{F}{ToggleNoView}{9}% PDF 1.5
\HyField@NewFlag{F}{LockedContents}{10}% PDF 1.7
\ifHy@pdfa
\def\HyField@PDFAFlagWarning#1#2{%
\Hy@Warning{%
PDF/A: Annotation flag `#1' must\MessageBreak
be set to `#2'%
}%
}%
\Fld@invisiblefalse
\def\Fld@invisibletrue{%
\HyField@PDFAFlagWarning{invisible}{false}%
}%
\Fld@hiddenfalse
\def\Fld@hiddentrue{%
\HyField@PDFAFlagWarning{hidden}{false}%
}%
\Fld@printtrue
\def\Fld@printfalse{%
\HyField@PDFAFlagWarning{print}{true}%
}%
\Fld@nozoomtrue
\def\Fld@nozoomfalse{%
\HyField@PDFAFlagWarning{nozoom}{true}%
}%
\Fld@norotatetrue
\def\Fld@norotatefalse{%
\HyField@PDFAFlagWarning{norotate}{true}%
}%
\Fld@noviewfalse
\def\Fld@noviewtrue{%
\HyField@PDFAFlagWarning{noview}{false}%
}%
\fi
\HyField@NewFlag{Submit}{IncludeNoValueFields}{2}
\HyField@NewFlagOnly{Submit}{ExportFormat}{3}
\HyField@NewFlag{Submit}{GetMethod}{4}
\HyField@NewFlag{Submit}{SubmitCoordinates}{5}
\HyField@NewFlagOnly{Submit}{XFDF}{6}
\HyField@NewFlag{Submit}{IncludeAppendSaves}{7}
\HyField@NewFlag{Submit}{IncludeAnnotations}{8}
\HyField@NewFlagOnly{Submit}{SubmitPDF}{9}
\HyField@NewFlag{Submit}{CanonicalFormat}{10}
\HyField@NewFlag{Submit}{ExclNonUserAnnots}{11}
\HyField@NewFlag{Submit}{ExclFKey}{12}
\HyField@NewFlag{Submit}{EmbedForm}{14}
\define@key{Field}{export}{%
\lowercase{\def\Hy@temp{#1}}%
\@ifundefined{Fld@export@\Hy@temp}{%
\@onelevel@sanitize\Hy@temp
\Hy@Error{%
Unknown export format `\Hy@temp'.\MessageBreak
Known formats are `FDF', `HTML', `XFDF', and `PDF'%
}\@ehc
}{%
\let\Fld@export\Hy@temp
}%
}
\def\Fld@export{fdf}
\@namedef{Fld@export@fdf}{0}%
\@namedef{Fld@export@html}{1}%
\@namedef{Fld@export@xfdf}{2}%
\@namedef{Fld@export@pdf}{3}%
\def\HyField@FlagsSubmit{%
\bitsetReset{HyField@Submit}%
\ifcase\@nameuse{Fld@export@\Fld@export} %
% FDF
\HyField@UseFlag{Submit}{IncludeNoValueFields}%
\HyField@UseFlag{Submit}{SubmitCoordinates}%
\HyField@UseFlag{Submit}{IncludeAppendSaves}%
\HyField@UseFlag{Submit}{IncludeAnnotations}%
\HyField@UseFlag{Submit}{CanonicalFormat}%
\HyField@UseFlag{Submit}{ExclNonUserAnnots}%
\HyField@UseFlag{Submit}{ExclFKey}%
\HyField@UseFlag{Submit}{EmbedForm}%
\or % HTML
\HyField@SetFlag{Submit}{ExportFormat}%
\HyField@UseFlag{Submit}{IncludeNoValueFields}%
\HyField@UseFlag{Submit}{GetMethod}%
\HyField@UseFlag{Submit}{SubmitCoordinates}%
\HyField@UseFlag{Submit}{CanonicalFormat}%
\or % XFDF
\HyField@SetFlag{Submit}{XFDF}%
\HyField@UseFlag{Submit}{IncludeNoValueFields}%
\HyField@UseFlag{Submit}{SubmitCoordinates}%
\HyField@UseFlag{Submit}{CanonicalFormat}%
\or % PDF
\HyField@SetFlag{Submit}{SubmitPDF}%
\HyField@UseFlag{Submit}{GetMethod}%
\fi
\HyField@PrintFlags{Submit}{submit button field}%
\bitsetIsEmpty{HyField@Submit}{%
\let\Fld@submitflags\ltx@empty
}{%
\edef\Fld@submitflags{/Flags \bitsetGetDec{HyField@Submit}}%
}%
}
\def\HyField@FlagsAnnot#1{%
\bitsetReset{HyField@F}%
\HyField@UseFlag{F}{Invisible}%
\HyField@UseFlag{F}{Hidden}%
\HyField@UseFlag{F}{Print}%
\HyField@UseFlag{F}{NoZoom}%
\HyField@UseFlag{F}{NoRotate}%
\HyField@UseFlag{F}{NoView}%
\HyField@UseFlag{F}{Locked}%
\HyField@UseFlag{F}{ToggleNoView}%
\HyField@UseFlag{F}{LockedContents}%
\HyField@PrintFlags{F}{#1}%
\bitsetIsEmpty{HyField@F}{%
\let\Fld@annotflags\ltx@empty
}{%
\edef\Fld@annotflags{/F \bitsetGetDec{HyField@F}}%
}%
}
\def\HyField@FlagsPushButton{%
\HyField@FlagsAnnot{push button field}%
\bitsetReset{HyField@Ff}%
\HyField@UseFlag{Ff}{ReadOnly}%
\HyField@UseFlag{Ff}{Required}%
\HyField@UseFlag{Ff}{NoExport}%
\HyField@SetFlag{Ff}{Pushbutton}%
\HyField@PrintFlags{Ff}{push button field}%
\bitsetIsEmpty{HyField@Ff}{%
\let\Fld@flags\ltx@empty
}{%
\edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}%
}%
}
\def\HyField@FlagsCheckBox{%
\HyField@FlagsAnnot{check box field}%
\bitsetReset{HyField@Ff}%
\HyField@UseFlag{Ff}{ReadOnly}%
\HyField@UseFlag{Ff}{Required}%
\HyField@UseFlag{Ff}{NoExport}%
\HyField@PrintFlags{Ff}{check box field}%
\bitsetIsEmpty{HyField@Ff}{%
\let\Fld@flags\ltx@empty
}{%
\edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}%
}%
}
\def\HyField@FlagsRadioButton{%
\HyField@FlagsAnnot{radio button field}%
\bitsetReset{HyField@Ff}%
\HyField@UseFlag{Ff}{ReadOnly}%
\HyField@UseFlag{Ff}{Required}%
\HyField@UseFlag{Ff}{NoExport}%
\HyField@UseFlag{Ff}{NoToggleToOff}%
\HyField@SetFlag{Ff}{Radio}%
\HyField@UseFlag{Ff}{RadiosInUnison}%
\HyField@PrintFlags{Ff}{radio button field}%
\bitsetIsEmpty{HyField@Ff}{%
\let\Fld@flags\ltx@empty
}{%
\edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}%
}%
}
\def\HyField@FlagsText{%
\HyField@FlagsAnnot{text field}%
\bitsetReset{HyField@Ff}%
\HyField@UseFlag{Ff}{ReadOnly}%
\HyField@UseFlag{Ff}{Required}%
\HyField@UseFlag{Ff}{NoExport}%
\HyField@UseFlag{Ff}{Multiline}%
\HyField@UseFlag{Ff}{Password}%
\HyField@UseFlag{Ff}{FileSelect}%
\HyField@UseFlag{Ff}{DoNotSpellCheck}%
\HyField@UseFlag{Ff}{DoNotScroll}%
\ifFld@comb
\ifcase0\ifFld@multiline
\else\ifFld@password
\else\ifFld@fileselect
\else 1\fi\fi\fi\relax
\Hy@Error{%
Field option `comb' cannot used together with\MessageBreak
`multiline', `password', or `fileselect'%
}\@ehc
\else
\HyField@UseFlag{Ff}{Comb}%
\fi
\fi
\HyField@UseFlag{Ff}{RichText}%
\HyField@PrintFlags{Ff}{text field}%
\bitsetIsEmpty{HyField@Ff}{%
\let\Fld@flags\ltx@empty
}{%
\edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}%
}%
}
\def\HyField@FlagsChoice{%
\HyField@FlagsAnnot{choice field}%
\bitsetReset{HyField@Ff}%
\HyField@UseFlag{Ff}{ReadOnly}%
\HyField@UseFlag{Ff}{Required}%
\HyField@UseFlag{Ff}{NoExport}%
\HyField@UseFlag{Ff}{Combo}%
\ifFld@combo
\HyField@UseFlag{Ff}{Edit}%
\fi
\HyField@UseFlag{Ff}{Sort}%
\HyField@UseFlag{Ff}{MultiSelect}%
\ifFld@combo
\ifFld@edit
\HyField@UseFlag{Ff}{DoNotSpellCheck}%
\fi
\fi
\HyField@UseFlag{Ff}{CommitOnSelChange}%
\HyField@PrintFlags{Ff}{choice field}%
\bitsetIsEmpty{HyField@Ff}{%
\let\Fld@flags\ltx@empty
}{%
\edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}%
}%
}
\def\HyField@PDFChoices#1{%
\begingroup
\global\let\Fld@choices\ltx@empty
\let\HyTmp@optlist\ltx@empty
\let\HyTmp@optitem\relax
\count@=0 %
\kv@parse{#1}{%
\Hy@pdfstringdef\kv@key\kv@key
\ifx\kv@value\relax
\ifnum\Hy@pdfversion<3 % implementation note 122, PDF spec 1.7
\xdef\Fld@choices{\Fld@choices[(\kv@key)(\kv@key)]}%
\else
\xdef\Fld@choices{\Fld@choices(\kv@key)}%
\fi
\else
\Hy@pdfstringdef\kv@value\kv@value
\xdef\Fld@choices{\Fld@choices[(\kv@value)(\kv@key)]}%
\fi
\edef\HyTmp@optlist{%
\HyTmp@optlist
\HyTmp@optitem{\the\count@}{\kv@key}0%
}%
\advance\count@ by 1 %
\@gobbletwo
}%
\xdef\Fld@choices{/Opt[\Fld@choices]}%
\ifFld@multiselect
\HyField@@PDFChoices{DV}\Fld@default
\HyField@@PDFChoices{V}\Fld@value
\else
\ifx\Fld@default\relax
\else
\pdfstringdef\Hy@gtemp\Fld@default
\xdef\Fld@choices{\Fld@choices/DV(\Hy@gtemp)}%
\fi
\ifx\Fld@value\relax
\else
\pdfstringdef\Hy@gtemp\Fld@value
\xdef\Fld@choices{\Fld@choices/V(\Hy@gtemp)}%
\fi
\fi
\endgroup
}
\def\HyField@@PDFChoices#1#2{%
\ifx#2\relax
\else
\count@=0 %
\def\HyTmp@optitem##1##2##3{%
\def\HyTmp@key{##2}%
\ifx\HyTmp@key\Hy@gtemp
\expandafter\def\expandafter\HyTmp@optlist\expandafter{%
\HyTmp@optlist
\HyTmp@optitem{##1}{##2}1%
}%
\let\HyTmp@found=Y%
\else
\expandafter\def\expandafter\HyTmp@optlist\expandafter{%
\HyTmp@optlist
\HyTmp@optitem{##1}{##2}##3%
}%
\fi
}%
\expandafter\comma@parse\expandafter{#2}{%
\pdfstringdef\Hy@gtemp\comma@entry
\let\HyTmp@found=N %
\expandafter\let\expandafter\HyTmp@optlist\expandafter\@empty
\HyTmp@optlist
\ifx\HyTmp@found Y%
\advance\count@ by 1 %
\else
\@onelevel@sanitize\comma@entry
\PackageWarning{hyperref}{%
\string\ChoiceBox: Ignoring value `\comma@entry',%
\MessageBreak
it cannot be found in the choices%
}%
\fi
\@gobble
}%
\def\HyTmp@optitem##1##2##3{%
\ifnum##3=1 %
(##2)%
\fi
}%
\ifcase\count@
\or
\xdef\Fld@choices{\Fld@choices/#1\HyTmp@optlist}%
\else
\xdef\Fld@choices{\Fld@choices/#1[\HyTmp@optlist]}%
\ifx#1V%
\def\HyTmp@optitem##1##2##3{%
\ifnum##3=1 %
\@firstofone{ ##1}%
\fi
}%
\edef\HyTmp@optlist{\HyTmp@optlist}%
\xdef\Fld@choices{%
\Fld@choices
/I[\expandafter\@firstofone\HyTmp@optlist]%
}%
\fi
\fi
\fi
}
\def\HyField@SetKeys{%
\kvsetkeys{Field}%
}
\newif\ifFld@checked
\newif\ifFld@disabled
\Fld@checkedfalse
\Fld@disabledfalse
\newcount\Fld@menulength
\newdimen\Field@Width
\newdimen\Fld@charsize
\Fld@charsize=10\p@
\def\Fld@maxlen{0}
\def\Fld@align{0}
\def\Fld@color{0 0 0 rg}
\def\Fld@bcolor{1 1 1}
\def\Fld@bordercolor{1 0 0}
\def\Fld@bordersep{1\p@}
\def\Fld@borderwidth{1}
\def\Fld@borderstyle{S}
\def\Fld@cbsymbol{4}
\def\Fld@radiosymbol{H}
\def\Fld@rotation{0}
\def\Form{\@ifnextchar[{\@Form}{\@Form[]}}
\def\endForm{\@endForm}
\newif\ifForm@html
\Form@htmlfalse
\def\Form@boolkey#1#2{%
\csname Form@#2\ifx\relax#1\relax true\else#1\fi\endcsname
}
\define@key{Form}{action}{%
\hyper@normalise\Hy@DefFormAction{#1}%
}
\def\Hy@DefFormAction{\def\Form@action}
\def\enc@@html{html}
\define@key{Form}{encoding}{%
\def\Hy@tempa{#1}%
\ifx\Hy@tempa\enc@@html
\Form@htmltrue
\def\Fld@export{html}%
\else
\Hy@Warning{%
Form `encoding' key with \MessageBreak
unknown value `#1'%
}%
\Form@htmlfalse
\fi
}
\define@key{Form}{method}{%
\lowercase{\def\Hy@temp{#1}}%
\@ifundefined{Form@method@\Hy@temp}{%
\@onelevel@sanitize\Hy@temp
\Hy@Error{%
Unknown method `\Hy@temp'.\MessageBreak
Known values are `post' and `get'%
}\@ehc
}{%
\let\Form@method\Hy@temp
\ifcase\@nameuse{Form@method@\Hy@temp} %
\Fld@getmethodfalse
\else
\Fld@getmethodtrue
\fi
}%
}
\def\Form@method{}
\@namedef{Form@method@post}{0}
\@namedef{Form@method@get}{1}
\newif\ifHyField@NeedAppearances
\def\HyField@NeedAppearancesfalse{%
\global\let\ifHyField@NeedAppearances\iffalse
}
\def\HyField@NeedAppearancestrue{%
\global\let\ifHyField@NeedAppearances\iftrue
}
\HyField@NeedAppearancestrue
\define@key{Form}{NeedAppearances}[true]{%
\edef\Hy@tempa{#1}%
\ifx\Hy@tempa\Hy@true
\HyField@NeedAppearancestrue
\else
\ifx\Hy@tempa\Hy@false
\HyField@NeedAppearancesfalse
\else
\Hy@Error{%
Unexpected value `\Hy@tempa'\MessageBreak
of option `NeedAppearances' instead of\MessageBreak
`true' or `false'%
}\@ehc
\fi
\fi
}
\def\Field@boolkey#1#2{%
\csname Fld@#2\ifx\relax#1\relax true\else#1\fi\endcsname
}
\ifHy@texht
\newtoks\Field@toks
\Field@toks={ }%
\def\Field@addtoks#1#2{%
\edef\@processme{\Field@toks{\the\Field@toks\space #1="#2"}}%
\@processme
}%
\else
\def\Hy@WarnHTMLFieldOption#1{%
\Hy@Warning{%
HTML field option `#1'\MessageBreak
is ignored%
}%
}%
\fi
\def\Fld@checkequals#1=#2=#3\\{%
\def\@currDisplay{#1}%
\ifx\\#2\\%
\def\@currValue{#1}%
\else
\def\@currValue{#2}%
\fi
}
\define@key{Field}{loc}{%
\def\Fld@loc{#1}%
}
\define@key{Field}{checked}[true]{%
\lowercase{\Field@boolkey{#1}}{checked}%
}
\define@key{Field}{disabled}[true]{%
\lowercase{\Field@boolkey{#1}}{disabled}%
}
\ifHy@texht
\define@key{Field}{accesskey}{%
\Field@addtoks{accesskey}{#1}%
}%
\define@key{Field}{tabkey}{%
\Field@addtoks{tabkey}{#1}%
}%
\else
\define@key{Field}{accesskey}{%
\Hy@WarnHTMLFieldOption{accesskey}%
}%
\define@key{Field}{tabkey}{%
\Hy@WarnHTMLFieldOption{tabkey}%
}%
\fi
\define@key{Field}{name}{%
\def\Fld@name{#1}%
}
\let\Fld@altname\relax
\define@key{Field}{altname}{%
\def\Fld@altname{#1}%
}
\let\Fld@mappingname\relax
\define@key{Field}{mappingname}{%
\def\Fld@mappingname{#1}%
}
\define@key{Field}{width}{%
\def\Fld@width{#1}%
\Field@Width#1\setbox0=\hbox{m}%
}
\define@key{Field}{maxlen}{%
\def\Fld@maxlen{#1}%
}
\define@key{Field}{menulength}{%
\Fld@menulength=#1\relax
}
\define@key{Field}{height}{%
\def\Fld@height{#1}%
}
\define@key{Field}{charsize}{%
\setlength{\Fld@charsize}{#1}%
}
\define@key{Field}{borderwidth}{%
\Hy@defaultbp\Fld@borderwidth{#1}%
}
\def\Hy@defaultbp#1#2{%
\begingroup
\afterassignment\Hy@defaultbpAux
\dimen@=#2bp\relax{#1}{#2}%
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname dimexpr\endcsname\relax
\def\Hy@defaultbpAux#1\relax#2#3{%
\ifx!#1!%
\endgroup
\def#2{#3}%
\else
\dimen@=.99626\dimen@
\edef\x{\endgroup
\def\noexpand#2{%
\strip@pt\dimen@
}%
}\x
\fi
}%
\else
\def\Hy@defaultbpAux#1\relax#2#3{%
\ifx!#1!%
\endgroup
\def#2{#3}%
\else
\edef\x{\endgroup
\def\noexpand#2{%
\strip@pt\dimexpr\dimen@*800/803\relax
}%
}\x
\fi
}%
\fi
\define@key{Field}{borderstyle}{%
\let\Hy@temp\Fld@borderstyle
\def\Fld@borderstyle{#1}%
\Hy@Match\Fld@borderstyle{}{%
^[SDBIU]$%
}{}{%
\Hy@Warning{%
Invalid value `\@pdfborderstyle'\MessageBreak
for option `pdfborderstyle'. Valid values:\MessageBreak
\space\space S (Solid), D (Dashed), B (Beveled),\MessageBreak
\space\space I (Inset), U (Underline)\MessageBreak
Option setting is ignored%
}%
\let\Fld@borderstyle\Hy@temp
}%
}
\define@key{Field}{bordersep}{%
\def\Fld@bordersep{#1}%
}
\define@key{Field}{default}{%
\def\Fld@default{#1}%
}
\define@key{Field}{align}{%
\def\Fld@align{#1}%
}
\define@key{Field}{value}{%
\def\Fld@value{#1}%
}
\define@key{Field}{checkboxsymbol}{%
\Fld@DingDef\Fld@cbsymbol{#1}%
}
\define@key{Field}{radiosymbol}{%
\Fld@DingDef\Fld@radiosymbol{#1}%
}
\def\Fld@DingDef#1#2{%
\let\Fld@temp\ltx@empty
\Fld@@DingDef#2\ding{}\@nil
\let#1\Fld@temp
}
\def\Fld@@DingDef#1\ding#2#3\@nil{%
\expandafter\def\expandafter\Fld@temp\expandafter{%
\Fld@temp
#1%
}%
\ifx\\#3\\%
\expandafter\@gobble
\else
\begingroup
\lccode`0=#2\relax
\lowercase{\endgroup
\expandafter\def\expandafter\Fld@temp\expandafter{%
\Fld@temp
0%
}%
}%
\expandafter\@firstofone
\fi
{%
\Fld@@DingDef#3\@nil
}%
}
\define@key{Field}{rotation}{%
\def\Fld@rotation{#1}%
}
\define@key{Field}{backgroundcolor}{%
\HyColor@FieldBColor{#1}\Fld@bcolor{hyperref}{backgroundcolor}%
}
\define@key{Field}{bordercolor}{%
\HyColor@FieldBColor{#1}\Fld@bordercolor{hyperref}{bordercolor}%
}
\define@key{Field}{color}{%
\HyColor@FieldColor{#1}\Fld@color{hyperref}{color}%
}
\let\Fld@onclick@code\ltx@empty
\let\Fld@format@code\ltx@empty
\let\Fld@validate@code\ltx@empty
\let\Fld@calculate@code\ltx@empty
\let\Fld@keystroke@code\ltx@empty
\let\Fld@onfocus@code\ltx@empty
\let\Fld@onblur@code\ltx@empty
\let\Fld@onmousedown@code\ltx@empty
\let\Fld@onmouseup@code\ltx@empty
\let\Fld@onenter@code\ltx@empty
\let\Fld@onexit@code\ltx@empty
\def\Hy@temp#1{%
\expandafter\Hy@@temp\csname Fld@#1@code\endcsname{#1}%
}
\def\Hy@@temp#1#2{%
\ifHy@pdfa
\define@key{Field}{#2}{%
\Hy@Error{%
PDF/A: Additional action `#2' is prohibited%
}\@ehc
}%
\else
\define@key{Field}{#2}{%
\def#1{##1}%
}%
\fi
}
\Hy@temp{keystroke}
\Hy@temp{format}
\Hy@temp{validate}
\Hy@temp{calculate}
\Hy@temp{onfocus}
\Hy@temp{onblur}
\Hy@temp{onenter}
\Hy@temp{onexit}
\let\Fld@calculate@sortkey\ltx@empty
\define@key{Field}{calculatesortkey}[1]{%
\def\Fld@calculate@sortkey{#1}%
}
\ifHy@texht
\def\Hy@temp#1{%
\define@key{Field}{#1}{%
\Field@addtoks{#1}{##1}%
}%
}%
\else
\def\Hy@temp#1{%
\define@key{Field}{#1}{%
\Hy@WarnHTMLFieldOption{#1}%
}%
}%
\fi
\Hy@temp{ondblclick}
\Hy@temp{onmousedown}
\Hy@temp{onmouseup}
\Hy@temp{onmouseover}
\Hy@temp{onmousemove}
\Hy@temp{onmouseout}
\Hy@temp{onkeydown}
\Hy@temp{onkeyup}
\Hy@temp{onselect}
\Hy@temp{onchange}
\Hy@temp{onkeypress}
\ifHy@texht
\define@key{Field}{onclick}{%
\Field@addtoks{onclick}{#1}%
}%
\else
\ifHy@pdfa
\define@key{Field}{onclick}{%
\Hy@Error{%
PDF/A: Action `onclick' is prohibited%
}\@ehc
}%
\else
\define@key{Field}{onclick}{%
\def\Fld@onclick@code{#1}%
}%
\fi
\fi
\DeclareRobustCommand\TextField{%
\@ifnextchar[{\@TextField}{\@TextField[]}%
}
\DeclareRobustCommand\ChoiceMenu{%
\@ifnextchar[{\@ChoiceMenu}{\@ChoiceMenu[]}%
}
\DeclareRobustCommand\CheckBox{%
\@ifnextchar[{\@CheckBox}{\@CheckBox[]}%
}
\DeclareRobustCommand\PushButton{%
\@ifnextchar[{\@PushButton}{\@PushButton[]}%
}
\DeclareRobustCommand\Gauge{%
\@ifnextchar[{\@Gauge}{\@Gauge[]}%
}
\DeclareRobustCommand\Submit{%
\@ifnextchar[{\@Submit}{\@Submit[]}%
}
\DeclareRobustCommand\Reset{%
\@ifnextchar[{\@Reset}{\@Reset[]}%
}
\def\LayoutTextField#1#2{% label, field
#1 #2%
}
\def\LayoutChoiceField#1#2{% label, field
#1 #2%
}
\def\LayoutCheckField#1#2{% label, field
#1 #2%
}
\def\LayoutPushButtonField#1{% button
#1%
}
\def\MakeRadioField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}}
\def\MakeCheckField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}}
\def\MakeTextField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}}
\def\MakeChoiceField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}}
\def\MakeButtonField#1{%
\sbox0{%
\hskip\Fld@borderwidth bp#1\hskip\Fld@borderwidth bp%
}%
\@tempdima\ht0 %
\advance\@tempdima by \Fld@borderwidth bp %
\advance\@tempdima by \Fld@borderwidth bp %
\ht0\@tempdima
\@tempdima\dp0 %
\advance\@tempdima by \Fld@borderwidth bp %
\advance\@tempdima by \Fld@borderwidth bp %
\dp0\@tempdima
\box0\relax
}
\def\DefaultHeightofSubmit{14pt}
\def\DefaultWidthofSubmit{2cm}
\def\DefaultHeightofReset{14pt}
\def\DefaultWidthofReset{2cm}
\def\DefaultHeightofCheckBox{\baselineskip}
\def\DefaultWidthofCheckBox{\baselineskip}
\def\DefaultHeightofChoiceMenu{\baselineskip}
\def\DefaultWidthofChoiceMenu{\baselineskip}
\def\DefaultHeightofText{\baselineskip}
\def\DefaultHeightofTextMultiline{4\baselineskip}
\def\DefaultWidthofText{3cm}
\def\DefaultOptionsofSubmit{print,name=Submit,noexport}
\def\DefaultOptionsofReset{print,name=Reset,noexport}
\def\DefaultOptionsofPushButton{print}
\def\DefaultOptionsofCheckBox{print}
\def\DefaultOptionsofText{print}
\def\DefaultOptionsofListBox{print}
\def\DefaultOptionsofComboBox{print,edit,sort}
\def\DefaultOptionsofPopdownBox{print}
\def\DefaultOptionsofRadio{print,notoggletooff}
\ifHy@hyperfigures
\Hy@Info{Hyper figures ON}%
\else
\Hy@Info{Hyper figures OFF}%
\fi
\ifHy@nesting
\Hy@Info{Link nesting ON}%
\else
\Hy@Info{Link nesting OFF}%
\fi
\ifHy@hyperindex
\Hy@Info{Hyper index ON}%
\else
\Hy@Info{Hyper index OFF}%
\fi
\ifHy@backref
\Hy@Info{backreferencing ON}%
\else
\Hy@Info{backreferencing OFF}%
\fi
\ifHy@colorlinks
\Hy@Info{Link coloring ON}%
\else
\Hy@Info{Link coloring OFF}%
\fi
\ifHy@ocgcolorlinks
\Hy@Info{Link coloring with OCG ON}%
\else
\Hy@Info{Link coloring with OCG OFF}%
\fi
\ifHy@pdfa
\Hy@Info{PDF/A mode ON}%
\else
\Hy@Info{PDF/A mode OFF}%
\fi
\edef\hyper@hash{\string#}
\edef\hyper@tilde{\string~}
\edef\hyper@quote{\string"}
\def\@currentHref{Doc-Start}
\let\Hy@footnote@currentHref\@empty
\Hy@AtBeginDocument{%
\Hy@pdfstringtrue
\PDF@SetupDoc
\let\PDF@SetupDoc\@empty
\Hy@DisableOption{pdfpagescrop}%
\Hy@DisableOption{pdfpagemode}%
\Hy@DisableOption{pdfnonfullscreenpagemode}%
\Hy@DisableOption{pdfdirection}%
\Hy@DisableOption{pdfviewarea}%
\Hy@DisableOption{pdfviewclip}%
\Hy@DisableOption{pdfprintarea}%
\Hy@DisableOption{pdfprintclip}%
\Hy@DisableOption{pdfprintscaling}%
\Hy@DisableOption{pdfduplex}%
\Hy@DisableOption{pdfpicktraybypdfsize}%
\Hy@DisableOption{pdfprintpagerange}%
\Hy@DisableOption{pdfnumcopies}%
\Hy@DisableOption{pdfstartview}%
\Hy@DisableOption{pdfstartpage}%
\Hy@DisableOption{pdftoolbar}%
\Hy@DisableOption{pdfmenubar}%
\Hy@DisableOption{pdfwindowui}%
\Hy@DisableOption{pdffitwindow}%
\Hy@DisableOption{pdfcenterwindow}%
\Hy@DisableOption{pdfdisplaydoctitle}%
\Hy@DisableOption{pdfpagelayout}%
\Hy@DisableOption{pdflang}%
\Hy@DisableOption{baseurl}%
\ifHy@texht\else\hyper@anchorstart{Doc-Start}\hyper@anchorend\fi
\Hy@pdfstringfalse
}
\LetLtxMacro\NoHy@OrgRef\ref
\DeclareRobustCommand*{\ref}{%
\@ifstar\NoHy@OrgRef\NoHy@OrgRef
}
\LetLtxMacro\NoHy@OrgPageRef\pageref
\DeclareRobustCommand*{\pageref}{%
\@ifstar\NoHy@OrgPageRef\NoHy@OrgPageRef
}
\def\NoHyper{%
\def\hyper@link@[##1]##2##3##4{##4\Hy@xspace@end}%
\def\hyper@@anchor##1##2{##2\Hy@xspace@end}%
\global\let\hyper@livelink\hyper@link
\gdef\hyper@link##1##2##3{##3\Hy@xspace@end}%
\let\hyper@anchor\ltx@gobble
\let\hyper@anchorstart\ltx@gobble
\def\hyper@anchorend{\Hy@xspace@end}%
\let\hyper@linkstart\ltx@gobbletwo
\def\hyper@linkend{\Hy@xspace@end}%
\def\hyper@linkurl##1##2{##1\Hy@xspace@end}%
\def\hyper@linkfile##1##2##3{##1\Hy@xspace@end}%
\let\Hy@backout\@gobble
}
\def\stop@hyper{%
\def\hyper@link@[##1]##2##3##4{##4\Hy@xspace@end}%
\let\Hy@backout\@gobble
\let\hyper@@anchor\ltx@gobble
\def\hyper@link##1##2##3{##3\Hy@xspace@end}%
\let\hyper@anchor\ltx@gobble
\let\hyper@anchorstart\ltx@gobble
\def\hyper@anchorend{\Hy@xspace@end}%
\let\hyper@linkstart\ltx@gobbletwo
\def\hyper@linkend{\Hy@xspace@end}%
\def\hyper@linkurl##1##2{##1\Hy@xspace@end}%
\def\hyper@linkfile##1##2##3{##1\Hy@xspace@end}%
}
\def\endNoHyper{%
\global\let\hyper@link\hyper@livelink
}
\Hy@AtBeginDocument{%
\if@filesw
\ifHy@typexml
\immediate\closeout\@mainaux
\immediate\openout\@mainaux\jobname.aux\relax
\immediate\write\@auxout{<relaxxml>\relax}%
\fi
\immediate\write\@auxout{%
\string\providecommand\string\HyperFirstAtBeginDocument{%
\string\AtBeginDocument}^^J%
\string\HyperFirstAtBeginDocument{%
\string\ifx\string\hyper@anchor\string\@undefined^^J%
\string\global\string\let\string\oldcontentsline\string\contentsline^^J%
\string\gdef\string\contentsline%
\string#1\string#2\string#3\string#4{%
\string\oldcontentsline%
{\string#1}{\string#2}{\string#3}}^^J%
\string\global\string\let\string\oldnewlabel\string\newlabel^^J%
\string\gdef\string\newlabel\string#1\string#2{%
\string\newlabelxx{\string#1}\string#2}^^J%
\string\gdef\string\newlabelxx%
\string#1\string#2\string#3\string#4\string#5\string#6{%
\string\oldnewlabel{\string#1}{{\string#2}{\string#3}}}^^J%
\string\AtEndDocument{%
\string\ifx\string\hyper@anchor\string\@undefined^^J%
\string\let\string\contentsline\string\oldcontentsline^^J%
\string\let\string\newlabel\string\oldnewlabel^^J%
\string\fi%
}^^J%
\string\fi%
}^^J%
\string\global\string\let\string\hyper@last\relax^^J%
\string\gdef\string\HyperFirstAtBeginDocument\string#1{\string#1}%
}%
\fi
\let\HyperFirstAtBeginDocument\ltx@firstofone
\ifx\hyper@last\@undefined
\def\@starttoc#1{%
\begingroup
\makeatletter
\ltx@ifpackageloaded{parskip}{\parskip\z@}{}%
\IfFileExists{\jobname.#1}{%
\Hy@WarningNoLine{%
old #1 file detected, not used; run LaTeX again%
}%
}{}%
\if@filesw
\expandafter\newwrite\csname tf@#1\endcsname
\immediate\openout\csname tf@#1\endcsname \jobname.#1\relax
\fi
\@nobreakfalse
\endgroup
}%
\def\newlabel#1#2{\@newl@bel r{#1}{#2{}{}{}{}}}%
\fi
}
\ifHy@pdfusetitle
\let\HyOrg@title\title
\let\HyOrg@author\author
\def\title{\@ifnextchar[{\Hy@scanopttitle}{\Hy@scantitle}}%
\def\Hy@scanopttitle[#1]{%
\gdef\Hy@title{#1}%
\HyOrg@title[{#1}]%
}%
\def\Hy@scantitle#1{%
\gdef\Hy@title{#1}%
\HyOrg@title{#1}%
}%
\def\author{\@ifnextchar[{\Hy@scanoptauthor}{\Hy@scanauthor}}%
\def\Hy@scanoptauthor[#1]{%
\gdef\Hy@author{#1}%
\HyOrg@author[{#1}]%
}%
\def\Hy@scanauthor#1{%
\gdef\Hy@author{#1}%
\HyOrg@author{#1}%
}%
\begingroup
\def\process@me#1\@nil#2{%
\expandafter\let\expandafter\x\csname @#2\endcsname
\edef\y{\expandafter\strip@prefix\meaning\x}%
\def\c##1#1##2\@nil{%
\ifx\\##1\\%
\else
\expandafter\gdef\csname Hy@#2\expandafter\endcsname
\expandafter{\x}%
\fi
}%
\expandafter\c\y\relax#1\@nil
}%
\expandafter\process@me\string\@latex@\@nil{title}%
\expandafter\process@me\string\@latex@\@nil{author}%
\endgroup
\fi
\Hy@DisableOption{pdfusetitle}
\def\Hy@UseMaketitleString#1{%
\ltx@IfUndefined{Hy@#1}{}{%
\begingroup
\let\Hy@saved@hook\pdfstringdefPreHook
\pdfstringdefDisableCommands{%
\expandafter\let\expandafter\\\csname Hy@newline@#1\endcsname
\let\newline\\%
}%
\expandafter\ifx\csname @pdf#1\endcsname\@empty
\expandafter\pdfstringdef\csname @pdf#1\endcsname{%
\csname Hy@#1\endcsname\@empty
}%
\fi
\global\let\pdfstringdefPreHook\Hy@saved@hook
\endgroup
}%
}
\def\Hy@newline@title#1{ #1}
\def\Hy@newline@author#1{, #1}
\def\Hy@UseMaketitleInfos{%
\Hy@UseMaketitleString{title}%
\Hy@UseMaketitleString{author}%
}
\RequirePackage{atbegshi}[2007/09/09]
\let\Hy@EveryPageHook\ltx@empty
\let\Hy@EveryPageBoxHook\ltx@empty
\let\Hy@FirstPageHook\ltx@empty
\AtBeginShipout{%
\Hy@EveryPageHook
\ifx\Hy@EveryPageBoxHook\ltx@empty
\else
\setbox\AtBeginShipoutBox=\vbox{%
\offinterlineskip
\Hy@EveryPageBoxHook
\box\AtBeginShipoutBox
}%
\fi
}
\ltx@iffileloaded{hpdftex.def}{%
\AtBeginShipout{%
\Hy@FirstPageHook
\global\let\Hy@FirstPageHook\ltx@empty
}%
}{%
\AtBeginShipoutFirst{%
\Hy@FirstPageHook
}%
}
\g@addto@macro\Hy@FirstPageHook{%
\PDF@FinishDoc
\global\let\PDF@FinishDoc\ltx@empty
}
\ifHy@pdfpagelabels
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname thepage\endcsname\relax
\Hy@pdfpagelabelsfalse
\Hy@WarningNoLine{%
Option `pdfpagelabels' is turned off\MessageBreak
because \string\thepage\space is undefined%
}%
\csname fi\endcsname
\csname iffalse\expandafter\endcsname
\fi
\def\thispdfpagelabel#1{%
\gdef\HyPL@thisLabel{#1}%
}%
\global\let\HyPL@thisLabel\relax
\let\HyPL@Labels\ltx@empty
\newcount\Hy@abspage
\Hy@abspage=0 %
\def\HyPL@LastType{init}%
\def\HyPL@LastNumber{0}%
\let\HyPL@LastPrefix\ltx@empty
\def\HyPL@arabic{D}%
\def\HyPL@Roman{R}%
\def\HyPL@roman{r}%
\def\HyPL@Alph{A}%
\def\HyPL@alph{a}%
\let\HyPL@SlidesSetPage\ltx@empty
\ltx@ifclassloaded{slides}{%
\def\HyPL@SlidesSetPage{%
\advance\c@page\ltx@one
\ifnum\value{page}>\ltx@one
\protected@edef\HyPL@SlidesOptionalPage{%
\Hy@SlidesFormatOptionalPage{\thepage}%
}%
\else
\let\HyPL@SlidesOptionalPage\ltx@empty
\fi
\advance\c@page-\ltx@one
\def\HyPL@page{%
\csname the\Hy@SlidesPage\endcsname
\HyPL@SlidesOptionalPage
}%
}%
}{}%
\def\HyPL@EveryPage{%
\begingroup
\ifx\HyPL@thisLabel\relax
\let\HyPL@page\thepage
\HyPL@SlidesSetPage
\else
\let\HyPL@page\HyPL@thisLabel
\global\let\HyPL@thisLabel\relax
\fi
\let\HyPL@Type\relax
\ifnum\c@page>0 %
\ifx\HyPL@SlidesSetPage\ltx@empty
\expandafter\HyPL@CheckThePage\HyPL@page\@nil
\fi
\fi
\let\Hy@temp Y%
\ifx\HyPL@Type\HyPL@LastType
\else
\let\Hy@temp N%
\fi
\ifx\HyPL@Type\relax
\pdfstringdef\HyPL@Prefix{\HyPL@page}%
\else
\pdfstringdef\HyPL@Prefix\HyPL@Prefix
\fi
\ifx\HyPL@Prefix\HyPL@LastPrefix
\else
\let\Hy@temp N%
\fi
\if Y\Hy@temp
\advance\c@page by -1 %
\ifnum\HyPL@LastNumber=\the\c@page\relax
\else
\let\Hy@temp N%
\fi
\Hy@StepCount\c@page
\fi
\if N\Hy@temp
\ifx\HyPL@Type\relax
\HyPL@StorePageLabel{/P(\HyPL@Prefix)}%
\else
\HyPL@StorePageLabel{%
\ifx\HyPL@Prefix\@empty
\else
/P(\HyPL@Prefix)%
\fi
/S/\csname HyPL\HyPL@Type\endcsname
\ifnum\the\c@page=1 %
\else
\space/St \the\c@page
\fi
}%
\fi
\fi
\xdef\HyPL@LastNumber{\the\c@page}%
\global\let\HyPL@LastType\HyPL@Type
\global\let\HyPL@LastPrefix\HyPL@Prefix
\endgroup
\Hy@GlobalStepCount\Hy@abspage
}%
\def\HyPL@CheckThePage#1\@nil{%
\HyPL@@CheckThePage{#1}#1\csname\endcsname\c@page\@nil
}%
\def\HyPL@@CheckThePage#1#2\csname#3\endcsname\c@page#4\@nil{%
\def\Hy@tempa{#4}%
\def\Hy@tempb{\csname\endcsname\c@page}%
\ifx\Hy@tempa\Hy@tempb
\expandafter\ifx\csname HyPL#3\endcsname\relax
\else
\def\HyPL@Type{#3}%
\def\HyPL@Prefix{#2}%
\fi
\else
\begingroup
\let\Hy@next\endgroup
\let\HyPL@found\@undefined
\def\arabic{\HyPL@Format{arabic}}%
\def\Roman{\HyPL@Format{Roman}}%
\def\roman{\HyPL@Format{roman}}%
\def\Alph{\HyPL@Format{Alph}}%
\def\alph{\HyPL@Format{alph}}%
\protected@edef\Hy@temp{#1}%
\ifx\HyPL@found\relax
\toks@\expandafter{\Hy@temp}%
\edef\Hy@next{\endgroup
\noexpand\HyPL@@@CheckThePage\the\toks@
\noexpand\HyPL@found\relax\noexpand\@nil
}%
\fi
\Hy@next
\fi
}%
\def\HyPL@Format#1#2{%
\ifx\HyPL@found\@undefined
\expandafter\ifx\csname c@#2\endcsname\c@page
\expandafter\noexpand\csname HyPL@found\endcsname{#1}%
\else
\expandafter\noexpand\csname#1\endcsname{#2}%
\fi
\else
\expandafter\noexpand\csname#1\endcsname{#2}%
\fi
}%
\def\HyPL@@@CheckThePage#1\HyPL@found#2#3\@nil{%
\def\Hy@tempa{#3}%
\def\Hy@tempb{\HyPL@found\relax}%
\ifx\Hy@tempa\Hy@tempb
\def\HyPL@Type{@#2}%
\def\HyPL@Prefix{#1}%
\fi
}%
\providecommand*{\HyPL@StorePageLabel}[1]{}%
\def\HyPL@Useless{0<</S/D>>}%
\@onelevel@sanitize\HyPL@Useless
\def\HyPL@SetPageLabels{%
\@onelevel@sanitize\HyPL@Labels
\ifx\HyPL@Labels\@empty
\else
\ifx\HyPL@Labels\HyPL@Useless
\else
\Hy@PutCatalog{/PageLabels<</Nums[\HyPL@Labels]>>}%
\fi
\fi
}%
\g@addto@macro\Hy@EveryPageHook{\HyPL@EveryPage}%
\fi
\Hy@DisableOption{pdfpagelabels}
\ifx\MaybeStopEarly\relax
\else
\Hy@stoppedearlytrue
\expandafter\MaybeStopEarly
\fi
\Hy@stoppedearlyfalse
\def\Hy@CounterExists#1{%
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname c@#1\endcsname\relax
\expandafter\@gobble
\else
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname the#1\endcsname\relax
\expandafter\expandafter\expandafter\@gobble
\else
\expandafter\expandafter\expandafter\@firstofone
\fi
\fi
}
\Hy@CounterExists{section}{%
\providecommand\theHequation{\theHsection.\arabic{equation}}%
}
\Hy@CounterExists{part}{%
\providecommand\theHpart{\arabic{part}}%
}
\ltx@IfUndefined{thechapter}{%
\providecommand\theHsection {\arabic{section}}%
\providecommand\theHfigure {\arabic{figure}}%
\providecommand\theHtable {\arabic{table}}%
}{%
\providecommand\theHchapter {\arabic{chapter}}%
\providecommand\theHfigure {\theHchapter.\arabic{figure}}%
\providecommand\theHtable {\theHchapter.\arabic{table}}%
\providecommand\theHsection {\theHchapter.\arabic{section}}%
}
\providecommand\theHsubsection {\theHsection.\arabic{subsection}}
\providecommand\theHsubsubsection{\theHsubsection.\arabic{subsubsection}}
\providecommand\theHparagraph {\theHsubsubsection.\arabic{paragraph}}
\providecommand\theHsubparagraph {\theHparagraph.\arabic{subparagraph}}
\providecommand\theHtheorem {\theHsection.\arabic{theorem}}
\providecommand\theHthm {\theHsection.\arabic{thm}}
\let\H@item\item
\newcounter{Item}
\def\theHItem{\arabic{Item}}
\def\item{%
\@hyper@itemfalse
\if@nmbrlist\@hyper@itemtrue\fi
\H@item
}
\providecommand\theHenumi {\theHItem}
\providecommand\theHenumii {\theHItem}
\providecommand\theHenumiii {\theHItem}
\providecommand\theHenumiv {\theHItem}
\providecommand\theHHfootnote {\arabic{Hfootnote}}
\providecommand\theHmpfootnote{\arabic{mpfootnote}}
\@ifundefined{theHHmpfootnote}{%
\let\theHHmpfootnote\theHHfootnote
}{}
\let\H@refstepcounter\refstepcounter
\edef\name@of@eq{equation}%
\edef\name@of@slide{slide}%
\newif\if@hyper@item
\newif\if@skiphyperref
\@hyper@itemfalse
\@skiphyperreffalse
\def\refstepcounter#1{%
\ifHy@pdfstring
\else
\H@refstepcounter{#1}%
\edef\This@name{#1}%
\ifx\This@name\name@of@slide
\else
\if@skiphyperref
\else
\if@hyper@item
\stepcounter{Item}%
\hyper@refstepcounter{Item}%
\@hyper@itemfalse
\else
\hyper@refstepcounter{#1}%
\fi
\fi
\fi
\fi
}
\let\Hy@saved@refstepcounter\refstepcounter
\@ifpackageloaded{amsmath}{}{\newif\ifmeasuring@\measuring@false}
\def\hyper@refstepcounter#1{%
\edef\This@name{#1}%
\ifx\This@name\name@of@eq
\@ifundefined{theHequation}{%
\make@stripped@name{\theequation}%
\let\theHequation\newname
}{}%
\fi
\HyCnt@ProvideTheHCounter{#1}%
\hyper@makecurrent{#1}%
\ifmeasuring@
\else
\Hy@raisedlink{%
\hyper@anchorstart{\@currentHref}\hyper@anchorend
}%
\fi
}
\def\HyCnt@ProvideTheHCounter#1{%
\@ifundefined{theH#1}{%
\expandafter\def\csname theH#1\endcsname{}%
\def\Hy@temp{\@elt{#1}}%
\ltx@onelevel@sanitize\Hy@temp
\let\HyOrg@elt\@elt
\edef\@elt{%
\noexpand\HyCnt@LookForParentCounter
\expandafter\noexpand\csname theH#1\endcsname
}%
\cl@@ckpt
\let\@elt\HyOrg@elt
\expandafter
\ltx@LocalAppendToMacro\csname theH#1\expandafter\endcsname
\expandafter{%
\expandafter\@arabic\csname c@#1\endcsname
}%
}{}%
}
\def\HyCnt@LookForParentCounter#1#2{%
\expandafter\let\expandafter\Hy@temp@A\csname cl@#2\endcsname
\ltx@IfUndefined{cl@#2}{%
}{%
\ltx@onelevel@sanitize\Hy@temp@A
\edef\Hy@temp@A{%
\noexpand\in@{\Hy@temp}{\Hy@temp@A}%
}\Hy@temp@A
\ifin@
\ltx@IfUndefined{theH#2}{%
\expandafter\ltx@LocalAppendToMacro\expandafter#1%
\expandafter{%
\expandafter\@arabic\csname c@#2\endcsname.%
}%
}{%
\expandafter\ltx@LocalAppendToMacro\expandafter#1%
\expandafter{%
\csname theH#2\endcsname.%
}%
}%
\fi
}%
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname chapter\endcsname\relax
\def\Hy@chapterstring{section}%
\else
\def\Hy@chapterstring{chapter}%
\fi
\def\Hy@appendixstring{appendix}
\def\Hy@chapapp{\Hy@chapterstring}
\ltx@IfUndefined{appendix}{%
}{%
\let\HyOrg@appendix\appendix
\def\Hy@AlphNoErr#1{%
\ifnum\value{#1}>26 %
Alph\number\value{#1}%
\else
\ifnum\value{#1}<1 %
Alph\number\value{#1}%
\else
\Alph{#1}%
\fi
\fi
}%
\def\appendix{%
\ltx@IfUndefined{chapter}{%
\gdef\theHsection{\Hy@AlphNoErr{section}}%
}{%
\gdef\theHchapter{\Hy@AlphNoErr{chapter}}%
}%
\xdef\Hy@chapapp{\Hy@appendixstring}%
\HyOrg@appendix
}%
}
\def\Hy@Test@alph#1{%
\ifcase#1\or
a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or
u\or v\or w\or x\or y\or z%
\else
\@ctrerr
\fi
}
\def\Hy@Test@Alph#1{%
\ifcase#1\or
A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or
U\or V\or W\or X\or Y\or Z%
\else
\@ctrerr
\fi
}
\def\hyper@makecurrent#1{%
\begingroup
\Hy@safe@activestrue
\edef\Hy@param{#1}%
\ifx\Hy@param\Hy@chapterstring
\let\Hy@param\Hy@chapapp
\fi
\ifHy@hypertexnames
\let\@number\@firstofone
\def\@fnsymbol##1{fnsymbol\number##1}%
\def\@arabic##1{\number##1}%
\ifx\@alph\Hy@Test@alph
\else
\def\@alph{alph\number}%
\fi
\ifx\@Alph\Hy@Test@Alph
\else
\def\@Alph{Alph\number}%
\fi
\ifHy@naturalnames
\let\textlatin\@firstofone
\xdef\HyperGlobalCurrentHref{\csname the#1\endcsname}%
\else
\xdef\HyperGlobalCurrentHref{%
\csname
the%
\expandafter\ifx\csname theH#1\endcsname\relax\else H\fi
#1%
\endcsname
}%
\fi
\xdef\HyperGlobalCurrentHref{%
\Hy@param.\expandafter\strip@prefix\meaning\HyperGlobalCurrentHref
}%
\else
\Hy@GlobalStepCount\Hy@linkcounter
\xdef\HyperGlobalCurrentHref{\Hy@param.\the\Hy@linkcounter}%
\fi
\endgroup
\let\HyperLocalCurrentHref\HyperGlobalCurrentHref
\ifHy@localanchorname
\let\@currentHref\HyperLocalCurrentHref
\else
\global\let\@currentHref\HyperGlobalCurrentHref
\fi
}
\def\Hy@MakeCurrentHref#1{%
\edef\HyperLocalCurrentHref{#1}%
\@onelevel@sanitize\HyperLocalCurrentHref
\global\let\HyperGlobalCurrentHref\HyperLocalCurrentHref
\let\HyperLocalCurrentHref\HyperGlobalCurrentHref
\ifHy@localanchorname
\let\@currentHref\HyperLocalCurrentHref
\else
\global\let\@currentHref\HyperGlobalCurrentHref
\fi
}
\def\Hy@MakeCurrentHrefAuto#1{%
\Hy@GlobalStepCount\Hy@linkcounter
\Hy@MakeCurrentHref{#1.\the\Hy@linkcounter}%
}
\def\@currentHlabel{\@currentHref}
\@ifpackageloaded{fancyvrb}{%
\@ifpackagelater{fancyvrb}{1998/05/20}{}{%
\def\FV@StepLineNo{%
\FV@SetLineNo
\def\FV@StepLineNo{\H@refstepcounter{FancyVerbLine}}%
\FV@StepLineNo
}%
}%
}{}
\Hy@AtBeginDocument{%
\@ifclassloaded{revtex4}{%
\@namedef{ver@lastpage.sty}{1994/06/25}%
}{}%
\@ifpackageloaded{lastpage}{%
\ifHy@pageanchor
\else
\Hy@WarningNoLine{%
The \string\pageref{LastPage} link doesn't work\MessageBreak
with disabled option `pageanchor'%
}%
\fi
\def\lastpage@putlabel{%
\addtocounter{page}{-1}%
\if@filesw
\begingroup
\let\@number\@firstofone
\ifHy@pageanchor
\ifHy@hypertexnames
\ifHy@plainpages
\def\Hy@temp{\arabic{page}}%
\else
\Hy@unicodefalse
\pdfstringdef\Hy@temp{\thepage}%
\fi
\else
\def\Hy@temp{\the\Hy@pagecounter}%
\fi
\fi
\immediate\write\@auxout{%
\string\newlabel
{LastPage}{{}{\thepage}{}{%
\ifHy@pageanchor page.\Hy@temp\fi}{}}%
}%
\endgroup
\fi
\addtocounter{page}{1}%
}%
\@ifclassloaded{revtex4}{%
\begingroup
\toks@\expandafter{\lastpage@putlabel}%
\edef\x{\endgroup
\def\noexpand\lastpage@putlabel{%
\noexpand\stepcounter{page}%
\the\toks@
\noexpand\addtocounter{page}\noexpand\m@ne
}%
}%
\x
}{}%
}{}%
}
\def\hypergetref#1{\getrefbykeydefault{#1}{}{??}}
\def\hypergetpageref#1{\getrefbykeydefault{#1}{page}{0}}
\@ifpackageloaded{titlesec}{%
\def\ttl@Hy@steplink#1{%
\Hy@MakeCurrentHrefAuto{#1*}%
\edef\ttl@Hy@saveanchor{%
\noexpand\Hy@raisedlink{%
\noexpand\hyper@anchorstart{\@currentHref}%
\noexpand\hyper@anchorend
\def\noexpand\ttl@Hy@SavedCurrentHref{\@currentHref}%
\noexpand\ttl@Hy@PatchSaveWrite
}%
}%
}%
\def\ttl@Hy@PatchSaveWrite{%
\begingroup
\toks@\expandafter{\ttl@savewrite}%
\edef\x{\endgroup
\def\noexpand\ttl@savewrite{%
\let\noexpand\@currentHref
\noexpand\ttl@Hy@SavedCurrentHref
\the\toks@
}%
}%
\x
}%
\def\ttl@Hy@refstepcounter#1{%
\let\ttl@b\Hy@raisedlink
\def\Hy@raisedlink##1{%
\def\ttl@Hy@saveanchor{\Hy@raisedlink{##1}}%
}%
\refstepcounter{#1}%
\let\Hy@raisedlink\ttl@b
}%
}{}
\@ifpackageloaded{titletoc}{%
\def\ttl@gobblecontents#1#2#3#4{\ignorespaces}%
}{}
\def\Hy@varioref@undefined{{??}{??}{}{}{}}
\@ifpackageloaded{varioref}{%
\def\vref@pagenum#1#2{%
\@ifundefined{r@#2}{%
\expandafter\let\csname r@#2\endcsname\Hy@varioref@undefined
}{}%
\edef#1{\getpagerefnumber{#2}}%
}%
}{}
\def\Hy@varioref@refstepcounter#1{%
\stepcounter{#1}%
\protected@edef\@currentlabel{%
\csname p@#1\expandafter\endcsname\csname the#1\endcsname
}%
}
\AtBeginDocument{%
\ifx\refstepcounter\Hy@varioref@refstepcounter
\let\H@refstepcounter\refstepcounter
\let\refstepcounter\Hy@saved@refstepcounter
\fi
}
\@ifpackageloaded{longtable}{%
\begingroup
\def\y{\LT@array}%
\@ifundefined{scr@LT@array}{%
\@ifundefined{adl@LT@array}{}{\def\y{\adl@LT@array}}%
}{\def\y{\scr@LT@array}}%
\long\def\x\refstepcounter#1#2\@sharp#3#4\@nil{%
\expandafter\endgroup
\expandafter\def\y[##1]##2{%
\H@refstepcounter{#1}%
\hyper@makecurrent{table}%
\let\Hy@LT@currentHref\@currentHref
#2\@sharp#####4%
}%
}%
\expandafter\expandafter\expandafter\x\y[{#1}]{#2}\@nil
\begingroup
\def\x#1\ifvoid\LT@foot#2\fi#3\@nil{%
\endgroup
\def\LT@start{%
#1%
\ifvoid\LT@foot#2\fi
\let\@currentHref\Hy@LT@currentHref
\Hy@raisedlink{%
\hyper@anchorstart{\@currentHref}\hyper@anchorend
}%
#3%
}%
}%
\expandafter\x\LT@start\@nil
}{}
\let\new@refstepcounter\refstepcounter
\let\H@equation\equation
\let\H@endequation\endequation
\@ifpackageloaded{amsmath}{%
\long\def\Hy@temp{%
\incr@eqnum
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\mathdisplay{equation}%
}%
\ifx\Hy@temp\equation
\expandafter\ifx\csname if@fleqn\expandafter\endcsname
\csname iftrue\endcsname
\else
\long\def\equation{%
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\mathdisplay{equation}%
\incr@eqnum
}%
\fi
\fi
}{%
\def\equation{%
\let\refstepcounter\H@refstepcounter
\H@equation
\@ifundefined{theHequation}{%
\make@stripped@name{\theequation}%
\let\theHequation\newname
}{}%
\hyper@makecurrent{equation}%
\mathopen{%
\Hy@raisedlink{\hyper@anchorstart{\@currentHref}}%
}%
\let\refstepcounter\new@refstepcounter
}%
\def\endequation{%
\ifx\Hy@raisedlink\ltx@empty
\hyper@anchorend
\else
\mathclose{\Hy@raisedlink{\hyper@anchorend}}%
\fi
\H@endequation
}%
}
\newif\if@eqnstar
\@eqnstarfalse
\let\H@eqnarray\eqnarray
\let\H@endeqnarray\endeqnarray
\def\eqnarray{%
\let\Hy@reserved@a\relax
\def\@currentHref{}%
\H@eqnarray
\if@eqnstar
\else
\ifx\\\@currentHref\\%
\else
\@ifundefined{theHequation}{%
\make@stripped@name{\theequation}%
\let\theHequation\newname
}{}%
\hyper@makecurrent{equation}%
\mathopen{%
\Hy@raisedlink{%
\hyper@anchorstart{\@currentHref}\hyper@anchorend
}%
}%
\fi
\fi
}
\def\endeqnarray{%
\H@endeqnarray
}
\@namedef{eqnarray*}{%
\def\@eqncr{\nonumber\@seqncr}\@eqnstartrue\eqnarray
}
\@namedef{endeqnarray*}{%
\nonumber\endeqnarray\@eqnstarfalse
}
\ltx@IfUndefined{subeqnarray}{}{%
\let\H@subeqnarray\subeqnarray
\let\H@endsubeqnarray\endsubeqnarray
\def\subeqnarray{%
\let\Hy@reserved@a\relax
\H@subeqnarray
\@ifundefined{theHequation}{%
\make@stripped@name{\theequation}%
\let\theHequation\newname
}{}%
\hyper@makecurrent{equation}%
\hyper@anchorstart{\@currentHref}{}\hyper@anchorend
}%
\def\endsubeqnarray{%
\H@endsubeqnarray
}%
\providecommand\theHsubequation{\theHequation\alph{subequation}}%
}
\def\make@stripped@name#1{%
\begingroup
\escapechar\m@ne
\global\let\newname\@empty
\protected@edef\Hy@tempa{#1}%
\edef\@tempb{%
\noexpand\@tfor\noexpand\Hy@tempa:=%
\expandafter\strip@prefix\meaning\Hy@tempa
}%
\@tempb\do{%
\if{\Hy@tempa\else
\if}\Hy@tempa\else
\xdef\newname{\newname\Hy@tempa}%
\fi
\fi
}%
\endgroup
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname subequations\endcsname\relax
\else
\let\HyOrg@subequations\subequations
\def\subequations{%
\stepcounter{equation}%
\protected@edef\theHparentequation{%
\@ifundefined{theHequation}\theequation\theHequation
}%
\addtocounter{equation}{-1}%
\HyOrg@subequations
\def\theHequation{\theHparentequation\alph{equation}}%
\ignorespaces
}%
\fi
\@ifpackageloaded{amsthm}{%
\def\Hy@temp#1#2#3{%
\ifhmode\unskip\unskip\par\fi
\normalfont
\trivlist
\let\thmheadnl\relax
\let\thm@swap\@gobble
\let\thm@indent\indent % indent
\thm@headfont{\scshape}% heading font small caps
\thm@notefont{\fontseries\mddefault\upshape}%
\thm@headpunct{.}% add period after heading
\thm@headsep 5\p@ plus\p@ minus\p@\relax
\thm@space@setup
#1% style overrides
\@topsep \thm@preskip % used by thm head
\@topsepadd \thm@postskip % used by \@endparenv
\def\@tempa{#2}\ifx\@empty\@tempa
\def\@tempa{\@oparg{\@begintheorem{#3}{}}[]}%
\else
\refstepcounter{#2}%
\def\@tempa{%
\@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]%
}%
\fi
\@tempa
}%
\ifx\Hy@temp\@thm
\def\@thm#1#2#3{%
\ifhmode
\unskip\unskip\par
\fi
\normalfont
\trivlist
\let\thmheadnl\relax
\let\thm@swap\@gobble
\let\thm@indent\indent % indent
\thm@headfont{\scshape}% heading font small caps
\thm@notefont{\fontseries\mddefault\upshape}%
\thm@headpunct{.}% add period after heading
\thm@headsep 5\p@ plus\p@ minus\p@\relax
\thm@space@setup
#1% style overrides
\@topsep \thm@preskip % used by thm head
\@topsepadd \thm@postskip % used by \@endparenv
\def\dth@counter{#2}%
\ifx\@empty\dth@counter
\def\@tempa{%
\@oparg{\@begintheorem{#3}{}}[]%
}%
\else
\H@refstepcounter{#2}%
\hyper@makecurrent{#2}%
\let\Hy@dth@currentHref\@currentHref
\def\@tempa{%
\@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]%
}%
\fi
\@tempa
}%
\else
\def\@thm#1#2#3{%
\ifhmode
\unskip\unskip\par
\fi
\normalfont
\trivlist
\let\thmheadnl\relax
\let\thm@swap\@gobble
\thm@notefont{\fontseries\mddefault\upshape}%
\thm@headpunct{.}% add period after heading
\thm@headsep 5\p@ plus\p@ minus\p@\relax
\thm@space@setup
#1% style overrides
\@topsep \thm@preskip % used by thm head
\@topsepadd \thm@postskip % used by \@endparenv
\def\dth@counter{#2}%
\ifx\@empty\dth@counter
\def\@tempa{%
\@oparg{\@begintheorem{#3}{}}[]%
}%
\else
\H@refstepcounter{#2}%
\hyper@makecurrent{#2}%
\let\Hy@dth@currentHref\@currentHref
\def\@tempa{%
\@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]%
}%
\fi
\@tempa
}%
\fi
\dth@everypar={%
\@minipagefalse
\global\@newlistfalse
\@noparitemfalse
\if@inlabel
\global\@inlabelfalse
\begingroup
\setbox\z@\lastbox
\ifvoid\z@
\kern-\itemindent
\fi
\endgroup
\ifx\@empty\dth@counter
\else
\Hy@raisedlink{%
\hyper@anchorstart{%
\ltx@ifundefined{Hy@dth@currentHref}%
\@currentHref\Hy@dth@currentHref
}\hyper@anchorend
}%
\fi
\unhbox\@labels
\fi
\if@nobreak
\@nobreakfalse \clubpenalty\@M
\else
\clubpenalty\@clubpenalty \everypar{}%
\fi
}%
}{}
\ifHy@hyperfootnotes
\newcounter{Hfootnote}%
\let\H@@footnotetext\@footnotetext
\let\H@@footnotemark\@footnotemark
\def\@xfootnotenext[#1]{%
\begingroup
\csname c@\@mpfn\endcsname #1\relax
\unrestored@protected@xdef\@thefnmark{\thempfn}%
\endgroup
\ifx\@footnotetext\@mpfootnotetext
\expandafter\H@@mpfootnotetext
\else
\expandafter\H@@footnotetext
\fi
}%
\def\@xfootnotemark[#1]{%
\begingroup
\c@footnote #1\relax
\unrestored@protected@xdef\@thefnmark{\thefootnote}%
\endgroup
\H@@footnotemark
}%
\let\H@@mpfootnotetext\@mpfootnotetext
\long\def\@mpfootnotetext#1{%
\H@@mpfootnotetext{%
\ifHy@nesting
\expandafter\ltx@firstoftwo
\else
\expandafter\ltx@secondoftwo
\fi
{%
\expandafter\hyper@@anchor\expandafter{%
\Hy@footnote@currentHref
}{#1}%
}{%
\Hy@raisedlink{%
\expandafter\hyper@@anchor\expandafter{%
\Hy@footnote@currentHref
}{\relax}%
}#1%
}%
}%
}%
\long\def\@footnotetext#1{%
\H@@footnotetext{%
\ifHy@nesting
\expandafter\ltx@firstoftwo
\else
\expandafter\ltx@secondoftwo
\fi
{%
\expandafter\hyper@@anchor\expandafter{%
\Hy@footnote@currentHref
}{#1}%
}{%
\Hy@raisedlink{%
\expandafter\hyper@@anchor\expandafter{%
\Hy@footnote@currentHref
}{\relax}%
}%
\let\@currentHref\Hy@footnote@currentHref
\let\@currentlabelname\@empty
#1%
}%
}%
}%
\def\@footnotemark{%
\leavevmode
\ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
\stepcounter{Hfootnote}%
\global\let\Hy@saved@currentHref\@currentHref
\hyper@makecurrent{Hfootnote}%
\global\let\Hy@footnote@currentHref\@currentHref
\global\let\@currentHref\Hy@saved@currentHref
\hyper@linkstart{link}{\Hy@footnote@currentHref}%
\@makefnmark
\hyper@linkend
\ifhmode\spacefactor\@x@sf\fi
\relax
}%
\@ifpackageloaded{tabularx}{%
\let\HyOrg@TX@endtabularx\TX@endtabularx
\def\Hy@tabularx@hook{%
\let\@footnotetext\H@@footnotetext
\let\@footnotemark\H@@footnotemark
\let\@mpfootnotetext\H@@mpfootnotetext
}%
\begingroup
\toks@\expandafter{\TX@endtabularx}%
\xdef\Hy@gtemp{%
\noexpand\Hy@tabularx@hook
\the\toks@
}%
\endgroup
\let\TX@endtabularx\Hy@gtemp
}{}%
\@ifpackageloaded{longtable}{%
\CheckCommand*{\LT@p@ftntext}[1]{%
\edef\@tempa{%
\the\LT@p@ftn
\noexpand\footnotetext[\the\c@footnote]%
}%
\global\LT@p@ftn\expandafter{\@tempa{#1}}%
}%
\long\def\LT@p@ftntext#1{%
\edef\@tempa{%
\the\LT@p@ftn
\begingroup
\noexpand\c@footnote=\the\c@footnote\relax
\noexpand\protected@xdef\noexpand\@thefnmark{%
\noexpand\thempfn
}%
\noexpand\Hy@LT@footnotetext{%
\Hy@footnote@currentHref
}%
}%
\global\LT@p@ftn\expandafter{%
\@tempa{#1}%
\endgroup
}%
}%
\long\def\Hy@LT@footnotetext#1#2{%
\H@@footnotetext{%
\ifHy@nesting
\hyper@@anchor{#1}{#2}%
\else
\Hy@raisedlink{%
\hyper@@anchor{#1}{\relax}%
}%
\def\@currentHref{#1}%
\let\@currentlabelname\@empty
#2%
\fi
}%
}%
}{}%
\@ifpackageloaded{fancyvrb}{%
\def\V@@footnotetext{%
\insert\footins\bgroup
\csname reset@font\endcsname
\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth\dp\strutbox
\floatingpenalty \@MM
\hsize\columnwidth
\@parboxrestore
\edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
\@makefntext{}%
\rule{\z@}{\footnotesep}%
\bgroup
\aftergroup\V@@@footnotetext
\Hy@raisedlink{%
\expandafter\hyper@@anchor\expandafter{%
\Hy@footnote@currentHref
}{\relax}%
}%
\let\@currentHref\Hy@footnote@currentHref
\let\@currentlabelname\@empty
\ignorespaces
}%
}{}%
\def\Hy@temp#1{%
\begingroup
\unrestored@protected@xdef\@thefnmark{\ref{#1}}%
\endgroup
\@footnotemark
}%
\ifx\Hy@temp\footref
\def\footref#1{%
\begingroup
\unrestored@protected@xdef\@thefnmark{\ref{#1}}%
\endgroup
\H@@footnotemark
}%
\fi
\let\HyOrg@maketitle\maketitle
\def\maketitle{%
\let\Hy@saved@footnotemark\@footnotemark
\let\Hy@saved@footnotetext\@footnotetext
\let\@footnotemark\H@@footnotemark
\let\@footnotetext\H@@footnotetext
\@ifnextchar[\Hy@maketitle@optarg{% ]
\HyOrg@maketitle
\Hy@maketitle@end
}%
}%
\def\Hy@maketitle@optarg[#1]{%
\HyOrg@maketitle[{#1}]%
\Hy@maketitle@end
}%
\def\Hy@maketitle@end{%
\ifx\@footnotemark\H@@footnotemark
\let\@footnotemark\Hy@saved@footnotemark
\fi
\ifx\@footnotetext\H@@footnotetext
\let\@footnotetext\Hy@saved@footnotetext
\fi
}%
\def\realfootnote{%
\@ifnextchar[\@xfootnote{%
\stepcounter{\@mpfn}%
\protected@xdef\@thefnmark{\thempfn}%
\H@@footnotemark\H@@footnotetext
}%
}%
\fi
\Hy@DisableOption{hyperfootnotes}
\def\caption{%
\ifx\@captype\@undefined
\@latex@error{\noexpand\caption outside float}\@ehd
\expandafter\@gobble
\else
\H@refstepcounter\@captype
\let\Hy@tempa\@caption
\@ifundefined{float@caption}{%
}{%
\expandafter\ifx\csname @float@c@\@captype\endcsname
\float@caption
\let\Hy@tempa\Hy@float@caption
\fi
}%
\expandafter\@firstofone
\fi
{\@dblarg{\Hy@tempa\@captype}}%
}
\long\def\@caption#1[#2]#3{%
\expandafter\ifx\csname if@capstart\expandafter\endcsname
\csname iftrue\endcsname
\global\let\@currentHref\hc@currentHref
\else
\hyper@makecurrent{\@captype}%
\fi
\@ifundefined{NR@gettitle}{%
\def\@currentlabelname{#2}%
}{%
\NR@gettitle{#2}%
}%
\par\addcontentsline{\csname ext@#1\endcsname}{#1}{%
\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}%
}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\expandafter\ifx\csname if@capstart\expandafter\endcsname
\csname iftrue\endcsname
\global\@capstartfalse
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces#3}%
\else
\@makecaption{\csname fnum@#1\endcsname}{%
\ignorespaces
\ifHy@nesting
\expandafter\hyper@@anchor\expandafter{\@currentHref}{#3}%
\else
\Hy@raisedlink{%
\expandafter\hyper@@anchor\expandafter{%
\@currentHref
}{\relax}%
}%
#3%
\fi
}%
\fi
\par
\endgroup
}
\let\Hy@float@caption\@caption
\newcommand{\HyNew@float@makebox}[1]{%
\HyOrg@float@makebox{%
#1\relax
\ifx\Hy@float@currentHref\@undefined
\else
\expandafter\hyper@@anchor\expandafter{%
\Hy@float@currentHref
}{\relax}%
\global\let\Hy@float@currentHref\@undefined
\fi
}%
}%
\@ifpackageloaded{float}{%
\def\Hy@float@caption{%
\ifx\Hy@float@currentHref\@undefined
\hyper@makecurrent{\@captype}%
\global\let\Hy@float@currentHref\@currentHref
\else
\let\@currentHref\Hy@float@currentHref
\fi
\float@caption
}%
\let\HyOrg@float@makebox\float@makebox
\let\float@makebox\HyNew@float@makebox
}{}
\def\hyper@natlinkstart#1{%
\Hy@backout{#1}%
\hyper@linkstart{cite}{cite.#1}%
\def\hyper@nat@current{#1}%
}
\def\hyper@natlinkend{%
\hyper@linkend
}
\def\hyper@natlinkbreak#1#2{%
\hyper@linkend#1\hyper@linkstart{cite}{cite.#2}%
}
\def\hyper@natanchorstart#1{%
\Hy@raisedlink{\hyper@anchorstart{cite.#1}}%
}
\def\hyper@natanchorend{\hyper@anchorend}
\ltx@IfUndefined{NAT@parse}{%
\providecommand*\@extra@binfo{}%
\providecommand*\@extra@b@citeb{}%
\def\bibcite#1#2{%
\@newl@bel{b}{#1\@extra@binfo}{%
\hyper@@link[cite]{}{cite.#1\@extra@b@citeb}{#2}%
}%
}%
\gdef\@extra@binfo{}%
\let\Hy@bibcite\bibcite
\begingroup
\@ifundefined{bbl@cite@choice}{}{%
\g@addto@macro\bbl@cite@choice{%
\let\bibcite\Hy@bibcite
}%
}%
\endgroup
\providecommand*{\@BIBLABEL}{\@biblabel}%
\def\@lbibitem[#1]#2{%
\@skiphyperreftrue
\H@item[%
\ifx\Hy@raisedlink\@empty
\hyper@anchorstart{cite.#2\@extra@b@citeb}%
\@BIBLABEL{#1}%
\hyper@anchorend
\else
\Hy@raisedlink{%
\hyper@anchorstart{cite.#2\@extra@b@citeb}\hyper@anchorend
}%
\@BIBLABEL{#1}%
\fi
\hfill
]%
\@skiphyperreffalse
\if@filesw
\begingroup
\let\protect\noexpand
\immediate\write\@auxout{%
\string\bibcite{#2}{#1}%
}%
\endgroup
\fi
\ignorespaces
}%
\def\@bibitem#1{%
\@skiphyperreftrue\H@item\@skiphyperreffalse
\Hy@raisedlink{%
\hyper@anchorstart{cite.#1\@extra@b@citeb}\relax\hyper@anchorend
}%
\if@filesw
\begingroup
\let\protect\noexpand
\immediate\write\@auxout{%
\string\bibcite{#1}{\the\value{\@listctr}}%
}%
\endgroup
\fi
\ignorespaces
}%
}{}
\@ifclassloaded{revtex}{%
\Hy@Info{*** compatibility with revtex **** }%
\def\revtex@checking#1#2{%
\expandafter\let\expandafter\T@temp\csname b@#1\endcsname
\expandafter\def\csname b@#1\endcsname{#2}%
\@SetMaxRnhefLabel{#1}%
\expandafter\let\csname b@#1\endcsname\T@temp
}%
\@ifundefined{@CITE}{\def\@CITE{\@cite}}{}%
\providecommand*{\@extra@b@citeb}{}%
\def\@CITEX[#1]#2{%
\let\@citea\@empty
\leavevmode
\unskip
$^{%
\scriptstyle
\@CITE{%
\@for\@citeb:=#2\do{%
\@citea
\def\@citea{,\penalty\@m\ }%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw
\immediate\write\@auxout{\string\citation{\@citeb}}%
\fi
\@ifundefined{b@\@citeb\extra@b@citeb}{%
\mbox{\reset@font\bfseries ?}%
\G@refundefinedtrue
\@latex@warning{%
Citation `\@citeb' on page \thepage \space undefined%
}%
}{%
{\csname b@\@citeb\@extra@b@citeb\endcsname}%
}%
}%
}{#1}%
}$%
}%
\def\@citex[#1]#2{%
\let\@citea\@empty
\@cite{%
\@for\@citeb:=#2\do{%
\@citea
\def\@citea{,\penalty\@m\ }%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw
\immediate\write\@auxout{\string\citation{\@citeb}}%
\fi
\@ifundefined{b@\@citeb\@extra@b@citeb}{%
\mbox{\reset@font\bfseries ?}%
\G@refundefinedtrue
\@latex@warning{%
Citation `\@citeb' on page \thepage \space undefined%
}%
}{%
\hbox{\csname b@\@citeb\@extra@b@citeb\endcsname}%
}%
}%
}{#1}%
}%
}{}
\@ifpackageloaded{harvard}{%
\Hy@AtBeginDocument{%
\Hy@Info{*** compatibility with harvard **** }%
\Hy@raiselinksfalse
\def\harvardcite#1#2#3#4{%
\global\@namedef{HAR@fn@#1}{\hyper@@link[cite]{}{cite.#1}{#2}}%
\global\@namedef{HAR@an@#1}{\hyper@@link[cite]{}{cite.#1}{#3}}%
\global\@namedef{HAR@yr@#1}{\hyper@@link[cite]{}{cite.#1}{#4}}%
\global\@namedef{HAR@df@#1}{\csname HAR@fn@#1\endcsname}%
}%
\def\HAR@citetoaux#1{%
\if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi%
\ifHy@backref
\ifx\@empty\@currentlabel
\else
\@bsphack
\if@filesw
\protected@write\@auxout{}{%
\string\@writefile{brf}{%
\string\backcite{#1}{%
{\thepage}{\@currentlabel}{\@currentHref}%
}%
}%
}%
\fi
\@esphack
\fi
\fi
}%
\def\harvarditem{%
\@ifnextchar[{\@harvarditem}{\@harvarditem[\null]}%
}%
\def\@harvarditem[#1]#2#3#4#5\par{%
\item[]%
\hyper@anchorstart{cite.#4}\relax\hyper@anchorend
\if@filesw
\begingroup
\def\protect##1{\string ##1\space}%
\ifthenelse{\equal{#1}{\null}}%
{\def\next{{#4}{#2}{#2}{#3}}}%
{\def\next{{#4}{#2}{#1}{#3}}}%
\immediate\write\@auxout{\string\harvardcite\codeof\next}%
\endgroup
\fi
\protect\hspace*{-\labelwidth}%
\protect\hspace*{-\labelsep}%
\ignorespaces
#5%
\ifHy@backref
\newblock
\backref{\csname br@#4\endcsname}%
\fi
\par
}%
\long\def\HAR@checkcitations#1#2#3#4{%
\def\HAR@tempa{\hyper@@link[cite]{}{cite.#1}{#2}}%
\expandafter\ifx\csname HAR@fn@#1\endcsname\HAR@tempa
\def\HAR@tempa{\hyper@@link[cite]{}{cite.#1}{#3}}%
\expandafter\ifx\csname HAR@an@#1\endcsname\HAR@tempa
\def\HAR@tempa{\hyper@@link[cite]{}{cite.#1}{#4}}%
\expandafter\ifx\csname HAR@yr@#1\endcsname\HAR@tempa
\else
\@tempswatrue
\fi
\else
\@tempswatrue
\fi
\else
\@tempswatrue
\fi
}%
}%
}{}
\@ifpackageloaded{chicago}{%
\def\citeN{%
\def\@citeseppen{-1000}%
\def\@cite##1##2{##1}%
\def\citeauthoryear##1##2##3{##1 (##3\@cite@opt)}%
\@citedata@opt
}%
\def\shortciteN{%
\def\@citeseppen{-1000}%
\def\@cite##1##2{##1}%
\def\citeauthoryear##1##2##3{##2 (##3\@cite@opt)}%
\@citedata@opt
}%
\def\@citedata@opt{%
\let\@cite@opt\@empty
\@ifnextchar [{%
\@tempswatrue
\@citedatax@opt
}{%
\@tempswafalse
\@citedatax[]%
}%
}%
\def\@citedatax@opt[#1]{%
\def\@cite@opt{, #1}%
\@citedatax[{#1}]%
}%
}{}
\ltx@ifclassloaded{slides}{%
\def\Hy@SlidesFormatOptionalPage#1{(#1)}%
\def\Hy@PageAnchorSlidesPlain{%
\advance\c@page\ltx@one
\edef\Hy@TempPageAnchor{%
\noexpand\hyper@@anchor{%
page.\the\c@slide.\the\c@overlay.\the\c@note%
\ifnum\c@page=\ltx@one
\else
.\the\c@page
\fi
}%
}%
\advance\c@page-\ltx@one
}%
\def\Hy@PageAnchorSlide{%
\advance\c@page\ltx@one
\ifnum\c@page>\ltx@one
\ltx@IfUndefined{theHpage}{%
\protected@edef\Hy@TheSlideOptionalPage{%
\Hy@SlidesFormatOptionalPage{\thepage}%
}%
}{%
\protected@edef\Hy@TheSlideOptionalPage{%
\Hy@SlidesFormatOptionalPage{\theHpage}%
}%
}%
\else
\def\Hy@TheSlideOptionalPage{}%
\fi
\advance\c@page-\ltx@one
\pdfstringdef\@the@H@page{%
\csname
the%
\ltx@ifundefined{theH\Hy@SlidesPage}{}{H}%
\Hy@SlidesPage
\endcsname
\Hy@TheSlideOptionalPage
}%
\ltx@gobblethree
}%
\def\Hy@SlidesPage{slide}%
\g@addto@macro\slide{%
\def\Hy@SlidesPage{slide}%
}%
\g@addto@macro\overlay{%
\def\Hy@SlidesPage{overlay}%
}%
\g@addto@macro\note{%
\def\Hy@SlidesPage{note}%
}%
}{%
\def\Hy@PageAnchorSlidesPlain{}%
\def\Hy@PageAnchorSlide{}%
}
\def\Hy@EveryPageAnchor{%
\Hy@DistillerDestFix
\ifHy@pageanchor
\ifHy@hypertexnames
\ifHy@plainpages
\def\Hy@TempPageAnchor{\hyper@@anchor{page.\the\c@page}}%
\Hy@PageAnchorSlidesPlain
\else
\begingroup
\let\@number\@firstofone
\Hy@unicodefalse
\Hy@PageAnchorSlide
\pdfstringdef\@the@H@page{\thepage}%
\endgroup
\EdefUnescapeString\@the@H@page{\@the@H@page}%
\def\Hy@TempPageAnchor{\hyper@@anchor{page.\@the@H@page}}%
\fi
\else
\Hy@GlobalStepCount\Hy@pagecounter
\def\Hy@TempPageAnchor{%
\hyper@@anchor{page.\the\Hy@pagecounter}%
}%
\fi
\vbox to 0pt{%
\kern\voffset
\kern\topmargin
\kern-1bp\relax
\hbox to 0pt{%
\kern\hoffset
\kern\ifodd\value{page}%
\oddsidemargin
\else
\evensidemargin
\fi
\kern-1bp\relax
\Hy@TempPageAnchor\relax
\hss
}%
\vss
}%
\fi
}
\g@addto@macro\Hy@EveryPageBoxHook{%
\Hy@EveryPageAnchor
}
\def\addcontentsline#1#2#3{% toc extension, type, tag
\begingroup
\let\label\@gobble
\ifx\@currentHref\@empty
\Hy@Warning{%
No destination for bookmark of \string\addcontentsline,%
\MessageBreak destination is added%
}%
\phantomsection
\fi
\expandafter\ifx\csname toclevel@#2\endcsname\relax
\begingroup
\def\Hy@tempa{#1}%
\ifx\Hy@tempa\Hy@bookmarkstype
\Hy@WarningNoLine{%
bookmark level for unknown #2 defaults to 0%
}%
\else
\Hy@Info{bookmark level for unknown #2 defaults to 0}%
\fi
\endgroup
\expandafter\gdef\csname toclevel@#2\endcsname{0}%
\fi
\edef\Hy@toclevel{\csname toclevel@#2\endcsname}%
\Hy@writebookmark{\csname the#2\endcsname}%
{#3}%
{\@currentHref}%
{\Hy@toclevel}%
{#1}%
\ifHy@verbose
\begingroup
\def\Hy@tempa{#3}%
\@onelevel@sanitize\Hy@tempa
\let\temp@online\on@line
\let\on@line\@empty
\Hy@Info{%
bookmark\temp@online:\MessageBreak
thecounter {\csname the#2\endcsname}\MessageBreak
text {\Hy@tempa}\MessageBreak
reference {\@currentHref}\MessageBreak
toclevel {\Hy@toclevel}\MessageBreak
type {#1}%
}%
\endgroup
\fi
\addtocontents{#1}{%
\protect\contentsline{#2}{#3}{\thepage}{\@currentHref}%
}%
\endgroup
}
\def\contentsline#1#2#3#4{%
\begingroup
\Hy@safe@activestrue
\edef\x{\endgroup
\def\noexpand\Hy@tocdestname{#4}%
}\x
\ifx\Hy@tocdestname\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\ifcase\Hy@linktoc % none
\csname l@#1\endcsname{#2}{#3}%
\or % section
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{#3}%
\or % page
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\csname l@#1\endcsname{{#2}}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\else % all
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{}%
\else
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\fi
\fi
}
\let\H@definecounter\@definecounter
\def\@definecounter#1{%
\H@definecounter{#1}%
\expandafter\gdef\csname theH#1\endcsname{\arabic{#1}}%
}
\let\H@newctr\@newctr
\def\@newctr#1[#2]{%
\H@newctr#1[{#2}]%
\expandafter\gdef\csname theH#1\endcsname{%
\csname the\@ifundefined{theH#2}{}{H}#2\endcsname.\arabic{#1}%
}%
}
\@ifpackageloaded{amsmath}{%
\def\Hy@make@anchor{%
\Hy@MakeCurrentHrefAuto{AMS}%
\Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
}%
\def\Hy@make@df@tag@@#1{%
\gdef\df@tag{%
\maketag@@@{\Hy@make@anchor#1}%
\def\@currentlabel{#1}%
}%
}%
\def\Hy@make@df@tag@@@#1{%
\gdef\df@tag{%
\tagform@{\Hy@make@anchor#1}%
\toks@\@xp{\p@equation{#1}}%
\edef\@currentlabel{\the\toks@}%
}%
}%
\let\HyOrg@make@df@tag@@\make@df@tag@@
\let\HyOrg@make@df@tag@@@\make@df@tag@@@
\let\make@df@tag@@\Hy@make@df@tag@@
\let\make@df@tag@@@\Hy@make@df@tag@@@
}{}
\@ifpackagewith{hyperref}{pdftex}{%
\let\H@seteqlabel\@seteqlabel
\def\@seteqlabel#1{%
\H@seteqlabel{#1}%
\xdef\@currentHref{AMS.\the\Hy@linkcounter}%
\Hy@raisedlink{%
\hyper@anchorstart{\@currentHref}\hyper@anchorend
}%
}%
}{}
\let\HyOrg@addtoreset\@addtoreset
\def\@addtoreset#1#2{%
\HyOrg@addtoreset{#1}{#2}%
\expandafter\xdef\csname theH#1\endcsname{%
\expandafter\noexpand
\csname the\@ifundefined{theH#2}{}H#2\endcsname
.\noexpand\the\noexpand\value{#1}%
}%
}
\@ifpackageloaded{amsmath}{%
\@ifpackagelater{amsmath}{1999/12/14}{%
\renewcommand*{\numberwithin}[3][\arabic]{%
\@ifundefined{c@#2}{\@nocounterr{#2}}{%
\@ifundefined{c@#3}{\@nocnterr{#3}}{%
\HyOrg@addtoreset{#2}{#3}%
\@xp\xdef\csname the#2\endcsname{%
\@xp\@nx\csname the#3\endcsname .\@nx#1{#2}%
}%
\@xp\xdef\csname theH#2\endcsname{%
\@xp\@nx
\csname the\@ifundefined{theH#3}{}H#3\endcsname
.\@nx#1{#2}%
}%
}%
}%
}%
}{%
\Hy@WarningNoLine{%
\string\numberwithin\space of package `amsmath' %
only fixed\MessageBreak
for version 2000/06/06 v2.12 or newer%
}%
}%
}{}
\ifHy@hyperfigures
\let\Hy@Gin@setfile\Gin@setfile
\def\Gin@setfile#1#2#3{%
\hyperimage{#3}{\Hy@Gin@setfile{#1}{#2}{#3}}%
}%
\fi
\Hy@DisableOption{hyperfigures}
\ifHy@hyperindex
\def\HyInd@ParenLeft{(}%
\def\HyInd@ParenRight{)}%
\def\hyperindexformat#1#2{%
\let\HyOrg@hyperpage\hyperpage
\let\hyperpage\@firstofone
#1{\HyOrg@hyperpage{#2}}%
\let\hyperpage\HyOrg@hyperpage
}%
\Hy@nextfalse
\@ifpackageloaded{multind}{\Hy@nexttrue}{}%
\@ifpackageloaded{index}{\Hy@nexttrue}{}%
\@ifpackageloaded{amsmidx}{\Hy@nexttrue}{}%
\begingroup
\lccode`\|=\expandafter`\HyInd@EncapChar\relax
\lccode`\/=`\\\relax
\lowercase{\endgroup
\ifHy@next
\let\HyInd@org@wrindex\@wrindex
\def\@wrindex#1#2{\HyInd@@wrindex{#1}#2||\\}%
\def\HyInd@@wrindex#1#2|#3|#4\\{%
\ifx\\#3\\%
\HyInd@org@wrindex{#1}{#2|hyperpage}%
\else
\HyInd@@@wrindex{#1}{#2}#3\\%
\fi
}%
\def\HyInd@@@wrindex#1#2#3#4\\{%
\def\Hy@temp@A{#3}%
\ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi
\ifx\Hy@temp@A\HyInd@ParenRight 1\fi
\relax
\HyInd@org@wrindex{#1}{%
#2|hyperindexformat{/#3#4}%
}%
\else
\ifx\\#4\\%
\ifx\Hy@temp@A\HyInd@ParenRight
\HyInd@org@wrindex{#1}{#2|#3}%
\else
\HyInd@org@wrindex{#1}{#2|#3hyperpage}%
\fi
\else
\HyInd@org@wrindex{#1}{%
#2|#3hyperindexformat{/#4}%
}%
\fi
\fi
}%
\else
\def\@wrindex#1{\@@wrindex#1||\\}%
\def\@@wrindex#1|#2|#3\\{%
\if@filesw
\ifx\\#2\\%
\protected@write\@indexfile{}{%
\string\indexentry{#1|hyperpage}{\thepage}%
}%
\else
\HyInd@@@wrindex{#1}#2\\%
\fi
\fi
\endgroup
\@esphack
}%
\def\HyInd@@@wrindex#1#2#3\\{%
\def\Hy@temp@A{#2}%
\ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi
\ifx\Hy@temp@A\HyInd@ParenRight 1\fi
\relax
\protected@write\@indexfile{}{%
\string\indexentry{%
#1|hyperindexformat{/#2#3}%
}{\thepage}%
}%
\else
\ifx\\#3\\%
\ifx\Hy@temp@A\HyInd@ParenRight
\HyInd@DefKey{#1}%
\ltx@IfUndefined{HyInd@(\HyInd@key)}{%
\let\Hy@temp\ltx@empty
}{%
\expandafter\let\expandafter\Hy@temp
\csname HyInd@(\HyInd@key)\endcsname
}%
\protected@write\@indexfile{}{%
\string\indexentry{#1|#2\Hy@temp}{\thepage}%
}%
\else
\protected@write\@indexfile{}{%
\string\indexentry{#1|#2hyperpage}{\thepage}%
}%
\HyInd@DefKey{#1}%
\expandafter
\gdef\csname HyInd@(\HyInd@key)\endcsname{%
hyperpage%
}%
\fi
\else
\protected@write\@indexfile{}{%
\string\indexentry{%
#1|#2hyperindexformat{/#3}%
}{\thepage}%
}%
\ifx\Hy@temp@A\HyInd@ParenLeft
\HyInd@DefKey{#1}%
\expandafter
\gdef\csname HyInd@(\HyInd@key)\endcsname{%
hyperindexformat{/#3}%
}%
\fi
\fi
\fi
}%
\def\HyInd@DefKey#1{%
\begingroup
\let\protect\@unexpandable@protect
\edef\Hy@temp{#1}%
\ltx@onelevel@sanitize\Hy@temp
\global\let\HyInd@key\Hy@temp
\endgroup
}%
\fi
}%
\fi
\Hy@DisableOption{hyperindex}
\Hy@DisableOption{encap}
\def\nohyperpage#1{#1}
\def\hyperpage#1{%
\HyInd@hyperpage#1\nohyperpage{}\@nil
}
\def\HyInd@hyperpage#1\nohyperpage#2#3\@nil{%
\HyInd@@hyperpage{#1}%
#2%
\def\Hy@temp{#3}%
\ifx\Hy@temp\@empty
\else
\ltx@ReturnAfterFi{%
\HyInd@hyperpage#3\@nil
}%
\fi
}
\def\HyInd@@hyperpage#1{\@hyperpage#1----\\}
\def\@hyperpage#1--#2--#3\\{%
\ifx\\#2\\%
\@commahyperpage{#1}%
\else
\HyInd@pagelink{#1}--\HyInd@pagelink{#2}%
\fi
}
\def\@commahyperpage#1{\@@commahyperpage#1, ,\\}
\def\@@commahyperpage#1, #2,#3\\{%
\ifx\\#2\\%
\HyInd@pagelink{#1}%
\else
\HyInd@pagelink{#1}, \HyInd@pagelink{#2}%
\fi
}
\def\HyInd@pagelink#1{%
\begingroup
\toks@={}%
\HyInd@removespaces#1 \@nil
\endgroup
}
\def\HyInd@removespaces#1 #2\@nil{%
\toks@=\expandafter{\the\toks@#1}%
\ifx\\#2\\%
\edef\x{\the\toks@}%
\ifx\x\@empty
\else
\hyperlink{page.\the\toks@}{\the\toks@}%
\fi
\else
\ltx@ReturnAfterFi{%
\HyInd@removespaces#2\@nil
}%
\fi
}
\@ifclassloaded{foils}{%
\providecommand*\ext@table{lot}%
\providecommand*\ext@figure{lof}%
}{}
\@ifclassloaded{seminar}{%
\Hy@seminarslidestrue
\providecommand\theHslide{\arabic{slide}}%
}{%
\Hy@seminarslidesfalse
}
\@ifpackageloaded{slidesec}{%
\providecommand\theHslidesection {\arabic{slidesection}}%
\providecommand\theHslidesubsection{%
\theHslidesection.\arabic{slidesubsection}%
}%
\def\slide@heading[#1]#2{%
\H@refstepcounter{slidesection}%
\@addtoreset{slidesubsection}{slidesection}%
\addtocontents{los}{%
\protect\l@slide{\the\c@slidesection}{\ignorespaces#1}%
{\@SCTR}{slideheading.\theslidesection}%
}%
\def\Hy@tempa{#2}%
\ifx\Hy@tempa\@empty
\else
{%
\edef\@currentlabel{%
\csname p@slidesection\endcsname\theslidesection
}%
\makeslideheading{#2}%
}%
\fi
\gdef\theslideheading{#1}%
\gdef\theslidesubheading{}%
\ifHy@bookmarksnumbered
\def\Hy@slidetitle{\theslidesection\space #1}%
\else
\def\Hy@slidetitle{#1}%
\fi
\ifHy@hypertexnames
\ifHy@naturalnames
\hyper@@anchor{slideheading.\theslidesection}{\relax}%
\Hy@writebookmark
{\theslidesection}%
{\Hy@slidetitle}%
{slideheading.\theslidesection}%
{1}%
{toc}%
\else
\hyper@@anchor{slideheading.\theHslidesection}{\relax}%
\Hy@writebookmark
{\theslidesection}%
{\Hy@slidetitle}%
{slideheading.\theHslidesection}%
{1}%
{toc}%
\fi
\else
\Hy@GlobalStepCount\Hy@linkcounter
\hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
\Hy@writebookmark
{\theslidesection}%
{\Hy@slidetitle}%
{slideheading.\the\Hy@linkcounter}%
{1}%
{toc}%
\fi
}%
\def\slide@subheading[#1]#2{%
\H@refstepcounter{slidesubsection}%
\addtocontents{los}{%
\protect\l@subslide{\the\c@slidesubsection}{\ignorespaces#1}%
{\@SCTR}{slideheading.\theslidesubsection}%
}%
\def\Hy@tempa{#2}%
\ifx\Hy@tempa\@empty
\else
{%
\edef\@currentlabel{%
\csname p@slidesubsection\endcsname\theslidesubsection
}%
\makeslidesubheading{#2}%
}%
\fi
\gdef\theslidesubheading{#1}%
\ifHy@bookmarksnumbered
\def\Hy@slidetitle{\theslidesubsection\space #1}%
\else
\def\Hy@slidetitle{#1}%
\fi
\ifHy@hypertexnames
\ifHy@naturalnames
\hyper@@anchor{slideheading.\theslidesubsection}{\relax}%
\Hy@writebookmark
{\theslidesubsection}%
{\Hy@slidetitle}%
{slideheading.\theslidesubsection}%
{2}%
{toc}%
\else
\hyper@@anchor{slideheading.\theHslidesubsection}{\relax}%
\Hy@writebookmark
{\theslidesubsection}%
{\Hy@slidetitle}%
{slideheading.\theHslidesubsection}%
{2}%
{toc}%
\fi
\else
\Hy@GlobalStepCount\Hy@linkcounter
\hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
\Hy@writebookmark
{\theslidesubsection}%
{\Hy@slidetitle}%
{slideheading.\the\Hy@linkcounter}%
{1}%
{toc}%
\fi
}%
\providecommand*{\listslidename}{List of Slides}%
\def\listofslides{%
\section*{%
\listslidename
\@mkboth{%
\expandafter\MakeUppercase\listslidename
}{%
\expandafter\MakeUppercase\listslidename
}%
}%
\def\l@slide##1##2##3##4{%
\slide@undottedcline{%
\slidenumberline{##3}{\hyperlink{##4}{##2}}%
}{}%
}%
\let\l@subslide\l@slide
\@startlos
}%
\def\slide@contents{%
\def\l@slide##1##2##3##4{%
\slide@cline{\slidenumberline{##3}{\hyperlink{##4}{##2}}}{##3}%
}%
\let\l@subslide\@gobblefour
\@startlos
}%
\def\Slide@contents{%
\def\l@slide##1##2##3##4{%
\ifcase\lslide@flag
\message{##1 ** \the\c@slidesection}%
\ifnum##1>\c@slidesection
\def\lslide@flag{1}%
{%
\large
\slide@cline{%
\slidenumberline{$\Rightarrow\bullet$}%
{\hyperlink{##4}{##2}}%
}{##3}%
}%
\else
{%
\large
\slide@cline{%
\slidenumberline{$\surd\;\bullet$}%
{\hyperlink{##4}{##2}}%
}{##3}%
}%
\fi
\or
\def\lslide@flag{2}%
{%
\large
\slide@cline{%
\slidenumberline{$\bullet$}%
{\hyperlink{##4}{##2}}%
}{##3}%
}%
\or
{%
\large
\slide@cline{%
\slidenumberline{$\bullet$}%
{\hyperlink{##4}{##2}}%
}{##3}%
}%
\fi
}%
\def\l@subslide##1##2##3##4{%
\ifnum\lslide@flag=1 %
\@undottedtocline{2}{3.8em}{3.2em}{\hyperlink{##4}{##2}}{}%
\fi
}%
\def\lslide@flag{0}%
\@startlos
}%
}{}
\ifHy@texht
\expandafter\endinput
\fi
\let\real@setref\@setref
\def\@setref#1#2#3{% csname, extract group, refname
\ifx#1\relax
\protect\G@refundefinedtrue
\nfss@text{\reset@font\bfseries ??}%
\@latex@warning{%
Reference `#3' on page \thepage \space undefined%
}%
\else
\expandafter\Hy@setref@link#1\@empty\@empty\@nil{#2}%
\fi
}
\def\Hy@setref@link#1#2#3#4#5#6\@nil#7{%
\begingroup
\toks0={\hyper@@link{#5}{#4}}%
\toks1=\expandafter{#7{#1}{#2}{#3}{#4}{#5}}%
\edef\x{\endgroup
\the\toks0 {\the\toks1 }%
}%
\x
}
\def\@pagesetref#1#2#3{% csname, extract macro, ref
\ifx#1\relax
\protect\G@refundefinedtrue
\nfss@text{\reset@font\bfseries ??}%
\@latex@warning{%
Reference `#3' on page \thepage \space undefined%
}%
\else
\protect\hyper@@link
{\expandafter\@fifthoffive#1}%
{page.\expandafter\@secondoffive#1}%
{\expandafter\@secondoffive#1}%
\fi
}
\def\HyRef@StarSetRef#1{%
\begingroup
\Hy@safe@activestrue
\edef\x{#1}%
\@onelevel@sanitize\x
\edef\x{\endgroup
\noexpand\HyRef@@StarSetRef
\expandafter\noexpand\csname r@\x\endcsname{\x}%
}%
\x
}
\def\HyRef@@StarSetRef#1#2#3{%
\ifx#1\@undefined
\let#1\relax
\fi
\real@setref#1#3{#2}%
}
\def\@refstar#1{%
\HyRef@StarSetRef{#1}\@firstoffive
}
\def\@pagerefstar#1{%
\HyRef@StarSetRef{#1}\@secondoffive
}
\def\@namerefstar#1{%
\HyRef@StarSetRef{#1}\@thirdoffive
}
\Hy@AtBeginDocument{%
\@ifpackageloaded{varioref}{%
\def\@Refstar#1{%
\HyRef@StarSetRef{#1}\HyRef@MakeUppercaseFirstOfFive
}%
\def\HyRef@MakeUppercaseFirstOfFive#1#2#3#4#5{%
\MakeUppercase#1%
}%
\DeclareRobustCommand*{\Ref}{%
\@ifstar\@Refstar\HyRef@Ref
}%
\def\HyRef@Ref#1{%
\hyperref[{#1}]{\Ref*{#1}}%
}%
\def\Vr@f#1{%
\leavevmode\unskip\vref@space
\hyperref[{#1}]{%
\Ref*{#1}%
\let\vref@space\nobreakspace
\@vpageref[\unskip]{#1}%
}%
}%
\def\vr@f#1{%
\leavevmode\unskip\vref@space
\begingroup
\let\T@pageref\@pagerefstar
\hyperref[{#1}]{%
\ref*{#1}%
\vpageref[\unskip]{#1}%
}%
\endgroup
}%
}{}%
}
\DeclareRobustCommand*{\autopageref}{%
\@ifstar{%
\HyRef@autopagerefname\pageref*%
}\HyRef@autopageref
}
\def\HyRef@autopageref#1{%
\hyperref[{#1}]{\HyRef@autopagerefname\pageref*{#1}}%
}
\def\HyRef@autopagerefname{%
\ltx@IfUndefined{pageautorefname}{%
\ltx@IfUndefined{pagename}{%
\Hy@Warning{No autoref name for `page'}%
}{%
\pagename\nobreakspace
}%
}{%
\pageautorefname\nobreakspace
}%
}
\DeclareRobustCommand*{\autoref}{%
\leavevmode
\@ifstar{\HyRef@autoref\@gobbletwo}{\HyRef@autoref\hyper@@link}%
}
\def\HyRef@autoref#1#2{%
\begingroup
\Hy@safe@activestrue
\expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}%
\endgroup
}
\def\HyRef@autosetref#1#2#3{% link command, csname, refname
\HyRef@ShowKeysRef{#2}%
\ifcase 0\ifx#1\relax 1\fi\ifx#1\Hy@varioref@undefined 1\fi\relax
\edef\HyRef@thisref{%
\expandafter\@fourthoffive#1\@empty\@empty\@empty
}%
\expandafter\HyRef@testreftype\HyRef@thisref.\\%
\Hy@safe@activesfalse
#3{%
\expandafter\@fifthoffive#1\@empty\@empty\@empty
}{%
\expandafter\@fourthoffive#1\@empty\@empty\@empty
}{%
\HyRef@currentHtag
\expandafter\@firstoffive#1\@empty\@empty\@empty
\null
}%
\else
\protect\G@refundefinedtrue
\nfss@text{\reset@font\bfseries ??}%
\@latex@warning{%
Reference `#2' on page \thepage\space undefined%
}%
\fi
}
\def\HyRef@testreftype#1.#2\\{%
\ltx@IfUndefined{#1autorefname}{%
\ltx@IfUndefined{#1name}{%
\HyRef@StripStar#1\\*\\\@nil{#1}%
\ltx@IfUndefined{\HyRef@name autorefname}{%
\ltx@IfUndefined{\HyRef@name name}{%
\def\HyRef@currentHtag{}%
\Hy@Warning{No autoref name for `#1'}%
}{%
\edef\HyRef@currentHtag{%
\expandafter\noexpand\csname\HyRef@name name\endcsname
\noexpand~%
}%
}%
}{%
\edef\HyRef@currentHtag{%
\expandafter\noexpand
\csname\HyRef@name autorefname\endcsname
\noexpand~%
}%
}%
}{%
\edef\HyRef@currentHtag{%
\expandafter\noexpand\csname#1name\endcsname
\noexpand~%
}%
}%
}{%
\edef\HyRef@currentHtag{%
\expandafter\noexpand\csname#1autorefname\endcsname
\noexpand~%
}%
}%
}
\def\HyRef@StripStar#1*\\#2\@nil#3{%
\def\HyRef@name{#2}%
\ifx\HyRef@name\HyRef@CaseStar
\def\HyRef@name{#1}%
\else
\def\HyRef@name{#3}%
\fi
}
\def\HyRef@CaseStar{*\\}
\def\HyRef@currentHtag{}
\let\HyRef@ShowKeysRef\@gobble
\def\HyRef@ShowKeysInit{%
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname SK@@label\endcsname\relax
\else
\ifx\SK@ref\@empty
\else
\def\HyRef@ShowKeysRef{%
\SK@\SK@@ref
}%
\fi
\fi
}
\@ifpackageloaded{showkeys}{%
\HyRef@ShowKeysInit
}{%
\Hy@AtBeginDocument{%
\@ifpackageloaded{showkeys}{%
\HyRef@ShowKeysInit
}{}%
}%
}
\providecommand*\AMSautorefname{\equationautorefname}
\providecommand*\Hfootnoteautorefname{\footnoteautorefname}
\providecommand*\Itemautorefname{\itemautorefname}
\providecommand*\itemautorefname{item}
\providecommand*\equationautorefname{Equation}
\providecommand*\footnoteautorefname{footnote}
\providecommand*\itemautorefname{item}
\providecommand*\figureautorefname{Figure}
\providecommand*\tableautorefname{Table}
\providecommand*\partautorefname{Part}
\providecommand*\appendixautorefname{Appendix}
\providecommand*\chapterautorefname{chapter}
\providecommand*\sectionautorefname{section}
\providecommand*\subsectionautorefname{subsection}
\providecommand*\subsubsectionautorefname{subsubsection}
\providecommand*\paragraphautorefname{paragraph}
\providecommand*\subparagraphautorefname{subparagraph}
\providecommand*\FancyVerbLineautorefname{line}
\providecommand*\theoremautorefname{Theorem}
\providecommand*\pageautorefname{page}
\providecommand*{\Hy@DistillerDestFix}{}
\def\phantomsection{%
\Hy@MakeCurrentHrefAuto{section*}%
\Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
}
\endinput
%%
%% End of file `hyperref.sty'.