summaryrefslogtreecommitdiff
path: root/texmf-dist/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-07-13 10:25:48 +0900
committerNorbert Preining <norbert@preining.info>2017-07-13 10:25:48 +0900
commitcfe306ba1b7ec40855a300580b7981845d56edeb (patch)
treee2feaf2adf8a8afe43a995528097913793874d01 /texmf-dist/tex
parent32d0671418a3cc6ad0465b06539ed54d96f77784 (diff)
add aeb-mlink aeb-pro aebxmp graphicxsp annot-pro
Diffstat (limited to 'texmf-dist/tex')
-rw-r--r--texmf-dist/tex/latex/aeb-mlink/aeb_mlink.sty342
-rw-r--r--texmf-dist/tex/latex/aeb-pro/aeb_pro.sty346
-rw-r--r--texmf-dist/tex/latex/aeb-pro/aeblayers.def306
-rw-r--r--texmf-dist/tex/latex/aeb-pro/aebpro.cfg12
-rw-r--r--texmf-dist/tex/latex/aeb-pro/aebpro.def1237
-rw-r--r--texmf-dist/tex/latex/aeb-pro/anime_support.def493
-rw-r--r--texmf-dist/tex/latex/aeb-pro/btnnanime.def56
-rw-r--r--texmf-dist/tex/latex/aeb-pro/create_icon.def156
-rw-r--r--texmf-dist/tex/latex/aeb-pro/ocganime.def39
-rw-r--r--texmf-dist/tex/latex/aeb-pro/unicodes.def380
-rw-r--r--texmf-dist/tex/latex/aebxmp/aebxmp.sty446
-rw-r--r--texmf-dist/tex/latex/annot-pro/annot_pro.sty616
-rw-r--r--texmf-dist/tex/latex/graphicxsp/graphicxsp.sty552
13 files changed, 4981 insertions, 0 deletions
diff --git a/texmf-dist/tex/latex/aeb-mlink/aeb_mlink.sty b/texmf-dist/tex/latex/aeb-mlink/aeb_mlink.sty
new file mode 100644
index 00000000..cc323916
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-mlink/aeb_mlink.sty
@@ -0,0 +1,342 @@
+%%
+%% This is file `aeb_mlink.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_mlink.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_mlink.sty package, 2015-10-28 %%
+%% Copyright (C) 2006--2015 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% storyd@owc.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{aeb_mlink}
+ [2016/02/16 v2.0 AeB MLink (dps)]
+\RequirePackage{ifpdf}[2006/02/20]
+\RequirePackage{ifxetex}[2006/08/21]
+\newif\if@ml@dvips \@ml@dvipstrue
+\DeclareOption{dvipsone}{\def\eq@drivernum{0}\@ml@dvipsfalse
+ \PassOptionsToPackage{dvipsone}{eforms}
+ \PassOptionsToPackage{dvipsone}{hyperref} %,colorlinks
+}
+\DeclareOption{dvips}{\def\eq@drivernum{0}\@ml@dvipstrue
+ \PassOptionsToPackage{dvips}{eforms}
+ \PassOptionsToPackage{dvips}{hyperref} %,colorlinks
+}
+\def\ml@err@msg{This package requires the driver dvips and\MessageBreak
+ Adobe Distiller as the PDF creator}
+\ifpdf\PackageError{aeb_mlink}{\ml@err@msg}\else
+ \ifxetex\PackageError{aeb_mlink}{\ml@err@msg}\else
+ \InputIfFileExists{web.cfg}{}{}
+\fi\fi
+\ProcessOptions
+\RequirePackage{hyperref}
+\RequirePackage{eforms}[2008/03/14]
+\RequirePackage{soul}
+\def\ps@mark{[\space}
+\if@ml@dvips
+\special{!userdict begin
+ /TeXtoPDF {65536 div DVImag mul} def % sp to pts
+ /PDFtoDvips {72.27 div Resolution mul} def % points to dots
+ /PDFtoVDvips {72.27 div VResolution mul} def % points to dots
+ /DvipstoPDF {72.27 mul Resolution div} def % dots to points
+ /HTeXtoDvips {TeXtoPDF PDFtoDvips} def % sp to dots
+ /VTeXtoDvips {TeXtoPDF PDFtoVDvips} def end} % sp to dots
+\def\setQuadBox{%
+ currentpoint DvipstoPDF \aeb@bbox@dp\space TeXtoPDF add
+ neg vsize add 72 sub % y1
+ exch DvipstoPDF 72 add exch % x1
+ 2 copy exch \aeb@bbox@wd\space TeXtoPDF add exch % x2
+ 2 copy \aeb@bbox@ht\space TeXtoPDF add % y3
+ 2 copy exch \aeb@bbox@wd\space TeXtoPDF sub exch % x4
+}
+\def\par@@Rect
+{%
+ 72 neg PDFtoDvips vsize 72 sub PDFtoVDvips
+ hsize 72 sub PDFtoDvips 72 neg PDFtoVDvips
+}
+\else
+\special{!/TeXtoPDF {65536 div mag 1000 div mul} def
+/PDFtoTeX {65536 mul mag 1000 div div} def}
+\def\setQuadBox{%
+ currentpoint \aeb@bbox@dp\space add TeXtoPDF
+ neg PageHeight add 72 sub % y1
+ exch TeXtoPDF 72 add exch % x1
+ 2 copy exch \aeb@bbox@wd\space TeXtoPDF add exch % x2
+ 2 copy \aeb@bbox@ht\space TeXtoPDF add % y3
+ 2 copy exch \aeb@bbox@wd\space TeXtoPDF sub exch % x4
+}
+\def\par@@Rect
+{%
+ 72 neg PDFtoTeX PageHeight 72 sub PDFtoTeX
+ PageWidth 72 sub PDFtoTeX 72 neg PDFtoTeX
+}
+\fi
+\newbox\aeb@bbox
+\newcount\aeb@arrayIndx \aeb@arrayIndx=0
+\newcount\aeb@mLinkCnt \aeb@mLinkCnt=0
+\def\CurrentBorderColor{\@linkbordercolor}
+\def\ml@nocolorHighlight{I}
+\def\ml@nocolorLineStyle{S}
+\def\ml@nocolorLineWidth{1}
+\def\ml@setnocolorDefaults{%
+\def\ml@nocolor@defaults{\H{\ml@nocolorHighlight}%
+ \S{\ml@nocolorLineStyle}\W{\ml@nocolorLineWidth}%
+ \Color{\CurrentBorderColor}}%
+}
+\ifHy@colorlinks
+ \let\ml@nocolor@defaults\@empty
+\else
+ \ml@setnocolorDefaults
+\fi
+\def\ml@earlyExecProps#1{%
+ \eq@setWidgetProps\relax{#1}%
+}
+\let\mlh@preambleCmdInsert\relax
+\newcommand{\mlhypertext}[1][]{\global\aeb@arrayIndx=0\relax
+ \global\advance\aeb@mLinkCnt1\relax
+ \special{ps: \ps@mark/_objdef {mLink\the\aeb@mLinkCnt}
+ /type /array /OBJ pdfmark}%
+ \def\mlh@preambleCmdInsert{\ml@earlyExecProps{#1}}%
+ \def\mlh@postambleCmd{\setLinkPbox{\S{S}\W{0}%
+ \presets{\ml@nocolor@defaults}%
+ \QuadPoints{mLink\the\aeb@mLinkCnt}#1}\endgroup}%
+ \aeb@mlh
+}
+\def\mlh@setQuadSyllable#1{%
+ \setbox\aeb@bbox=\hbox{\strut#1}%
+ {%
+ \count\z@=\ht\aeb@bbox\xdef\aeb@bbox@ht{\the\count\z@}%
+ \count\z@=\wd\aeb@bbox\xdef\aeb@bbox@wd{\the\count\z@}%
+ \dp\aeb@bbox=1pt\relax
+ \count\z@=\dp\aeb@bbox\xdef\aeb@bbox@dp{\the\count\z@}%
+ }%
+ \special{ps: \ps@mark{mLink\the\aeb@mLinkCnt}
+ \the\aeb@arrayIndx\space [\setQuadBox]
+ \space /PUTINTERVAL pdfmark}%
+ \global\advance\aeb@arrayIndx8\relax
+}
+\def\aeb@exiii{\expandafter\expandafter\expandafter}
+\def\aebnameref#1{\@ifundefined{r@#1}{??}
+ {\aeb@exiii\@thirdoffive\csname r@#1\endcsname}}
+\def\labelRef#1{\@ifundefined{r@#1}{Doc-Start}
+ {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}}
+\def\atPage#1{\@ifundefined{r@#1}{1}
+ {\aeb@exiii\@secondoffive\csname r@#1\endcsname}}
+\newcommand\mlhyperlink[3][]{%
+ \mlhypertext[#1\A{/S/GoTo/D (#2)}]{#3}}
+\newcommand\mlhyperref[3][]{%
+ \mlhypertext[#1\A{/S/GoTo/D (\labelRef{#2})}]{#3}}
+\newcommand\mlnameref[2][]{\protected@edef\ml@temp{\aebnameref{#2}}%
+ \def\ml@tempi{\mlhypertext[#1\A{/S/GoTo/D (\labelRef{#2})}]}%
+ \expandafter\ml@tempi\expandafter{\ml@temp}}
+\newcommand\mlNameref[2][]{\let\SOUL@stop\ml@SOUL@stop
+ \protected@edef\ml@temp{`\aebnameref{#2}' on page~\atPage{#2}}%
+ \def\ml@tempi{\mlhypertext[#1\A{/S/GoTo/D (\labelRef{#2})}]}%
+ \expandafter\ml@tempi\expandafter{\ml@temp}}
+\def\ml@hyper@linkurl#1#2{\hyper@chars
+ \let\ef@thislinkcolor\@urlcolor
+ \let\CurrentBorderColor\@urlbordercolor
+ \mlhypertext[\presets{\mlhref@args}\A{/S/URI/URI(#2)}]{#1}%
+ \endgroup
+}%
+\def\ml@hyper@linkfile#1#2#3{%
+ \let\ef@thislinkcolor\@filecolor
+ \let\CurrentBorderColor\@filebordercolor
+ \def\theView{[0 \@pdfstartview]}%
+ \@ifundefined{ifHy@pdfnewwindow}
+ {\ifHy@newwindow}{\ifHy@pdfnewwindow}%
+ \def\isWindow{/NewWindow true}\else
+ \let\isWindow\@empty\fi
+ \mlhypertext[\presets{\mlhref@args}\A{/S/GoToR \isWindow
+ /F (#2) /D \ifx\\#3\\\theView\else(#3)\fi}]{#1}%
+ \endgroup
+}
+\def\ml@hyper@launch run:#1\\#2#3{%
+ \let\ef@thislinkcolor\@filecolor
+ \let\CurrentBorderColor\@runbordercolor
+ \@ifundefined{ifHy@pdfnewwindow}
+ {\ifHy@newwindow}{\ifHy@pdfnewwindow}%
+ \def\isWindow{/NewWindow true}\else
+ \let\isWindow\@empty\fi
+ \mlhypertext[\presets{\mlhref@args}\A{/S/Launch\isWindow
+ /F (#1) \ifx\\#3\\\else /Win << /P (#3) /F (#1) >> \fi}]{#2}%
+ \endgroup
+}
+\let\aeb@saved@href\href
+\newcommand{\mlhref}[1][]{%
+ \begingroup
+ \def\mlhref@args{#1}%
+ \let\hyper@linkurl\ml@hyper@linkurl
+ \let\hyper@linkfile\ml@hyper@linkfile
+ \let\@hyper@launch\ml@hyper@launch
+ \aeb@saved@href
+}
+\newbox\ml@urlbuild
+\setbox\ml@urlbuild\hbox{}
+\def\ml@SOUL@doword{%
+ \global\setbox\ml@urlbuild\hbox{}%
+ \edef\x{\the\SOUL@word}%
+ \ifx\x\empty
+ \else
+ \SOUL@buffer={}%
+ \setbox\z@\vbox{%
+ \SOUL@tt
+ \hyphenchar\font`\-
+ \hfuzz\maxdimen
+ \hbadness\@M
+ \pretolerance\m@ne
+ \tolerance\@M
+ \leftskip\z@
+ \rightskip\z@
+ \hsize1sp
+ \everypar{}%
+ \parfillskip\z@\@plus1fil
+ \hyphenpenalty-\@M
+ \noindent
+ \hskip\z@
+ \relax
+ \the\SOUL@word}%
+ \let\SOUL@errmsg\relax
+ \let\-\relax
+ \count@\m@ne
+ \ml@SOUL@analyze
+ \SOUL@word={}%
+ \fi
+}
+\def\ml@SOUL@analyze{{%
+ \setbox\z@\vbox{%
+ \unvcopy\z@
+ \unskip
+ \unpenalty
+ \global\setbox\@ne=\lastbox}%
+ \ifvoid\@ne
+ \else
+ \setbox\@ne\hbox{\unhbox\@ne}%
+ \global\setbox\ml@urlbuild=\hbox{%
+ \mlh@setQuadSyllable{\unhcopy\@ne}%
+ \hbox{\unhcopy\@ne}\penalty0\unhcopy\ml@urlbuild}%
+ \SOUL@syllgoal=\wd\@ne
+ \advance\count@\@ne
+ \ml@SOUL@analyze
+ \SOUL@syllwidth\z@
+ \SOUL@syllable={}%
+ \ifnum\count@>\z@
+ \advance\SOUL@syllgoal-\SOUL@ttwidth
+ \ml@SOUL@dosyllable
+ \SOUL@getkern{\the\SOUL@lasttoken}{\SOUL@hyphkern}%
+ {\SOUL@sethyphenchar}%
+ \SOUL@everyhyphen
+ \else
+ \ml@SOUL@dosyllable
+ \fi
+ \fi
+}}
+\def\ml@SOUL@dosyllable{%
+ \SOUL@gettoken
+ \SOUL@eventuallyexhyphen{\the\SOUL@token}%
+ \edef\x{\the\SOUL@token}%
+ \ifx\x\SOUL@hyphenhintM
+ \let\SOUL@n\ml@SOUL@dosyllable
+ \else\ifx\x\SOUL@lowerthanM
+ \SOUL@gettoken
+ \SOUL@getkern{\the\SOUL@lasttoken}{\SOUL@charkern}
+ {\the\SOUL@token}%
+ \SOUL@everylowerthan
+ \SOUL@puttoken
+ \let\SOUL@n\ml@SOUL@dosyllable
+ \else\ifdim\SOUL@syllwidth=\SOUL@syllgoal
+ \SOUL@everysyllable
+ \SOUL@puttoken
+ \let\SOUL@n\relax
+ \else
+ \ifx\x\SOUL@stopM
+ \SOUL@errmsg
+ \global\let\SOUL@errmsg\relax
+ \let\SOUL@n\relax
+ \else
+ \setbox\tw@\hbox{\SOUL@tt\the\SOUL@token}%
+ \advance\SOUL@syllwidth\wd\tw@
+ \global\SOUL@lasttoken=\SOUL@token
+ \SOUL@gettoken
+ \SOUL@getkern{\the\SOUL@lasttoken}{\SOUL@charkern}
+ {\the\SOUL@token}%
+ \SOUL@puttoken
+ \global\SOUL@token=\SOUL@lasttoken
+ \SOUL@everytoken
+ \edef\x{\SOUL@syllable={\the\SOUL@syllable\the\SOUL@token}}\x
+ \let\SOUL@n\ml@SOUL@dosyllable
+ \fi\fi\fi\fi
+ \SOUL@n
+}
+\newcommand{\mlurl}{\begingroup\def~{\string~}%
+ \ef@sanitize@toks\mlurl@}
+\newcommand{\mlurl@}[2][]{\urldef\ml@url\nolinkurl{#2}%
+\def\SOUL@mlhpreamble{%\begingroup
+ \mlh@preambleCmdInsert\ef@colorthislink}\hyper@chars
+ \let\ef@thislinkcolor\@urlcolor
+ \let\CurrentBorderColor\@urlbordercolor
+ \let\ml@SOUL@doword@SAVE\SOUL@doword
+ \let\SOUL@doword\ml@SOUL@doword
+ \global\aeb@arrayIndx=0\relax
+ \global\advance\aeb@mLinkCnt1\relax
+ \special{ps: \ps@mark/_objdef {mLink\the\aeb@mLinkCnt}%
+ /type /array /OBJ pdfmark}%
+ \def\mlh@preambleCmdInsert{\ml@earlyExecProps{#1}}%
+ \def\mlh@postambleCmd{\setLinkPbox{\S{S}\W{0}\A{\URI{#2}}%
+ \presets{\ml@nocolor@defaults}
+ \QuadPoints{mLink\the\aeb@mLinkCnt}#1}\expandafter
+ \gdef\expandafter\ef@thislinkcolor
+ \expandafter{\ef@thislinkcolor}}%
+ \aeb@mlh\ml@url\ef@colorthislink\unhcopy\ml@urlbuild\endgroup
+}
+\ifHy@colorlinks
+ \def\ef@colorthislink{\color{\ef@thislinkcolor}}
+\else
+ \let\ef@colorthislink\relax
+\fi
+\def\ml@SOUL@stop{\relax}
+\def\SOUL@mlhpreamble{\begingroup
+ \mlh@preambleCmdInsert\ef@colorthislink}
+\def\SOUL@mlheverysyllable{%
+ \mlh@setQuadSyllable{\the\SOUL@syllable}%
+ \the\SOUL@syllable%
+ \SOUL@setkern\SOUL@charkern}%
+\def\SOUL@mlheveryspace#1{#1\space\hskip\spaceskip}%
+\def\SOUL@mlheveryhyphen{%
+ \discretionary{%
+ \unkern
+ \SOUL@setkern\SOUL@hyphkern
+ \SOUL@sethyphenchar
+ }{}{}%
+}
+\def\SOUL@mlheveryexhyphen#1{%
+ \mlh@setQuadSyllable{\SOUL@setkern\SOUL@hyphkern#1}%
+ \SOUL@setkern\SOUL@hyphkern#1%
+ \discretionary{}{}{%
+ \SOUL@setkern\SOUL@charkern
+ }%
+}
+\def\mlh@postambleCmd{\relax}
+\def\SOUL@mlhpostamble{\mlh@postambleCmd}
+\def\SOUL@mlhsetup{\SOUL@setup
+ \let\SOUL@preamble\SOUL@mlhpreamble
+ \let\SOUL@everysyllable\SOUL@mlheverysyllable
+ \let\SOUL@everyspace\SOUL@mlheveryspace
+ \let\SOUL@everyhyphen\SOUL@mlheveryhyphen
+ \let\SOUL@everyexhyphen\SOUL@mlheveryexhyphen
+ \def\SOUL@postamble{\SOUL@mlhpostamble}%
+}
+\DeclareRobustCommand*\aeb@mlh{\SOUL@mlhsetup\SOUL@}
+\endinput
+%%
+%% End of file `aeb_mlink.sty'.
diff --git a/texmf-dist/tex/latex/aeb-pro/aeb_pro.sty b/texmf-dist/tex/latex/aeb-pro/aeb_pro.sty
new file mode 100644
index 00000000..5bf819ed
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/aeb_pro.sty
@@ -0,0 +1,346 @@
+%%
+%% This is file `aeb_pro.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+\ProvidesPackage{aeb_pro}
+ [2017/03/08 v2.8a aeb_pro: A support package (dps)]
+\RequirePackage{ifpdf}[2006/02/20]
+\RequirePackage{ifxetex}[2006/08/21]
+\RequirePackage{xkeyval}
+\let\aebp@One=1 \let\aebp@Zero=0
+\let\aebp@YES=y \let\aebp@NO=n
+\def\ap@csarg#1#2{\expandafter#1\csname#2\endcsname}
+\define@key{aebpreq}{req}[]{\def\eq@pkgReq{#1}}
+\def\aebp@setCCOptions#1#2{%#1=package #2=options
+ \ap@csarg\edef{aeb@#1@opts}{#2}}
+\@tfor\aeb@pcks:={web}{exerquiz}{dljslib}%
+{eforms}{insdljs}{eq2db}{aebxmp}{hyperref}{graphicxsp}{rmannot}\do
+{%
+ \ap@csarg\let{aeb@\aeb@pcks @req}\@empty
+ \ap@csarg\let{aeb@\aeb@pcks @opts}\relax
+ \edef\aeb@pack@def{\noexpand
+ \define@key{aeb_pro.sty}{\aeb@pcks}[]{%
+ \noexpand\aebp@setCCOptions{\aeb@pcks}{##1}}%
+ }\aeb@pack@def
+}
+\let\aebp@passDriver\aebp@YES
+\ifpdf\let\aebp@passDriver\aebp@NO\else
+\ifxetex\let\aebp@passDriver\aebp@NO\fi\fi
+\define@choicekey+{aeb_pro.sty}{driver}%
+ {dvipsone,dvips,pdftex,dvipdfm,textures,%
+ dvipdfmx,xetex}{%
+ \def\aeb@driver{#1}\ifx\aeb@driver\@empty\else
+ \PassOptionsToPackage{#1}{web}
+ \PassOptionsToPackage{#1}{exerquiz}
+\def\aebp@PassToHYIns{\PassOptionsToPackage{#1}{hyperref}
+ \PassOptionsToPackage{#1}{insdljs}}
+\ifx\aebp@passDriver\aebp@YES
+ \expandafter\aebp@PassToHYIns\fi
+ \PassOptionsToPackage{#1}{eforms}
+ \PassOptionsToPackage{#1}{graphicxsp}
+ \fi
+}{\PackageError{aeb_pro}{Bad choice for the driver, permissible values
+ \MessageBreak are dvipsone, dvips, pdftex, dvipdfm,
+ textures,\MessageBreak dvipdfmx, and xetex}
+ {Try again with a permissible driver name}}
+\let\aeb@driver\@empty
+
+\newif\if@useacrobat \@useacrobatfalse
+\DeclareOptionX{useacrobat}{\@useacrobattrue}
+\newif\if@gopro \@goprotrue
+\DeclareOptionX{nopro}{\@useacrobattrue\@goprofalse
+ \PassOptionsToPackage{nopro}{insdljs}}
+\def\aeb@InputAeBPro{\InputIfFileExists{aebpro.def}%
+ {\PackageInfo{aeb_pro}{Inputting code for the pro option}}%
+ {\PackageInfo{aeb_pro}{Cannot find aebpro.def.
+ Reinstall or refresh your file name database, as needed.}}}
+\AtEndOfPackage{\aeb@InputAeBPro}
+\let\aebp@uselayers=0
+\DeclareOptionX{uselayers}{%
+ \ifx\aebp@uselayers0\AtEndOfPackage{\aeb@InputAeBLayers}%
+ \global\let\aebp@uselayers=1\fi
+}
+\def\aeb@InputAeBLayers{\InputIfFileExists{aeblayers.def}%
+ {\PackageInfo{aeb_pro}{Inputting code for uselayers option}}%
+ {\PackageInfo{aeb_pro}{Cannot find aeblayers.def.
+ Reinstall or refresh your file name database.}}}
+\DeclareOptionX{gopro}{\PassOptionsToPackage{pro}{web}}
+\DeclareOptionX{attachsource}{\def\aeb@attachsource{#1}}
+\let\aeb@attachsource\@empty
+\DeclareOptionX{attachments}{\def\aeb@attachments{#1}}
+\let\aeb@attachments\@empty
+\newif\ifoptattachments\optattachmentsfalse
+\newif\ifoptattachmentsTaken\optattachmentsTakenfalse
+\DeclareOptionX{optattachments}{%
+ \optattachmentsTakentrue
+ \optattachmentstrue}
+\DeclareOptionX{!optattachments}{%
+ \optattachmentsTakentrue
+ \optattachmentsfalse}
+\def\@aeb@InputUnicodes{\InputIfFileExists{unicodes.def}%
+ {\typeout{aeb_pro: Inputting code for the linktoattachments option}}%
+ {\typeout{aeb_pro: Cannot find unicodes.def.
+ Reinstall or refresh your file name database, as needed.}}}
+\let\aeb@InputUnicodes\@empty
+\DeclareOptionX{linktoattachments}{%
+ \let\aeb@InputUnicodes\@aeb@InputUnicodes}
+\let\aeb@childofInput\@empty
+\let\aeb@childof\@empty
+\DeclareOptionX{childof}{\def\aeb@childof{#1}\def\aeb@childofInput{%
+ \InputIfFileExists{\aeb@childof_xref.cut}{}{}}}
+\def\inputAttachmentRelatedFiles{%
+ \aeb@InputUnicodes
+ \aeb@childofInput
+}
+\AtEndOfPackage{\inputAttachmentRelatedFiles}
+\let\inputCommonAnimeCode\relax
+\DeclareOptionX{ocganime}{%
+ \ifx\aebp@uselayers0\ExecuteOptionsX{uselayers}
+ \global\let\aebp@uselayers=1\fi
+ \ifx\inputCommonAnimeCode\relax
+ \let\inputCommonAnimeCode\aebp@inputCommonAnimeCode
+ \AtEndOfPackage{\inputCommonAnimeCode}\fi
+ \AtEndOfPackage{\inputOcgAnimeCode}
+}
+\DeclareOptionX{btnanime}{%
+ \ifx\inputCommonAnimeCode\relax
+ \let\inputCommonAnimeCode\aebp@inputCommonAnimeCode
+ \AtEndOfPackage{\inputCommonAnimeCode}\fi
+ \AtEndOfPackage{\inputBtnAnimeCode}
+}
+\def\inputBtnAnimeCode{\InputIfFileExists{btnnanime.def}
+ {\PackageInfo{aeb_pro}{inputting btnnanime.def}}
+ {\PackageWarning{aeb_pro}{cannot find btnnanime.def}}}%
+\def\inputOcgAnimeCode{\InputIfFileExists{ocganime.def}
+ {\PackageInfo{aeb_pro}{inputting ocganime.def}}
+ {\PackageWarning{aeb_pro}{cannot find ocganime.def}}}%
+\def\aebp@inputCommonAnimeCode{\InputIfFileExists{anime_support.def}
+ {\PackageInfo{aeb_pro}{inputting anime_support.def}}
+ {\PackageWarning{aeb_pro}{cannot find anime_support.def}}}%
+\let\pathToBtnCtrlIcons\@empty
+\let\ExecuteOptionsXSAVE\ExecuteOptionsX
+\let\ExecuteOptionsX\@gobble
+\InputIfFileExists{aebpro.cfg}{}{}
+\let\ExecuteOptionsX\ExecuteOptionsXSAVE
+\ifpdf\ExecuteOptionsX{driver=pdftex}\else
+ \ifxetex\ExecuteOptionsX{driver=xetex}\else
+ \@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{driver=dvips}}
+ {\ExecuteOptionsX{driver=dvipsone}}\fi\fi
+\ProcessOptionsX
+\edef\ap@restoreCats{%
+ \catcode`\noexpand\"=\the\catcode`\"\relax
+ \catcode`\noexpand\,=\the\catcode`\,\relax
+ \catcode`\noexpand\(=\the\catcode`\(\relax
+ \catcode`\noexpand\!=\the\catcode`\!\relax
+}
+\@makeother\"\@makeother\,\@makeother\(\@makeother\!
+\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}
+\pdfmarkuptrue
+\def\aeb@testdriver{dvips}%
+\ifx\aeb@testdriver\aeb@driver
+ \@useacrobattrue\else
+\def\aeb@testdriver{dvipsone}%
+\ifx\aeb@testdriver\aeb@driver
+ \@useacrobattrue\else
+ \pdfmarkupfalse
+\fi\fi
+\if@gopro\else
+\let\aebp@isattach\aebp@NO
+\ifx\aeb@attachsource\@empty\else\let\aebp@isattach\aebp@YES\fi
+\ifx\aeb@attachments\@empty\else\let\aebp@isattach\aebp@YES\fi
+ \let\aeb@attachsource\@empty
+ \let\aeb@attachments\@empty
+ \optattachmentsfalse\optattachmentsTakenfalse
+ \let\inputAttachmentRelatedFiles\relax
+\ifx\aebp@isattach\aebp@YES
+ \PackageWarningNoLine{aeb_pro}{The various attachment options
+ are not\MessageBreak supported with the nopro option,
+ ignoring them}\fi
+\fi
+\ifpdfmarkup\else
+\if\aebp@uselayers1
+ \def\aeb@InputAeBLayers{\PackageError{aeb_pro}
+ {The uselayers and ocganime options are not supported,\MessageBreak
+ with the useacrobat and nopro options,\MessageBreak
+ ignoring these options}{Remove dependence on layers,
+ or obtain\MessageBreak the full Acrobat product}}
+ \let\texHelpIndicator\@gobble
+ \let\addJStexHelpEnter\@gobble
+ \let\addJStexHelpExit\@gobble
+ \let\texHelp\@gobbletwo
+ \def\xBld#1\eBld{}
+ \let\defineRC\@gobbletwo
+ \let\insertRC\@gobble
+ \let\definePR\@gobbletwo
+ \let\insertPR\@gobble
+ \let\proofRollovers\relax
+ \let\texPHProof\@gobbletwo
+ \newcommand\animeBld[1][]{}
+ \def\DeclareAnime#1#2#3{}
+ \newcommand\backAnimeBtn[3][]{}
+ \newcommand\clearAnimeBtn[3][]{}
+ \newcommand\forwardAnimeBtn[3][]{}
+\fi\fi
+\def\aebp@PkgWarningi#1{\ifpdfmarkup\else\PackageWarningNoLine{aeb_pro}
+ {The #1\space package requires Adobe Distiller,\MessageBreak
+ do not load this package}\fi}
+\def\aebp@PkgWarningii#1{\PackageWarningNoLine{aeb_pro}
+ {The #1\space package requires Adobe Distiller,\MessageBreak
+ ignoring #1\space as an option}}
+\def\aebp@PkgWarningiii#1{\PackageWarningNoLine{aeb_pro}
+ {The #1\space package requires Adobe Distiller or\MessageBreak
+ the useacrobat option (Acrobat required),\MessageBreak
+ ignoring #1\space as an option}}
+\providecommand\getargsii[2]{\def\aeb@argi{#1}\def\aeb@argii{#2}}
+\newcommand\ap@RP[2][]{\def\@rgi{#1}\def\@rgii{#2}%
+ \ifx\@rgi\@empty\else\edef\@rgi{[\@rgi]}\fi
+ \@ifnextchar[%]
+ {\ap@@RP}{\ap@@RP[]}}
+\def\ap@@RP[#1]{\def\@rgiii{#1}%
+ \let\XKV@rm\@empty\let\eq@pkgReq\@empty
+ \@ifundefined{aeb@\@rgii @opts}
+ {\ifx\@rgi\@empty\else
+ \ap@csarg\edef{aeb@\@rgii @req}{#1}\fi
+ }{%
+ \edef\x{\noexpand
+ \setkeys*{aebpreq}{\@nameuse{aeb@\@rgii @opts}}}\x
+ \edef\eq@theseOpts{\XKV@rm}%
+ \ap@csarg\edef{aeb@\@rgii @req}{\eq@pkgReq}%
+ \edef\x{\noexpand
+ \PassOptionsToPackage{\eq@theseOpts}{\@rgii}}\x
+ }%
+ \ifx\@rgiii\@empty
+ \if!\@nameuse{aeb@\@rgii @req}!\else
+ \ap@csarg\edef{aeb@\@rgii @req}{[\@nameuse{aeb@\@rgii @req}]}\fi
+ \else
+ \@ifl@t@r{#1}{\@nameuse{aeb@\@rgii @req}}%
+ {\if!\@nameuse{aeb@\@rgii @req}!\else
+ \ap@csarg\edef{aeb@\@rgii @req}%
+ {[\@nameuse{aeb@\@rgii @req}]}\fi
+ }{\ap@csarg\edef{aeb@\@rgii @req}{[#1]}}%
+ \fi
+ \edef\x{\noexpand
+ \RequirePackage{\@rgii}\@nameuse{aeb@\@rgii @req}}\x
+}
+\@ifpackageloaded{web}{}
+{%
+ \@ifundefined{aeb@web@opts}{}{\ap@RP{web}}%
+}
+\@ifpackageloaded{exerquiz}{}
+{%
+ \@ifundefined{aeb@exerquiz@opts}{}{\ap@RP{exerquiz}}%
+}
+\@ifpackageloaded{hyperref}{}
+{%
+ \@ifundefined{aeb@hyperref@opts}{}{\ap@RP{hyperref}}%
+}
+\@ifpackageloaded{eq2db}{}
+{%
+ \@ifundefined{aeb@eq2db@opts}{}{\ap@RP{eq2db}}%
+}
+\@ifpackageloaded{dljslib}{}
+{%
+ \@ifundefined{aeb@dljslib@opts}{}{\ap@RP{dljslib}}%
+}
+\@ifpackageloaded{insdljs}{\let\execjs\aebp@YES}
+{%
+ \ap@RP[execJS]{insdljs}[2016/07/31]% incls conv-xkv
+}
+\@ifpackageloaded{eforms}{\let\execjs\aebp@YES}
+{%
+ \@ifundefined{aeb@eforms@opts}{}
+ {\ap@RP[execJS]{eforms}[2017/01/03]}%
+}
+\@ifpackageloaded{aebxmp}{\aebp@PkgWarningi{aebxmp}}
+{%
+ \@ifundefined{aeb@aebxmp@opts}{}
+ {\edef\temp@exp{\ifpdfmarkup
+ \noexpand\ap@RP{aebxmp}\else
+ \if@useacrobat
+ \noexpand\ap@RP{aebxmp}[2016/05/12]\else
+ \noexpand\aebp@PkgWarningiii{aebxmp}\fi\fi}\temp@exp}
+}
+\@ifpackageloaded{graphicxsp}{\aebp@PkgWarningi{graphicxsp}}
+{%
+ \@ifundefined{aeb@graphicxsp@opts}{}
+ {\edef\temp@exp{\ifpdfmarkup
+ \noexpand\ap@RP{graphicxsp}\else
+ \noexpand\aebp@PkgWarningii{graphicxsp}\fi}\temp@exp}
+}
+\@ifpackageloaded{rmannot}{\aebp@PkgWarningi{rmannot}}
+{%
+ \@ifundefined{aeb@rmannot@opts}{}
+ {\edef\temp@exp{\ifpdfmarkup\noexpand\ap@RP{rmannot}\else
+ \noexpand\aebp@PkgWarningii{rmannot}\fi}\temp@exp}
+}
+\let\execjs\aebp@YES
+\RequirePackage{comment}
+\RequirePackage{calc}
+\RequirePackage{eso-pic}
+\ifpdfmarkup\else\if\aebp@uselayers1
+ \excludecomment{printRollover}%
+ \excludecomment{rollover}%
+\fi\fi
+\def\aeb@IWVO{\immediate\write\verbatim@out}
+\newsavebox{\aebsavehelp}
+\newcommand{\pdfHelpIndicator}[1]{#1\thinspace${}^{\mbox
+ {\footnotesize\negthinspace\ding{109}}%
+ \raisebox{.225ex}{\llap{\color{webblue}\tiny?\hspace{1.3ex}}}}$}
+\def\pdfHelpCnt{0}
+\newcommand{\pdfHelp}{\@ifstar{{\count0=\pdfHelpCnt\relax
+\advance\count0by1\relax\xdef\pdfHelpCnt{\the\count0 }}%
+ \pdfHelpi{pdfhelp-\pdfHelpCnt}}{\pdfHelpi}}
+\newcommand{\pdfHelpi}[3]{%
+ \let\rollormargstring\texorpdfstring
+ \sbox{\aebsavehelp}{\pdfHelpIndicator{#3}}%
+ \makebox[0pt][l]{\makespecialJS\pushButton[\S{S}\BG{}\BC{}\H{N}
+ \TU{#2}]{#1}{\wd\aebsavehelp}{11bp}}\usebox{\aebsavehelp}%
+ \let\rollormargstring\@gobbletwo
+}
+\newcommand\pdfPHProof[3]{\small\raggedright\texttt{#3}: #2}
+\newcommand\pdfPrintHelp{\@ifstar{{\count0=\pdfHelpCnt\relax
+\advance\count0by1\relax\xdef\pdfHelpCnt{\the\count0}}%
+ \pdfPrintHelpi{pdfhelp-\pdfHelpCnt}}{\pdfPrintHelpi}}
+\newcommand\pdfPrintHelpi[3]{%
+ \let\rollormargstring\texorpdfstring
+ \ifeqforpaper
+ \ifeq@proofing
+ \pdfHelp{#1}{#2}{#3}\marginpar{\Hy@pdfstringfalse
+ \pdfPHProof{#1}{#2}{{\Hy@pdfstringtrue#3}}}\else
+ \pdfHelpIndicator{#3}\fi
+ \else
+ \pdfHelp{#1}{#2}{#3}\ifeq@proofing
+ \marginpar{\Hy@pdfstringfalse
+ \pdfPHProof{#1}{#2}{{\Hy@pdfstringtrue#3}}}\fi
+ \fi
+ \let\rollormargstring\@gobbletwo
+}
+\AtEndOfPackage{\@nameuse{aeb@inputAttachments}}
+\AtBeginDocument{\@nameuse{aeb@setPDFPackage}}
+\@ifpackageloaded{web}{}
+ {\def\aebwritelastpage{%
+ \immediate\write\@auxout{\string\expandafter\string\gdef
+ \string\csname\space aebLastPage\string\endcsname{\arabic{page}}}}
+ \AtEndDocument{\clearpage\addtocounter{page}{-1}\aebwritelastpage
+ \addtocounter{page}{1}}%
+}
+\ap@restoreCats
+\endinput
+%%
+%% End of file `aeb_pro.sty'.
diff --git a/texmf-dist/tex/latex/aeb-pro/aeblayers.def b/texmf-dist/tex/latex/aeb-pro/aeblayers.def
new file mode 100644
index 00000000..ba716796
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/aeblayers.def
@@ -0,0 +1,306 @@
+%%
+%% This is file `aeblayers.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,aeblayers')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifaeb@ocOn \aeb@ocOntrue
+\ifaeb@ocOn
+\AtBeginDocument{%
+\headerps@out{%
+{/OCProcSet /ProcSet findresource} stopped not
+{/initialize get exec}
+{
+/BeginOC /pop load def
+/EndOC {} def
+/SimpleOC /pop load def
+/SetOCGInitState {pop pop} bind def
+/OCEndPage {} def
+/SetOCGIntent {pop pop} bind def
+/SetOCGUsage {pop pop} bind def
+/AddASEvent {pop pop pop} bind def
+}
+ifelse
+}
+}\fi
+\ifaeb@ocOn
+ \AtEndDocument{\literalps@out{{/OCProcSet /ProcSet findresource
+ /terminate get exec} stopped pop}}
+\fi
+\begin{insDLJS}[getxBld]{aebocg}{AeB Pro: OCG Support}
+var ocgs = this.getOCGs();
+var xBlds = new Array();
+if ( ocgs != null ) {
+ var l = ocgs.length;
+ for ( i=0; i<l; i++ ) {
+ if (ocgs[0].name.substring(0,3) == "xb." )
+ xBlds.push(ocgs.shift());
+ else ocgs.push(ocgs.shift());
+ }
+}
+var assocxLayers = new Array();
+if ( xBlds != null ) {
+ for ( var i=0; i<xBlds.length; i++)
+ assocxLayers[xBlds[i].name]=i;
+}
+function getxBld (name) {
+ var i = assocxLayers["xb."+name];
+ return ( i == undefined ) ? null : xBlds[i];
+}
+function toggleHelp (name)
+{
+ var o = getxBld(name);
+ if ( o != null ) o.state = (event.name.indexOf("Enter") != -1);
+}
+function toggleSetThisLayer(name, bState) {
+ var oLayer = getxBld(name);
+ if ( oLayer != null )
+ oLayer.state = (arguments.length > 1) ? bState : !oLayer.state;
+}
+function getLayerState(name) {
+ var oLayer = getxBld(name);
+ return ( oLayer != null ) ? oLayer.state : null;
+}
+\end{insDLJS}
+\newcommand{\texHelpIndicator}[1]{#1\thinspace${}^{\mbox
+ {\footnotesize\negthinspace\ding{109}}\raisebox{.225ex}
+ {\llap{\color{webblue}\tiny?\hspace{1.3ex}}}}$}
+\newcommand{\addJStexHelpEnter}[1]{\def\aebp@addJStexHelpEnter{\r#1}}
+\newcommand{\addJStexHelpExit}[1]{\def\aebp@addJStexHelpExit{\r#1}}
+\newcommand{\resetaddJStexHelp}{%
+ \let\aebp@addJStexHelpEnter\@empty
+ \let\aebp@addJStexHelpExit\@empty
+}
+\resetaddJStexHelp
+\newcommand{\texHelp}[2]{%
+ \let\rollormargstring\texorpdfstring
+ \sbox{\aebsavehelp}{\texHelpIndicator{#2}}%
+ \makebox[0pt][l]{\pushButton[\S{S}\BG{}\BC{}\H{N}
+ \AA{\AAMouseEnter{\JS{toggleHelp("#1");\aebp@addJStexHelpEnter}}%
+ \AAMouseExit{\JS{toggleHelp("#1");\aebp@addJStexHelpExit}}}]{#1}%
+ {\wd\aebsavehelp}{\ht\aebsavehelp+\dp\aebsavehelp}}%
+ \usebox{\aebsavehelp}\resetaddJStexHelp
+ \let\rollormargstring\@gobbletwo
+}
+\newif\ifaeb@SimpleOCOn \aeb@SimpleOCOnfalse
+\newcommand{\@SOC}[2][false]{\global\aeb@SimpleOCOntrue%
+ \ifaeb@ocOn\literalps@out{(#2) SimpleOC (#2) #1 SetOCGInitState}\fi}
+\newcommand{\b@OC}[2][false]{\ifaeb@SimpleOCOn\@aebSimpleNesterror\fi
+ \ifaeb@ocOn\literalps@out{(#2) BeginOC (#2) #1 SetOCGInitState}\fi}
+\newcommand{\e@OC}{\ifaeb@ocOn\literalps@out{EndOC}\fi}
+\newcommand{\xBld}[2][]{%
+ \setkeys{aebpxBld}{false,#1}\b@OC[\aebpxBld@visible]{xb.#2}%
+ \ifx\aebpxBld@print\@empty\else
+ \literalps@out{/Print [/Print] [(xb.#2)] AddASEvent}%
+ \ifAEBP@aebpxBld@print
+ \literalps@out{(xb.#2) << /Print<<
+ /PrintState/ON >> >> SetOCGUsage}%
+ \else
+ \literalps@out{(xb.#2) << /Print<<
+ /PrintState/OFF >> >> SetOCGUsage}%
+ \fi
+ \global\let\aebpxBld@print\@empty
+ \fi
+}
+\let\eBld\e@OC
+\def\@aebSimpleNesterror{\PackageWarning{aeb}
+{The scope of the last \string\Bld\space command
+\MessageBreak includes the scope of the nested Bld.
+\MessageBreak Executing \protect\ocOff\space to correct this.
+\MessageBreak The problem occurs}\ocOff}
+\newif\ifAEBP@aebpxBld@print \AEBP@aebpxBld@printfalse
+\define@choicekey+{aebpxBld}{print}[\val\nr]{true,false,%
+ visible,always,never}[visible]{%
+ \ifcase\nr\relax
+ \def\aebpxBld@print{true}\AEBP@aebpxBld@printtrue\or
+ \def\aebpxBld@print{false}\AEBP@aebpxBld@printfalse\or
+ \let\aebpxBld@print\@empty\or
+ \def\aebpxBld@print{true}\AEBP@aebpxBld@printtrue\or
+ \def\aebpxBld@print{false}\AEBP@aebpxBld@printfalse\fi
+}{\PackageWarning{aeb_pro}{Bad choice for initState, permissible values
+ are true, false, visible, always, and never. Try again}}
+\let\aebpxBld@print\@empty
+\define@key{aebpxBld}{true}[true]{\def\aebpxBld@visible{#1}}
+\define@key{aebpxBld}{false}[false]{\def\aebpxBld@visible{#1}}
+\define@choicekey+{aebpxBld}{initState}[\val\nr]{on,off,%
+ true,false}[false]{%
+ \ifcase\nr\relax
+ \def\aebpxBld@visible{true}\or
+ \def\aebpxBld@visible{false}\or
+ \def\aebpxBld@visible{true}\or
+ \def\aebpxBld@visible{false}\fi
+}{\PackageWarning{aeb_pro}{Bad choice for initState, permissible values
+ are on, off, true and false. Try again}}
+\long\def\defineRC#1#2{\csarg\def{RC#1}{#2}}
+\def\insertRC#1{\@nameuse{RC#1}}
+\long\def\definePR#1#2{%
+ \ifeqforpaper\csarg\def{PR#1}{#2}\else
+ \ifeq@proofing\csarg\def{PR#1}{#2}\else
+ \csarg\let{PR#1}\relax\fi\fi
+}
+\def\insertPR#1{%
+ \ifeq@proofing\@nameuse{PR#1}\else
+ \csarg\let{insertPR}\@gobble\fi
+ \csarg\let{PR#1}\relax
+}
+\@ifundefined{ifeqforpaper}{\newif\ifeqforpaper \eqforpaperfalse}{}
+\@ifundefined{ifeq@proofing}{\newif\ifeq@proofing \eq@proofingfalse}{}
+\providecommand\turnProofingOn{\eq@proofingtrue}
+\providecommand\turnProofingOff{\eq@proofingfalse}
+\def\proofRollovers{%
+ \ifeqforpaper
+ \ifeq@proofing
+ \includecomment{rollover}%
+ \includecomment{printRollover}%
+ \else
+ \excludecomment{printRollover}%
+ \includecomment{rollover}%
+ \fi
+ \else
+ \ifeq@proofing
+ \includecomment{rollover}%
+ \includecomment{printRollover}%
+ \else
+ \excludecomment{printRollover}%
+ \includecomment{rollover}%
+ \fi
+ \fi
+}
+\proofRollovers
+\@onlypreamble\proofRollovers
+\newcommand\texPHProof[2]{\small\raggedright\texttt{#1}: #2}
+\let\rollormargstring\@gobbletwo
+\def\texPrintHelp#1#2{%
+ \let\rollormargstring\texorpdfstring
+ \ifeqforpaper
+ \ifeq@proofing
+ \texHelp{#1}{#2}\marginpar{\Hy@pdfstringfalse
+ \texPHProof{#1}{#2}}\else
+ \texHelpIndicator{#2}\fi
+ \else
+ \texHelp{#1}{#2}\ifeq@proofing\marginpar{\Hy@pdfstringfalse
+ \texPHProof{#1}{#2}}\fi
+ \fi
+ \let\rollormargstring\@gobbletwo
+}
+\newcommand{\animeBld}[1][]{\stepcounter{ocSeq}%
+ \xBld[#1]{\animBldName}}
+\newcounter{ocSeq}
+\newcommand{\animeName}[1]{anime!!#1}%01/01/2010
+\newcommand{\DeclareAnime}[3]
+{%
+ \setcounter{ocSeq}{0}%
+ \xdef\animBaseName{anime!!#1}%01/01/2010
+ \xdef\animSpeed{#2}\xdef\nFrames{#3}%
+ \gdef\animBldName{\animBaseName\#\theocSeq}%
+}
+\newcommand{\backAnimeBtn}[3][]
+{%
+ \pushButton[\textFont{Wingdings3}\uCA{FEFF00C5}\TU{Reverse}#1
+ \A{\JS{%
+ try { aebAnimeTimeOutF.running=false; } catch(e) {}\r
+ try { aebAnimeTimeOutB.running=false; } catch(e) {}\r
+ aebAnimeLayersBackward(\animSpeed,\nFrames,"\animBaseName");
+ }}]{\animBaseName BtnBack}{#2}{#3}%
+}
+\newcommand{\clearAnimeBtn}[3][]
+{%
+ \pushButton[\textFont{Wingdings}\CA{n}\TU{Clear}#1
+ \A{\JS{%
+ try { aebAnimeTimeOutF.running=false; } catch(e) {}\r
+ try { aebAnimeTimeOutB.running=false; } catch(e) {}\r
+ aebAnimeLayersClear(\animSpeed,\nFrames,"\animBaseName");
+ }}]{\animBaseName BtnClear}{#2}{#3}%
+}
+\newcommand{\forwardAnimeBtn}[3][]
+{%
+ \pushButton[\textFont{Wingdings3}\uCA{FEFF00C6}\TU{Graph It!}#1
+ \A{\JS{%
+ try { aebAnimeTimeOutF.running=false; } catch(e) {}\r
+ try { aebAnimeTimeOutB.running=false; } catch(e) {}\r
+ aebAnimeLayersForward(\animSpeed,\nFrames,"\animBaseName");
+ }}]{\animBaseName BtnForward}{#2}{#3}%
+}
+\begin{insDLJS}[_animeLayers]{animelayers}
+ {AeB Pro: JS in Support of Anime}
+var _animeLayers = true;
+var aebAnimeTimeOutF = new Object();
+aebAnimeTimeOutF.running=false;
+var aebAnimeTimeOutB = new Object();
+aebAnimeTimeOutB.running=false;
+var aebAnimeTimeOutC = new Object();
+function aebAnimeLayersForward(animSpeed,nFrames,baseName)
+{
+ var timeinterval = animSpeed;
+ aebAnimeTimeOutF = app.setInterval("aebAnimeTimeOutF.count++;"
+ + "if (aebAnimeTimeOutF.count > "
+ + nFrames + " || !aebAnimeTimeOutF.running )"
+ +" app.clearInterval(aebAnimeTimeOutF);\r"
+ + "else { if (aebAnimeTimeOutF.count == 1 )"
+ +" getxBld('"+baseName+"\#1').state=true;\t"
+ + "else { getxBld('"+baseName+"\#'"
+ + "+(aebAnimeTimeOutF.count-1)).state=false;\t"
+ + "getxBld('"+baseName+"\#'"
+ + "+aebAnimeTimeOutF.count).state=true;}}", timeinterval);
+ aebAnimeTimeOutF.running = true;
+ aebAnimeTimeOutF.start = 1;
+ aebAnimeTimeOutF.count=0;
+}
+function aebAnimeLayersBackward(animSpeed,nFrames,baseName)
+{
+ var timeinterval = animSpeed;
+ aebAnimeTimeOutB = app.setInterval("aebAnimeTimeOutB.count++;\r"
+ + "if (aebAnimeTimeOutB.count > "+nFrames
+ +"|| !aebAnimeTimeOutB.running )"
+ +" app.clearInterval(aebAnimeTimeOutB);\r"
+ + "else { if (aebAnimeTimeOutB.count == "
+ +nFrames+") getxBld('"+baseName+"\#1').state=false;\r"
+ + "else { getxBld('"+baseName+"\#'"
+ + "+(aebAnimeTimeOutB.start-%
+aebAnimeTimeOutB.count+1)).state=false;\r"
+ + "getxBld('"+baseName+"\#'"
+ + "+(aebAnimeTimeOutB.start-%
+aebAnimeTimeOutB.count)).state=true;}}",
+ timeinterval);
+ aebAnimeTimeOutB.running = true;
+ aebAnimeTimeOutB.start = nFrames;
+ aebAnimeTimeOutB.count=0;
+}
+function aebAnimeLayersClear(animSpeed,nFrames,baseName)
+{
+ aebAnimeTimeOutF.running = false;
+ aebAnimeTimeOutB.running = false;
+ clearFrames = app.setTimeOut(
+ "hideAllFrames("+nFrames+",\""+baseName+"\")",animSpeed);
+ var timeinterval = animSpeed;
+ aebAnimeTimeOutC = app.setInterval("aebAnimeTimeOutC.count++;\r"
+ + "if (aebAnimeTimeOutC.count >= "+nFrames
+ +") app.clearInterval(aebAnimeTimeOutC);\r"
+ + "else { getxBld('"+baseName+"\#'"
+ +"+(aebAnimeTimeOutC.start-aebAnimeTimeOutC.count)).state=false;}",
+ timeinterval);
+ aebAnimeTimeOutC.start = nFrames;
+ aebAnimeTimeOutC.count=0;
+}
+function hideAllFrames(n, baseName)
+{
+ for ( var i=1; i <= n ; i++ )
+ getxBld(baseName+"\#"+i).state=false;
+}
+\end{insDLJS}
+\endinput
+%%
+%% End of file `aeblayers.def'.
diff --git a/texmf-dist/tex/latex/aeb-pro/aebpro.cfg b/texmf-dist/tex/latex/aeb-pro/aebpro.cfg
new file mode 100644
index 00000000..19f0e8e1
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/aebpro.cfg
@@ -0,0 +1,12 @@
+%
+% AeB Pro Configuration file
+%
+\ExecuteOptionsX{driver=dvips}
+% In the defintion below, place the absolute path to the
+% icon file btn\_anime\_icons1.pdf found in the icons subfolder of this current
+% folder. For example,
+% \renewcommand{\pathToBtnCtrlIcons}
+% {C:/Users/Public/Documents/My TeX Files/tex/latex/aeb_pro/icons}
+% replacing the path above to the correct one on your file system.
+%
+\renewcommand{\pathToBtnCtrlIcons}{}
diff --git a/texmf-dist/tex/latex/aeb-pro/aebpro.def b/texmf-dist/tex/latex/aeb-pro/aebpro.def
new file mode 100644
index 00000000..a94a39a8
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/aebpro.def
@@ -0,0 +1,1237 @@
+%%
+%% This is file `aebpro.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,aebpro')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@tfor\aeb@windowopts:={{fit}{FitWindow}}{{center}{CenterWindow}}%
+ {{fullscreen}{FullScreen}}{{showtitle}{DisplayDocTitle}}\do
+{%
+ \expandafter\getargsii\aeb@windowopts
+ \edef\temp@expand@def{%
+ \noexpand\define@key{aebWindowOpts}{\aeb@argi}[true]{%
+ \noexpand\def\csname aeb@windowopts\aeb@argii\endcsname{%
+ /\aeb@argii\space##1}%
+ }%
+ }\temp@expand@def
+ \csarg\let{aeb@windowopts\aeb@argii}\@empty
+}
+\newcommand{\setWindowOptions}[1]{\cxkvsetkeys{aebWindowOpts}{#1}}
+\@tfor\aeb@uiopts:={{hidetoolbar}{HideToolbar}}
+ {{hidemenubar}{HideMenubar}}{{hidewindowui}{HideWindowUI}}\do{%
+ \expandafter\getargsii\aeb@uiopts
+ \edef\temp@expand@def{%
+ \noexpand\define@key{aebUIOpts}{\aeb@argi}[true]%
+ {%
+ \noexpand\edef\csname aeb@uiopts\aeb@argii\endcsname{%
+ /\aeb@argii\space##1}%
+ }%
+ }\temp@expand@def
+ \csarg\let{aeb@uiopts\aeb@argii}\@empty
+}
+\newcommand{\setUIOptions}[1]{\cxkvsetkeys{aebUIOpts}{#1}}
+\define@choicekey+{aebLayoutMag}{navitab}{UseNone,UseOutlines,%
+ UseThumbs,FullScreen,UseOC,UseAttachments}[UseNone]{%
+ \def\aeb@layoutMagNaviTab{#1}%
+}{\PackageWarning{aeb}{Bad choice for PageLayout, permissible values
+ are UseNone, UseOutlines, UseThumbs, FullScreen,%
+ UseOC, UseAttachments. Try again}}
+\let\aeb@layoutMagNaviTab\@empty
+\define@choicekey+{aebLayoutMag}{pagelayout}{SinglePage,OneColumn,%
+ TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight}[SinglePage]{%
+ \def\aeb@layoutMagPageLayout{#1}%
+}{\PackageWarning{aeb}{Bad choice for PageLayout, permissible values
+ are SinglePage, OneColumn, TwoColumnLeft, TwoColumnRight,
+ TwoPageLeft,TwoPageRight. Try again}}
+\let\aeb@layoutMagPageLayout\@empty
+\define@choicekey+{aebLayoutMag}{mag}[\val\nr]%
+ {ActualSize,FitPage,FitWidth,FitHeight,FitVisible}[FitPage]%
+{%
+ \ifcase\nr\relax
+ \edef\aeb@layoutMagMag{\dl@actualsize}\or
+ \def\aeb@layoutMagMag{\dl@fitpage}\or
+ \def\aeb@layoutMagMag{\dl@fitwidth}\or
+ \def\aeb@layoutMagMag{\dl@fitheight}\or
+ \def\aeb@layoutMagMag{\dl@fitvisible}\fi
+}{\setlength\@tempdima{1pt*\ratio{\val pt}{100pt}}%
+ \edef\aeb@layoutMagMag{\dl@mag{\strip@pt\@tempdima}}}
+\let\aeb@layoutMagMag\@empty
+\define@key{aebLayoutMag}{openatpage}[1]{\def\aeb@openatpageChoice{#1}%
+ \ifpdfmarkup\def\aeb@layoutMagPage{Page#1}\else
+ \def\aeb@layoutMagPage{#1}\fi}
+\let\aeb@openatpageChoice\@empty
+\let\aeb@layoutMagPage\@empty
+\newcommand{\setLayoutMag}[1]{\setkeys{aebLayoutMag}{openatpage=1}%
+ \cxkvsetkeys{aebLayoutMag}{#1}}
+\define@key{aebDeclareInitView}{layoutmag}
+ {\def\aebDeclareInitView@layoutmag{#1}}
+\let\aebDeclareInitView@layoutmag\@empty
+\define@key{aebDeclareInitView}{windowoptions}
+ {\def\aebDeclareInitView@windowoptions{#1}}
+\let\aebDeclareInitView@windowoptions\@empty
+\define@key{aebDeclareInitView}{uioptions}
+ {\def\aebDeclareInitView@uioptions{#1}}
+\let\aebDeclareInitView@uioptions\@empty
+\newcommand{\DeclareInitView}[1]{%
+ \setkeys{aebDeclareInitView}{#1}%
+ \edef\temp@expand@sets{%
+ \noexpand\setLayoutMag{\aebDeclareInitView@layoutmag}%
+ \noexpand\setWindowOptions{\aebDeclareInitView@windowoptions}%
+ \noexpand\setUIOptions{\aebDeclareInitView@uioptions}%
+ }\temp@expand@sets
+}
+\providecommand{\taggedPDF}{\def\aeb@TaggedPDF{true}}
+\let\aeb@TaggedPDF\@empty
+\@onlypreamble\taggedPDF
+\let\aeb@addOpenAction\@empty
+\let\aeb@addActionCode\@empty
+\let\aeb@addOpenActionArg\@empty
+\def\AEB@psMrk{[\space}
+\let\aebpopentoks\@empty
+\let\aebpFA\aebp@NO
+\def\aebp@rightDelimiters{}
+\let\@pdfstartview\@empty
+\let\@pdfstartpage\@empty
+\renewcommand{\addToDocOpen}[1]{%
+ \ifx\aebpFA\aebp@NO
+ \gdef\aeb@addOpenActionArg{#1}%
+ \g@addto@macro\aebpopentoks{#1}%
+ \def\aeb@addActionCode{\bgroup\makeJSspecials\dl@preProcDefns
+\ifpdfmarkup
+ \literalps@out{\AEB@psMrk/_objdef {pubAddToDocOpen}
+ /type/dict /OBJ pdfmark^^J%
+ \AEB@psMrk{pubAddToDocOpen}
+ << \aebpopentoks
+ \ifx\dev@addOpenAction\@empty\else
+ \ifx\aeb@addOpenActionArg\@empty\else^^J%
+ \dev@addOpenAction\fi\fi\aebp@rightDelimiters
+ >> /PUT pdfmark}%
+ \gdef\pubAddToDocOpen{{pubAddToDocOpen}}%
+ \xdef\aeb@addOpenAction{/Next \pubAddToDocOpen}%
+\else\ifpdf
+ \immediate\pdfobj{<< \aebpopentoks
+ \ifx\dev@addOpenAction\@empty\else
+ \ifx\aeb@addOpenActionArg\@empty\else^^J%
+ \dev@addOpenAction\fi\fi\aebp@rightDelimiters
+ >>}\xdef\pubAddToDocOpen{\the\pdflastobj\space 0 R}%
+ \xdef\aeb@addOpenAction{/Next \pubAddToDocOpen}%
+\else\ifxetex
+ \immediate\@pdfm@mark{obj @pubAddToDocOpen << \aebpopentoks
+ \ifx\dev@addOpenAction\@empty\else
+ \ifx\aeb@addOpenActionArg\@empty\else^^J%
+ \dev@addOpenAction\fi\fi\aebp@rightDelimiters >> }%
+ \gdef\pubAddToDocOpen{@pubAddToDocOpen}%
+ \xdef\aeb@addOpenAction{/Next \pubAddToDocOpen}%
+\fi\fi\fi\egroup}%
+ \global\let\aebpFA\aebp@YES
+ \else
+ \edef\aebp@dljstmp{\aebp@rightDelimiters}%
+ \xdef\aebp@rightDelimiters{\aebp@dljstmp >> }%
+ \g@addto@macro\aebpopentoks{/Next << #1 }%
+ \fi
+}
+\let\additionalOpenAction\addToDocOpen
+\let\dev@addOpenAction\@empty
+\let\dev@addOpenActionArg\@empty
+\let\dev@addActionCode\@empty
+\let\aebpFAP\aebp@NO
+\let\aebpopentoksP\@empty
+\def\aebp@rightDelimitersP{}
+\newcommand{\dev@addToDocOpen}[1]{%
+ \ifx\aebpFAP\aebp@NO
+ \gdef\dev@addOpenActionArg{#1}%
+ \g@addto@macro\aebpopentoksP{#1}%
+ \def\dev@addActionCode{\bgroup\makeJSspecials\dl@preProcDefns
+\ifpdfmarkup
+ \literalps@out{\AEB@psMrk/_objdef {privAddDocOpen}
+ /type/dict /OBJ pdfmark^^J%
+ \AEB@psMrk{privAddDocOpen} << \aebpopentoksP
+ \aebp@rightDelimitersP\space>> /PUT pdfmark}%
+ \gdef\privAddDocOpen{{privAddDocOpen}}%
+ \gdef\dev@addOpenAction{/Next {privAddDocOpen}}%
+\else\ifpdf
+ \immediate\pdfobj{<< \aebpopentoksP
+ \aebp@rightDelimitersP\space>>}%
+ \xdef\privAddDocOpen{\the\pdflastobj\space 0 R}%
+ \xdef\dev@addOpenAction{/Next \privAddDocOpen}%
+\else\ifxetex
+ \immediate\@pdfm@mark{obj @privAddToDocOpen << \aebpopentoksP
+ \aebp@rightDelimitersP\space>> }%
+ \gdef\privAddDocOpen{@privAddToDocOpen}%
+ \gdef\dev@addOpenAction{/Next \privAddDocOpen}%
+\fi\fi\fi\egroup}%
+ \global\let\aebpFAP\aebp@YES
+ \else
+ \edef\aebp@dljstmpP{\aebp@rightDelimitersP}%
+ \xdef\aebp@rightDelimitersP{\aebp@dljstmpP >> }%
+ \g@addto@macro\aebpopentoksP{/Next << #1 }%
+ \fi
+}
+\def\aebp@warnonly{warnonly}
+\newcommand{\aebp@app@title}{AcroTeX Message}
+\newcommand{\requiresVersion}[2][]{\def\aebp@argi{#1}%
+ \def\requiredVersionNumber{#2}\dev@addToDocOpen{\JS{%
+\ifx\aebp@argi\aebp@warnonly
+ var warnOnly=true;
+\else
+ var warnOnly=false;
+\fi
+ var reqVerMsgC=("\aeb@requiredVersionMsg\space")
+ + ((warnOnly) ? ("\aeb@reqVerMsgW") : ("\aeb@reqVerMsgC"));
+ var reqVerMsgR=("\aeb@requiredVersionMsgRedirect\space")
+ + ((warnOnly) ? ("\aeb@reqVerMsgW") : ("\aeb@reqVerMsgR"));
+ if( app.viewerVersion < #2 ) {
+ var viewerPassedReq=false;
+ try {
+ if (this.external) {
+ app.alert({cTitle:"\aebp@app@title", cMsg: reqVerMsgR});
+ if (!warnOnly) {
+ if (app.viewerVersion >= 7.0)
+ app.launchURL("\aebAlternateDocumentURL");
+ else
+ this.getURL("\aebAlternateDocumentURL",false);
+ }
+ } else {
+ app.alert({cTitle:"\aebp@app@title", cMsg: reqVerMsgC});
+ if (!warnOnly) this.closeDoc(true);
+ }
+ } catch(e) {}
+ } else {
+ var viewerPassedReq=true;
+ \aeb@ViewerPassedRequirementJS
+ }
+}}}
+\def\requiredVersionNumber{7}
+\newcommand{\alternateDocumentURL}[1]{\def\aebAlternateDocumentURL{#1}}
+\alternateDocumentURL{http://www.acrotex.net/}
+\newcommand{\requiredVersionMsg}[1]{\def\aeb@requiredVersionMsg{#1}}
+\requiredVersionMsg{This document requires Adobe Reader or Acrobat,
+ version \requiredVersionNumber\space or later.}
+\newcommand{\requiredVersionResult}[3]{\def\aeb@reqVerMsgC{#1}%
+ \def\aeb@reqVerMsgR{#2}\def\aeb@reqVerMsgW{#3}}
+\requiredVersionResult{The document is now closing.}
+ {Redirecting browser to an alternate page.}
+ {Some features of this document may not work properly.}
+\newcommand{\requiredVersionMsgRedirect}[1]{%
+ \def\aeb@requiredVersionMsgRedirect{#1}}
+\requiredVersionMsgRedirect{%
+ This document requires Adobe Reader or Acrobat,
+ version \requiredVersionNumber\space or later.}
+\newcommand{\afterRequirementPassedJS}[1]{%
+ \def\aeb@ViewerPassedRequirementJS{#1}}
+\let\aeb@ViewerPassedRequirementJS\@empty
+\def\aeb@SetCatalog{%
+ \ifx\aebpFA\aebp@NO\addToDocOpen{\JS{;}}\fi
+ \ifx\aebpFAP\aebp@YES\dev@addActionCode\fi
+ \aeb@addActionCode
+\def\aeb@CatEntry{/ViewerPreferences<<%
+ \ifx\aeb@windowoptsFitWindow\@empty\else
+ \aeb@windowoptsFitWindow\fi
+ \ifx\aeb@windowoptsCenterWindow\@empty\else
+ \aeb@windowoptsCenterWindow\fi
+ \ifx\aeb@windowoptsDisplayDocTitle\@empty\else
+ \aeb@windowoptsDisplayDocTitle\fi
+ \ifx\aeb@uioptsHideToolbar\@empty\else
+ \aeb@uioptsHideToolbar\fi
+ \ifx\aeb@uioptsHideMenubar\@empty\else
+ \aeb@uioptsHideMenubar\fi
+ \ifx\aeb@uioptsHideWindowUI\@empty\else
+ \aeb@uioptsHideWindowUI\fi
+ \ifx\aeb@layoutMagNaviTab\@empty\else
+ /NonFullScreenPageMode/\aeb@layoutMagNaviTab\fi
+>>%
+ \ifx\aeb@TaggedPDF\@empty\else
+ /MarkInfo<</Marked true>>\fi
+ \ifx\aeb@layoutMagPageLayout\@empty\else
+ /PageLayout/\aeb@layoutMagPageLayout\fi
+ \ifx\aeb@windowoptsFullScreen\@empty
+ \ifx\aeb@layoutMagNaviTab\@empty\else
+ /PageMode/\aeb@layoutMagNaviTab\fi
+ \else/PageMode/FullScreen\fi
+\ifpdfmarkup
+ \ifx\aeb@layoutMagPage\@empty
+ \ifx\aeb@layoutMagMag\@empty
+ /OpenAction \pubAddToDocOpen
+ \else/OpenAction<</D[{Page1}\aeb@layoutMagMag]%
+ /S/GoTo\aeb@addOpenAction>>\fi
+ \else
+ \ifx\aeb@layoutMagMag\@empty
+ /OpenAction<</D[{\aeb@layoutMagPage}/Fit]%
+ /S/GoTo\aeb@addOpenAction>>\else
+ /OpenAction<</D[{\aeb@layoutMagPage}\aeb@layoutMagMag]%
+ /S/GoTo\aeb@addOpenAction>>\fi
+ \fi
+\else\ifpdf
+ \ifx\aeb@layoutMagPage\@empty
+ \ifx\aeb@layoutMagMag\@empty
+ /OpenAction \pubAddToDocOpen
+ \else/OpenAction <<%
+ /D[\pdfpageref1\space\space 0 R\aeb@layoutMagMag]%
+ /S/GoTo\aeb@addOpenAction>>\fi
+ \else
+ \ifx\aeb@layoutMagMag\@empty
+ /OpenAction<</D[\expandafter
+ \pdfpageref\aeb@layoutMagPage\space\space 0 R/Fit]%
+ /S/GoTo\aeb@addOpenAction>>\else
+ /OpenAction<</D[\expandafter\pdfpageref
+ \aeb@layoutMagPage\space\space 0 R\aeb@layoutMagMag]%
+ /S/GoTo\aeb@addOpenAction>>\fi
+ \fi
+\else\ifxetex
+ \ifx\aeb@layoutMagPage\@empty
+ \ifx\aeb@layoutMagMag\@empty
+ /OpenAction \pubAddToDocOpen
+ \else/OpenAction<</D[@page1 \aeb@layoutMagMag]%
+ /S/GoTo\aeb@addOpenAction>>\fi
+ \else
+ \ifx\aeb@layoutMagMag\@empty
+ /OpenAction<</D[@page\aeb@layoutMagPage\space/Fit]%
+ /S/GoTo\aeb@addOpenAction>>\else
+ /OpenAction<<%
+ /D[@page\aeb@layoutMagPage\space\aeb@layoutMagMag]%
+ /S/GoTo\aeb@addOpenAction>>\fi
+ \fi
+\fi\fi\fi}%
+ \ifpdfmarkup\literalps@out{\AEB@psMrk{Catalog}
+ <<\aeb@CatEntry>> /PUT pdfmark}\else
+ \ifpdf\pdfcatalog{\aeb@CatEntry}\else
+ \ifxetex\immediate\@pdfm@mark{put @catalog <<\aeb@CatEntry>>}%
+ \fi\fi\fi
+}
+\AtBeginDocument{\aeb@SetCatalog}
+\newcommand{\setDefaultFS}[1]
+{%
+ \setkeys{aebDefFS}{Trans=Replace}\setkeys{aebDefFS}{#1}%
+ \makeatletter
+ \InputIfFileExists{fsprodef.js}{}{\PackageWarning{aeb_pro}
+ {Cannot find fsprodef.js, please run aeb_pro.ins again}}
+ \makeatother
+}
+\@onlypreamble\setDefaultFS
+\def\aeb@NoTransition{NoTransition}
+\define@choicekey+{aebDefFS}{Trans}
+{NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,%
+UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,%
+CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,%
+CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,%
+PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,%
+FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,%
+FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,%
+GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,%
+BlindsHorizontal,BlindsVertical,SplitHorizontalIn,%
+SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,%
+WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,%
+WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,%
+ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,%
+ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,%
+ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,%
+ZoomOutUp,CombHorizontal,CombVertical}[Replace]{%
+ \def\aeb@arg{#1}\ifx\aeb@arg\@empty
+ \let\aeb@fsTran\@empty\else
+ \ifx\aeb@arg\aeb@NoTransition
+ \def\aeb@fsTran{app.fs.defaultTransition = "";^^J}
+ \else
+ \def\aeb@fsTran{app.fs.defaultTransition = "#1";^^J}\fi\fi}
+{\PackageWarning{aeb}{Bad choice, try again. Meanwhile,
+ will use the default, Replace}%
+ \def\aeb@fsTran{app.fs.defaultTransition = "Replace";^^J}}
+\define@key{aebDefFS}{bgColor}[]{%
+ \def\aeb@arg{#1}\ifx\aeb@arg\@empty
+ \let\aeb@fsBGColor\@empty\else
+ \def\aeb@fsBGColor{app.fs.backgroundColor = #1;^^J}\fi}
+\let\aeb@fsBGColor\@empty
+\define@key{aebDefFS}{timeDelay}[]{%
+ \def\aeb@arg{#1}\ifx\aeb@arg\@empty
+ \let\aeb@fstimeDelay\@empty\else
+ \def\aeb@fstimeDelay{app.fs.timeDelay = #1;^^J}\fi}
+\let\aeb@fstimeDelay\@empty
+\define@boolkey{aebDefFS}{loop}[true]{%
+ \def\aeb@fsLoop{app.fs.loop = #1;^^J}}
+\let\aeb@fsLoop\@empty
+\define@choicekey+{aebDefFS}{cursor}{hidden,delay,visible}{%
+ \def\aeb@arg{#1}\ifx\aeb@arg\@empty
+ \let\aeb@fscursor\@empty\else
+ \def\aeb@fscursor{app.fs.cursor = cursor.#1;^^J}\fi
+}{\PackageWarning{aeb}{Bad choice for cursor, permissible values
+ are hidden, delay and visible. Try again}}
+\let\aeb@fscursor\@empty
+\define@boolkey{aebDefFS}{escape}[true]{%
+ \def\aeb@fsEscape{app.fs.escapeExits = #1;^^J}}
+\let\aeb@fsEscape\@empty
+\define@boolkey{aebDefFS}{clickAdv}[true]{%
+ \def\aeb@fsclickAdv{app.fs.clickAdvances = #1;^^J}}
+\let\aeb@fsclickAdv\@empty
+\define@boolkey{aebDefFS}{fullscreen}[true]{%
+ \def\aeb@windowoptsFullScreen{true}%
+}
+\let\aeb@fsFS\@empty
+\define@boolkey{aebDefFS}{useTimer}[true]{%
+ \def\aeb@fsuseTimer{app.fs.useTimer = #1;^^J}}
+\let\aeb@fsuseTimer\@empty
+\define@boolkey{aebDefFS}{usePageTiming}[true]{%
+ \def\aeb@fsusePageTiming{app.fs.usePageTiming = #1;^^J}}
+\let\aeb@fsusePageTiming\@empty
+\def\aebp@PageTransCnt{0}
+\def\aebp@Step@PageTransCnt{{\count0=\aebp@PageTransCnt\relax
+ \advance\count0by1\relax
+ \xdef\aebp@PageTransCnt{\the\count0 }}}
+\newcommand{\setPageTransition}[1]{%
+ \begingroup
+ \aebp@Step@PageTransCnt
+ \setkeys{aebTrans}{TransDur,Speed,#1}%
+ \edef\aeb@pagetranschoices{\aeb@Page@Dur
+ /Trans <<\aeb@Trans@Dur\aeb@TranChoice>>}%
+ \csarg{\xdef}{aeb@pagetransCodeL\aebp@PageTransCnt}{%
+ \ifpdfmarkup
+ \noexpand\literalps@out{\AEB@psMrk{ThisPage} <<
+ \aeb@pagetranschoices\space>> /PUT pdfmark}%
+ \else\ifpdf
+ \noexpand\global\noexpand\pdfpageattr=\noexpand\expandafter
+ {\noexpand\the\noexpand\pdfpageattr\aeb@pagetranschoices}%
+ \else\ifxetex
+ \noexpand\immediate\noexpand\@pdfm@mark{put @thispage <<
+ \aeb@pagetranschoices\space >>}
+ \fi\fi\fi
+ }
+ \ifx\aeb@TranChoice\@empty\else
+ \csarg\xdef{aebpP@geTr@nsP@ge\arabic{page}}%
+ {\noexpand\@nameuse{aeb@pagetransCodeL\aebp@PageTransCnt}}%
+ \fi
+ \endgroup
+}
+\newcommand{\setPageTransitionAt}[2]{%
+ \begingroup
+ \aebp@Step@PageTransCnt
+ \setkeys{aebTrans}{#2}%
+ \edef\aeb@pagetranschoices{\aeb@Page@Dur
+ /Trans <<\aeb@Trans@Dur\aeb@TranChoice>>}%
+ \csarg{\xdef}{aeb@pagetransCode\aebp@PageTransCnt}{%
+ \ifpdfmarkup
+ \noexpand\literalps@out{\AEB@psMrk{ThisPage} <<
+ \aeb@pagetranschoices\space>> /PUT pdfmark}%
+ \else\ifpdf
+ \noexpand\global\noexpand\pdfpageattr=\noexpand\expandafter
+ {\noexpand\the\noexpand\pdfpageattr\aeb@pagetranschoices}%
+ \else\ifxetex
+ \noexpand\immediate\noexpand\@pdfm@mark{put @thispage <<
+ \aeb@pagetranschoices\space>>}
+ \fi\fi\fi
+ }
+ \ifx\aeb@TranChoice\@empty\else
+ \expandafter\aebp@rse\expandafter{#1}%
+ \edef\shakeandbake{%
+ \noexpand\@for\noexpand\@mypage:=\the\aeb@parsetoks}%
+ \shakeandbake \do {%
+ \csarg\xdef{aebpP@geTr@nsP@ge\@mypage}%
+ {\noexpand\@nameuse{aeb@pagetransCode\aebp@PageTransCnt}}%
+ }%
+ \fi
+ \endgroup
+}
+\define@choicekey+{aebTrans}{Trans}
+{NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,%
+UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,%
+CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,%
+CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,%
+PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,%
+FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,%
+FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,%
+GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,%
+BlindsHorizontal,BlindsVertical,SplitHorizontalIn,%
+SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,%
+WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,%
+WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,%
+ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,%
+ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,%
+ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,%
+ZoomOutUp,CombHorizontal,CombVertical}[Replace]%
+ {\edef\aeb@TranChoice{\csname aeb@Trans@#1\endcsname}%
+}{\PackageWarning{aeb}{Bad choice, try again}}
+\let\aeb@TranChoice\@empty
+\define@key{aebTrans}{TransDur}[]{\def\aeb@arg{#1}\ifx\aeb@arg\@empty
+ \let\aeb@Trans@Dur\@empty\else\def\aeb@Trans@Dur{/D #1}\fi}
+\let\aeb@Trans@Dur\@empty
+\define@choicekey+{aebTrans}{Speed}[\val\nr]%
+ {Slow,Medium,Fast}[Slow]{%dps/change 02/27/07
+ \ifcase\nr\relax
+ \let\aeb@Trans@Speed\@empty\or
+ \def\aeb@Trans@Speed{/D 0.666656}\or
+ \def\aeb@Trans@Speed{/D 0.333328}\fi
+}{\PackageWarning{aeb}{Bad choice for Speed, permissible values
+ are Slow, Medium and Fast. Try again}}
+\let\apb@apbTrans@Speed\@empty
+\define@key{aebTrans}{PageDur}[]{\def\aeb@arg{#1}\ifx\aeb@arg\@empty
+ \let\aeb@Page@Dur\@empty\else\def\aeb@Page@Dur{/Dur #1}\fi}
+\let\aeb@Page@Dur\@empty
+\def\aeb@Trans@NoTransition{}
+\def\aeb@Trans@SplitHorizontalIn{/Dm/H/M/I/S/Split}
+\def\aeb@Trans@SplitHorizontalOut{/Dm/H/M/O/S/Split}
+\def\aeb@Trans@SplitVerticalIn{/Dm/V/M/I/S/Split}
+\def\aeb@Trans@SplitVerticalOut{/Dm/V/M/O/S/Split}
+\def\aeb@Trans@BlindsHorizontal{/Dm/H/S/Blinds}
+\def\aeb@Trans@BlindsVertical{/Dm/V/S/Blinds}
+\def\aeb@Trans@BoxIn{/M/I/S/Box}
+\def\aeb@Trans@BoxOut{/M/O/S/Box}
+\def\aeb@Trans@WipeLeft{/Di 180/S/Wipe}
+\def\aeb@Trans@WipeRight{/Di 0/S/Wipe}
+\def\aeb@Trans@WipeDown{/Di 270/S/Wipe}
+\def\aeb@Trans@WipeUp{/Di 90/S/Wipe}
+\def\aeb@Trans@Dissolve{/S/Dissolve}
+\def\aeb@Trans@GlitterRight{/Di 0/S/Glitter}
+\def\aeb@Trans@GlitterDown{/Di 270/S/Glitter}
+\def\aeb@Trans@GlitterRightDown{/Di 315/S/Glitter}
+\def\aeb@Trans@Replace{/S/R}
+\def\aeb@Trans@FlyInRight{/Di 0/M/I/S/Fly}
+\def\aeb@Trans@FlyInLeft{/Di 180/M/I/S/Fly}
+\def\aeb@Trans@FlyInDown{/Di 270/M/I/S/Fly}
+\def\aeb@Trans@FlyInUp{/Di 90/M/I/S/Fly}
+\def\aeb@Trans@FlyOutRight{/Di 0/M/O/S/Fly}
+\def\aeb@Trans@FlyOutLeft{/Di 180/M/O/S/Fly}
+\def\aeb@Trans@FlyOutDown{/Di 270/M/O/S/Fly}
+\def\aeb@Trans@FlyOutUp{/Di 90/M/O/S/Fly}
+\def\aeb@Trans@FlyIn{/M/I/S/Fly}
+\def\aeb@Trans@FlyOut{/M/O/S/Fly}
+\def\aeb@Trans@PushLeft{/Di 180/S/Push}
+\def\aeb@Trans@PushRight{/Di 0/S/Push}
+\def\aeb@Trans@PushDown{/Di 270/S/Push}
+\def\aeb@Trans@PushUp{/Di 90/S/Push}
+\def\aeb@Trans@CoverLeft{/Di 180/S/Cover}
+\def\aeb@Trans@CoverRight{/Di 0/S/Cover}
+\def\aeb@Trans@CoverDown{/Di 270/S/Cover}
+\def\aeb@Trans@CoverUp{/Di 90/S/Cover}
+\def\aeb@Trans@CoverLeftDown{/Di 225.0/S/Cover}
+\def\aeb@Trans@CoverLeftUp{/Di 135.0/S/Cover}
+\def\aeb@Trans@CoverRightDown{/Di 315.0/S/Cover}
+\def\aeb@Trans@CoverRightUp{/Di 45.0/S/Cover}
+\def\aeb@Trans@UncoverLeft{/Di 180/S/Uncover}
+\def\aeb@Trans@UncoverRight{/Di 0/S/Uncover}
+\def\aeb@Trans@UncoverDown{/Di 270/S/Uncover}
+\def\aeb@Trans@UncoverUp{/Di 90/S/Uncover}
+\def\aeb@Trans@UncoverLeftDown{/Di 225.0/S/Uncover}
+\def\aeb@Trans@UncoverLeftUp{/Di 135.0/S/Uncover}
+\def\aeb@Trans@UncoverRightDown{/Di 315.0/S/Uncover}
+\def\aeb@Trans@UncoverRightUp{/Di 45.0/S/Uncover}
+\def\aeb@Trans@Fade{/S/Fade}
+\def\aeb@Trans@Random{/S/Random}
+\def\aeb@Trans@Blend{/S/Blend}
+\def\aeb@Trans@PushLeftDown{%
+ /S/Push/Directional/BiDir/Di 225.0/Curve/Easy}
+\def\aeb@Trans@PushLeftUp{%
+ /S/Push/Directional/BiDir/Di 135.0/Curve/Easy}
+\def\aeb@Trans@PushRightDown{%
+ /S/Push/Directional/BiDir/Di 315.0/Curve/Easy}
+\def\aeb@Trans@PushRightUp{%
+ /S/Push/Directional/BiDir/Di 45.0/Curve/Easy}
+\def\aeb@Trans@WipeLeftDown{%
+ /S/Wipe/Directional/BiDir/Di 225/Curve/Easy}
+\def\aeb@Trans@WipeLeftUp{%
+ /S/Wipe/Directional/BiDir/Di 135/Curve/Easy}
+\def\aeb@Trans@WipeRightDown%
+ {/S/Wipe/Directional/BiDir/Di 315/Curve/Easy}
+\def\aeb@Trans@WipeRightUp{%
+ /S/Wipe/Directional/BiDir/Di 45/Curve/Easy}
+\def\aeb@Trans@ZoomInDown{%
+ /S/ZoomIn/Directional/BiDir/Di 270.0/Curve/Easy}
+\def\aeb@Trans@ZoomInLeft{%
+ /S/ZoomIn/Directional/BiDir/Di 180.0/Curve/Easy}
+\def\aeb@Trans@ZoomInLeftDown{%
+ /S/ZoomIn/Directional/BiDir/Di 225.0/Curve/Easy}
+\def\aeb@Trans@ZoomInLeftUp{%
+ /S/ZoomIn/Directional/BiDir/Di 135.0/Curve/Easy}
+\def\aeb@Trans@ZoomInRight{%
+ /S/ZoomIn/Directional/BiDir/Di 0.0/Curve/Easy}
+\def\aeb@Trans@ZoomInRightDown{%
+ /S/ZoomIn/Directional/BiDir/Di 315.0/Curve/Easy}
+\def\aeb@Trans@ZoomInRightUp{%
+ /S/ZoomIn/Directional/BiDir/Di 45.0/Curve/Easy}
+\def\aeb@Trans@ZoomInUp{%
+ /S/ZoomIn/Directional/BiDir/Di 90.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutDown{%
+ /S/ZoomOut/Directional/BiDir/Di 270.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutLeft{%
+ /S/ZoomOut/Directional/BiDir/Di 180.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutLeftDown{%
+ /S/ZoomOut/Directional/BiDir/Di 225.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutLeftUp{%
+ /S/ZoomOut/Directional/BiDir/Di 135.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutRight{%
+ /S/ZoomOut/Directional/BiDir/Di 0.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutRightDown{%
+ /S/ZoomOut/Directional/BiDir/Di 315.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutRightUp{%
+ /S/ZoomOut/Directional/BiDir/Di 45.0/Curve/Easy}
+\def\aeb@Trans@ZoomOutUp{%
+ /S/ZoomOut/Directional/BiDir/Di 90.0/Curve/Easy}
+\def\aeb@Trans@CombHorizontal{%
+ /S/Comb/Directional/BiDir/Dm/H/Curve/Easy}
+\def\aeb@Trans@CombVertical{%
+ /S/Comb/Directional/BiDir/Dm/V/Curve/Easy}
+\def\canceleveryPageOpen{\global\@everyPageOpenfalse
+ \global\let\every@PageOpen\@empty}
+\def\canceleveryPageClose{\global\@everyPageClosefalse
+ \global\let\every@PageClose\@empty}
+\newenvironment{everyPageOpen}[1][]
+{\global\@everyPageOpentrue\@defineJS[#1]{\every@PageOpen}}
+{\end@defineJS
+ \ifnum\value{page}=1\relax
+ \gdef\ap@AddtoOpenJS{\thisPageAction{\JS{\every@PageOpen}}{}}%
+ \expandafter\aftergroup\expandafter\ap@AddtoOpenJS\fi
+}
+\newenvironment{everyPageClose}[1][]
+{\global\@everyPageClosetrue\@defineJS[#1]{\every@PageClose}}
+{\end@defineJS
+ \ifnum\value{page}=1\relax
+ \gdef\ap@AddtoCloseJS{\thisPageAction{}{\JS{\every@PageClose}}}%
+ \expandafter\aftergroup\expandafter\ap@AddtoCloseJS\fi
+}
+\let\every@PageOpen\@empty
+\let\every@PageClose\@empty
+\newenvironment{addJSToPageOpen}[1][]
+{\@defineJS[#1]{\addJST@PageOpen}}{\end@defineJS
+ \ifnum\value{page}=1\relax
+ \gdef\ap@AddtoOpenJS{\thisPageAction{\JS{\addJST@PageOpen}}{}}%
+ \expandafter\aftergroup\expandafter\ap@AddtoOpenJS\fi
+}
+\newenvironment{addJSToPageOpenAt}[2][]
+{\@@defineJS[#1]{addJST@PageOpenAt}{#2}}{\end@@defineJS
+ \ifnum\value{page}=1\relax\if\frstPageSpec\aebp@YES
+ \thisPageAction{\JS{\@nameuse{addJST@PageOpenAt1}}}{}\fi\fi
+}
+\newenvironment{addJSToPageClose}[1][]
+{\@defineJS[#1]{\addJST@PageClose}}{\end@defineJS
+ \ifnum\value{page}=1\relax
+ \gdef\ap@AddtoCloseJS{%
+ \thisPageAction{}{\JS{\addJST@PageClose}}}%
+ \expandafter\aftergroup\expandafter\ap@AddtoCloseJS\fi
+}
+\newenvironment{addJSToPageCloseAt}[2][]
+{\@@defineJS[#1]{addJST@PageCloseAt}{#2}}{\end@@defineJS
+ \ifnum\value{page}=1\relax\if\frstPageSpec\aebp@YES
+ \thisPageAction{}{\JS{\@nameuse{addJST@PageCloseAt1}}}\fi\fi
+}
+\let\addJST@PageOpen\@empty
+\let\addJST@PageClose\@empty
+\def\aebp@PageOpenCloseHandler{%
+ \@ifundefined{addJST@PageOpenAt\arabic{page}}%
+ {\global\let\thisOpenPageActionAt\@empty}%
+ {\gdef\thisOpenPageActionAt{%
+ \@nameuse{addJST@PageOpenAt\arabic{page}}}}%
+ \@ifundefined{addJST@PageCloseAt\arabic{page}}%
+ {\global\let\thisClosePageActionAt\@empty}%
+ {\gdef\thisClosePageActionAt{%
+ \@nameuse{addJST@PageCloseAt\arabic{page}}}}%
+ \aebPageAction{\thisOpenPageActionAt\addJST@PageOpen}%
+ {\thisClosePageActionAt\addJST@PageClose}%
+ \global\let\addJST@PageOpen\@empty
+ \global\let\addJST@PageClose\@empty
+}
+\def\aebp@PageTransHandler{\@ifundefined{aebpP@geTr@nsP@ge\arabic{page}}
+ {}{\@nameuse{aebpP@geTr@nsP@ge\arabic{page}}}}
+\AddToShipoutPicture{\aebp@PageOpenCloseHandler
+ \aebp@PageTransHandler}
+\newenvironment{@@defineJS}[3][]
+{%
+ \gdef\argType{#2}\gdef\defineJSArg{#3}\JStoks={}%
+ \def\verbatim@processline
+ {%
+ \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}%
+ \global\JStoks=\expandafter{\JS@temp}%
+ }%
+ \let\do\@makeother\dospecials\catcode`\^^M\active
+ #1%
+ \verbatim@start
+}{%
+ \expandafter\aebp@rse\expandafter{\defineJSArg}%
+ \edef\shakeandbake{%
+ \noexpand\@for\noexpand\@mytoks:=\the\aeb@parsetoks}%
+ \aeb@parsecnt=0 \shakeandbake \do {%
+ \ifnum\aeb@parsecnt=0
+ \edef\firsttok{\@mytoks}%
+ \csarg\xdef{\argType\@mytoks}{\the\JStoks}%
+ \else
+ \edef\letsmakelet{\global\let\expandafter\noexpand
+ \csname\argType\@mytoks\endcsname=\expandafter\noexpand
+ \csname\argType\firsttok\endcsname}%
+ \letsmakelet
+ \fi
+ \advance\aeb@parsecnt1\relax
+ }%
+}
+\newif\ifaeb@PageOpen
+\newif\ifaeb@PageClose
+\newif\if@everyPageOpen\@everyPageOpenfalse
+\newif\if@everyPageClose\@everyPageClosefalse
+\newcommand\aebPageAction[3][ThisPage]{%
+ \let\ispageactions=0\aeb@PageOpenfalse\aeb@PageClosefalse
+ \def\@aebOpen{#2}%
+ \if1\@aebOpen1%
+ \if@everyPageOpen
+ \aeb@PageOpentrue\let\ispageactions=1%
+ \def\@aebOpen{/O << \JS{\every@PageOpen#2} >>}%
+ \fi
+ \else
+ \let\ispageactions=1%
+ \aeb@PageOpentrue
+ \def\@aebOpen{/O << \JS{\every@PageOpen#2} >>}%
+ \fi
+ \def\@aebClose{#3}%
+ \if1\@aebClose1%
+ \if@everyPageClose
+ \aeb@PageClosetrue\let\ispageactions=1%
+ \def\@aebClose{/C << \JS{\every@PageClose#3} >>}%
+ \fi
+ \else
+ \let\ispageactions=1%
+ \aeb@PageClosetrue
+ \def\@aebClose{/C << \JS{\every@PageClose#3} >>}%
+ \fi
+ \if@everyPageOpen\aeb@PageOpentrue\let\ispageactions=1\fi
+ \if@everyPageClose\@everyPageClosetrue\let\ispageactions=1\fi
+ \if\ispageactions1%
+ \xdef\aebp@PageActionCode{/AA <<
+ \ifaeb@PageOpen\@aebOpen\space\fi
+ \ifaeb@PageClose\@aebClose\space\fi >>}
+ \ifnum\value{page}=1\relax\else
+ \ifpdfmarkup\literalps@out{\AEB@psMrk{#1} <<
+ \aebp@PageActionCode\space >> /PUT pdfmark}\else
+ \ifpdf\global\pdfpageattr=\expandafter
+ {\aebp@PageActionCode}\else
+ \ifxetex\@pdfm@mark{put @thispage <<
+ \aebp@PageActionCode\space>>}\fi\fi\fi
+ \fi
+ \fi
+}
+\def\aeb@exiii{\expandafter\expandafter\expandafter}
+\let\ahrefexafter\aeb@exiii
+\def\atPage#1{\@ifundefined{r@#1}{1}
+ {\aeb@exiii\@secondoffive\csname r@#1\endcsname}}
+\def\labelRef#1{\@ifundefined{r@#1}{Doc-Start}
+ {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}}
+\newtoks\aeb@parsetoks
+\newcount\aeb@parsecnt
+\def\ap@gobtonil#1\@nil{}
+\def\ap@gettonil#1\@nil{\def\to@nilarg{#1}}
+\def\ap@ifspc{\ifx\@let@token\@sptoken
+ \let\ap@next\ap@xifspc\else
+ \let\ap@next\ap@gettonil\fi\ap@next}
+\begingroup
+\def\:{\ap@xifspc}
+\expandafter\gdef\: {\futurelet\@let@token\ap@ifspc}
+\endgroup
+\def\ap@strpspcs{\futurelet\@let@token\ap@ifspc}
+\def\ap@pgrngLabelsInPream{\@ifundefined{aebLastPage}
+ {\PackageWarning{aeb_pro}{The \string\atPage\space
+ command is not supported\MessageBreak in the preamble}}{}}
+\def\aeb@removelastcomma#1,\@nil{\aeb@parsetoks={#1}}
+\def\aebp@rse#1{\global\let\frstPageSpec\aebp@NO
+ \aeb@parsetoks={}\aeb@parse#1,\relax}
+\def\aeb@parse{\@ifnextchar\relax
+ {\expandafter\aeb@removelastcomma\the\aeb@parsetoks\@nil}
+ {\aeb@@parse}}
+\def\aeb@@parse#1,{\aeb@@@parse#1-\@nil}
+\def\aeb@@@parse#1-#2\@nil{%
+ \def\argi{#2}\ifx\argi\@empty\def\aeb@next{\aeb@@@@parse{#1}}\else
+ \def\aeb@next{\aeb@@@@@parse#1-#2}\fi\aeb@next}
+\def\aeb@@@@parse#1{%single page #1
+ \@ifnextchar\atPage{\ap@pgrngLabelsInPream\ap@gobtonil}
+ {\ap@gobtonil}#1\@nil
+ \aeb@parsecnt=#1\relax
+ \edef\edefaeb@parsetoks{\the\aeb@parsetoks\the\aeb@parsecnt,}%
+ \aeb@parsetoks=\expandafter{\edefaeb@parsetoks}%
+ \ifnum\aeb@parsecnt=1\relax\global\let\frstPageSpec\aebp@YES\fi
+ \aeb@parse}
+\def\aeb@@@@@parse#1-#2-{\def\aeb@lowerlimit{#1}\def\aeb@upperlimit{#2}%
+ % range argument from #1 to \csname aebLastPage\endcsname
+ \ifx\aeb@upperlimit\@empty
+ \@ifundefined{aebLastPage}{\aeb@parsecnt=#1}
+ {\expandafter\aeb@parsecnt\expandafter=
+ \csname aebLastPage\endcsname}%
+ \else % page range #1 to #2, switch the two if #2 < #1
+ \aeb@parsecnt=\aeb@lowerlimit\relax
+ \edef\aeb@lowerlimit{\the\aeb@parsecnt}
+ \aeb@parsecnt=\aeb@upperlimit\relax
+ \ifnum\aeb@parsecnt<\aeb@lowerlimit\relax
+ \aeb@parsecnt=\aeb@lowerlimit\relax
+ \def\aeb@lowerlimit{#2}%
+ \def\aeb@upperlimit{#1}%
+ \fi
+ \fi
+ \@ifnextchar\atPage{\ap@pgrngLabelsInPream\ap@gobtonil}
+ {\ap@gobtonil}#1\@nil
+ \@ifnextchar\atPage{\ap@pgrngLabelsInPream\ap@gobtonil}
+ {\ap@gobtonil}#2\@nil
+ \advance\aeb@parsecnt1\relax
+ \edef\aeb@upperlimit{\the\aeb@parsecnt}%
+ \aeb@parsecnt=\aeb@lowerlimit\relax
+ \ifnum\aeb@parsecnt=1\relax\global\let\frstPageSpec\aebp@YES\fi
+ \loop
+ \edef\edefaeb@parsetoks{\the\aeb@parsetoks\the\aeb@parsecnt,}%
+ \aeb@parsetoks=\expandafter{\edefaeb@parsetoks}%
+ \advance\aeb@parsecnt1\relax
+ \ifnum\aeb@parsecnt < \aeb@upperlimit\relax\repeat
+ \aeb@parse}
+\@ifpackageloaded{insdljs}{%
+ \newenvironment{fs@willClose}
+ {\@defineJS{\fs@will@Close}}
+ {\end@defineJS}
+ \let\fs@will@Close\@empty
+}{%
+ \newenvironment{willClose}
+ {\@defineJS{\will@Close}}
+ {\end@defineJS}
+ \let\will@Close\@empty
+ \newenvironment{fs@willClose}
+ {\@defineJS{\fs@will@Close}}
+ {\end@defineJS}
+ \let\fs@will@Close\@empty
+ \newenvironment{willSave}
+ {\@defineJS{\will@Save}}
+ {\end@defineJS}
+ \let\will@Save\@empty
+ \newenvironment{didSave}
+ {\@defineJS{\did@Save}}
+ {\end@defineJS}
+ \let\did@Save\@empty
+ \newenvironment{willPrint}
+ {\@defineJS{\will@Print}}
+ {\end@defineJS}
+ \let\will@Print\@empty
+ \newenvironment{didPrint}
+ {\@defineJS{\did@Print}}
+ {\end@defineJS}
+ \let\did@Print\@empty
+}
+\let\developer@will@Close\@empty
+\let\developer@will@Save\@empty
+\let\developer@did@Save\@empty
+\let\developer@will@Print\@empty
+\let\developer@did@Print\@empty
+\newcommand\@setDocActions{%
+ \edef\test@will@Close{%
+ \fs@will@Close\will@Close\developer@will@Close}%
+ \edef\test@will@Save{\will@Save\developer@will@Save}%
+ \edef\test@did@Save{\did@Save\developer@did@Save}%
+ \edef\test@will@Print{\will@Print\developer@will@Print}%
+ \edef\test@did@Print{\did@Print\developer@did@Print}%
+ \def\aebp@DocActionsCode{/AA << %
+ \ifx\test@will@Close\@empty\else/WC <<
+ \JS{\fs@will@Close\will@Close\developer@will@Close} >>\fi
+ \ifx\test@will@Save\@empty\else/WS <<
+ \JS{\will@Save\developer@will@Save} >>\fi
+ \ifx\test@did@Save\@empty\else/DS <<
+ \JS{\did@Save\developer@did@Save} >>\fi
+ \ifx\test@will@Print\@empty\else/WP <<
+ \JS{\will@Print\developer@will@Print} >>\fi
+ \ifx\test@did@Print\@empty\else/DP <<
+ \JS{\did@Print\developer@did@Print} >>\fi
+ >>
+ }
+ \ifpdfmarkup\literalps@out{\AEB@psMrk{Catalog}
+ << \aebp@DocActionsCode\space>> /PUT pdfmark}\else
+ \ifpdf\pdfcatalog{\aebp@DocActionsCode}\else
+ \ifxetex\immediate
+ \@pdfm@mark{put @catalog <<\aebp@DocActionsCode\space>>}\fi
+ \fi\fi
+}
+\AtBeginDocument{\@setDocActions}
+\def\aref(#1){\csname aeb@aDescript@#1\endcsname}
+\def\aeb@initAttachWrite{%
+ \newwrite \aeb@attachmentswrite
+ \immediate\openout \aeb@attachmentswrite \jobname_attach.cut
+ \let\verbatim@out\aeb@attachmentswrite
+ \aeb@IWVO{\string\begin{execJS}{aebpro_attach}}%
+ {\lccode`P=`\{\lowercase{\aeb@IWVO{try P}}}%
+}
+\newcommand{\prjInputUser}[1]{\input{#1}}
+\newcommand{\prjIncludeUser}[1]{\include{#1}}
+\newcommand{\addtoOptAttachments}[1]{%
+ \g@addto@macro\AP@addtoAttachments{,#1}}
+\newcommand{\getcNameFromFileName}[1]{\@nameuse{descrip4#1}}
+\def\AP@addtoAttachments{}
+\def\jsstrsps{replace(/^\string\s*/, "")}
+\def\jsstrdotsp{replace(/\string\.\string\s*/g, ".")}
+\ifoptattachments
+ \def\AP@writeOptAttach{%
+ \newwrite\AP@OptAttachlist
+ \immediate\openout \AP@OptAttachlist \jobname_oa.cut
+ \immediate\write\AP@OptAttachlist{\string\def\string
+ \APOptAttachments{\AP@addtoAttachments}}
+ \immediate\closeout\AP@OptAttachlist}
+ \AtEndDocument{\AP@writeOptAttach}
+ \def\AP@pathInput#1{%
+ \addtoOptAttachments{#1}\prjInputUser{#1}}
+ \def\AP@pathInclude#1{%
+ \addtoOptAttachments{#1.tex}\prjIncludeUser{#1}}
+ \InputIfFileExists{\jobname_oa.cut}{%
+ \def\AP@next{\edef\aeb@attachments
+ {\aeb@attachments\APOptAttachments}}%
+ }{\let\AP@next\relax}
+ \AP@next
+\else
+ \def\AP@pathInput#1{\prjInputUser{#1}}
+ \def\AP@pathInclude#1{\prjIncludeUser{#1}}
+\fi
+\ifoptattachmentsTaken
+ \def\prjinput{\hyper@normalise\AP@pathInput}
+ \def\prjinclude{\hyper@normalise\AP@pathInclude}
+ \let\AP@includeonly\includeonly
+ \def\includeonly{\hyper@normalise\AP@includeonly}
+\else
+ \def\prjinput{\prjInputUser}
+ \def\prjinclude{\prjIncludeUser}
+\fi
+\ifx\aeb@attachsource\@empty
+ \ifx\aeb@attachments\@empty
+ \else\aeb@initAttachWrite\fi
+\else
+ \@ifundefined{aeb@attachmentswrite}
+ {\aeb@initAttachWrite}{}
+\fi
+\def\ap@cName(#1){\csname aeb@aName@attach#1\endcsname}
+\def\ap@cNamexdef(#1){\expandafter
+ \xdef\csname aeb@aName@attach#1\endcsname}
+\def\ap@cDescript(#1){\csname aeb@aDescript@attach#1\endcsname}
+\def\ap@cDescriptSource(#1){\csname aeb@aDescript@#1\endcsname}
+\def\ap@cDescriptxdef(#1){\expandafter
+ \xdef\csname aeb@aDescript@attach#1\endcsname}
+\def\ap@cDescriptSourcexdef(#1){\expandafter
+ \xdef\csname aeb@aDescript@#1\endcsname}
+\ifx\aeb@attachsource\@empty\else
+ \edef\temp@expand{\noexpand\@for\noexpand\@@tmp:=\aeb@attachsource}
+ \temp@expand\do{%
+ \ifx\@@tmp\@empty\else
+ \expandafter\ap@strpspcs\@@tmp\@nil\edef\@@tmp{\to@nilarg}%
+ \ap@cDescriptSourcexdef(\@@tmp){\jobname.\@@tmp}%
+ \aeb@IWVO{\space\space\space\space
+ var retn=\string\importDataObject({%
+ cName: "\@@tmp",
+ cDIPath: "\jobname.\@@tmp".\jsstrdotsp});}%
+ \aeb@IWVO{\space\space\space\space
+ if ( (app.viewerVersion>7) && retn )
+ this.getDataObject("\@@tmp").description=%
+ "\string\ap@cDescriptSource(\@@tmp)".\jsstrdotsp;}%
+ \expandafter
+ \edef\csname aeb@aName@\@@tmp\endcsname{\jobname.\@@tmp}%
+ \fi
+ }%
+\fi
+\ifx\aeb@attachments\@empty\else
+\typeout{\string\aeb@attachments: \aeb@attachments}%
+ \aeb@parsecnt=0
+ \edef\temp@expand{\noexpand\@for\noexpand\@@tmp:=\aeb@attachments}
+ \temp@expand\do
+ {%
+ \ifx\@@tmp\@empty\else
+ \expandafter\ap@strpspcs\@@tmp\@nil\edef\@@tmp{\to@nilarg}%
+ \advance\aeb@parsecnt1\relax
+ \ap@cNamexdef(\the\aeb@parsecnt){attach\the\aeb@parsecnt}%
+ \ap@cDescriptxdef(\the\aeb@parsecnt)%
+ {AeB Attachment \the\aeb@parsecnt}%
+ \aeb@IWVO{\space\space\space\space
+ var retn=\string\importDataObject({%
+ cName:"\string\ap@cName(\the\aeb@parsecnt)",%
+ cDIPath: "\@@tmp".\jsstrsps});}%
+ \aeb@IWVO{\space\space\space\space
+ if ( (app.viewerVersion>7) && retn )
+ this.getDataObject(%
+ "\string\ap@cName(\the\aeb@parsecnt)").description=%
+ "\string\ap@cDescript(\the\aeb@parsecnt)";}%
+ \expandafter
+ \expandafter\xdef\csname descrip4\@@tmp\endcsname
+ {\noexpand\ap@cName(\the\aeb@parsecnt)}%
+ \fi
+ }
+\fi
+\@ifundefined{aeb@attachmentswrite}{}
+{%
+ {\lccode`P=`\}\def\jsMsg{"Attachments error: "
+ + e.toString()}\lowercase{\aeb@IWVO{P catch(e)
+ { console.println( \jsMsg\space); }}}}%
+ \aeb@IWVO{\string\end{execJS}}
+ \immediate\closeout \aeb@attachmentswrite
+}
+\def\aeb@inputAttachments{\@ifundefined{aeb@attachmentswrite}{}
+ {\InputIfFileExists{\jobname_attach.cut}%
+ {\typeout{Inputting attachments file}}%
+ {\typeout{Cannot find attachments file}}}%
+}
+\define@choicekey+{aebpdfpack}{viewmode}[\val\nr]%
+ {details,tile,layout,hidden}{%
+ \ifcase\nr\relax
+ \def\aeb@pdfpack@viewmode{/D}\or
+ \def\aeb@pdfpack@viewmode{/T}\or
+ \def\aeb@pdfpack@viewmode{/T}\or
+ \def\aeb@pdfpack@viewmode{/H}\fi
+}{}
+\define@key{aebpdfpack}{initview}[]{\def\aeb@pdfpack@initview{#1}}
+\let\aeb@pdfpack@initview\@empty
+\newcommand{\earlyAttachForPkgs}{%
+if (this.collection!=null&&this.collection.initialView == "Hidden")
+var hideto=app.setTimeOut("app.clearTimeOut(hideto);"
+ +"app.execMenuItem('CollectionPreview');",1);
+\if@gopro
+if(typeof _aebpro_attach == "undefined")
+( app.viewerVersion > 8 ) ? %
+aebTrustedFunctions(this,aebImportAnFDF,"aebpro_attach.fdf") : %
+this.importAnFDF("aebpro_attach.fdf");\fi
+\ifisPDFPackage\ifx\aeb@pdfpack@initview\@empty^^J%
+if(app.viewerVersion<15)^^J%
+var pkto=app.setTimeOut("app.clearTimeOut(pkto);"
++"app.execMenuItem('CollectionShowRoot');",5000);\fi\fi}
+\newif\ifisPDFPackage\isPDFPackagefalse
+\newcommand{\makePDFPackage}[1]{\isPDFPackagetrue
+ \setkeys{aebpdfpack}{viewmode=details,#1}%
+ \ifx\aeb@pdfpack@initview\@empty
+ \let\aeb@pdfpackage@initview\@empty
+ \else
+ {\obeyspaces\sanitize@attach\gdef\aeb@pdfpackage@initview%
+{/D<\expandafter\stringiiUnicode\aeb@pdfpack@initview\relax>}}%
+ \fi
+ \def\aeb@PDFPackageCode{/PageMode/UseAttachments%
+ /Collection<</Type/Collection%
+ \aeb@pdfpackage@initview/View\aeb@pdfpack@viewmode>>}%
+ \ifpdfmarkup
+ \def\aeb@setPDFPackage{\literalps@out{\AEB@psMrk{Catalog}
+ <<\aeb@PDFPackageCode>>/PUT pdfmark}}%
+ \else\ifpdf\def\aeb@setPDFPackage{%
+ \pdfcatalog{\aeb@PDFPackageCode}}\else
+ \ifxetex\def\aeb@setPDFPackage{\immediate
+ \@pdfm@mark{put @catalog <<\aeb@PDFPackageCode>>}}\else
+ \let\aeb@setPDFPackage\relax\PackageWarning{aeb_pro}
+ {The \string\makePDFPackage/string\makePDFPortfolio\space
+ is supported for\MessageBreak
+ dvips, pdftex, and xetex only}\fi\fi\fi
+}
+\let\makePDFPortfolio\makePDFPackage
+\@onlypreamble\makePDFPackage
+\let\aebp@attachments\aebp@Zero
+\ifx\aeb@attachsource\@empty\else\let\aebp@attachments\aebp@One\fi
+\ifx\aeb@attachments\@empty\else\let\aebp@attachments\aebp@One\fi
+\ifx\aebp@attachments\aebp@One
+ \dev@addToDocOpen{\JS{\earlyAttachForPkgs}}%
+\fi
+\newenvironment{docassembly}{%
+\execJS{docassembly}
+}{\endexecJS}
+\let\ap@mrk\@empty
+\def\ap@gobtocomma#1,{}
+\providecommand\chngDocObjectTo[2]{%
+ \def#1##1\ap@mrk{#2,\ap@gobtocomma##1}}
+\def\ap@TF{aebTrustedFunctions}
+\def\theDocObject{this}
+\providecommand\DeclareJSHelper[2]{%
+ \def#1##1({\ap@TF(##1\theDocObject,#2,\ap@mrk}}
+\DeclareJSHelper{\addWatermarkFromFile}{aebAddWatermarkFromFile}
+\DeclareJSHelper{\importIcon}{aebImportIcon}
+\DeclareJSHelper{\importSound}{aebImportSound}
+\DeclareJSHelper{\appopenDoc}{aebAppOpenDoc}
+\DeclareJSHelper{\docSaveAs}{aebDocSaveAs}
+\DeclareJSHelper{\insertPages}{aebInsertPages}
+\DeclareJSHelper{\createTemplate}{aebCreateTemplate}
+\DeclareJSHelper{\importDataObject}{aebImportDataObject}
+\DeclareJSHelper{\executeSave}{aebSaveAs,"Save"\@gobble}
+\DeclareJSHelper{\extractPages}{aebExtractPages}
+\DeclareJSHelper{\mailDoc}{aebMailDoc}
+\newcommand{\sigInfo}{var oSigInfo=}
+\def\sigFieldObj(#1){var oSigField=this.getField(#1)}
+\def\signatureSetSeedValue#1{%
+ \ap@TF( oSigField, aebSignatureSetSeedValue, }
+\begin{defineJS}[\def\defineJSjsR{^^J}]{\signatureSign}
+if ( typeof oSigInfo.oHandler=="undefined" )
+ oSigInfo.oHandler=security.PPKLiteHandler;
+var engine=aebTrustedFunctions( security,
+ aebSecurityGetHandler, oSigInfo.oHandler );
+var path2Cert = (typeof oSigInfo.path2Cert == "undefined") ?
+ aebTrustedFunctions( this, aebAppGetPath,
+ {cCategory:"user"} )+"/Security"+"/"+oSigInfo.cert :
+ oSigInfo.path2Cert;
+aebTrustedFunctions( engine, aebSecurityHandlerLogin,
+ { cPassword: oSigInfo.password, cDIPath: path2Cert});
+var oSigField = this.getField(oSigInfo.cSigFieldName);
+oSigInfo.oInfo.password=oSigInfo.password;
+if ( typeof oSigInfo.sv!="undefined" ) {
+ for (var o in oSigInfo.sv )
+ oSigInfo.oInfo[o]=oSigInfo.sv[o];
+}
+var oSigArgs={ oSig: engine, oInfo: oSigInfo.oInfo };
+if ( typeof oSigInfo.cLegalAttest!="undefined" )
+ oSigArgs.cLegalAttest=oSigInfo.cLegalAttest;
+if ( typeof oSigInfo.cDIPath!="undefined")
+ oSigArgs.cDIPath=oSigInfo.cDIPath;
+if ( typeof oSigInfo.bUI!="undefined")
+ oSigArgs.bUI=oSigInfo.bUI;
+aebTrustedFunctions( oSigField, aebSignatureSign, oSigArgs );
+\end{defineJS}
+\begin{defineJS}[\def\defineJSjsR{^^J}]{\certifyInvisibleSign}
+if ( typeof oSigInfo.oHandler=="undefined" )
+ oSigInfo.oHandler=security.PPKLiteHandler;
+var engine=aebTrustedFunctions( security,
+ aebSecurityGetHandler, oSigInfo.oHandler );
+var path2Cert=aebTrustedFunctions( this, aebAppGetPath,
+ {cCategory:"user"} )+"/Security"+"/"+oSigInfo.cert;
+aebTrustedFunctions( engine, aebSecurityHandlerLogin,
+ { cPassword: oSigInfo.password, cDIPath: path2Cert});
+oSigInfo.oInfo.password=oSigInfo.password;
+var oSigArgs={ oSig: engine, oInfo: oSigInfo.oInfo };
+if ( typeof oSigInfo.cLegalAttest!="undefined" )
+ oSigArgs.cLegalAttest=oSigInfo.cLegalAttest;
+if ( typeof oSigInfo.cDIPath!="undefined")
+ oSigArgs.cDIPath=oSigInfo.cDIPath;
+if ( typeof oSigInfo.bUI!="undefined")
+ oSigArgs.bUI=oSigInfo.bUI;
+aebTrustedFunctions( this, aebCertifyInvisibleSign, oSigArgs );
+\end{defineJS}
+\let\predocassemJS\@empty
+\def\aeb@image@cnt{0}
+\define@key{importIcons}{name}[]{\def\importIcons@name{#1}}
+\define@key{importIcons}{path}[]{\def\importIcons@path{#1}}
+\define@key{importIcons}{page}[]{\def\importIcons@page{#1}}
+\define@key{importIcons}{placement}[]{\def\importIcons@placement{#1}}
+\define@boolkey{importIcons}{embedonly}[true]{}
+\define@key{importIcons}{firstpage}[]{\def\importIcons@firstpage{#1}}
+\define@key{importIcons}{lastpage}[]{\def\importIcons@lastpage{#1}}
+\newcommand{\aebp@getFace}[1][0]{%
+ \def\importIcons@face{#1}\aebp@getPlacement}
+\def\aebp@getPlacement#1\@nil{\def\importIcons@fieldname{#1}%
+ \expandafter\ap@strpspcs\importIcons@fieldname\@nil
+ \edef\importIcons@fieldname{\to@nilarg}%
+}
+\newcommand{\declareMultiImages}[1]{%
+ \edef\@tforExp{\noexpand\@tfor\noexpand\@dipArgs:=#1}%
+ \@tforExp\do{%
+ \expandafter\declareImageAndPlacement
+ \expandafter{\@dipArgs}%
+ }%
+}
+\newcommand{\declareImageAndPlacement}[1]{%
+ \edef\@tempexp{\noexpand\setkeys{importIcons}{name,path,page,%
+ placement,embedonly=false,#1}}\@tempexp
+ \ifx\importIcons@name\@empty{\count0=\aeb@image@cnt
+ \advance\count0by1\relax\xdef\aeb@image@cnt{\the\count0}}%
+ \edef\importIcons@name{aebImage\aeb@image@cnt}\fi
+ \ifx\importIcons@path\@empty
+ \PackageError{aeb_pro}{The `path' key is required}
+ {Please give the path of the icon.}\fi
+ \ifx\importIcons@placement\@empty\ifKV@importIcons@embedonly\else
+ \PackageWarningNoLine{aeb_pro}{%
+ The `placement' key was not found for the\MessageBreak
+ image named "\importIcons@name".\MessageBreak
+ Specify this key, or insert the image manually in\MessageBreak
+ the docassembly environment.}\fi\fi
+ \xdef\predocassemJS{\predocassemJS
+ var retn=\importIcon({cName:"\importIcons@name",%
+ cDIPath:"\importIcons@path"%
+ \ifx\importIcons@page\@empty\else,%
+ nPage:\importIcons@page\fi});^^J%
+ if ( retn==-1 ) console.println("The file
+ \string\"\importIcons@path\string\" could not be opened.");^^J%
+ if ( retn==-2 ) console.println("Selected page
+ (page=\importIcons@page) for \string\"\importIcons@path\string\"
+ is invalid.");^^J}%
+ \ifx\importIcons@placement\@empty\else
+ \@for\@fieldname:=\importIcons@placement\do{%
+ \expandafter\aebp@getFace\@fieldname\@nil
+ \xdef\predocassemJS{\predocassemJS
+ var f = this.getField("\importIcons@fieldname");^^J%
+ if ( f == null ) console.println("The field
+ \string\"\importIcons@fieldname\string\"
+ does not exist.");^^J%
+ try { f.buttonSetIcon(this.getIcon("\importIcons@name"),%
+ \importIcons@face); }
+ catch(e){};^^J}%
+ }%
+ \fi
+}
+\@onlypreamble\declareImageAndPlacement
+\newcommand{\iconNameI}[1]{\def\IconNameI(##1){#1}}
+\iconNameI{#1+"."+i}
+\@onlypreamble\iconNameI
+\newcommand{\embedMultiPageImages}[1]{%
+ \setkeys{importIcons}{name,path,page,placement,%
+ firstpage,lastpage,#1}%
+ \ifx\importIcons@firstpage\@empty
+ \def\importIcons@firstpage{1}\else
+ {\count0=\importIcons@firstpage}\fi
+ \ifx\importIcons@lastpage\@empty
+ \def\importIcons@lastpage{this.numPages}\else
+ {\count0=\importIcons@lastpage}\fi
+ \ifx\importIcons@name\@empty
+ \PackageError{aeb_pro}{The `name' key is required}
+ {Please give the icon family a name.}\fi
+ \ifx\importIcons@path\@empty
+ \PackageError{aeb_pro}{The `path' key is required}
+ {Please give the path of the icon.}\fi
+ \def\r{^^J}\def\t{\space\space\space\space}%
+ \let\predocassemJSPlace\@empty
+ \ifx\importIcons@placement\@empty\else
+ \@for\@fieldname:=\importIcons@placement\do{%
+ \expandafter\aebp@getFace\@fieldname\@nil
+ \edef\predocassemJSPlace{\predocassemJSPlace\t
+ var f = this.getField("\importIcons@fieldname."+i);\r\t
+ if ( f == null ) console.println("The field
+ \string\"\importIcons@fieldname."+i+"\string\"
+ does not exist.");\r\t
+ try { f.buttonSetIcon(this.getIcon(%
+\IconNameI("\importIcons@name")),%
+ \importIcons@face); }
+ catch(e){};\r}%
+ }%
+ \fi
+ \xdef\predocassemJS{\predocassemJS
+ var l=\importIcons@lastpage-\importIcons@firstpage+1;\r
+ for (var i=0; i<l; i++) {\r\t
+ var retn=\importIcon({%
+ cName:\IconNameI("\importIcons@name"),%
+ cDIPath:"\importIcons@path",%
+ nPage:\importIcons@firstpage+i-1});\r\t
+ if ( retn==-1 ) console.println("The file
+ \string\"\importIcons@path\string\" could not
+ be opened.");\r\t
+ if ( retn==-2 ) console.println("Selected page
+ (page="+(i+1)+") for \string\"\importIcons@path\string\"
+ is invalid.");\r
+ \predocassemJSPlace
+ }\r
+ var oIcon=this.getIcon("nullIcon");\r
+ if ( oIcon == null )
+ this.addIcon("nullIcon", this.createIcon("", 0, 0));\r
+ }%
+}
+\@onlypreamble\embedMultiPageImages
+\newcommand{\placeImageToBtn}[1]{%
+ \setkeys{importIcons}{name,path,page,placement,#1}%
+ \ifx\importIcons@placement\@empty\else
+ \@for\@fieldname:=\importIcons@placement\do{%
+ \expandafter\aebp@getFace\@fieldname\@nil
+ \xdef\predocassemJS{\predocassemJS
+ var f = this.getField("\importIcons@fieldname");^^J%
+ if ( f == null ) console.println("The field
+ \string\"\importIcons@fieldname\string\"
+ does not exist.");^^J%
+ try { f.buttonSetIcon(this.getIcon("\importIcons@name"),%
+ \importIcons@face); }
+ catch(e){};^^J}%
+ }%
+ \fi
+}
+\newcommand{\insertPreDocAssembly}{\predocassemJS}
+\let\importAndSetImages\insertPreDocAssembly
+\newcommand{\placeImage}[4][]{\pushButton[%
+ \BC{}\BG{}\S{S}\Ff{\FfReadOnly}\autoCenter{n}\FB{true}
+ #1\I{null}\TP{1}]{#2}{#3}{#4}}
+\endinput
+%%
+%% End of file `aebpro.def'.
diff --git a/texmf-dist/tex/latex/aeb-pro/anime_support.def b/texmf-dist/tex/latex/aeb-pro/anime_support.def
new file mode 100644
index 00000000..7fe42aae
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/anime_support.def
@@ -0,0 +1,493 @@
+%%
+%% This is file `anime_support.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,animecommon')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\placeAnimeCtrlBtnFaces}[3][\pathToBtnCtrlIcons]{\begingroup
+ \toks@={\aep@I{\aep@setAFirst}{animeFirst}%
+ \aep@I{\aep@setASB}{animeSB}%
+ \aep@I{\aep@setAPB}{animePB}%
+ \aep@I{\aep@setAPaus}{animePause}%
+ \aep@I{\aep@setAPF}{animePF}%
+ \aep@I{\aep@setASF}{animeSF}%
+ \aep@I{\aep@setALast}{animeLast}%
+ \aep@I{\aep@setAPlus}{animePlus}%
+ \aep@I{\aep@setAMinus}{animeMinus}}%
+ \def\aep@I##1##2{\let##1\@empty}\the\toks@
+ \def\aep@I##1##2{\edef##1{##1,\aep@thisAnime4BtnCtrl.##2}}%
+ \@for\aep@thisAnime:=#3\do{\the\toks@}%
+ \def\aep@I##1##2{\edef##1{\expandafter\@gobble##1}}\the\toks@
+ \ifx\pathToBtnCtrlIcons\@empty
+ \let\@pathsep\@empty\else\def\@pathsep{/}\fi
+ \declareMultiImages{%
+ {path=#1\@pathsep#2,page=0,placement={\aep@setAFirst}}
+ {path=#1\@pathsep#2,page=2,placement={\aep@setASB}}
+ {path=#1\@pathsep#2,page=4,placement={\aep@setAPB}}
+ {path=#1\@pathsep#2,page=6,placement={\aep@setAPaus}}
+ {path=#1\@pathsep#2,page=5,placement={\aep@setAPF}}
+ {path=#1\@pathsep#2,page=3,placement={\aep@setASF}}
+ {path=#1\@pathsep#2,page=1,placement={\aep@setALast}}
+ {path=#1\@pathsep#2,page=7,placement={\aep@setAPlus}}
+ {path=#1\@pathsep#2,page=8,placement={\aep@setAMinus}}
+ }%
+ \endgroup
+}
+\@onlypreamble\placeAnimeCtrlBtnFaces
+\newcommand{\animeSetup}[1]{%
+ \let\animeSetupPresets\@empty
+ \edef\@tempExp{\noexpand\setkeys{btnAnime}{#1}}\@tempExp
+ \ifx\btnAnimeCtrlBdryColor\@empty\else
+ \edef\@tmpExp{\noexpand\g@addto@macro%
+ \noexpand\animeSetupPresets{%
+ \noexpand\BC{\btnAnimeCtrlBdryColor}}}\@tmpExp
+ \edef\@tmpExp{\noexpand\g@addto@macro%
+ \noexpand\animeSetupPresets{%
+ \noexpand\W{\btnAnimeCtrlBdryWidth}}}\@tmpExp\fi
+ \edef\@btnanimerowsep{\btnanimerowsep}% dps10
+ \setlength{\@tempdima}{%
+ (\btnAnimeCtrlW+2bp)*\numWidgetsFirstRow+%
+ (\btnanimebtnsep*(\numWidgetsFirstRow-1))}%
+ \addtolength{\@tempdima}{\addSpaceBtwnPMBtns}%
+ \edef\widthFirstRow{\the\@tempdima}%
+}
+\newcommand{\insertCtrlButtons}[1][c]{%
+ \parbox[#1][\totalheight+2bp]{\widthFirstRow}{%
+ \offinterlineskip\centering\aep@btn@anime@controls}}
+\newcommand{\setspaceBtwnPMBtns}[1]{{%
+ \settowidth{\@tempdima}{#1\kern2bp}%
+ \xdef\tmp@spaceBtwnPMBtns{\the\@tempdima}}%
+ \edef\@spaceBtwnPMBtns{\tmp@spaceBtwnPMBtns}}
+\setspaceBtwnPMBtns{\space}
+\def\addSpaceBtwnPMBtns{\ifKV@btnAnime@usetworows0bp\else
+ \ifKV@btnAnime@nospeedcontrol0bp\else\@spaceBtwnPMBtns\fi\fi}
+\define@choicekey+{btnAnime}{type}[\val\nr]%
+ {loop,palindrome,stopatboundary}[stopatboundary]{%
+ \edef\aebp@btnAnime@type{\nr}}{}
+\define@key{btnAnime}{fieldName}[]{\gdef\animeBtnFieldName{#1}}
+\define@key{btnAnime}{ocgAnimeName}[]{\gdef\animeBtnFieldName{#1}}
+\define@key{btnAnime}{iconName}[]{\gdef\animeBtnBaseName{#1}}
+\define@key{btnAnime}{speed}[200]{\gdef\animeBtnSpeed{#1}}
+\define@key{btnAnime}{nFrames}[]{\gdef\nFrames{#1}}
+\define@boolkey{btnAnime}{autorun}[true]{}
+\define@boolkey{btnAnime}{autopause}[true]{}
+\define@choicekey+{btnAnime}{autoplayevent}[\val\nr]%
+ {pageopen,pagevisible}[pageopen]{\ifcase\nr\relax
+ \def\aebp@autoplayevent{\AAPageOpen}\or
+ \def\aebp@autoplayevent{\AAPageVisible}\fi}{}%
+\def\aebp@autoplayevent{\AAPageOpen}
+\define@choicekey+{btnAnime}{autopauseevent}[\val\nr]%
+ {pageclose,pageinvisible}[pageclose]{\ifcase\nr\relax
+ \def\aebp@autopauseevent{\AAPageClose}\or
+ \def\aebp@autopauseevent{\AAPageInvisible}\fi}{}%
+\def\aebp@autopauseevent{\AAPageClose}
+\define@choicekey+{btnAnime}{poster}[\val\nr]%
+ {first,last,none}[first]{\edef\aebp@btnAnime@poster{\nr}}{}
+\define@key{btnAnime}{ctrlwidth}[18bp]{\def\btnAnimeCtrlW{#1}}
+\define@key{btnAnime}{ctrlheight}[9bp]{\def\btnAnimeCtrlH{#1}}
+\define@choicekey{btnAnime}{ctrlbdrywidth}[\val\nr]{none,%
+ thin,medium,thick}[thin]{\edef\btnAnimeCtrlBdryWidth{\nr}}
+\define@key{btnAnime}{ctrlbdrycolor}[]{\def\ap@argi{#1}%
+ \ifx\ap@argi\@empty\let\btnAnimeCtrlBdryColor\@empty\else
+ \HyColor@IfXcolor{\HyColor@XZeroOneThreeFour{#1}
+ {\btnAnimeCtrlBdryColor}{}{}}
+ {\edef\btnAnimeCtrlBdryColor{#1}}\fi
+} % PDF color
+\let\animeSetupPresets\@empty
+\newcommand{\@ctrlsbtnsep}{\cgBdry[\btnanimebtnsep]} % dps10
+\newcommand{\btnanimebtnsep}{1bp}
+\newcommand{\vspacectrlsep}{3bp}
+\newcommand{\aep@vspacectrlsep}{\vspacectrlsep}
+\newcommand{\btnanimerowsep}{1bp}
+\newcommand{\btnAnimeSkini}{\ifKV@btnAnime@usetworows
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimeStepBack
+ \@ctrlsbtnsep\btnAnimePlayBack
+ \@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \@ctrlsbtnsep\btnAnimeStepForward
+ \@ctrlsbtnsep\btnAnimeGoToLast}\ifKV@btnAnime@nospeedcontrol\else
+ \vcgBdry[\@btnanimerowsep]\makebox[\linewidth][c]{%
+ \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus}\fi\else
+ \makebox[\linewidth][s]{\hss
+ \btnAnimeGoToFirst
+ \@ctrlsbtnsep\btnAnimeStepBack
+ \@ctrlsbtnsep\btnAnimePlayBack
+ \@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \@ctrlsbtnsep\btnAnimeStepForward
+ \@ctrlsbtnsep\btnAnimeGoToLast
+ \ifKV@btnAnime@nospeedcontrol\else
+ \kern\@spaceBtwnPMBtns\btnAnimePlus
+ \@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
+\newcommand{\btnAnimeSkinii}{\ifKV@btnAnime@usetworows
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst
+ \@ctrlsbtnsep\btnAnimePlayBack
+ \@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \@ctrlsbtnsep\btnAnimeGoToLast}%
+ \ifKV@btnAnime@nospeedcontrol\else\vcgBdry[\@btnanimerowsep]%
+ \makebox[\linewidth][c]{\btnAnimePlus\@ctrlsbtnsep
+ \btnAnimeMinus}\fi\else\makebox[\linewidth][s]{\hss
+ \btnAnimeGoToFirst\@ctrlsbtnsep
+ \btnAnimePlayBack\@ctrlsbtnsep\btnAnimePause%
+ \@ctrlsbtnsep\btnAnimePlayForward\@ctrlsbtnsep
+ \btnAnimeGoToLast\ifKV@btnAnime@nospeedcontrol\else
+ \kern\@spaceBtwnPMBtns\btnAnimePlus
+ \@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
+\newcommand{\btnAnimeSkiniii}{\ifKV@btnAnime@usetworows
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward}%
+ \ifKV@btnAnime@nospeedcontrol\else
+ \vcgBdry[\@btnanimerowsep]\makebox[\linewidth][c]{%
+ \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus}\fi\else
+ \makebox[\linewidth][s]{\hss
+ \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \ifKV@btnAnime@nospeedcontrol\else\kern\@spaceBtwnPMBtns
+ \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
+\newcommand{\btnAnimeSkiniv}{%
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst
+ \@ctrlsbtnsep\btnAnimeStepBack
+ \@ctrlsbtnsep\btnAnimeStepForward
+ \@ctrlsbtnsep\btnAnimeGoToLast}}
+\newcommand{\btnAnimeSkinv}{\PackageWarning{aeb_pro}
+ {skin5 is undefined.\MessageBreak You may customize
+ by defining skin5;\MessageBreak meanwhile, using default,
+ skin1}\btnAnimeSkini}
+\newcommand{\btnAnimeSkinvi}{\PackageWarning{aeb_pro}
+ {skin6 is undefined.\MessageBreak You may customize
+ by defining skin6;\MessageBreak meanwhile, using default,
+ skin1}\btnAnimeSkini}
+\newcommand{\aepnumWidgetsFirstRow}[2]{\def\numWidgetsFirstRow{%
+ \ifKV@btnAnime@nospeedcontrol#1\else
+ \ifKV@btnAnime@usetworows#1\else#2\fi\fi}}
+\newcommand{\numWidgetsFirstRowV}{\aepnumWidgetsFirstRow{7}{9}}
+\newcommand{\numWidgetsFirstRowVI}{\aepnumWidgetsFirstRow{7}{9}}
+\define@choicekey+{btnAnime}{controls}[\val\nr]%
+ {none,skin1,skin2,skin3,skin4,skin5,skin6}[skin1]{%
+ \ifcase\nr\relax
+ \let\aep@btn@anime@controls\@empty
+ \def\widthFirstRow{0pt}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkini}%
+ \aepnumWidgetsFirstRow{7}{9}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkinii}%
+ \aepnumWidgetsFirstRow{5}{7}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkiniii}%
+ \aepnumWidgetsFirstRow{3}{5}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkiniv}%
+ \aepnumWidgetsFirstRow{4}{4}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkinv}%
+ \numWidgetsFirstRowV\or
+ \def\aep@btn@anime@controls{\btnAnimeSkinvi}%
+ \numWidgetsFirstRowVI\fi
+ }{}
+\define@boolkey{btnAnime}{usetworows}[true]{}
+\define@boolkey{btnAnime}{nospeedcontrol}[true]{}
+\setkeys{btnAnime}{fieldName,iconName,speed,nFrames,type,poster,
+ controls,usetworows=false,nospeedcontrol=false,ctrlwidth,ctrlheight,
+ ctrlbdrywidth,ctrlbdrycolor}
+\newcommand{\btnAnimePresets}[1]{\def\aeb@btnAnimePresets{#1}}
+\def\aeb@btnAnimePresets{}
+\newcommand{\ctrlButtonsWrapper}[1]{#1}
+\newcommand{\btnAnimeCtrlPresets}[1]{\def\aeb@btnAnimeCtrlPresets{#1}}
+\def\aeb@btnAnimeCtrlPresets{}
+\newcommand{\btnAnimeGoToFirst}{%
+ \pushButton[\TU{Go to first frame}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeFirstAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeFirst}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}%
+\newcommand{\btnAnimeStepBack}{%
+ \pushButton[\TU{Step Back}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeSBAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeSB}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePlayBack}{%
+ \pushButton[\TU{Play Backwards}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePBAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePB}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePause}{%
+ \pushButton[\TU{Pause}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePauseAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePause}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePlayForward}{%
+ \pushButton[\TU{Play Forwards}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePFAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePF}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeStepForward}{%
+ \pushButton[\TU{Step Forward}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeSFAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeSF}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeGoToLast}{%
+ \pushButton[\TU{Go to last frame}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeLastAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeLast}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePlus}{%
+ \pushButton[\TU{Increase speed\r Shift-click to restore
+ default speed}%\textFont{HeBo}\CA{+}
+ \S{S}\BC{}\FB{false}\I{null}\TP{1}
+ \presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePlusAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePlus}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeMinus}{%
+ \pushButton[\TU{Decrease speed\r Shift-click to restore
+ default speed}%\textFont{HeBo}\uCA{FEFF2212}
+ \S{S}\BC{}\FB{false}\I{null}\TP{1}
+ \presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeMinusAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeMinus}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeFirstAction}{%
+if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimeFirst(\animeBtnFieldName);
+}
+\newcommand{\btnAnimeSBAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,false,%
+ \aebp@btnAnime@type,true);
+}
+\newcommand{\btnAnimePBAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,false,%
+ \aebp@btnAnime@type,false);
+}
+\newcommand{\btnAnimePauseAction}{%
+ if ((typeof \animeBtnFieldName\space == "object")&&%
+ \animeBtnFieldName.animeStart)\r\t
+ btnAnimePause(\animeBtnFieldName);
+}
+\newcommand{\btnAnimePFAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,true,%
+ \aebp@btnAnime@type,false);
+}
+\newcommand{\btnAnimeSFAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,true,%
+ \aebp@btnAnime@type,true);
+}
+\newcommand{\btnAnimeLastAction}{%
+ if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimeLast(\animeBtnFieldName);
+}
+\newcommand{\btnAnimePlusAction}{%
+ if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimePlus(\animeBtnFieldName,\animeBtnSpeed);
+}
+\newcommand{\btnAnimeMinusAction}{%
+ if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimeMinus(\animeBtnFieldName,\animeBtnSpeed);
+}
+\begin{insDLJS}[_loadBtnAnimeCtrls]{btnanime}
+ {AeB Pro: Button and Ocg Anime Controls}
+var _loadBtnAnimeCtrls=true;
+var activeAnimes=new Array();
+function btnAnimePlay(oAnime,fieldName,baseFrameName,%
+nSpeed,nFrames,bForward,type,bStep) {
+ // ocgAnime is characterized by baseFrameName=""
+ if ( oAnime.animeStart && !oAnime.animePause ) return;
+ var callingFieldName=event.target.name;
+ var re=/\.anime(PB|PF)/;
+ var doRebuild=( event.shift && re.test(callingFieldName) );
+ if ( (arguments.length>1) && %
+( (typeof activeAnimes[fieldName] == "undefined")|| doRebuild) ) {
+ activeAnimes[fieldName]=oAnime;
+ oAnime.isOcgAnime=(baseFrameName==""); // ocg change
+ oAnime.fieldName=fieldName;
+ oAnime.baseFrameName=baseFrameName;
+ oAnime.numSecs=nSpeed;
+ oAnime.nFrames=nFrames;
+ oAnime.type=type;
+ oAnime.bStep=bStep;
+ oAnime.aMyIcons = new Array();
+ oAnime.count = 0;
+ if ( !oAnime.isOcgAnime ) {// ocg change
+ for ( var i=0; i < nFrames; i++) {
+ oAnime.aMyIcons[i] = this.getField(fieldName+"."+i);
+ oAnime.aMyIcons[i].display=(i==0)?display.visible:%
+display.hidden;
+ }
+ }
+ }
+ if (arguments.length>1) {
+ oAnime.bForward=bForward;
+ oAnime.bStep=bStep;
+ }
+ if (oAnime.bStep) {
+ this.delay=true
+ if ( oAnime.isOcgAnime ) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ var currCount=oAnime.count;
+ if (oAnime.bForward) {
+ oAnime.count++;
+ if (oAnime.count==oAnime.nFrames) // hit upper boundary
+ oAnime.count=(oAnime.type==0)?0:currCount;
+ } else {
+ oAnime.count--;
+ if (oAnime.count<0)
+ oAnime.count=(oAnime.type==0)?(oAnime.nFrames-1):0;
+ }
+ if ( oAnime.isOcgAnime ) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=true; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.visible;
+ this.delay=false;
+ } else {
+ var args="\""+oAnime.fieldName+"\","+oAnime.type;
+ oAnime.run = app.setInterval(%
+"btnAnimeNewFrame("+args+")",oAnime.numSecs);
+ oAnime.animeStart=true;
+ oAnime.animePause=false;
+ }
+}
+function btnAnimeFirst(oAnime)
+{
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ oAnime.animeStart=false;
+ oAnime.animePause=false;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ oAnime.count=0;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=true; // ocg
+ else
+ oAnime.aMyIcons[0].display=display.visible;
+}
+function btnAnimeLast(oAnime)
+{
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ oAnime.animeStart=false;
+ oAnime.animePause=false;
+ var l = oAnime.nFrames-1;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ oAnime.count=l;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(l+1)).state=true; // ocg
+ else
+ oAnime.aMyIcons[l].display=display.visible;
+}
+function btnAnimePause(oAnime)
+{
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ oAnime.animePause=true;
+}
+function btnAnimePlus(oAnime,nDefSpeed){
+ var isPlaying=(oAnime.animeStart&&!oAnime.animePause);
+ if (isPlaying) btnAnimePause(oAnime);
+ if ( event.shift ) oAnime.numSecs=nDefSpeed;
+ else oAnime.numSecs -= 50;
+ if (oAnime.numSecs<10) oAnime.numSecs=10
+ if (isPlaying) btnAnimePlay(oAnime);
+}
+function btnAnimeMinus(oAnime,nDefSpeed){
+ var isPlaying=(oAnime.animeStart&&!oAnime.animePause);
+ if (isPlaying) btnAnimePause(oAnime);
+ if ( event.shift ) oAnime.numSecs=nDefSpeed;
+ else oAnime.numSecs += 50;
+ if (isPlaying) btnAnimePlay(oAnime);
+}
+function btnAnimeNewFrame(fieldName, type)
+{
+ var oAnime=activeAnimes[fieldName];
+ this.delay=true
+ if ( oAnime.isOcgAnime ) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false;
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ var currCount=oAnime.count;
+ var bBdaryMet=false;
+ if (oAnime.bForward) {
+ oAnime.count++;
+ if (oAnime.count==oAnime.nFrames) {
+ if(type==0) oAnime.count \%= oAnime.nFrames;
+ else if(type==1) {
+ oAnime.count=currCount;
+ oAnime.count--;
+ oAnime.bForward=false;
+ } else {
+ bBdaryMet=true;
+ oAnime.count=currCount;
+ }
+ }
+ } else {
+ oAnime.count--;
+ if (oAnime.count<0) {
+ if(type==0) oAnime.count=(oAnime.nFrames-1);
+ else if(type==1) {
+ oAnime.count=currCount;
+ oAnime.count++;
+ oAnime.bForward=true;
+ } else { // stop
+ bBdaryMet=true;
+ oAnime.count=currCount;
+ }
+ }
+ }
+ if ( oAnime.isOcgAnime) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=true;
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.visible;
+ this.delay=false;
+ if ( type==2 && bBdaryMet ) {
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ // try { app.clearTimeOut(timeout);} catch(e){}
+ oAnime.animeStart=false;
+ oAnime.animePause=false;
+ }
+}
+\end{insDLJS}
+\endinput
+%%
+%% End of file `anime_support.def'.
diff --git a/texmf-dist/tex/latex/aeb-pro/btnnanime.def b/texmf-dist/tex/latex/aeb-pro/btnnanime.def
new file mode 100644
index 00000000..6ad8a889
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/btnnanime.def
@@ -0,0 +1,56 @@
+%%
+%% This is file `btnnanime.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,btnanime')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\btnAnime}[3]{\begingroup\animeSetup{#1}%
+ \ifx\animeBtnFieldName\@empty\PackageError{aeb_pro}%
+ {The fieldName key is required}{}\fi
+ \ifx\animeBtnBaseName\@empty\PackageError{aeb_pro}%
+ {The iconName key is required}{}\fi
+ \ifx\nFrames\@empty\PackageError{aeb_pro}%
+ {The nFrames key is required}{}\fi
+ \parbox[t][#3]{#2}{%
+ \everyPushButton{\BC{}\BG{}\S{S}\autoCenter{n}\FB{true}\TP{1}%
+ \Ff{\FfReadOnly}\presets{\aeb@btnAnimePresets}\I{null}}%
+ \edef\termLoop{\nFrames}\edef\firstBtnOpts{%
+ \ifnum\aebp@btnAnime@poster=0 \else\noexpand\F{\FHidden}\fi
+ \noexpand\AA{\ifKV@btnAnime@autorun
+ \aebp@autoplayevent{\noexpand\btnAnimePFAction}\fi
+ \ifKV@btnAnime@autopause
+ \aebp@autopauseevent{\noexpand\btnAnimePauseAction}\fi}}%
+ \makebox[0pt][l]{\expandafter\pushButton
+ \expandafter[\firstBtnOpts]{\animeBtnFieldName.0}{#2}{#3}}%
+ \ifnum\aebp@btnAnime@poster=1
+ \count0=\nFrames\relax\advance\count0by-1
+ \edef\termLoop{\the\count0}\fi\@tempcnta=1
+ \loop\ifnum\@tempcnta<\termLoop\relax
+ \makebox[0pt][l]{\pushButton[\F{\FHidden}]{%
+ \animeBtnFieldName.\the\@tempcnta}{#2}{#3}}%
+ \advance\@tempcnta1\relax\repeat
+ \ifnum\aebp@btnAnime@poster=1\relax\makebox[0pt][l]{%
+ \pushButton{\animeBtnFieldName.\termLoop}{#2}{#3}}%
+ \fi\hfill\ifx\aep@btn@anime@controls\@empty\else
+ \offinterlineskip\vcgBdry[\vspacectrlsep]%
+ \everyPushButton{}\centering
+ \ctrlButtonsWrapper{\insertCtrlButtons}\fi
+ }%parbox
+ \endgroup
+}
+\endinput
+%%
+%% End of file `btnnanime.def'.
diff --git a/texmf-dist/tex/latex/aeb-pro/create_icon.def b/texmf-dist/tex/latex/aeb-pro/create_icon.def
new file mode 100644
index 00000000..2803e09f
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/create_icon.def
@@ -0,0 +1,156 @@
+%%
+%% This is file `create_icon.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,createicon')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newenvironment{docassembly}{%
+\execJS{docassembly}
+}{\endexecJS}
+\let\ap@mrk\@empty
+\def\ap@gobtocomma#1,{}
+\providecommand\chngDocObjectTo[2]{%
+ \def#1##1\ap@mrk{#2,\ap@gobtocomma##1}}
+\def\ap@TF{aebTrustedFunctions}
+\def\theDocObject{this}
+\providecommand\DeclareJSHelper[2]{%
+ \def#1##1({\ap@TF(##1\theDocObject,#2,\ap@mrk}}
+\DeclareJSHelper{\importIcon}{aebImportIcon}
+\let\predocassemJS\@empty
+\def\aeb@image@cnt{0}
+\define@key{importIcons}{name}[]{\def\importIcons@name{#1}}
+\define@key{importIcons}{path}[]{\def\importIcons@path{#1}}
+\define@key{importIcons}{page}[]{\def\importIcons@page{#1}}
+\define@key{importIcons}{placement}[]{\def\importIcons@placement{#1}}
+\define@boolkey{importIcons}{embedonly}[true]{}
+\define@key{importIcons}{firstpage}[]{\def\importIcons@firstpage{#1}}
+\define@key{importIcons}{lastpage}[]{\def\importIcons@lastpage{#1}}
+\newcommand{\aebp@getFace}[1][0]{%
+ \def\importIcons@face{#1}\aebp@getPlacement}
+\def\aebp@getPlacement#1\@nil{\def\importIcons@fieldname{#1}%
+ \expandafter\ap@strpspcs\importIcons@fieldname\@nil
+ \edef\importIcons@fieldname{\to@nilarg}%
+}
+\newcommand{\declareMultiImages}[1]{%
+ \edef\@tforExp{\noexpand\@tfor\noexpand\@dipArgs:=#1}%
+ \@tforExp\do{%
+ \expandafter\declareImageAndPlacement
+ \expandafter{\@dipArgs}%
+ }%
+}
+\newcommand{\declareImageAndPlacement}[1]{%
+ \edef\@tempexp{\noexpand\setkeys{importIcons}{name,path,page,%
+ placement,embedonly=false,#1}}\@tempexp
+ \ifx\importIcons@name\@empty{\count0=\aeb@image@cnt
+ \advance\count0by1\relax\xdef\aeb@image@cnt{\the\count0}}%
+ \edef\importIcons@name{aebImage\aeb@image@cnt}\fi
+ \ifx\importIcons@path\@empty
+ \PackageError{aeb_pro}{The `path' key is required}
+ {Please give the path of the icon.}\fi
+ \ifx\importIcons@placement\@empty\ifKV@importIcons@embedonly\else
+ \PackageWarningNoLine{aeb_pro}{%
+ The `placement' key was not found for the\MessageBreak
+ image named "\importIcons@name".\MessageBreak
+ Specify this key, or insert the image manually in\MessageBreak
+ the docassembly environment.}\fi\fi
+ \xdef\predocassemJS{\predocassemJS
+ var retn=\importIcon({cName:"\importIcons@name",%
+ cDIPath:"\importIcons@path"%
+ \ifx\importIcons@page\@empty\else,%
+ nPage:\importIcons@page\fi});^^J%
+ if ( retn==-1 ) console.println("The file
+ \string\"\importIcons@path\string\" could not be opened.");^^J%
+ if ( retn==-2 ) console.println("Selected page
+ (page=\importIcons@page) for \string\"\importIcons@path\string\"
+ is invalid.");^^J}%
+ \ifx\importIcons@placement\@empty\else
+ \@for\@fieldname:=\importIcons@placement\do{%
+ \expandafter\aebp@getFace\@fieldname\@nil
+ \xdef\predocassemJS{\predocassemJS
+ var f = this.getField("\importIcons@fieldname");^^J%
+ if ( f == null ) console.println("The field
+ \string\"\importIcons@fieldname\string\"
+ does not exist.");^^J%
+ try { f.buttonSetIcon(this.getIcon("\importIcons@name"),%
+ \importIcons@face); }
+ catch(e){};^^J}%
+ }%
+ \fi
+}
+\@onlypreamble\declareImageAndPlacement
+\newcommand{\iconNameI}[1]{\def\IconNameI(##1){#1}}
+\iconNameI{#1+"."+i}
+\@onlypreamble\iconNameI
+\newcommand{\embedMultiPageImages}[1]{%
+ \setkeys{importIcons}{name,path,page,placement,%
+ firstpage,lastpage,#1}%
+ \ifx\importIcons@firstpage\@empty
+ \def\importIcons@firstpage{1}\else
+ {\count0=\importIcons@firstpage}\fi
+ \ifx\importIcons@lastpage\@empty
+ \def\importIcons@lastpage{this.numPages}\else
+ {\count0=\importIcons@lastpage}\fi
+ \ifx\importIcons@name\@empty
+ \PackageError{aeb_pro}{The `name' key is required}
+ {Please give the icon family a name.}\fi
+ \ifx\importIcons@path\@empty
+ \PackageError{aeb_pro}{The `path' key is required}
+ {Please give the path of the icon.}\fi
+ \def\r{^^J}\def\t{\space\space\space\space}%
+ \let\predocassemJSPlace\@empty
+ \ifx\importIcons@placement\@empty\else
+ \@for\@fieldname:=\importIcons@placement\do{%
+ \expandafter\aebp@getFace\@fieldname\@nil
+ \edef\predocassemJSPlace{\predocassemJSPlace\t
+ var f = this.getField("\importIcons@fieldname."+i);\r\t
+ if ( f == null ) console.println("The field
+ \string\"\importIcons@fieldname."+i+"\string\"
+ does not exist.");\r\t
+ try { f.buttonSetIcon(this.getIcon(%
+\IconNameI("\importIcons@name")),%
+ \importIcons@face); }
+ catch(e){};\r}%
+ }%
+ \fi
+ \xdef\predocassemJS{\predocassemJS
+ var l=\importIcons@lastpage-\importIcons@firstpage+1;\r
+ for (var i=0; i<l; i++) {\r\t
+ var retn=\importIcon({%
+ cName:\IconNameI("\importIcons@name"),%
+ cDIPath:"\importIcons@path",%
+ nPage:\importIcons@firstpage+i-1});\r\t
+ if ( retn==-1 ) console.println("The file
+ \string\"\importIcons@path\string\" could not
+ be opened.");\r\t
+ if ( retn==-2 ) console.println("Selected page
+ (page="+(i+1)+") for \string\"\importIcons@path\string\"
+ is invalid.");\r
+ \predocassemJSPlace
+ }\r
+ var oIcon=this.getIcon("nullIcon");\r
+ if ( oIcon == null )
+ this.addIcon("nullIcon", this.createIcon("", 0, 0));\r
+ }%
+}
+\@onlypreamble\embedMultiPageImages
+\newcommand{\insertPreDocAssembly}{\predocassemJS}
+\let\importAndSetImages\insertPreDocAssembly
+\newcommand{\placeImage}[4][]{\pushButton[%
+ \BC{}\BG{}\S{S}\Ff{\FfReadOnly}\autoCenter{n}\FB{true}
+ #1\I{null}\TP{1}]{#2}{#3}{#4}}
+\endinput
+%%
+%% End of file `create_icon.def'.
diff --git a/texmf-dist/tex/latex/aeb-pro/ocganime.def b/texmf-dist/tex/latex/aeb-pro/ocganime.def
new file mode 100644
index 00000000..3545c775
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/ocganime.def
@@ -0,0 +1,39 @@
+%%
+%% This is file `ocganime.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,ocganime')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newenvironment{ocgAnime}[1]{\animeSetup{#1}%
+ \ifx\animeBtnFieldName\@empty\PackageError{aeb_pro}%
+ {The ocgAnimeName key is required}{}\fi
+ \ifx\nFrames\@empty\PackageError{aeb_pro}%
+ {The nFrames key is required}{}\fi
+ \DeclareAnime{\animeBtnFieldName}{\animeBtnSpeed}{\nFrames}%
+}{%
+ \edef\aep@ExpOpts{\noexpand\AA{\ifKV@btnAnime@autorun
+ \aebp@autoplayevent{\noexpand\btnAnimePFAction}\fi
+ \ifKV@btnAnime@autopause\aebp@autopauseevent{%
+ \noexpand\btnAnimePauseAction}\fi}}\smash{\makebox[0pt][l]%
+ {\expandafter\pushButton\expandafter[\aep@ExpOpts\W0\BC{}\BG{}\S{S}]%
+ {\animeBtnFieldName-autorunpause}{0bp}{0bp}}}%
+ \ifx\aep@btn@anime@controls\@empty\else\offinterlineskip
+ \vcgBdry[\vspacectrlsep]\everyPushButton{}%
+ \centering\ctrlButtonsWrapper{\insertCtrlButtons}\fi
+}
+\endinput
+%%
+%% End of file `ocganime.def'.
diff --git a/texmf-dist/tex/latex/aeb-pro/unicodes.def b/texmf-dist/tex/latex/aeb-pro/unicodes.def
new file mode 100644
index 00000000..2aa091f7
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-pro/unicodes.def
@@ -0,0 +1,380 @@
+%%
+%% This is file `unicodes.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,unicode')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2017 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\define@key{ahref}{page}[0]{\def\ahref@page{#1}}
+\def\ahref@page{0}
+\def\ap@fslash{/}
+\def\@isfirstslash#1#2\@nil{\def\arg@i{#1}\ifx\ap@fslash\arg@i
+ \else\edef\ahref@view@keyvalue{/\ahref@view@keyvalue}\fi}
+\define@key{ahref}{view}[/Fit]{\edef\ahref@view@keyvalue{#1}%
+ \expandafter\@isfirstslash\ahref@view@keyvalue\@nil
+}
+\def\ahref@view@keyvalue{/Fit}
+\define@key{ahref}{dest}[]{\def\ahref@dest{#1}}
+\let\ahref@dest\@empty
+\define@choicekey{ahref}{open}[\val\nr]{userpref,new,existing}
+{%
+ \ifcase\nr\relax
+ \let\ahref@open@keyvalue\@empty\or
+ \def\ahref@open@keyvalue{/NewWindow true }\or
+ \def\ahref@open@keyvalue{/NewWindow false }\fi
+}{}
+\let\ahref@open@keyvalue\@empty
+\define@choicekey{ahref}{border}[\val\nr]{visible,invisible}
+{%
+ \ifcase\nr\relax
+ \def\ahref@border{0 0 1}%
+ \def\ahef@invisible@border{1}\or
+ \def\ahref@border{0 0 0}% W = 0 also?
+ \let\ahef@invisible@border\@empty\fi
+}{}
+\define@choicekey{ahref}{highlight}[\val\nr]{none,invert,outline,insert}
+{%
+ \ifcase\nr\relax
+ \let\ahref@highlight\@empty\or
+ \def\ahref@highlight{/H/I}\or
+ \def\ahref@highlight{/H/O}\or
+ \def\ahref@highlight{/H/P}\fi
+}{}
+\define@key{ahref}{bordercolor}[]{\def\ap@argi{#1}\ifx\ap@argi\@empty
+ \let\ahref@bordercolor\@empty\else
+ \HyColor@IfXcolor{\HyColor@XZeroOneThreeFour{#1}
+ {\ahref@bordercolor}{}{}}
+ {\edef\ahref@bordercolor{#1}}\fi
+} % PDF color
+\let\ahref@bordercolor\@empty
+\define@choicekey{ahref}{linestyle}[\val\nr]{solid,dashed,underlined}
+{%
+ \ifcase\nr\relax
+ \def\ahref@linestyle@keyvalue{/S/S}\or
+ \def\ahref@linestyle@keyvalue{/S/D}\or % Dashed [0 0 1[3.0]]
+ \def\ahref@linestyle@keyvalue{/S/U}\fi
+}
+\def\ahref@dashedlinetyle{/S/D}
+\define@choicekey{ahref}{linewidth}[\val\nr]{thin,medium,thick}
+{%
+ \ifcase\nr\relax
+ \def\ahref@linewidth{1}\or
+ \def\ahref@linewidth{2}\or
+ \def\ahref@linewidth{3}\fi
+}
+\define@choicekey{ahref}{goto}[\val\nr]{p2c,c2p,c2c}
+{%
+ \ifcase\nr\relax
+ \global\let\targetDictionary\targetDictionary@pc\or
+ \global\let\targetDictionary\targetDictionary@cp\or
+ \global\let\targetDictionary\targetDictionary@cc\fi
+}{}
+\define@choicekey{ahref}{launch}[\val\nr]{save,view,viewnosave}
+ {\edef\ahref@launch@type{\nr}}{}
+\def\ahref@launch@type{0}%
+\define@key{ahref}{preset}[]{\def\ahref@preset{#1}}
+\let\ahref@preset\@mpty
+\def\ahypertxtcolor#1{\def\ahrefcolor{#1}}
+\def\ahrefcolor{red}
+\define@key{ahref}{textcolor}[]{\def\ahrefcolor{#1}}
+\def\targetDictionary@pc#1{%
+/T<</N<\expandafter\stringiiUnicode#1\relax>/R/C>>}
+\def\targetDictionary@cp#1{/T<</R/P>>}
+\def\targetDictionary@cc#1{%
+/T<</R/P/T<</N<\expandafter\stringiiUnicode#1\relax>/R/C>>>>}
+\def\factory@ahyperref@defaults{goto=p2c,page,dest,open=userpref,view,%
+ border=invisible,highlight=invert,linestyle=solid,linewidth=thin,%
+ bordercolor,textcolor=red,preset}
+\newcommand{\setahyperDefaults}[1]{\def\aeb@setahyperrefDefaults{#1}}
+\let\aeb@setahyperrefDefaults\@empty
+\newcommand{\resetahyperDefaults}{%
+ \let\aeb@setahyperrefDefaults\@empty}
+\def\aeb@initahref#1{%
+ \edef\expand@setkeys{%
+ \noexpand\setkeys{ahref}{\factory@ahyperref@defaults}}%
+ \expand@setkeys
+ \ifx\aeb@setahyperrefDefaults\@empty\else
+ \edef\expand@setkeys{\noexpand\setkeys{ahref}%
+ [dest,goto,page,preset]{\aeb@setahyperrefDefaults}}%
+ \expand@setkeys
+ \fi
+ \setkeys{ahref}{#1}%
+ \ifx\ahref@preset\@empty\else
+ \edef\expand@setkeys{%
+ \noexpand\setkeys{ahref}{\ahref@preset}}\expand@setkeys\fi
+ \let\ahref@dasharray\@empty
+ \ifx\ahref@linestyle@keyvalue\ahref@dashedlinetyle
+ \def\aeb@border@parameters{0 0 \ahref@linewidth[3.0]}%
+ \def\ahref@dasharray{/D[3.0]}%
+ \else
+ \edef\aeb@border@parameters{\ahref@border}%
+ \fi
+ \ifx\ahef@invisible@border\@empty\def\ahref@linewidth{0}\fi
+ \def\ahref@BS@Dict{/BS<<%
+ \ahref@dasharray\ahref@linestyle@keyvalue/W \ahref@linewidth>>
+ \ifx\ahref@bordercolor\@empty\else
+ /C[\ahref@bordercolor]\fi\ahref@highlight}%
+}
+\newcommand{\ahyperref}[3][]{%
+ \begingroup
+ \dl@preProcDefns
+ \def\u{\string\\u}%
+ \aeb@initahref{#1}%
+ \ifx\ahref@dest\@empty
+ \def\ahref@dest@keyvalue{%
+ /D[\ahref@page\space\ahref@view@keyvalue]}%
+ \else
+ \edef\ahref@dest@keyvalue{/D(\labelRef{\ahref@dest})}%
+ \fi
+ \aeb@ahref@setlink{#2}{#3}%
+}
+\newcommand{\ahyperlink}[3][]{%
+ \begingroup
+ \dl@preProcDefns
+ \def\u{\string\\u}%
+ \aeb@initahref{#1}%
+ \ifx\ahref@dest\@empty
+ \def\ahref@dest@keyvalue{%
+ /D[\ahref@page\space\ahref@view@keyvalue]}%
+ \else
+ \def\ahref@dest@keyvalue{/D(\ahref@dest)}%
+ \fi
+ \aeb@ahref@setlink{#2}{#3}%
+}
+\def\aeb@ahref@setlink#1#2{%
+ \ifx\ahrefcolor\@empty
+ \@eqlinktxtcolor{}\let\ahypercolor\@empty\else
+ \def\ahypercolor{\textcolor{\ahrefcolor}}\fi
+ \setLink[\Border{\aeb@border@parameters}%
+ \rawPDF{\ahref@BS@Dict}%
+ \A{\ahref@dest@keyvalue/S/GoToE%
+ \ahref@open@keyvalue\targetDictionary{#1}}]{\ahypercolor{#2}}%
+ \endgroup
+}
+\newcommand{\ahyperextract}[3][]
+{%
+ \begingroup\dl@preProcDefns
+ \def\u{\string\\u}%
+ \aeb@initahref{#1}%
+ \ifx\ahrefcolor\@empty
+ \@eqlinktxtcolor{}\let\ahypercolor\@empty\else
+ \def\ahypercolor{\textcolor{\ahrefcolor}}\fi
+ \setLink[\Border{\aeb@border@parameters}%
+ \rawPDF{\ahref@BS@Dict}%
+ \A{\JS{this.exportDataObject({cName: "#2",%
+nLaunch: \ahref@launch@type})}}]{\ahypercolor{#3}}%
+ \endgroup
+}
+\def\convertChriiUnicode#1#2{\csarg\gdef{uni@#1}{#2}}%
+\convertChriiUnicode\space{0020}
+\convertChriiUnicode{!}{0021}
+{\@makeother\"
+\convertChriiUnicode{"}{0022}}
+\convertChriiUnicode{#}{0023}
+\convertChriiUnicode{$}{0024}
+{\@makeother\%
+\convertChriiUnicode{%}{0025}}
+\convertChriiUnicode{&}{0026}
+\convertChriiUnicode{'}{0027}
+\convertChriiUnicode{(}{0028}
+\convertChriiUnicode{)}{0029}
+\convertChriiUnicode{*}{002A}
+\convertChriiUnicode{+}{002B}
+\convertChriiUnicode{,}{002C}
+\convertChriiUnicode{-}{002D}
+\convertChriiUnicode{.}{002E}
+\convertChriiUnicode{/}{002F}
+\convertChriiUnicode{0}{0030}
+\convertChriiUnicode{1}{0031}
+\convertChriiUnicode{2}{0032}
+\convertChriiUnicode{3}{0033}
+\convertChriiUnicode{4}{0034}
+\convertChriiUnicode{5}{0035}
+\convertChriiUnicode{6}{0036}
+\convertChriiUnicode{7}{0037}
+\convertChriiUnicode{8}{0038}
+\convertChriiUnicode{9}{0039}
+\convertChriiUnicode{:}{003A}
+\convertChriiUnicode{;}{003B}
+\convertChriiUnicode{<}{003C}
+\convertChriiUnicode{=}{003D}
+\convertChriiUnicode{>}{003E}
+\convertChriiUnicode{?}{003F}
+\convertChriiUnicode{@}{0040}
+\convertChriiUnicode{A}{0041}
+\convertChriiUnicode{B}{0042}
+\convertChriiUnicode{C}{0043}
+\convertChriiUnicode{D}{0044}
+\convertChriiUnicode{E}{0045}
+\convertChriiUnicode{F}{0046}
+\convertChriiUnicode{G}{0047}
+\convertChriiUnicode{H}{0048}
+\convertChriiUnicode{I}{0049}
+\convertChriiUnicode{J}{004A}
+\convertChriiUnicode{K}{004B}
+\convertChriiUnicode{L}{004C}
+\convertChriiUnicode{M}{004D}
+\convertChriiUnicode{N}{004E}
+\convertChriiUnicode{O}{004F}
+\convertChriiUnicode{P}{0050}
+\convertChriiUnicode{Q}{0051}
+\convertChriiUnicode{R}{0052}
+\convertChriiUnicode{S}{0053}
+\convertChriiUnicode{T}{0054}
+\convertChriiUnicode{U}{0055}
+\convertChriiUnicode{V}{0056}
+\convertChriiUnicode{W}{0057}
+\convertChriiUnicode{X}{0058}
+\convertChriiUnicode{Y}{0059}
+\convertChriiUnicode{Z}{005A}
+\convertChriiUnicode{[}{005B}
+\convertChriiUnicode{]}{005D}
+\convertChriiUnicode{^}{005E}
+\convertChriiUnicode{_}{005F}
+\convertChriiUnicode{`}{0060}
+\convertChriiUnicode{a}{0061}
+\convertChriiUnicode{b}{0062}
+\convertChriiUnicode{c}{0063}
+\convertChriiUnicode{d}{0064}
+\convertChriiUnicode{e}{0065}
+\convertChriiUnicode{f}{0066}
+\convertChriiUnicode{g}{0067}
+\convertChriiUnicode{h}{0068}
+\convertChriiUnicode{i}{0069}
+\convertChriiUnicode{j}{006A}
+\convertChriiUnicode{k}{006B}
+\convertChriiUnicode{l}{006C}
+\convertChriiUnicode{m}{006D}
+\convertChriiUnicode{n}{006E}
+\convertChriiUnicode{o}{006F}
+\convertChriiUnicode{p}{0070}
+\convertChriiUnicode{q}{0071}
+\convertChriiUnicode{r}{0072}
+\convertChriiUnicode{s}{0073}
+\convertChriiUnicode{t}{0074}
+\convertChriiUnicode{u}{0075}
+\convertChriiUnicode{v}{0076}
+\convertChriiUnicode{w}{0077}
+\convertChriiUnicode{x}{0078}
+\convertChriiUnicode{y}{0079}
+\convertChriiUnicode{z}{007A}
+\convertChriiUnicode{|}{007C}
+{\@makeother~
+\convertChriiUnicode{~}{007E}}
+\def\EURO{20AC}
+\def\BSLASH{005C}
+\def\LBRACE{007B}
+\def\RBRACE{007D}
+\def\DQUOTE{0022}
+\def\displayUnicode#1{\csname uni@#1\endcsname}
+\def\stringiiUnicode{FEFF\expandafter\@stringiiUnicode}
+\def\@stringiiUnicode#1{%
+ \ifx#1\relax\else
+ \ifx#1\u\aeb@exiii\getRawUnicode
+ \else
+ \displayUnicode{#1}\aeb@exiii\@stringiiUnicode
+ \fi
+ \fi
+}
+\def\getRawUnicode{\expandafter\@getRawUnicode}
+\def\@getRawUnicode#1#2#3#4{#1#2#3#4\@stringiiUnicode}
+\def\unicodeStr(#1){\expandafter
+ \ifx\csname aeb@aDescript@#1\endcsname\relax
+ FEFF#1\else\aeb@exiii\stringiiUnicode\aref(#1)\relax\fi}
+\def\ucspace{\u0020}
+\begingroup\catcode`\"=\active \gdef\DQ{\string\"}%
+ \gdef\@handledblquotes{\catcode`\"=\active\def"{\DQ}}%
+ \toks0=\expandafter{\DLspecialDefs\@handledblquotes}%
+ \xdef\DLspecialDefs{\the\toks0}%
+\endgroup
+\newif\ifHandleDblQuotes \HandleDblQuotesfalse
+\def\sanitize@attach{\ifHandleDblQuotes\@handledblquotes\fi%
+\@makeother\#\@makeother\$\@makeother\%\@makeother~}
+{\obeyspaces\gdef\getdscrptCont#1{\gdef\aebp@description{#1}%
+\aeb@labelName}%
+\gdef\getdscrptStrCont#1{\gdef\aebp@description{#1}%
+\aeb@labelNamestar}}%
+\let\aeb@isFromAutoLabelNum\aebp@Zero
+\def\labelName#1{\bgroup\let\aeb@isFromAutoLabelNum\aebp@Zero
+ \@for\x:=ABCDEFabcdef\do{\@makeother\x}%
+ \def\aebp@labelname{#1}\@ifnextchar\bgroup{\labelName@i}{}}
+\def\labelName@a#1{\bgroup\let\aeb@isFromAutoLabelNum\aebp@One
+ \def\aebp@labelname{#1}\@ifnextchar\bgroup{\labelName@i}{}}
+\def\labelName@i{\obeyspaces\sanitize@attach\getdscrptCont}%
+\def\labelName@star#1{\bgroup\@for\x:=ABCDEFabcdef\do{\@makeother\x}%
+ \def\aebp@labelname{#1}\@ifnextchar\bgroup{\labelName@star@i}{}}%
+\def\labelName@star@i{\obeyspaces\sanitize@attach\getdscrptStrCont}%
+\newcommand{\autolabelNum}{%
+ \@ifstar{\aeb@autoLabelNumstar}{\aeb@autoLabelNum}}
+\newcommand\aeb@autoLabelNum[2][]{\def\alnargi{#1}%
+ \def\@thisattachnum{#2}%
+ \ifx\alnargi\@empty
+ \def\aeb@next{%
+ \labelName@a{attach#2}{AeB\space Attachment\space #2}}%
+ \else
+ \def\aeb@next{%
+ \labelName@a{#1}{AeB\space Attachment\space #2}}%
+ \fi
+ \aeb@next%
+}
+\newcommand{\aeb@autoLabelNumstar}[2][]{%
+ \def\alnargi{#1}\gdef\@thisattachnum{#2}%
+ \ifx\alnargi\@empty\def\aeb@next{\labelName@star{attach#2}}\else
+ \def\aeb@next{\labelName@star{#1}}\fi
+ \aeb@next%
+}
+\def\aeb@labelName{%
+ \if\aeb@isFromAutoLabelNum\aebp@One
+ \global\csarg\let
+ {aeb@aDescript@attach\@thisattachnum}\aebp@description
+ \global\csarg\let
+ {aeb@aName@attach\@thisattachnum}\aebp@labelname
+ \else
+ \global\csarg\let
+ {aeb@aDescript@\aebp@labelname}\aebp@description
+ \global\csarg\let
+ {aeb@aName@\aebp@labelname}\aebp@labelname\fi\egroup}
+\def\aeb@labelNamestar{%
+ \global\csarg\let
+ {aeb@aDescript@attach\@thisattachnum}\aebp@description
+ \global\csarg\let{aeb@aName@attach\@thisattachnum}\aebp@labelname
+ \global\csarg\let{aeb@aDescript@\aebp@labelname}\aebp@description
+ \global\csarg\let{aeb@aName@\aebp@labelname}\aebp@labelname\egroup}
+\@ifpackageloaded{exerquiz}{}
+{%
+ \def\verbatimwrite{\@bsphack
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active\catcode`\^^I=12%
+ \def\verbatim@processline{%
+ \immediate\write\verbatim@out
+ {\the\verbatim@line}}%
+ \verbatim@start}
+ \def\endverbatimwrite{\@esphack}
+}
+\newenvironment{attachmentNames}{%
+ \newwrite \aeb@attachments@xref
+ \immediate\openout \aeb@attachments@xref \jobname_xref.cut
+ \let\verbatim@out\aeb@attachments@xref
+ \immediate\write\verbatim@out{\string\begingroup
+ \string\HandleDblQuotestrue}%
+ \verbatimwrite}{%
+ \endverbatimwrite
+ \immediate\write\verbatim@out{\string\endgroup}%
+ \immediate\closeout \aeb@attachments@xref
+ \aftergroup\aeb@Input@xref}
+\def\aeb@Input@xref{\InputIfFileExists{\jobname_xref.cut}{}{}}
+\endinput
+%%
+%% End of file `unicodes.def'.
diff --git a/texmf-dist/tex/latex/aebxmp/aebxmp.sty b/texmf-dist/tex/latex/aebxmp/aebxmp.sty
new file mode 100644
index 00000000..346eb2aa
--- /dev/null
+++ b/texmf-dist/tex/latex/aebxmp/aebxmp.sty
@@ -0,0 +1,446 @@
+%%
+%% This is file `aebxmp.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aebxmp.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aebxmp.sty package, 2016-05-29 %%
+%% Copyright (C) 2006--2016 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+\ProvidesPackage{aebxmp}
+ [2017/02/17 v2.5a Populate advanced metadata (dps)]
+\RequirePackage{xkeyval}
+\@ifpackageloaded{insdljs}{\let\execjs=y}
+ {\RequirePackage[execJS]{insdljs}[2016/07/31]} % incls conv-xkv
+\newif\if@xmp@several \@xmp@severaltrue
+\def\xmp@testBrace#1{\@ifnextchar\bgroup
+ {\@xmp@severaltrue#1}{\@xmp@severalfalse#1}}
+\newcommand{\xmpLangAndArg}[1][]{%x-default
+ \edef\xmpLang{#1}\xmpGetNextArg}
+\def\xmpGetNextArg#1\@nil{\edef\xmpArg{#1}}
+\edef\xmp@dquoteCat{\the\catcode`\"}
+\catcode`\"=12\relax
+\def\xmp@ProcessArgs#1#2{%
+ \if@xmp@several
+ \@tfor\xmpArg:=#1\do{%
+ \expandafter\xmpLangAndArg\xmpArg\@nil
+ \ifnum\count0=0\relax
+ \xdef#2{#2^^J%
+ \xmp@insItem[\the\count0]="\xmpArg";^^J%
+ \xmp@insItem[\the\count0].@xml::lang="x-default";}%
+ \ifx\xmpLang\@empty\else
+ \advance\count0by1\relax
+ \xdef#2{#2^^J%
+ \xmp@insItem[\the\count0]="\xmpArg";^^J%
+ \xmp@insItem[\the\count0].@xml::lang="\xmpLang";}%
+ \fi
+ \else
+ \xdef#2{#2^^J%
+ \xmp@insItem[\the\count0]="\xmpArg";^^J%
+ \xmp@insItem[\the\count0].@xml::lang="\xmpLang";}%
+ \fi
+ \advance\count0by1\relax
+ }%
+ \else
+ \@tfor\xmpArg:={#1}\do{%
+ \expandafter\xmpLangAndArg\xmpArg\@nil
+ \xdef#2{#2^^J%
+ \xmp@insItem[\the\count0]="\xmpArg";^^J%
+ \xmp@insItem[\the\count0].@xml::lang="x-default";}%
+ \ifx\xmpLang\@empty\else
+ \advance\count0by1
+ \xdef#2{#2^^J%
+ \xmp@insItem[\the\count0]="\xmpArg";^^J%
+ \xmp@insItem[\the\count0].@xml::lang="\xmpLang";}%
+ \fi
+ \advance\count0by1\relax
+ }%
+ \fi
+}
+\bgroup\obeyspaces
+\gdef\tabiv{ }%
+\egroup
+\let\arrayOfRights\@empty
+\newcommand{\copyrightNotice}[1]{\def\xmpcopyrightNotice{#1}%
+ \xmp@testBrace{\xmp@cont@CopyRightNotice}#1\@nil}%
+\let\xmpcopyrightNotice\@empty
+\def\xmp@cont@CopyRightNotice#1\@nil{%
+ \begingroup\let\u\relax\count0=0\relax
+ \def\xmp@insItem{p.aebdc::rights.aebrdf::Alt.aebrdf::li}%
+ \ifx\xmpcopyrightNotice\@empty\else
+ \xmp@ProcessArgs{#1}{\arrayOfRights}%
+ \fi
+ \endgroup
+}
+\let\arrayOfAuthors\@empty
+\let\xmpAuthors\@empty
+\newcommand{\Authors}[1]{\def\xmpAuthors{#1}%
+ \begingroup\let\u\relax\count0=0\relax
+ \def\insSeqItem{p.aebdc::creator.aebrdf::Seq.aebrdf::li}%
+ \ifx\xmpAuthors\@empty\else
+ \let\arrayOfAuthors\@gobble
+ \@tfor\xmpAuthor:=#1\do{%
+ \xdef\arrayOfAuthors{\arrayOfAuthors^^J%
+ \insSeqItem[\the\count0]="\xmpAuthor";}%
+ \advance\count0by1
+ }%
+ \fi
+ \endgroup
+}
+\def\insertAuthors{\ifx\arrayOfAuthors\@empty\else
+ ^^J\arrayOfAuthors\fi}
+\let\arrayOfTitles\@empty
+\newcommand{\Title}[1]{\edef\xmpTitle{#1}%
+ \xmp@testBrace{\xmp@cont@Title}#1\@nil}
+\def\xmp@cont@Title#1\@nil{%
+ \begingroup\let\u\relax\count0=0\relax
+ \def\xmp@insItem{p.aebdc::title.aebrdf::Alt.aebrdf::li}%
+ \ifx\xmpTitle\@empty\else
+ \xmp@ProcessArgs{#1}{\arrayOfTitles}%
+ \fi
+ \endgroup
+}
+\def\insertTitles{\ifx\arrayOfTitles\@empty\else
+ ^^J\arrayOfTitles\fi}
+\let\arrayOfSubjects\@empty
+\newcommand{\Subject}[1]{\edef\xmpSubject{#1}%
+ \xmp@testBrace{\xmp@cont@Subject}#1\@nil}%
+\def\xmp@cont@Subject#1\@nil{%
+ \begingroup\let\u\relax\count0=0\relax
+ \def\xmp@insItem{p.aebdc::description.aebrdf::Alt.aebrdf::li}%
+ \ifx\xmpSubject\@empty\else
+ \xmp@ProcessArgs{#1}{\arrayOfSubjects}%
+ \fi
+ \endgroup
+}
+\def\insertSubjects{\ifx\arrayOfSubjects\@empty\else
+ ^^J\arrayOfSubjects\fi}
+\let\arrayOfLangs\@empty
+\newcommand{\metaLang}[1]{\def\xmplangOfDoc{#1}%
+ \begingroup\let\u\relax\count0=0\relax
+ \def\insBagItem{p.aebdc::language.aebrdf::Bag.aebrdf::li}%
+ \ifx\xmpLangs\@empty\else
+ \let\arrayOfLangs\@gobble
+ \@for\xmpLang:=#1\do{%
+ \xdef\arrayOfLangs{\arrayOfLangs^^J%
+ \insBagItem[\the\count0]="\xmpLang";}%
+ \advance\count0by1
+ }%
+ \fi
+ \endgroup
+}
+\def\insertLangs{\ifx\arrayOfLangs\@empty\else
+ ^^J\arrayOfLangs\fi}
+\newcommand{\sourceFile}[1]{\let\xmp@bSourcefile=1
+ \def\xmp@sourcefile{#1}}
+\let\xmp@bSourcefile=0
+\let\xmp@sourcefile\@empty
+\def\insertSource{%
+ \if\xmp@bSourcefile0
+ ^^Jp.aebdc::source="\jobname.tex"\else
+ \ifx\xmp@sourcefile\@empty\else
+ ^^Jp.aebdc::source="\xmp@sourcefile"\fi\fi}
+\let\arrayOfKeywords\@empty
+\let\aKeywords\@empty
+\let\xmpKeywords\@empty
+\newcommand{\Keywords}[1]{\def\xmpKeywords{#1}%
+ \begingroup\let\u\relax\count0=0\relax
+ \def\insBagItem{%
+ p.aebdc::subject.aebrdf::Bag.aebrdf::li}%
+ \ifx\xmpKeywords\@empty\else
+ \let\arrayOfKeywords\@gobble
+ \let\aKeywords\@gobbletwo
+ \@for\xmpKeyword:=#1\do{%
+ \xdef\arrayOfKeywords{\arrayOfKeywords^^J%
+ \insBagItem[\the\count0]="\xmpKeyword";}%
+ \xdef\aKeywords{\aKeywords;\space\xmpKeyword}%
+ \advance\count0by1
+ }%
+ \xdef\aKeywords{"\aKeywords"}%
+ \fi
+ \endgroup
+}
+\def\insertKeywords{\ifx\arrayOfKeywords\@empty\else
+ ^^J\arrayOfKeywords\fi}
+\let\xmpInsScript\@empty
+\newcommand{\xmpDoNotInsKWScript}{\let\xmpInsScript\null}
+\newcommand{\copyrightStatus}[1]{%
+ \setkeys{aebxmp}{copyrightstatus=#1}}
+\define@choicekey*+{aebxmp}{copyrightstatus}[\val\nr]%
+ {true,false,unknown}[unknown]{%
+ \ifcase\nr\relax
+ \def\xmpcopyrightStatus{True}\or
+ \def\xmpcopyrightStatus{False}\else
+ \let\xmpcopyrightStatus\@empty\fi
+}{\PackageWarning{aebxmp}{%
+ Bad choice for \string\copyrightStatus,\MessageBreak
+ you entered '#1'.\MessageBreak
+ Permissible values are true, false, or unknown\MessageBreak
+ (or an empty argument). Setting status to 'unknown'.\MessageBreak
+ Try again,}}
+\let\xmpcopyrightStatus\@empty
+\def\insertMarked{\ifx\xmpcopyrightStatus\@empty
+ \else^^Jp.aebxapRights::Marked="\xmpcopyrightStatus";\fi}
+\def\insertCopyrightNotice{\ifx\arrayOfRights\@empty\else
+ \arrayOfRights\fi}
+\newcommand{\copyrightInfoURL}[1]{\def\xmpcopyrightInfoURL{#1}}
+\let\xmpcopyrightInfoURL\@empty
+\def\insertWebStatement{\ifx\xmpcopyrightInfoURL\@empty
+ \else^^Jp.aebxapRights::WebStatement="\xmpcopyrightInfoURL";\fi}
+\let\insertCusProps\@empty
+\newcommand\customProperties[1]{\def\pdfx@cusProps{#1}%
+ \begingroup\let\u\relax
+ \@tfor\thisproperty:=#1\do{%
+ \edef\tmp@exp{\noexpand
+ \cxkvsetkeys{pdfx@cusPropKV}{name,value,\thisproperty}}\tmp@exp
+ \xdef\insertCusProps{\insertCusProps^^J%
+ p.aebpdfx::\pdfx@KName="\pdfx@VValue";}
+ }%
+ \endgroup
+}
+\define@key{pdfx@cusPropKV}{name}[]{\def\pdfx@KName{#1}}
+\define@key{pdfx@cusPropKV}{value}[]{\def\pdfx@VValue{#1}}
+\def\insertCreateDate{^^Jp.@aebxap::CreateDate=createDateStr;%
+^^Jp.@aebxap::ModifyDate=createDateStr;}
+\def\xmpnEOL{\string\n\string\^^J}
+\newcommand{\authortitle}[1]{\def\xmpauthortitle{#1}}
+\let\authorTitle\authortitle
+\let\xmpauthortitle\@empty
+\def\insertAuthorTitle{\ifx\xmpauthortitle\@empty
+ \else^^Jp.aebphotoshop::AuthorsPosition="\xmpauthortitle";\fi}
+\newcommand{\descriptionwriter}[1]{\def\xmpdescriptionwriter{#1}}
+\let\descriptionWriter\descriptionwriter
+\let\xmpdescriptionwriter\@empty
+\def\insertDescriptionWriter{\ifx\xmpdescriptionwriter\@empty
+ \else^^Jp.aebphotoshop::CaptionWriter="\xmpdescriptionwriter";\fi}
+\def\insertKWJS{\ifx\aKeywords\@empty\else
+ this.info.Keywords=\aKeywords;^^J\fi}
+\def\xNNS{new Namespace}
+\def\xAdbNS{http://ns.adobe.com}
+\def\xWiiiNS{http://www.w3.org}
+\begin{execJS}{execXMP}
+var meta=this.metadata;
+var aebXMPData=new XML(meta);
+var aebx=\xNNS("x","adobe:ns:meta/");
+var xmlns=\xNNS("xmlns","\xWiiiNS/2000/xmlns/");
+var xml=\xNNS("xml", "\xWiiiNS/XML/1998/namespace");
+var aebrdf=\xNNS("rdf","\xWiiiNS/1999/02/22-rdf-syntax-ns#");
+var aebdc=\xNNS("dc","http://purl.org/dc/elements/1.1/");
+var aebpdf=\xNNS("pdf","\xAdbNS/pdf/1.3/");
+var aebxap=\xNNS("xmp","\xAdbNS/xap/1.0/");
+var aebxapRights=\xNNS("xmpRights","\xAdbNS/xap/1.0/rights/");
+var aebphotoshop=\xNNS("photoshop","\xAdbNS/photoshop/1.0/");
+var aebpdfx=\xNNS("pdfx","\xAdbNS/pdfx/1.3/");
+var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+if ( p.@aebpdfx::*.toString() == "" ) p.@xmlns::pdfx=aebpdfx.uri;
+p.@xmlns::photoshop=aebphotoshop.uri;
+p.@xmlns::xmpRights=aebxapRights.uri;
+var d=new Date();
+var createDateStr=util.printd("yyyy-mm-ddTHH:MM:ss",d);
+delete p.@aebdc::rights.aebrdf::Alt.aebrdf::li;
+/*
+ Dublin Core Properties
+*/%
+\insertTitles%
+\insertAuthors%
+\insertSubjects%
+\insertKeywords%
+\insertLangs%
+\insertSource%
+\insertCopyrightNotice%
+
+/*
+ XMP Rights Management Properties
+*/
+delete p.@aebxapRights::Marked;
+delete p.@aebxapRights::WebStatement;%
+\insertMarked%
+\insertWebStatement%
+
+delete p.@aebphotoshop::AuthorsPosition;
+delete p.@aebphotoshop::CaptionWriter;
+delete p.@aebxap::CreateDate;
+/*
+ Adobe Photoshop Properties
+*/%
+\insertAuthorTitle%
+\insertDescriptionWriter%
+
+/*
+ Acrobat Custom Properties
+*/%
+\insertCusProps%
+
+/*
+ XMP Core Properties
+*/%
+\insertCreateDate%
+
+/*
+ Convert aebXMPData into an XML String
+ and save is as this.metadata
+*/
+var aebNewXMPStr=aebXMPData.toXMLString();
+try { this.metadata=aebNewXMPStr; }
+ catch(e) {console.println(e.toString());}
+\insertKWJS%
+\end{execJS}
+\ifx\xmpInsScript\@empty
+\begin{insDLJS}{xmpjs}{Access to Title, Subject, and Keywords}
+function getKeywordsXMP(i) {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriDc="http://purl.org/dc/elements/1.1/";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var aebrdf=new Namespace(uriRdf);
+ var aebdc=new Namespace(uriDc);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ return p.aebdc::subject.aebrdf::Bag.aebrdf::li[i];
+}
+var i=0;
+var aKeywords=new Array();
+while ( typeof getKeywordsXMP(i)!="undefined" ) {
+ aKeywords[i]=getKeywordsXMP(i).toString(); i++;
+}
+function getTitleXMP(i) {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriDc="http://purl.org/dc/elements/1.1/";
+ var uriXML="http://www.w3.org/XML/1998/namespace";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var aebrdf=new Namespace(uriRdf);
+ var aebdc=new Namespace(uriDc);
+ var xml=new Namespace("xml",uriXML);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ var retnStr;
+ try { retnStr="[" + p.aebdc::title.aebrdf::Alt.aebrdf::li[i].%
+@xml::lang.toString()+"]: "
+ + p.aebdc::title.aebrdf::Alt.aebrdf::li[i].toString();
+ } catch(e) { retnStr="undefined" };
+ return retnStr;
+}
+var i=0;
+var aTitle=new Array();
+while ( getTitleXMP(i)!="undefined" ) {
+ aTitle[i]=getTitleXMP(i); i++;
+}
+function getSubjectXMP(i) {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriDc="http://purl.org/dc/elements/1.1/";
+ var uriXML="http://www.w3.org/XML/1998/namespace";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var aebrdf=new Namespace(uriRdf);
+ var aebdc=new Namespace(uriDc);
+ var xml=new Namespace("xml",uriXML);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ var retnStr;
+ try { retnStr="[" + p.aebdc::description.aebrdf::Alt.aebrdf::li[i].%
+@xml::lang.toString()+"]: "
+ + p.aebdc::description.aebrdf::Alt.aebrdf::li[i].toString();
+ } catch(e) { retnStr="undefined" };
+ return retnStr;
+}
+var i=0;
+var aSubject=new Array();
+while ( getSubjectXMP(i)!="undefined" ) {
+ aSubject[i]=getSubjectXMP(i); i++;
+}
+function getRightsXMP(i) {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriDc="http://purl.org/dc/elements/1.1/";
+ var uriXML="http://www.w3.org/XML/1998/namespace";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var aebrdf=new Namespace(uriRdf);
+ var aebdc=new Namespace(uriDc);
+ var xml=new Namespace("xml",uriXML);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ var retnStr;
+ try { retnStr="["+ p.aebdc::rights.aebrdf::Alt.aebrdf::li[i]%
+.@xml::lang.toString()+"]: "
+ + p.aebdc::rights.aebrdf::Alt.aebrdf::li[i].toString();
+ } catch(e) { retnStr="undefined" };
+ return retnStr;
+}
+var i=0;
+var aRights=new Array();
+while ( getRightsXMP(i)!="undefined" ) {
+ aRights[i]=getRightsXMP(i); i++;
+}
+function getCopyrightStatus() {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriXAP="http://ns.adobe.com/xap/1.0/rights/";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var xmlns=new Namespace("xmlns","http://www.w3.org/2000/xmlns/");
+ var aebrdf=new Namespace(uriRdf);
+ var aebxapRights=new Namespace("xmpRights",uriXAP);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ p.xmlns::xmpRights=aebxapRights.uri;
+ var copyrightStatus = p.@aebxapRights::Marked;
+ if ( copyrightStatus=="True" )
+ return "Copyrighted";
+ else if ( copyrightStatus=="False" )
+ return "Public Domain";
+ else return "Unknown";
+}
+function getCopyrightInfoURL() {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriXAP="http://ns.adobe.com/xap/1.0/rights/";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var xmlns=new Namespace("xmlns","http://www.w3.org/2000/xmlns/");
+ var aebrdf=new Namespace(uriRdf);
+ var aebxapRights=new Namespace("xmpRights",uriXAP);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ p.xmlns::xmpRights=aebxapRights.uri;
+ var copyrightInfoURL=(p.@aebxapRights::WebStatement.toString()!="")?
+ (p.@aebxapRights::WebStatement):"Not provided";
+ return copyrightInfoURL;
+}
+function getAuthorTitle() {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriPhotoshop="http://ns.adobe.com/photoshop/1.0/";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var xmlns=new Namespace("xmlns","http://www.w3.org/2000/xmlns/");
+ var aebrdf=new Namespace(uriRdf);
+ var aebPhotoshop=new Namespace("photoshop",uriPhotoshop);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ p.xmlns::photoshop=aebPhotoshop.uri;
+ var authorTitle=(p.@aebPhotoshop::AuthorsPosition.toString()!="")?
+ (p.@aebPhotoshop::AuthorsPosition):"Not provided";
+ return authorTitle;
+}
+function getDescriptionWriter() {
+ var uriRdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ var uriPhotoshop="http://ns.adobe.com/photoshop/1.0/";
+ var meta=this.metadata;
+ var aebXMPData=new XML(meta);
+ var xmlns=new Namespace("xmlns","http://www.w3.org/2000/xmlns/");
+ var aebrdf=new Namespace(uriRdf);
+ var aebPhotoshop=new Namespace("photoshop",uriPhotoshop);
+ var p=aebXMPData.aebrdf::RDF.aebrdf::Description;
+ p.xmlns::photoshop=aebPhotoshop.uri;
+ var captionWriter=(p.@aebPhotoshop::CaptionWriter.toString()!="")?
+ (p.@aebPhotoshop::CaptionWriter):"Not provided";
+ return captionWriter;
+}
+\end{insDLJS}
+\fi
+\catcode`\"=\xmp@dquoteCat
+\endinput
+%%
+%% End of file `aebxmp.sty'.
diff --git a/texmf-dist/tex/latex/annot-pro/annot_pro.sty b/texmf-dist/tex/latex/annot-pro/annot_pro.sty
new file mode 100644
index 00000000..e6b108b3
--- /dev/null
+++ b/texmf-dist/tex/latex/annot-pro/annot_pro.sty
@@ -0,0 +1,616 @@
+%%
+%% This is file `annot_pro.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% annot_pro.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% annot_pro package, %%
+%% Copyright (C) 2002-2016 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{annot_pro}
+ [2016/10/18 v1.1b Provides selected PDF annotation support (dps)]
+\RequirePackage{xkeyval}
+\DeclareOptionX{preview}{\previewtrue}
+\@ifundefined{ifpreview}{\newif\ifpreview\previewfalse}{}
+\newif\ifuseAAXdim\useAAXdimtrue
+\DeclareOptionX{useA10Icons}{\useAAXdimtrue}
+\DeclareOptionX{!useA10Icons}{\useAAXdimfalse}
+\DeclareOptionX{useTextBox}{\def\ap@requireRichTextAsNeeded{%
+ \RequirePackage{richtext}[2016/10/03]}}
+\let\ap@requireRichTextAsNeeded\relax
+\ProcessOptionsX\relax
+\RequirePackage{hyperref}
+\RequirePackage{calc}
+\RequirePackage{insdljs}
+\RequirePackage[structure]{taborder}
+\ap@requireRichTextAsNeeded
+\@ifpackageloaded{graphicxsp}{%
+ \let\ap@graphicxsp=1}{\let\ap@graphicxsp=0}
+\@ifpackageloaded{eforms}{}
+ {\newif\ifto@structOrder\to@structOrderfalse}
+\def\ap@csarg#1#2{\expandafter#1\csname#2\endcsname}
+\def\ap@Bbox#1#2{%
+ \edef\bbox@width{#1}\edef\bbox@height{#2}%
+ \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}%
+ \@tempdima=\bbox@width\advance\@tempdima by-\fboxrule
+ \@tempdimb=\bbox@height\advance\@tempdimb by-\fboxrule
+ \fbox{\parbox[c][\@tempdimb][c]{\@tempdima}{\hfill\vfill}}\else
+ \parbox[c][\bbox@height][c]{\bbox@width}{\hfill\vfill}\fi}%
+}
+\def\ap@Rect{/Rect [pdf@llx pdf@ury pdf@urx pdf@lly]}
+\newcommand{\defineAPath}[1]{\def\ap@ctrl@Name{#1}%
+ \hyper@normalise\ap@defineAPath}
+\def\ap@defineAPath#1{\expandafter\xdef\ap@ctrl@Name{#1}}
+\define@choicekey+{annotpro}{type}[\val\nr]%
+ {text,stamp,fileattachment,textbox}[text]{%
+ \edef\ap@save@type{\nr}%
+ \ifcase\nr\relax
+ \def\ap@type{Text}\or
+ \def\ap@type{Stamp}\or
+ \def\ap@type{FileAttachment}\or
+ \def\ap@type{FreeText}\fi
+}{\PackageWarning{annot_pro}{Bad choice for type, permissible values
+ are text, stamp, fileattachment, textbox. Try again}}
+\def\ap@freetext@type{3}
+\let\ap@type\@empty
+\define@key{annotpro}{name}[]{\def\annotpro@name{#1}}
+\let\annotpro@name\@empty
+\define@choicekey+{annnotprotext}{name}{%
+Comment,Key,Note,Help,NewParagraph,Paragraph,Insert,Check,%
+Circle,Cross,Star,RightArrow,RightPointer,UpArrow,UpLeftArrow,%
+CrossHairs}[Note]{\def\annotpro@@name{#1}}%
+{\PackageWarning{annot_pro}{Bad choice for name, permissible values
+are Comment, Key, Note, Help, NewParagraph, Paragraph, Insert, Check,
+Circle, Cross, Star, RightArrow, RightPointer, UpArrow,
+UpLeftArrow, CrossHairs. Try again}}
+\let\annotpro@@name\@empty
+\define@choicekey+{annnotprostamp}{name}{%
+Approved,AsIs,Confidential,Departmental,Draft,%
+Experimental,Expired,Final,ForComment,%
+ForPublicRelease,NotApproved,NotForPublicRelease,Sold,%
+TopSecret}[Draft]{\def\annotpro@@name{#1}}%
+{\def\ap@custom@name{#1}}
+\let\ap@custom@name\@empty
+\define@key{annotpro}{customStamp}[]{\def\ap@customstamp@name{#1}}
+\let\ap@customstamp@name\@empty
+\define@key{annotpro}{ap}[]{\def\annotpro@ap{#1}}
+\let\annotpro@ap\@empty
+\define@key{annotpro}{width}[]{\def\annotpro@width{#1}}
+\let\annotpro@width\@empty
+\define@key{annotpro}{height}[]{\def\annotpro@height{#1}}
+\let\annotpro@height\@empty
+\define@key{annotpro}{rotate}[]{\def\annotpro@rotate{#1}}
+\let\annotpro@rotate\@empty
+\define@key{annotpro}{scale}[]{\def\annotpro@scale{#1}}
+\let\annotpro@scale\@empty
+\define@key{annotpro}{widthTo}[]{\def\annotpro@widthTo{#1}}
+\let\annotpro@widthTo\@empty
+\define@key{annotpro}{heightTo}[]{\def\annotpro@heightTo{#1}}
+\let\annotpro@heightTo\@empty
+\define@choicekey+{annnotprofileattach}{name}{%
+Graph,Paperclip,PushPin,Tag}[PushPin]{\def\annotpro@@name{#1}}
+{\PackageWarning{annot_pro}{Bad choice for name, permissible values
+are Graph,Paperclip,PushPin,Tag. Try again}}
+\define@key{annotpro}{file}[]{%
+ \edef\annotpro@file{#1}%
+ \ifx\annotpro@file\@empty\else
+ \edef\ap@exp@tmp{\noexpand\filename@parse{#1}}\ap@exp@tmp
+ \edef\ap@thisFileName{\filename@base.\filename@ext}\fi
+}
+\let\annotpro@file\@empty
+\define@key{annotprofreetext}{name}[FreeText]{\def\annotpro@@name{#1}}
+\define@key{annotprofreetext}{defstyle}[]{\def\annotpro@@ds{#1}}
+\let\annotpro@@ds\@empty
+\define@key{annotprofreetext}{richtext}[]{\def\annotpro@@rt{#1}}
+\let\annotpro@@rt\@empty
+\define@key{annotpro}{margin}[0]{%
+ \def\annotpro@margin{0}}
+\let\annotpro@margin\@empty
+\define@key{annotpro}{margintext}[]{%
+ \def\apmargintext{\centering\break
+ \parbox{\linewidth}{\apmargintextformat\strut#1}}}
+\let\apmargintext\@empty
+\newcommand{\margintextformat}[1]{\def\apmargintextformat{#1}}
+\margintextformat{\bfseries\tiny\color{blue}}
+\define@key{annotpro}{presets}[]{\def\annotpro@presets{#1}}
+\let\annotpro@presets\@empty
+\define@key{annotpro}{objdef}[]{\def\eq@objdef{/_objdef {#1}}%
+ \def\eq@objdefName{#1}}
+\let\eq@objdef\@empty
+\define@key{annotpro}{taborder}[]{\def\eq@taborder{#1}}
+\let\eq@taborder\@empty
+\define@choicekey+{annotpro}{open}[\val\nr]{true,false}[true]{%
+ \def\annotpro@open{#1}}{\PackageWarning{annot_pro}{Bad
+ choice for open, permissible values are true and false. Try again}}
+\def\annotpro@open{false}
+\define@key{annotpro}{subject}[]{\def\annotpro@subject{#1}}
+\define@key{annotpro}{title}[]{\def\annotpro@title{#1}}
+\define@key{annotpro}{color}[1 0 0]{\def\annotpro@color{#1}}
+\define@key{annotpro}{bgcolor}[]{\def\annotpro@bgcolor{#1}}
+\def\annotpro@bgcolor{white}
+\define@key{annotpro}{bcolor}[]{\def\annotpro@bcolor{#1}}
+\let\annotpro@bcolor\@empty
+\def\annotpro@def@bcolor{black}
+\def\ap@BE@i{4.08768}
+\def\ap@BE@i@calc{\ap@BE@i\space\ap@bwidthNum\space add}
+\def\ap@BE@ii{8.26857}
+\def\ap@BE@ii@calc{\ap@BE@ii\space add \ap@bwidthNum}
+\define@choicekey+{annotpro}{borderstyle}[\val\nr]{none,solid,%
+ dash1,dash2,dash3,dash4,dash5,dash6,cloud1,cloud2}[solid]{%
+ \ifcase\nr\relax
+ \def\ap@border@code{}\or
+ \def\ap@border@code{/BS <</S/S\ap@bwidth>>}\or
+ \def\ap@border@code{/BS <</D[2.0 2.0]/S/D\ap@bwidth>>}\or
+ \def\ap@border@code{/BS <</D[3.0 3.0]/S/D\ap@bwidth>>}\or
+ \def\ap@border@code{/BS <</D[4.0 4.0]/S/D\ap@bwidth>>}\or
+ \def\ap@border@code{/BS <</D[4.0 3.0 2.0 3.0]/S/D\ap@bwidth>>}\or
+ \def\ap@border@code{/BS <</D[4.0 3.0 16.0 3.0]/S/D\ap@bwidth>>}\or
+ \def\ap@border@code{/BS <</D[8.0 4.0 4.0 4.0]/S/D\ap@bwidth>>}\or
+ \def\ap@border@code{/BE<</I 1.0/S/C>>/RD[\ap@BE@i@calc\space\ap@BE@i@calc
+ \space\ap@BE@i@calc\space\ap@BE@i@calc]%
+ \ifx\ap@bwidth\@empty\else/BS <<\ap@bwidth>>\fi}\or
+ \def\ap@border@code{/BE<</I 2.0/S/C>>/RD[\ap@BE@ii@calc\space\ap@BE@ii@calc
+ \space\ap@BE@ii@calc\space\ap@BE@ii@calc]%
+ \ifx\ap@bwidth\@empty\else/BS <<\ap@bwidth>>\fi}\fi
+ \def\annotpro@border{#1}}{\PackageWarning{annot_pro}{Bad
+ choice for borderstyle,\MessageBreak permissible values are none, solid,%
+ dash1, dash2, dash3,\MessageBreak dash4, dash5, dash6, cloud1, cloud2. Try again}}
+\def\ap@border@code{/BS <</S/S\ap@bwidth>>}
+\define@choicekey+{annotpro}{borderwidth}[\val\nr]{.5,1,2,3,4,6,8,10}[1]{%
+ \edef\ap@bwidthNum{\val}%
+ \def\ap@bwidth{/W #1}}{\PackageWarning{annot_pro}{Bad
+ choice for borderwidth,\MessageBreak permissible values are .5, 1, 2,\MessageBreak
+ 3, 4, 6, 8, 10. Try again}}
+\def\ap@bwidthNum{1}
+\let\ap@bwidth\@empty
+\define@key{annotpro}{readonly}[ 64 add]{\def\ap@readonly{#1}}
+\let\ap@readonly\@empty
+\define@key{annotpro}{nohspace}[]{\def\annotpro@hspace{0pt}}
+\define@key{annotpro}{novspace}[]{\def\annotpro@vspace{0pt}}
+\define@key{annotpro}{nospace}[]{\def\annotpro@hspace{0pt}%
+ \def\annotpro@vspace{0pt}}
+\let\annotpro@hspace\@empty\let\annotpro@vspace\@empty
+\define@key{annotpro}{opacity}[]{%
+ \def\ap@add@ops{[ /ca #1 /SetTransparency pdfmark}%
+ \def\annotpro@opacity{#1}}
+\let\annotpro@opacity\@empty
+\def\getargsiii#1#2#3{\def\ap@argi{#1}\def\ap@argii{#2}%
+ \def\ap@argiii{#3}}
+\ifuseAAXdim
+\@tfor\ap@text@dimen:={{Comment}{18bp}{18bp}}%
+{{Key}{13bp}{18bp}}{{Note}{18bp}{20bp}}{{Help}{20bp}{20bp}}%
+{{NewParagraph}{13bp}{20bp}}{{Paragraph}{20bp}{20bp}}%
+{{Insert}{17bp}{20bp}}{{Check}{20bp}{19bp}}%
+{{Circle}{20bp}{20bp}}{{Cross}{20bp}{19bp}}%
+{{Star}{20bp}{19bp}}{{RightArrow}{20bp}{20bp}}%
+{{RightPointer}{20bp}{17bp}}{{UpArrow}{17bp}{20bp}}%
+{{UpLeftArrow}{17bp}{17bp}}{{CrossHairs}{20bp}{20bp}}\do{%
+ \expandafter\getargsiii\ap@text@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+} \else
+\@tfor\ap@text@dimen:={{Comment}{20bp}{18bp}}%
+{{Key}{18bp}{17bp}}{{Note}{18bp}{20bp}}{{Help}{20bp}{20bp}}%
+{{NewParagraph}{13bp}{20bp}}{{Paragraph}{11bp}{20bp}}%
+{{Insert}{20bp}{17bp}}{{Check}{20bp}{19bp}}%
+{{Circle}{20bp}{20bp}}{{Cross}{20bp}{20bp}}%
+{{Star}{20bp}{19bp}}{{RightArrow}{20bp}{14bp}}%
+{{RightPointer}{20bp}{18bp}}{{UpArrow}{19bp}{20bp}}%
+{{UpLeftArrow}{17bp}{17bp}}{{CrossHairs}{24bp}{24bp}}\do{%
+ \expandafter\getargsiii\ap@text@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+} \fi
+\ifuseAAXdim
+\@tfor\ap@fa@dimen:={{Graph}{20bp}{20bp}}
+ {{Paperclip}{7bp}{17bp}}{{PushPin}{14bp}{20bp}}
+ {{Tag}{20bp}{16bp}}\do{%
+ \expandafter\getargsiii\ap@fa@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\else
+\@tfor\ap@fa@dimen:={{Graph}{18bp}{18bp}}
+ {{Paperclip}{5bp}{15bp}}{{PushPin}{12bp}{18bp}}
+ {{Tag}{18bp}{14bp}}\do{%
+ \expandafter\getargsiii\ap@fa@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+} \fi
+\newcommand{\defaultStampWidth}{50bp}
+\newcommand{\defaultStampHeight}{50bp}
+\newcommand{\standardStampWidth}{245.38bp}
+\newcommand{\standardStampHeight}{64.53bp}
+\@tfor\ap@dimen:={{SBApproved}{163.50bp}{49.50bp}}
+{{SBCompleted}{175.87bp}{49.50bp}}
+{{SBConfidential}{209.62bp}{49.50bp}}
+{{SBDraft}{113.14bp}{49.75bp}}
+{{SBFinal}{97.80bp}{49.75bp}}
+{{SBForComment}{211.87bp}{49.50bp}}
+{{SBForPublicRelease}{290.04bp}{49.55bp}}
+{{SBInformationOnly}{275.00bp}{49.55bp}}
+{{SBNotApproved}{218.62bp}{49.50bp}}
+{{SBNotForPublicRelease}{346.04bp}{49.55bp}}
+{{SBPreliminaryResults}{304.04bp}{49.55bp}}
+{{SBVoid}{91.04bp}{49.75bp}}\do{%
+ \expandafter\getargsiii\ap@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\@tfor\ap@dimen:={{SBRejected}{22.68bp}{22.66bp}}
+{{SHAccepted}{23.29bp}{20.45bp}}
+{{SHInitialHere}{99.69bp}{30.34bp}}
+{{SHSignHere}{99.69bp}{30.34bp}}
+{{SHWitness}{99.69bp}{30.34bp}}\do{%
+ \expandafter\getargsiii\ap@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\catcode`\#=11\relax
+\@tfor\ap@dimen:={{#DApproved}{255.64bp}{53.83bp}}
+{{#DConfidential}{163.28bp}{57.10bp}}
+{{#DReceived}{255.64bp}{55.11bp}}
+{{#DReviewed}{255.64bp}{55.11bp}}
+{{#DRevised}{127.47bp}{55.85bp}}\do{%
+ \expandafter\getargsiii\ap@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\catcode`\#=6\relax
+\newcommand{\stampWidth}[1]{\csname ap@#1Width\endcsname}
+\newcommand{\stampHeight}[1]{\csname ap@#1Height\endcsname}
+\@tfor\ap@dimen:={{WordsAGenuineFind}{120.68bp}{190.83bp}}
+{{WordsBigSavings}{282.84bp}{117.86bp}}
+{{WordsDeals}{345.40bp}{132.55bp}}
+{{WordsHappyBirthday}{326.50bp}{166.32bp}}
+{{WordsHot}{249.64bp}{176.75bp}}
+{{WordsLookWhatsNew}{316.59bp}{229.81bp}}
+{{WordsNeato}{171.12bp}{86.88bp}}
+{{WordsTheBestJustGotBetter}{153.53bp}{153.53bp}}\do{%
+ \expandafter\getargsiii\ap@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\@tfor\ap@dimen:={{FacesEcstatic}{223.20bp}{202.80bp}}
+{{FacesElectric}{295.80bp}{280.50bp}}
+{{FacesGrumpy}{289.92bp}{194.64bp}}
+{{FacesHappy}{161.65bp}{161.65bp}}
+{{FacesHurt}{289.50bp}{285.75bp}}
+{{FacesNeutral}{291.04bp}{279.32bp}}
+{{FacesSmirk}{276.75bp}{292.50bp}}
+{{FacesSurprised}{220.08bp}{215.04bp}}
+{{FacesWorried}{298.11bp}{235.12bp}}
+{{FacesWow}{242.32bp}{289.17bp}}
+{{FacesZippy}{290.59bp}{263.81bp}}\do{%
+ \expandafter\getargsiii\ap@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\@tfor\ap@dimen:={{PointersBogus}{128.32bp}{53.82bp}}
+{{PointersBug}{128.32bp}{51.94bp}}
+{{PointersDOA}{136.99bp}{51.48bp}}
+{{PointersFYEO}{128.32bp}{48.60bp}}
+{{PointersFix}{145.60bp}{58.11bp}}
+{{PointersNuke}{128.32bp}{52.30bp}}
+{{PointersOptimize}{128.32bp}{48.60bp}}
+{{PointersRedFlag}{128.32bp}{57.12bp}}
+{{PointersValidate}{128.32bp}{48.60bp}}
+{{PointersWarning}{128.32bp}{57.23bp}}
+{{PointersWhen}{128.32bp}{63.79bp}}\do{%
+ \expandafter\getargsiii\ap@dimen
+ \ap@csarg\edef{ap@\ap@argi Width}{\ap@argii}%
+ \ap@csarg\edef{ap@\ap@argi Height}{\ap@argiii}%
+}
+\def\ap@FreeTextWidth{144bp}
+\def\ap@FreeTextHeight{72bp}
+\newcommand{\makeStamp}[3]{%
+\ap@csarg\def{stamp@#2}{%
+ \begin{sp@createImage}{#1}{#2\the\ap@cusstamp@cnt}
+ \ap@add@ops#3
+ \end{sp@createImage}}}
+\let\ap@add@ops\@empty
+\newcommand{\ap@useStamp}[1]{%
+ \global\advance\ap@cusstamp@cnt1\relax
+ \@nameuse{stamp@#1}}
+\newcommand{\setAnnotOptions}[1]{%
+ \setkeys{annotpro}{#1}%
+}
+\begingroup
+\def\withoptz@#1{\ifnum#1<10 0\fi\the#1}
+\edef\ap@pdfdate{\the\year\withoptz@\month\withoptz@\day}
+\count0=\time \count2=\count0
+\divide\count2by60
+\edef\ap@pdfdate{\ap@pdfdate\withoptz@{\count2}}
+\multiply\count2by60 \advance\count0by-\count2
+\xdef\ap@pdfdate{\ap@pdfdate\withoptz@{\count0}00}
+\endgroup
+\newcount\ap@annot@cnt
+\newcount\ap@cusstamp@cnt
+{\catcode`\#=12\gdef\ap@signalCustomAP{#}}
+\def\pStamp#1{\ap@signalCustomAP#1}
+\def\ap@RV@Body{<?xml version="1.0"?><body %
+ xfa:APIVersion="Acrobat:9.5.5" %
+ xfa:contentType="text/html" %
+ xfa:spec="2.0.2" xmlns="http://www.w3.org/1999/xhtml" %
+ xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">}
+\def\ap@RV@endBody{<body>}
+\def\ap@sub#1{\rvorvstring{<span style="vertical-align:-0.0pt;">#1</span>}{#1}}%
+\def\ap@sup#1{\rvorvstring{<span style="vertical-align:+0.0pt;">#1</span>}{#1}}%
+\def\ap@uDec#1{\rt@amp\rt@hashtag#1;}
+\def\ap@uHex#1{\rt@amp\rt@hashtag x#1;}
+\def\ap@afterParaFont{%
+ \rt@formfieldfalse
+}
+\def\ap@afterFont{%
+ \rt@formfieldfalse
+ \let\rt@url\@empty
+}
+\newenvironment{textboxpara}{%
+ \let\rt@sub\ap@sub\let\rt@sup\ap@sup
+ \let\rt@afterParaFont\ap@afterParaFont
+ \let\rt@afterFont\ap@afterFont
+ \def\rt@br{\rvorvstring{\rt@amp\rt@hashtag13;}{\string\r}}%
+ \def\rt@spc{\space}\let\uDec\ap@uDec\let\uHex\ap@uHex
+}{}
+\newcommand{\annotpro}{%
+ \begingroup
+ \let\#\ap@signalCustomAP
+ \@nnotpro
+}
+\newcommand{\@nnotpro}[1][]{%
+ \global\advance\ap@annot@cnt1\relax
+ \setkeys{annotpro}{#1}%
+ \@nn@tpro
+}
+\newcommand{\@nn@tpro}[1]
+{%
+ \ifx\annotpro@presets\@empty\else
+ \edef\ap@exp@tmp{\noexpand\setkeys{annotpro}{\annotpro@presets}}%
+ \ap@exp@tmp\fi
+ \ifx\ap@type\@empty\def\ap@type{Text}\def\ap@save@type{0}\fi
+ \ifcase\ap@save@type\relax
+ \def\annot@subtype{annnotprotext}%
+ \ifx\annotpro@subject\@empty\def\annotpro@subject{Sticky Note}\fi
+ \ifx\annotpro@name\@empty\def\annotpro@name{Note}\fi
+ \def\ap@def@name{Note}\or
+ \ifx\annotpro@subject\@empty\def\annotpro@subject{Rubber Stamp}\fi
+ \def\annot@subtype{annnotprostamp}%
+ \def\ap@def@name{Draft}\or
+ \ifx\annotpro@subject\@empty
+ \def\annotpro@subject{File Attachment}\fi
+ \def\annot@subtype{annnotprofileattach}%
+ \def\ap@def@name{PushPin}\or
+ \ifx\annotpro@subject\@empty
+ \def\annotpro@subject{Text Box}\fi
+ \def\annot@subtype{annotprofreetext}%
+ \def\ap@def@name{FreeText}%
+ \fi
+ \edef\ap@exp@tmp{%
+ \noexpand\setkeys{\annot@subtype}{name=\annotpro@name}}%
+ \ap@exp@tmp\xdef\ap@def@type{\ap@type}%
+ \let\annotpro@enc@contents\@empty
+ \makespecialJS
+\if\ap@save@type\ap@freetext@type
+ \let\eq@RV@Body\ap@RV@Body\let\eq@RV@endBody\ap@RV@endBody
+ \setkeys{annotprofreetext}{#1}%
+ \ifx\annotpro@@ds\@empty
+ \def\ap@defaultstyle{\useDefaultDS}\else
+ \edef\ap@defaultstyle{\noexpand\useDS{\annotpro@@ds}}\fi
+ \ifx\annotpro@@rt\@empty
+ \let\annotpro@RC\@empty\let\annotpro@C\@empty\else
+ \edef\annotpro@RC{\noexpand\useRVContent{\annotpro@@rt}}%
+ \edef\annotpro@C{\noexpand\useVContent{\annotpro@@rt}}\fi
+\else
+ \pdfstringdef\annotpro@enc@contents{#1}%
+\fi
+ \let\annotpro@enc@title\@empty
+ \pdfstringdef\annotpro@enc@title{\annotpro@title}%
+ \let\annotpro@enc@subject\@empty
+ \pdfstringdef\annotpro@enc@subject{\annotpro@subject}%
+ \HyColor@XZeroOneThreeFour{\annotpro@color}%
+ {\annotpro@enc@color}{annotpro}{color}%
+\ifx\annotpro@bgcolor\@empty\else
+ \HyColor@XZeroOneThreeFour{\annotpro@bgcolor}
+ {\annotpro@enc@bgcolor}{annotpro}{bgcolor}\fi
+\ifx\annotpro@bcolor\@empty
+ \edef\annotpro@bcolor{\annotpro@def@bcolor}\fi
+ \HyColor@FieldColor{\annotpro@bcolor}
+ {\annotpro@enc@bcolor}{annotpro}{bcolor}%
+ \let\ap@this@AP\@empty\let\ap@this@FS\@empty\let\ap@this@CA\@empty
+ \let\ap@this@Rotate\@empty
+ \ifx\annotpro@opacity\@empty\else
+ \def\ap@this@CA{/CA \annotpro@opacity}\fi
+ \ifcase\ap@save@type
+ \ifx\annotpro@@name\@empty\edef\annotpro@@name{\ap@def@name}\fi
+ \edef\ap@thisWidth{\ifx\annotpro@hspace\@empty
+ \@nameuse{ap@\annotpro@@name Width}\else
+ \annotpro@hspace\fi}%
+ \edef\ap@thisHeight{\ifx\annotpro@vspace\@empty
+ \@nameuse{ap@\annotpro@@name Height}\else
+ \annotpro@vspace\fi}%
+ \or
+ \ifx\annotpro@@name\@empty
+ \ifx\ap@custom@name\@empty
+ \ifx\ap@customstamp@name\@empty
+ \ifx\annotpro@@name\@empty
+ \edef\annotpro@@name{\ap@def@name}\fi
+ \edef\ap@thisWidth{\standardStampWidth}%
+ \edef\ap@thisHeight{\standardStampHeight}%
+ \else
+ \if\ap@graphicxsp0\PackageError{annot_pro}%
+ {Specifying a custom name for a stamp requires
+ the graphicxsp package.}\fi
+ \ifx\annotpro@ap\@empty
+ \PackageError{annot_pro}{You must specify a value
+ for the ap key}\fi
+ \def\ap@ImageRef{\annotpro@ap\the\ap@cusstamp@cnt}%
+ \expandafter\ap@useStamp\expandafter{\annotpro@ap}%
+ \edef\ap@thisWidth{\widthOf{\ap@ImageRef}bp}%
+ \@tempdima=\ap@thisWidth\advance\@tempdima-2bp
+ \edef\ap@thisWidth{\the\@tempdima}%
+ \edef\ap@thisHeight{\heightOf{\ap@ImageRef}bp}%
+ \@tempdima=\ap@thisHeight\advance\@tempdima-2bp
+ \edef\ap@thisHeight{\the\@tempdima}%
+ \def\ap@this@AP{/AP << /N {\ap@ImageRef} >>}%
+ \edef\annotpro@@name{%
+ \ap@signalCustomAP\ap@customstamp@name}%
+ \fi
+ \else
+ \edef\annotpro@@name{\ap@custom@name}%
+ \@ifundefined{ap@\ap@custom@name Width}{%
+ \edef\ap@thisWidth{\ifx\annotpro@width\@empty
+ \defaultStampWidth\else\annotpro@width\fi}%
+ \edef\ap@thisHeight{\ifx\annotpro@height\@empty
+ \defaultStampWidth\else\annotpro@height\fi}%
+ }{%
+ \edef\ap@thisWidth{\ifx\annotpro@width\@empty
+ \@nameuse{ap@\annotpro@@name Width}\else
+ \annotpro@width\fi}%
+ \edef\ap@thisHeight{\ifx\annotpro@height\@empty
+ \@nameuse{ap@\annotpro@@name Height}\else
+ \annotpro@height\fi}%
+ }%
+ \fi
+ \else
+ \edef\ap@thisWidth{\standardStampWidth}%
+ \edef\ap@thisHeight{\standardStampHeight}%
+ \fi
+ \ifx\annotpro@scale\@empty
+ \ifx\annotpro@widthTo\@empty
+ \ifx\annotpro@heightTo\@empty\else % heightTo
+ \edef\ap@thisWidth{%
+ (\ap@thisWidth)*\noexpand
+ \ratio{\annotpro@heightTo}{\ap@thisHeight}}%
+ \edef\ap@thisHeight{\annotpro@heightTo}%
+ \fi
+ \else % widthTo
+ \edef\ap@thisHeight{%
+ (\ap@thisHeight)*\noexpand
+ \ratio{\annotpro@widthTo}{\ap@thisWidth}}%
+ \edef\ap@thisWidth{\annotpro@widthTo}%
+ \fi
+ \else %scale
+ \edef\ap@thisWidth{(\ap@thisWidth)*\noexpand
+ \real{\annotpro@scale}}%
+ \edef\ap@thisHeight{(\ap@thisHeight)*\noexpand
+ \real{\annotpro@scale}}%
+ \fi
+ \setlength{\@tempdima}{\ap@thisWidth}%
+ \edef\ap@thisWidth{\the\@tempdima}%
+ \setlength{\@tempdima}{\ap@thisHeight}%
+ \edef\ap@thisHeight{\the\@tempdima}%
+ \ifx\annotpro@rotate\empty\else
+ \def\ap@this@Rotate{/Rotate \annotpro@rotate}%
+ \ap@set@Rotate@BBox
+ \fi
+ \or
+ \ifx\annotpro@@name\@empty\edef\annotpro@@name{\ap@def@name}\fi
+ \ifx\annotpro@file\@empty\PackageError{annot_pro}%
+ {You must specify a path the file to be
+ attached using the file key.}\fi
+ \def\ap@this@FS{/FS {apEmbedFile\the\ap@annot@cnt}}%
+ \edef\ap@thisWidth{\@nameuse{ap@\annotpro@@name Width}}%
+ \edef\ap@thisHeight{\@nameuse{ap@\annotpro@@name Height}}%
+ \ap@EmbedThisFile
+ \or
+ \ifx\annotpro@@name\@empty\edef\annotpro@@name{\ap@def@name}\fi
+ \ifx\annotpro@width\@empty\else
+ \setlength\@tempdima{\annotpro@width}%
+ \def\annotpro@width{\the\@tempdima}\fi
+ \edef\ap@thisWidth{\ifx\annotpro@width\@empty
+ \@nameuse{ap@\annotpro@@name Width}\else
+ \annotpro@width\fi}%
+ \ifx\annotpro@height\@empty\else
+ \setlength\@tempdima{\annotpro@height}%
+ \def\annotpro@height{\the\@tempdima}\fi
+ \edef\ap@thisHeight{\ifx\annotpro@height\@empty
+ \@nameuse{ap@\annotpro@@name Height}\else
+ \annotpro@height\fi}%
+ \fi
+ \ifx\annotpro@margin\@empty\let\apmargintext\@empty
+ \expandafter\relax\else\expandafter\marginpar\fi
+ {\pdf@rect{\ap@Bbox{\ap@thisWidth}{\ap@thisHeight}}\literalps@out{%
+ [ \eq@objdef\ap@Rect
+ /F 4\ap@readonly
+ /Open \annotpro@open
+ /Title (\annotpro@enc@title)
+ /Subj (\annotpro@enc@subject)
+\if\ap@save@type\ap@freetext@type
+ /RC(\eq@RV@Body\annotpro@RC\eq@RV@endBody)
+ /Contents (\annotpro@C)
+ /DS (\ap@defaultstyle)
+ \ifx\annotpro@bgcolor\@empty\else
+ /C [\annotpro@enc@bgcolor]\fi
+ /DA (\annotpro@enc@bcolor\space/Helv 12 Tf)
+ \ap@border@code
+\else
+ /Open \annotpro@open
+ /Contents (\annotpro@enc@contents)
+ /Color [\annotpro@enc@color]
+\fi
+ /Name (\annotpro@@name)
+ /Subtype/\ap@type
+ /NM (annotpro\the\ap@annot@cnt)
+ /M (D:\ap@pdfdate)
+ \ap@this@AP\ap@this@FS\ap@this@CA\ap@this@Rotate
+ /ANN pdfmark}\apmargintext}%
+ \to@insertStrucTabOrder{Annot}\endgroup
+}
+\def\ap@set@Rotate@BBox{%
+ \CalculateSin\annotpro@rotate\CalculateCos\annotpro@rotate
+ \edef\c@cos{\UseCos\annotpro@rotate}%
+ \edef\c@sin{\UseSin\annotpro@rotate}%
+ \@tempdimb=\c@cos pt
+ \@tempdimb=\c@sin\@tempdimb
+ \let\ap@sign\@empty
+ \ifdim\@tempdimb<\z@\def\ap@sign{-}\fi
+ \@tempdima=\ap@sign\ap@thisWidth
+ \@tempdima=\c@cos\@tempdima
+ \@tempdimb=\ap@thisHeight
+ \@tempdimb=\c@sin\@tempdimb
+ \advance\@tempdima by\@tempdimb
+ \edef\ap@temp@thisWidth{\the\@tempdima}%
+ \@tempdima=\ap@thisWidth
+ \@tempdima=\c@sin\@tempdima
+ \@tempdimb=\ap@thisHeight
+ \@tempdimb=\c@cos\@tempdimb
+ \advance\@tempdima by\ap@sign\@tempdimb
+ \@tempdimb=\ap@temp@thisWidth\relax
+ \ifdim\@tempdimb<\z@\@tempdimb=-\the\@tempdimb\fi
+ \ifdim\@tempdima<\z@\@tempdima=-\the\@tempdima\fi
+ \edef\ap@thisWidth{\the\@tempdimb}%
+ \edef\ap@thisHeight{\the\@tempdima}%
+}
+\def\ap@EmbedThisFile{%
+ \literalps@out{%
+ [ /_objdef {apEmbedFile\the\ap@annot@cnt}/type/dict/OBJ pdfmark
+ [ {apEmbedFile\the\ap@annot@cnt} <<
+ /F (\ap@thisFileName)
+ /UF (\ap@thisFileName)
+ /EF << /F {apFileStream\the\ap@annot@cnt} >>
+ /Type/Filespec
+ >> /PUT pdfmark}%
+ \literalps@out{%
+ [ /_objdef {apFileStream\the\ap@annot@cnt}/type/stream/OBJ pdfmark
+ [ {apFileStream\the\ap@annot@cnt} (\annotpro@file)
+ (r) file /PUT pdfmark
+ [ {apFileStream\the\ap@annot@cnt} <<
+ /Type/EmbeddedFile
+ >> /PUT pdfmark
+ [ {apFileStream\the\ap@annot@cnt} /CLOSE pdfmark}%
+}
+\setAnnotOptions{title,subject,open=false,color}
+\endinput
+%%
+%% End of file `annot_pro.sty'.
diff --git a/texmf-dist/tex/latex/graphicxsp/graphicxsp.sty b/texmf-dist/tex/latex/graphicxsp/graphicxsp.sty
new file mode 100644
index 00000000..7f59f1a2
--- /dev/null
+++ b/texmf-dist/tex/latex/graphicxsp/graphicxsp.sty
@@ -0,0 +1,552 @@
+%%
+%% This is file `graphicxsp.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% graphicxsp.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% graphicxsp.sty package, 2007-08-14 %%
+%% Copyright (C) 2007 D. P. Story %%
+%% storyd@owc.edu / dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+\ProvidesPackage{graphicxsp}
+ [2016/02/19 v1.0 Graphicxsp: Extension of graphicx for dvips/dvipsone (dps)]
+\@ifundefined{ifpreview}{\newif\ifpreview\previewfalse}{}
+\DeclareOption{preview}{\previewtrue}
+\DeclareOption{dvipsone}{\def\gxsp@drivernum{0}}
+\DeclareOption{dvips}{\def\gxsp@drivernum{1}}
+\DeclareOption{showembeds}{\let\gxsp@showembeds=0}
+\let\gxsp@showembeds=1
+\def\gxsp@drivernum{1}
+\DeclareOption{draft}{\spxGin@drafttrue
+ \PassOptionsToPackage{draft}{graphicx}}
+\DeclareOption{final}{\spxGin@draftfalse
+ \PassOptionsToPackage{final}{graphicx}}
+\DeclareOption{shownonames}{\@spx@shownameindraftfalse}
+\newif\if@spx@shownameindraft \@spx@shownameindrafttrue
+\newif\ifspxGin@draft \spxGin@draftfalse
+\InputIfFileExists{graphics.cfg}{}{}
+\ProcessOptions
+\@ifundefined{eq@driver@name}{}{%
+\def\DVIPSONE{dvipsone}\ifx\eq@driver@name\DVIPSONE
+\def\gxsp@drivernum{0}\fi}
+\RequirePackage{graphicx}
+\ifspxGin@draft\Gin@drafttrue\fi
+\RequirePackage{eso-pic}
+\RequirePackage{verbatim}
+\def\grcxsp@hideEPS{\AtBeginDvi{\special{!%
+/product where{%
+pop
+product(Distiller)search{%
+ pop pop pop
+ userdict
+ /?pdfmark /exec load put%
+}{%
+pop
+userdict
+ begin
+ /?pdfmark /pop load def
+ end
+}ifelse%
+}if%
+}}}
+\@ifpackageloaded{hyperref}{\let\grcxsp@hideEPS\relax}{\grcxsp@hideEPS}
+\def\gxsp@literalps@out#1{\special{ps:#1}}
+\ifnum\gxsp@drivernum=1\relax
+\special{!userdict begin
+ /TeXtoPDF {65536 div DVImag mul} def % sp to pts
+ /PDFtoDvips {72.27 div Resolution mul} def % points to dots
+ /PDFtoVDvips {72.27 div VResolution mul} def % points to dots
+ /DvipstoPDF {72.27 mul Resolution div} def % dots to points
+ /HTeXtoDvips {TeXtoPDF PDFtoDvips} def % sp to dots
+ /VTeXtoDvips {TeXtoPDF PDFtoVDvips} def end} % sp to dots
+\special{!userdict begin /cstr {currentpoint translate
+ 1 PDFtoDvips DVImag mul -1 PDFtoDvips DVImag mul scale}def end}
+\def\gxsp@setPSCoor{cstr }
+\def\b@grxsp@Literal{userdict begin}
+\def\e@grxsp@Literal{end}
+\else
+\def\gxsp@setPSCoor{undsclx }
+\let\b@grxsp@Literal\@empty
+\let\e@grxsp@Literal\@empty
+\fi
+\special{!\b@grxsp@Literal
+ /currentpage 0 def
+ /graphicxspCnt 0 def
+ /graphicxspStr 10 string def
+ /graphicxspMergeStr {2 copy length exch length add string dup dup
+ 4 3 roll 4 index length exch putinterval 3 1 roll exch
+ 0 exch putinterval} def
+ /grcxspObjDef {
+ /graphicxspCnt graphicxspCnt 1 add def
+ currentpage graphicxspStr cvs graphicxspMergeStr
+ (-) graphicxspMergeStr
+ graphicxspCnt graphicxspStr cvs
+ graphicxspMergeStr
+ } def \e@grxsp@Literal
+}
+\def\ESO@AeBip@Hook{}
+\newcommand{\AddToEmbeddedEPSs}{\g@addto@macro\ESO@AeBip@Hook}
+\@ifundefined{@ShipoutPicture}{%
+ \ESO@isMEMOIR{%
+ \AtBeginShipout{%
+ \@tempdima=-\trimedge
+ \advance\@tempdima-\paperwidth
+ \advance\@tempdima\stockwidth
+ \if@twoside\ifodd\c@page\else
+ \advance\@tempdima2\trimedge
+ \advance\@tempdima\paperwidth
+ \advance\@tempdima-\stockwidth
+ \fi\fi
+ \@tempdimb=\ESO@yoffsetI
+ \advance\@tempdimb-\trimtop
+ \nointerlineskip
+ \AtBeginShipoutUpperLeft{%
+ \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){%
+ \ESO@HookIII\ESO@HookI\ESO@HookII
+ \global\let\ESO@HookII\@empty
+ }%
+ }%
+ }
+ }{%
+ \AtBeginShipout{%
+ \nointerlineskip
+ \AtBeginShipoutUpperLeft{%
+ \put(0,\LenToUnit{\ESO@yoffsetI}){%
+ \ESO@HookIII\ESO@AeBip@Hook\ESO@HookI\ESO@HookII% dps
+ \global\let\ESO@HookII\@empty
+ \global\let\ESO@AeBip@Hook\@empty% dps
+ }%
+ }%
+ }
+ }
+}{%
+ \renewcommand{\@ShipoutPicture}{%
+ \bgroup
+ \@tempswafalse%
+ \ifx\ESO@HookI\@empty\else\@tempswatrue\fi%
+ \ifx\ESO@HookII\@empty\else\@tempswatrue\fi%
+ \ifx\ESO@HookIII\@empty\else\@tempswatrue\fi%
+ \ifx\ESO@AeBip@Hook\@empty\else\@tempswatrue\fi%dps(08/16/07)
+ \if@tempswa%
+ \@tempdima=1in\@tempdimb=-\@tempdima%
+ \advance\@tempdimb\ESO@yoffsetI%
+ \ESO@isMEMOIR{%
+ \advance\@tempdima\trimedge%
+ \advance\@tempdima\paperwidth%
+ \advance\@tempdima-\stockwidth%
+ \if@twoside\ifodd\c@page\else%
+ \advance\@tempdima-2\trimedge%
+ \advance\@tempdima-\paperwidth%
+ \advance\@tempdima\stockwidth%
+ \fi\fi%
+ \advance\@tempdimb\trimtop}%
+ \unitlength=1pt%
+ \global\setbox\@cclv\vbox{%
+ \vbox{\let\protect\relax
+ \pictur@(0,0)(\strip@pt\@tempdima,\strip@pt\@tempdimb)%
+ \ESO@HookIII\ESO@AeBip@Hook\ESO@HookI\ESO@HookII%dps
+ \global\let\ESO@HookII\@empty%
+ \global\let\ESO@AeBip@Hook\@empty% %dps
+ \endpicture}%
+ \nointerlineskip%
+ \box\@cclv}%
+ \fi
+ \egroup
+ }
+}
+\AddToShipoutPicture{\special{ps: /currentpage \thepage\space def}}
+\def\verbatimwrite{\@bsphack
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12
+ \def\verbatim@processline{%
+ \immediate\write\verbatim@out
+ {\the\verbatim@line}}%
+ \verbatim@start
+}
+\def\endverbatimwrite{\@esphack}
+\def\gxsp@IWVO{\immediate\write\verbatim@out}
+\def\x@namedef#1{\expandafter\xdef\csname #1\endcsname}
+\def\e@namedef#1{\expandafter\edef\csname #1\endcsname}
+\newcount\grxsp@cnt \grxsp@cnt=0
+\def\grcxsp@setPictureDimen#1#2#3#4#5{%
+ \x@namedef{#1Gin@llx}{#2}\x@namedef{#1Gin@lly}{#3}%
+ \x@namedef{#1Gin@urx}{#4}\x@namedef{#1Gin@ury}{#5}%
+ \x@namedef{#1BBox}{#2 #3 #4 #5}%
+ \begingroup
+ \@tempdima=#4bp
+ \advance\@tempdima-#2bp
+ \@tempdima=.99626\@tempdima
+ \x@namedef{#1widthOf}{\strip@pt\@tempdima}%
+ \@tempdima=#5bp
+ \advance\@tempdima-#3bp
+ \@tempdima=.99626\@tempdima
+ \x@namedef{#1heightOf}{\strip@pt\@tempdima}%
+ \endgroup
+}
+\def\heightOf#1{\csname#1heightOf\endcsname}
+\def\widthOf#1{\csname#1widthOf\endcsname}
+\def\bboxOf#1{\csname#1BBox\endcsname}
+\def\llxOf#1{\csname#1Gin@llx\endcsname}
+\def\llyOf#1{\csname#1Gin@lly\endcsname}
+\def\urxOf#1{\csname#1Gin@urx\endcsname}
+\def\uryOf#1{\csname#1Gin@ury\endcsname}
+\newcommand{\embedEPS}[3][]{%
+ \@ifundefined{#2Gin@llx}{}{%
+ \PackageError{graphicxsp}%
+ {The name, #2, on line \the\inputlineno\MessageBreak
+ is already defined. All embedded graphics\MessageBreak
+ must be assigned a unique name}
+ {Give this embedded graphic a unique name.}%
+ }%
+ \begingroup
+ \let\Gin@transparencygroup\@empty
+ \let\input@path\Ginput@path
+ \filename@parse{#3.eps}%
+ \Gin@getbase{.eps}%
+ \@ifundefined{Gin@base}{%
+ \PackageError{graphicxsp}%
+ {%
+ Graphics file #3 specified on \the\inputlineno\MessageBreak
+ was not found%
+ }{%
+ Verify the file exists, is an eps file,\MessageBreak
+ is on the latex search path, or is in the\MessageBreak
+ current directory.%
+ }%
+ }{}%
+ \e@namedef{gxsp@Gin@base}{\Gin@base}%
+ \Gread@eps{\gxsp@Gin@base.eps}%
+ \setkeys{Gin}{name=#2,#1}%
+ \grcxsp@setPictureDimen%
+ {\Gin@name}{\Gin@llx}{\Gin@lly}{\Gin@urx}{\Gin@ury}%
+ \def\gxsp@embedSF{1}%
+ \@tempdima=\Gin@urx bp
+ \advance\@tempdima-\Gin@llx bp
+ \ifdim\@tempdima>\paperwidth
+ \Gscale@div\gxsp@embedSF\paperwidth\@tempdima
+ \@tempdima=\Gin@ury bp
+ \advance\@tempdima-\Gin@lly bp
+ \@tempdima=\gxsp@embedSF\@tempdima
+ \ifdim\@tempdima>\paperheight
+ \edef\gxsp@embedSFSave{\gxsp@embedSF}%
+ \Gscale@div\gxsp@embedSF\paperheight\@tempdima
+ \@tempdima=\gxsp@embedSFSave\p@
+ \@tempdima=\gxsp@embedSF\@tempdima
+ \edef\gxsp@embedSF{\strip@pt\@tempdima}%
+ \fi
+ \else
+ \@tempdima=\Gin@ury bp
+ \advance\@tempdima\Gin@lly bp
+ \ifdim\@tempdima>\paperheight
+ \Gscale@div\gxsp@embedSF\paperheight\@tempdima
+ \fi
+ \fi
+ \edef\@tempa{%
+ \noexpand\AddToEmbeddedEPSs{\noexpand\AtPageLowerLeft%
+ {\noexpand\scalebox{\gxsp@embedSF}%
+ {\noexpand\gxsp@embedEPS{\gxsp@Gin@base}{\Gin@name}}}%
+ \noexpand\AtPageCenter{\noexpand\gcxsp@wrapEmbeddedFigure%
+ {\Gin@transparencygroup}{#2}{\Gin@transparency}}}}\@tempa
+ \endgroup
+}
+\@onlypreamble{\embedEPS}
+\def\grcxsp@coverEmbeds{%
+ \AddToEmbeddedEPSs{\AtPageLowerLeft{\colorbox{white}{%
+ \parbox[b][\paperheight]{\paperwidth}{\hfill\vfill}}}}}
+\if\gxsp@showembeds1%
+\AtBeginDocument{\grcxsp@coverEmbeds}
+\else
+\let\grcxsp@coverEmbeds\relax
+\fi
+\def\grcxsp@maxDim{5000}
+\newcommand{\gxsp@embedEPS}[2]{%
+ \gxsp@literalps@out{gsave \gxsp@setPSCoor
+ [ /BBox [-\grcxsp@maxDim\space-\grcxsp@maxDim\space
+ \grcxsp@maxDim\space\grcxsp@maxDim]\space/_objdef {Embedded:#2}
+ /BP pdfmark grestore}%
+ \message{<Embedding #1>}%
+ \includegraphics{#1}%
+ \gxsp@literalps@out{[ /EP pdfmark}%
+}
+\def\gcxsp@wrapEmbeddedFigure#1#2#3{%
+ \def\Gin@transparencygroup{#1}\def\Gin@transparency{#3}%
+ \gxsp@literalps@out{gsave \gxsp@setPSCoor
+ \ifGin@clip
+ [/BBox [\llxOf{#2}\space\llyOf{#2}\space
+ \urxOf{#2}\space\uryOf{#2}]
+ \else
+ [ /BBox [-\grcxsp@maxDim\space-\grcxsp@maxDim\space
+ \grcxsp@maxDim\space\grcxsp@maxDim]
+ \fi\space /_objdef {#2}
+ \ifx\Gin@transparencygroup\@empty\else
+ \ifx\Gin@transparencygroup\Gin@exclamation
+ /Group << /S/Transparency >>%
+ \else
+ /Group << /S/Transparency \Gin@transparencygroup >>%
+ \fi
+ \fi\space
+ /BP pdfmark
+ [ {Embedded:#2} /SP pdfmark
+ [/EP pdfmark
+ grestore}%
+}
+\newcommand{\sp@createImage}[3][]{%
+ \@ifundefined{#3Gin@llx}{}{%
+ \PackageError{graphicxsp}%
+ {The name, #3, on line \the\inputlineno\space\MessageBreak
+ is already defined. All embedded graphics\MessageBreak
+ must be assigned a unique name}
+ {Give this embedded graphic a unique name.}%
+ }%
+ \setkeys{Gin}{#1}\def\Gin@name{#3}%
+ \edef\@gtempa{#2 }%
+ \expandafter\Gread@parse@bb\@gtempa \\%
+ \begingroup\grxcsp@createImage
+}
+\let\postEP\@empty
+\long\def\grxcsp@createImage#1\end#2{%
+ \def\reserved@a{#2}\ifx\reserved@a\@currenvir
+ \end{#2}\else\@badend{#2}\fi
+ \edef\temp@transparencyGroup{%
+ \ifx\Gin@transparencygroup\@empty\else
+ \ifx\Gin@transparencygroup\Gin@exclamation
+ /Group << /S/Transparency >>%
+ \else
+ /Group << /S/Transparency \Gin@transparencygroup >>%
+ \fi
+ \fi}%
+ \grcxsp@setPictureDimen%
+ {\Gin@name}{\Gin@llx}{\Gin@lly}{\Gin@urx}{\Gin@ury}%
+ \edef\@tempa{%
+ \noexpand\AddToEmbeddedEPSs{\noexpand\AtPageLowerLeft{%
+ \noexpand\gxsp@literalps@out{gsave \gxsp@setPSCoor
+ [ /BBox [\Gin@llx\space\Gin@lly\space\Gin@urx\space\Gin@ury]
+ /_objdef {\Gin@name} \temp@transparencyGroup\space/BP pdfmark
+ \ifx\Gin@transparency\@empty\else
+ [ \Gin@transparency\space/SetTransparency pdfmark\fi
+ {#1} ?pdfmark
+ [ /EP pdfmark
+ grestore
+ }%
+ }}}\@tempa
+ \endgroup
+}
+\let\createImage\sp@createImage
+\let\endcreateImage\endsp@createImage
+\@onlypreamble{\createImage}
+\def\xsp@sanitize{\catcode`\_=12\relax}
+\newcommand{\insertEPS}{\bgroup\xsp@sanitize
+ \@ifstar
+ {\Gin@cliptrue\let\gcxsp@star*\gcxsp@insertEPS}%
+ {\Gin@clipfalse\let\gcxsp@star\@empty\gcxsp@insertEPS}}
+\newcommand{\gcxsp@insertEPS}[2][]%
+ {\expandafter\includegraphics\gcxsp@star[name=#2,#1]{}\egroup}
+\newif\if@Ginnamed\@Ginnamedfalse
+\define@key{Gin}{name}[]{\def\Gin@name{#1}%
+ \@Ginnamedtrue\let\Ginclude@eps\Ginclude@eps@SP}
+\def\Gin@name{}
+\define@key{Gin}{transparencyGroup}[!]{\def\Gin@transparencygroup{#1}}
+\def\Gin@transparencygroup{}
+\define@key{Gin}{transparency}[]{\def\Gin@transparency{#1}}%
+\def\Gin@transparency{}%
+\define@key{Gin}{SMask}[]{\def\Gin@SMask{#1}}%
+\def\Gin@SMask{}%
+\define@key{Gin}{presp}{\def\Gin@presp{#1}}
+\def\Gin@presp{}
+\define@key{Gin}{postsp}{\def\Gin@postsp{#1}}
+\def\Gin@postsp{}
+\define@key{Gin}{SMask}[]{\def\GinSP@SMask{#1}}
+\def\GinSP@SMask{}
+\define@key{GinSP}{subtype}[Luminosity]{\def\GinSP@subtype{#1}}
+\def\GinSP@subtype{Luminosity}
+\define@key{GinSP}{group}[]{\def\GinSP@group{#1}}
+\def\GinSP@group{}
+\define@key{GinSP}{bc}[]{\def\GinSP@bc{#1}}
+\def\GinSP@bc{}
+\define@key{GinSP}{tr}[]{\def\GinSP@tr{#1}}
+\define@key{GinSP}{None}[None]{\def\SMaskSP@None{#1}}
+\def\GinSP@tr{}
+\def\SMaskSP@None{}
+\def\SMaskSP@Identity{Identity}
+\def\sp@setSMask{%
+ \ifx\GinSP@SMask\SMaskSP@None[ /SMask/None /SetTransparency pdfmark
+ \else
+ [ /SMask << /S/\GinSP@subtype\space
+ \ifx\GinSP@bc\@empty\else/BC\GinSP@bc\space\fi
+ \ifx\GinSP@tr\@empty\else\ifx\GinSP@tr\SMaskSP@Identity%
+ /TR/Identity\else/TR {\GinSP@tr}\space\fi\fi
+ /G {\GinSP@group} >> /SetTransparency pdfmark
+ \fi
+}
+\newcommand{\setSMask}[2][]{%
+ \setkeys{GinSP}{#1}\def\GinSP@group{#2}%
+ \special{ps: \sp@setSMask}%
+}
+\def\Gin@setfile#1#2#3{%
+ \ifx\\#2\\\Gread@false\fi
+ \ifGin@bbox\else
+ \ifGread@
+\if@Ginnamed %dps (08/16/07)
+ \edef\Gin@llx{\csname\Gin@name Gin@llx\endcsname}%
+ \edef\Gin@lly{\csname\Gin@name Gin@lly\endcsname}%
+ \edef\Gin@urx{\csname\Gin@name Gin@urx\endcsname}%
+ \edef\Gin@ury{\csname\Gin@name Gin@ury\endcsname}%
+\else
+ \csname Gread@%
+ \expandafter\ifx\csname Gread@#1\endcsname\relax
+ eps%
+ \else
+ #1%
+ \fi
+ \endcsname{\Gin@base#2}%
+\fi
+ \else
+ \Gin@nosize{#3}%
+ \fi
+ \fi
+ \Gin@viewport@code
+ \Gin@nat@height\Gin@ury bp%
+ \advance\Gin@nat@height-\Gin@lly bp%
+ \Gin@nat@width\Gin@urx bp%
+ \advance\Gin@nat@width-\Gin@llx bp%
+ \Gin@req@sizes
+ \expandafter\ifx\csname Ginclude@#1\endcsname\relax
+ \Gin@drafttrue
+ \expandafter\ifx\csname Gread@#1\endcsname\relax
+ \@latex@error{Can not include graphics of type: #1}\@ehc
+ \global\expandafter\let\csname Gread@#1\endcsname\@empty
+ \fi
+ \fi
+ \leavevmode
+ \ifGin@draft
+ \hb@xt@\Gin@req@width{%
+ \vrule\hss
+ \vbox to \Gin@req@height{%
+ \hrule \@width \Gin@req@width
+ \vss
+ \if@Ginnamed %dps (08/18/07)
+ \if@spx@shownameindraft
+ \rlap{ \ttfamily\Gin@name}\fi
+ \else
+ \edef\@tempa{#3}%
+ \rlap{ \ttfamily\expandafter\strip@prefix\meaning\@tempa}%
+ \fi
+ \vss
+ \hrule}%
+ \hss\vrule}%
+ \else
+\if@Ginnamed\else % dps (08/16/07)
+ \@addtofilelist{#3}%
+ \ProvidesFile{#3}[Graphic file (type #1)]%
+\fi
+ \setbox\z@\hbox{\csname Ginclude@#1\endcsname{#3}}%
+ \dp\z@\z@
+ \ht\z@\Gin@req@height
+ \wd\z@\Gin@req@width
+ \ifpreview{\setlength{\fboxsep}{0pt}\fbox{\box\z@}}\else\box\z@\fi%
+ \fi}
+\def\Gin@getbase#1{%
+ \edef\Gin@tempa{%
+ \def\noexpand\@tempa####1#1\space{%
+ \def\noexpand\Gin@base{####1}}}%
+ \if@Ginnamed
+ \edef\Gin@ext{#1}\edef\Gin@base{\Gin@name}%dps (08/18/07)
+ \else
+ \IfFileExists{\filename@area\filename@base#1}%
+ {\Gin@tempa
+ \expandafter\@tempa\@filef@und
+ \edef\Gin@ext{#1}}{}%
+ \fi
+}%
+\def\Gin@computeSF{%
+ \def\@tempa{!}%
+ \edef\gxsp@scaleFactor@x{\Gin@scalex}%
+ \edef\gxsp@scaleFactor@y{\Gin@scaley}%
+ \ifx\Gin@scaley\@tempa % proportional height
+ \ifx\Gin@scalex\@tempa % proportional width
+ \def\gxsp@scaleFactor@x{1}%
+ \def\gxsp@scaleFactor@y{1}%
+ \else % specified width
+ \edef\gxsp@scaleFactor@y{\Gin@scalex}%
+ \fi
+ \else % specified height
+ \ifx\Gin@scalex\@tempa % proportional width
+ \edef\gxsp@scaleFactor@x{\Gin@scaley}%
+ \fi
+ \fi
+}
+\def\gxsp@setBBox{%
+ \ifGin@clip
+ [/BBox [\Gin@llx\space\Gin@lly\space\Gin@urx\space\Gin@ury]
+ \else
+ [/BBox [-\grcxsp@maxDim\space-\grcxsp@maxDim\space
+ \grcxsp@maxDim\space\grcxsp@maxDim]
+ \fi
+}
+\def\Ginclude@eps@SP#1{%
+ \bgroup
+ \ifx\GinSP@SMask\@empty\else
+ \edef\sp@expand@temp{\noexpand\setkeys{GinSP}{\GinSP@SMask}}%
+ \sp@expand@temp
+ \ifx\SMaskSP@None\@empty\ifx\GinSP@group\@empty
+ \PackageError{graphicxsp}{The group key is required when you
+ specify a SMask.}{Specify a group name for the group key.}%
+ \fi\fi\fi
+ \Gin@computeSF
+ \ifGin@bbox
+ \gxsp@literalps@out{%
+ gsave \gxsp@setPSCoor
+ \ifx\GinSP@SMask\@empty\else\sp@setSMask\fi
+ \gxsp@setBBox\space
+ (\Gin@name:bbox@) grcxspObjDef
+ /graphicxspretn exch cvx cvn def
+ /_objdef {//graphicxspretn} /BP pdfmark
+ \ifx\Gin@transparency\@empty\else
+ [ \Gin@transparency\space/SetTransparency pdfmark\fi
+ [ {\Gin@name} /SP pdfmark
+ [ /EP pdfmark
+ \gxsp@scaleFactor@x\space\gxsp@scaleFactor@y\space scale
+ -\Gin@llx\space -\Gin@lly\space moveto
+ currentpoint translate
+ \Gin@presp
+ [ {//graphicxspretn} /SP pdfmark
+ \Gin@postsp
+ grestore
+ }%
+ \else
+ \gxsp@literalps@out{%
+ gsave \gxsp@setPSCoor
+ \ifx\GinSP@SMask\@empty\else\sp@setSMask\fi
+ \gxsp@setBBox\space
+ (\Gin@name:grxsp@) grcxspObjDef
+ /graphicxspretn exch cvx cvn def
+ /_objdef {//graphicxspretn} /BP pdfmark
+ \ifx\Gin@transparency\@empty\else
+ [ \Gin@transparency\space/SetTransparency pdfmark\fi
+ [ {\Gin@name} /SP pdfmark
+ [ /EP pdfmark
+ \gxsp@scaleFactor@x\space\gxsp@scaleFactor@y\space scale
+ \ifx\Gin@viewport@code\relax\else
+ -\Gin@llx\space-\Gin@lly\space moveto
+ currentpoint translate\fi
+ \Gin@presp
+ [ {//graphicxspretn} /SP pdfmark
+ \Gin@postsp
+ grestore
+ }%
+ \fi
+ \egroup}
+\endinput
+%%
+%% End of file `graphicxsp.sty'.