summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-04-28 03:01:33 +0000
committerNorbert Preining <norbert@preining.info>2021-04-28 03:01:33 +0000
commitd929e40413ebfcbeaadd7e5469ed1eb0d867ba97 (patch)
tree29822671cc2b8a5972bc139952a695cd038df417 /macros
parent95b070aee1a6351879af117f723c84d50b48338d (diff)
CTAN sync 202104280301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/README.md4
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx8
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js12
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdfbin719107 -> 721191 bytes
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex2
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex1.pdfbin0 -> 70199 bytes
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.pdfbin0 -> 64331 bytes
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.tex111
-rw-r--r--macros/latex/contrib/aeb_pro/aeb_pro/examples/test_install-basic.tex43
-rw-r--r--macros/latex/contrib/easybook/doc/chapter1.tex2
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.pdfbin268704 -> 268709 bytes
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.tex2
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.pdfbin465175 -> 465154 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx163
-rw-r--r--macros/latex/contrib/eq-save/README.md4
-rw-r--r--macros/latex/contrib/eq-save/docs/eqsave-man.pdfbin294027 -> 294253 bytes
-rw-r--r--macros/latex/contrib/eq-save/docs/eqsave-man.tex9
-rw-r--r--macros/latex/contrib/eq-save/eq-save.dtx85
-rw-r--r--macros/latex/contrib/eq-save/examples/eqsave-noname.pdfbin151583 -> 272696 bytes
-rw-r--r--macros/latex/contrib/onedown/ODw-Danish.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-Dutch.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-English.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-French.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-German.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-Norsk.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-Spanish.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-Swedish.dict162
-rw-r--r--macros/latex/contrib/onedown/ODw-Turkish.dict160
-rw-r--r--macros/latex/contrib/onedown/ODw-danish.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-dutch.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-english.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-fallback.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-french.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-german.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-norwegian.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-spanish.trsl160
-rw-r--r--macros/latex/contrib/onedown/ODw-swedish.trsl162
-rw-r--r--macros/latex/contrib/onedown/ODw-turkish.trsl160
-rw-r--r--macros/latex/contrib/onedown/README21
-rw-r--r--macros/latex/contrib/onedown/examples/CardSymbols.tex44
-rw-r--r--macros/latex/contrib/onedown/examples/Compass.pdfbin0 -> 415404 bytes
-rw-r--r--macros/latex/contrib/onedown/examples/Compass.tex20
-rw-r--r--macros/latex/contrib/onedown/examples/Fontsizes.pdfbin0 -> 245668 bytes
-rw-r--r--macros/latex/contrib/onedown/examples/Fontsizes.tex33
-rw-r--r--macros/latex/contrib/onedown/examples/Languages.tex2
-rw-r--r--macros/latex/contrib/onedown/examples/onedown-examples.pdfbin855928 -> 874153 bytes
-rw-r--r--macros/latex/contrib/onedown/examples/onedown-examples.tex44
-rw-r--r--macros/latex/contrib/onedown/examples/onedown-ref.pdfbin228347 -> 227662 bytes
-rw-r--r--macros/latex/contrib/onedown/examples/onedown-ref.tex27
-rw-r--r--macros/latex/contrib/onedown/onedown.dtx486
-rw-r--r--macros/latex/contrib/onedown/onedown.pdfbin1025146 -> 1026845 bytes
-rw-r--r--macros/latex/contrib/rmannot/README.md9
-rw-r--r--macros/latex/contrib/rmannot/doc/rmannot.pdfbin433595 -> 0 bytes
-rw-r--r--macros/latex/contrib/rmannot/doc/rmannot_man.pdfbin4964286 -> 5803822 bytes
-rw-r--r--macros/latex/contrib/rmannot/doc/rmannot_man.tex33
-rw-r--r--macros/latex/contrib/rmannot/examples/rma/aebmovie_poster.eps16680
-rw-r--r--macros/latex/contrib/rmannot/examples/rma/tst_3gp.tex3
-rw-r--r--macros/latex/contrib/rmannot/examples/rma/tst_m4v.tex2
-rw-r--r--macros/latex/contrib/rmannot/examples/rma/tst_mov.tex2
-rw-r--r--macros/latex/contrib/rmannot/examples/rma/tst_mp4.tex3
-rw-r--r--macros/latex/contrib/rmannot/examples/rma/tst_mp4_hidden.tex6
-rw-r--r--macros/latex/contrib/rmannot/rmannot.cfg3
-rw-r--r--macros/latex/contrib/rmannot/rmannot.dtx20
-rw-r--r--macros/unicodetex/latex/tipauni/COPYING674
-rw-r--r--macros/unicodetex/latex/tipauni/README.txt9
-rw-r--r--macros/unicodetex/latex/tipauni/gfdl-tex.tex513
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni-commands.pdfbin0 -> 108227 bytes
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni-commands.tex289
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni-example.pdfbin0 -> 134002 bytes
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni-example.tex391
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni.dtx939
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni.ins54
-rw-r--r--macros/unicodetex/latex/tipauni/tipauni.pdfbin0 -> 194032 bytes
73 files changed, 13457 insertions, 10339 deletions
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/README.md b/macros/latex/contrib/aeb_pro/aeb_pro/README.md
index 322055fa7c..ec6b1263d0 100644
--- a/macros/latex/contrib/aeb_pro/aeb_pro/README.md
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/README.md
@@ -38,6 +38,10 @@ The AcroTeX Blog (http://blog.acrotex.net/) lists the distribution files at
http://www.acrotex.net/blog/?page_id=835, all demo files that use AeB Pro
are listed at http://www.acrotex.net/blog/?tag=aeb-pro.
+What's New (2021-04-27) Added aebCertifyInvisibleSign() to aeb_pro.js
+(Version 1.5) This JS function supports http://www.acrotex.net/blog/?p=1274,
+an article titled Certify Invisible Signing using AeB Pro.
+
What's New (2021-02-07) Fix a long time bug of page events.
What's New (2021-02-04) Updated documentation to reflect new security restriction
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx b/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx
index a225c7209b..0b5e3d769b 100644
--- a/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx
@@ -14,7 +14,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{aeb_pro}
-%<package> [2021/02/07 v2.10 aeb_pro: A support package (dps)]
+%<package> [2021/04/27 v2.11 aeb_pro: A support package (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
@@ -43,7 +43,7 @@
\PackageInfo{aeb_pro}{aebdocfmt.def cannot be found}}
\begin{document}
\GetFileInfo{aeb_pro.sty}
- \title{aeb\_pro\\as suggested by J\"{u}rgen Gilg}
+ \title{\pkg{aeb\_pro}\\as suggested by J\"{u}rgen Gilg}
\author{D. P. Story\\
Email: \texttt{dpstory@acrotex.net}}
\date{processed \today}
@@ -82,6 +82,8 @@
%</altpkgname>
%<*package>
% \end{macrocode}
+% \changes{v2.11}{2021/04/27}{Added \string\texttt{aebCertifyInvisibleSign} to
+% \string\texttt{aeb\_pro.js} (Version 1.5)}
% \changes{v2.9.7}{2021/02/04}{Updated documentation to reflect new Acrobat security restriction,
% Acrobat may have to be configured.}
% \changes{v2.9}{2017/08/25}{Extracted some of the code from unicode.def to create a new package, forms16be.
@@ -3596,7 +3598,7 @@ nLaunch: \ahref@launch@type})}}]{\ahypercolor{#3}}%
%});
%\end{docassembly}
%\end{verbatim}
-% The signatureSetSeedValue() methods seeds a signature field with various default values
+% The \texttt{signatureSetSeedValue()} method seeds a signature field with various default values
% available to the signer.
%\begin{verbatim}
%\begin{docassembly}
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js b/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js
index 7b14a2094e..6172b1e1db 100644
--- a/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js
@@ -1,12 +1,14 @@
/*
AEB Pro Document Assembly Methods
- Copyright (C) 2012 -- 2016 AcroTeX.Net
+ Copyright (C) 2012 -- 2021 AcroTeX.Net
D. P. Story
http://www.acrotex.net
- Version 1.4
+ Version 1.5
*/
+/* v1.5 Added aebCertifyInvisibleSign */
+
if ( typeof aebTrustedFunctions == "undefined") {
aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs )
@@ -115,6 +117,12 @@ aebSignatureSetSeedValue = app.trustPropagatorFunction( function ( oArgs, field
return retn = field.signatureSetSeedValue(oArgs);
app.endPriv();
});
+aebCertifyInvisibleSign = app.trustPropagatorFunction( function ( oArgs, field )
+{
+ app.beginPriv();
+ return retn = field.certifyInvisibleSign( oArgs )
+ app.endPriv();
+});
aebAddIcon=app.trustPropagatorFunction( function ( oArgs, doc )
{
app.beginPriv();
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdf b/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdf
index 1072bd80d3..ffeead4b78 100644
--- a/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdf
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdf
Binary files differ
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex b/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex
index 937318cefe..3a9671c471 100644
--- a/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex
@@ -36,7 +36,7 @@
email={dpstory@acrotex.net},
subject={Documentation for {\AEBP} from AcroTeX},
talksite={\url{www.acrotex.net}},
- version={2.10, 2021/02/07},
+ version={2.11, 2021/04/27},
Keywords={XMP, E4X, Adobe Acrobat, JavaScript},
copyrightStatus=True,
copyrightNotice={Copyright (C) \the\year, D. P. Story},
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex1.pdf b/macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex1.pdf
new file mode 100644
index 0000000000..4af04e42b9
--- /dev/null
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex1.pdf
Binary files differ
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.pdf b/macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.pdf
new file mode 100644
index 0000000000..85ec4cfb71
--- /dev/null
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.pdf
Binary files differ
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.tex b/macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.tex
new file mode 100644
index 0000000000..d6a4d83abd
--- /dev/null
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/examples/ro-autoanime.tex
@@ -0,0 +1,111 @@
+% dvips/Distiller workflow only
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage[%
+ web={
+ pro,
+ designv,
+ tight,
+% forcolorpaper,
+ centertitlepage,
+ dvipsnames,
+ usesf
+ },
+ uselayers,
+ attachsource=tex,
+ eforms,
+ aebxmp,
+]{aeb_pro}
+\usepackage{fancyvrb}
+\usepackage[nomessages]{fp}
+%
+% The versions of pstricks-add and pstricks should be
+% fairly recent.
+%
+\usepackage{pstricks-add}
+\usepackage[absolute,overlay]{textpos}
+
+\DeclareDocInfo
+{
+ title=The AeB Pro Package\texorpdfstring{\\[1ex]}{: }Rollovers and Auto-anime,
+ author=D. P. Story,
+ university=Acro\negthinspace\TeX.Net,
+ email=dpstory@acrotex.net,
+ subject=Test file for the AeB Pro package,
+ keywords={Adobe Acrobat, JavaScript},
+ talksite=http://www.acrotex.net,
+ talkdate={January 12, 2018},
+ copyrightStatus=True,
+ copyrightNotice={Copyright (C) \the\year, D. P. Story},
+ copyrightInfoURL=http://www.acrotex.net
+}
+\talkdateLabel{Published:}
+
+\newcommand{\cs}[1]{\texttt{\char`\\#1}}
+\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi
+\vskip\medskipamount\noindent}
+\newenvironment{sverbatim}
+{\par\footnotesize\verbatim}{\endverbatim}
+\def\AcroTeX{Acro\negthinspace\TeX}
+
+\begin{document}
+
+\maketitle
+
+
+\section{Layers and Animation}
+
+Animations are usually started and stopped using control buttons; however,
+you can create a rollover animation (using \cs{texHelp}) that starts
+automatically when the user rolls over the target word.
+
+The key to running an animation in a rollover is the
+\verb!\addJStexHelpEnter{<code>}! command. The argument of this command is
+executed when the mouse pointer enters the target word. Similarly
+\verb!\addJStexHelpExit{<code>}! inserts JavaScript that is executed when the
+mouse exits the target word. Finally, \cs{resetaddJStexHelp} resets the
+inserted \verb!<code>! back to their default in preparation for the next
+rollover animation. Refer to the source file for details of setting up the
+rollover.
+
+\defineRC{roanime}
+{%
+\DeclareAnime{sinegraph}{10}{40}
+\def\thisframe{\animeBld\psplot[linecolor=red]{0}{\xi}{sin(x)}\eBld}
+\begin{minipage}{.65\linewidth}\centering
+\psset{llx =-12pt,lly=-12pt,urx =12pt,ury =12pt} % ,trigLabels=true,labelFontSize=\small
+\begin{psgraph*}[arrows=->,trigLabels=true,trigLabelBase=2,dx=\psPiH](0,0)(-.5,-1.5)(6.75,1.5){164pt}{70pt}
+ \psset{algebraic=true}%
+ \rput(4,1){$y=\sin(x)$}
+ \FPdiv{\myDelta}{\psPiTwo}{\nFrames}%
+ \def\xi{0}%
+ \multido{\i=1+1}{\nFrames}{\FPadd{\xi}{\xi}{\myDelta}\thisframe}
+\end{psgraph*}
+\end{minipage}
+}
+
+\begin{rollover}
+\begin{textblock*}{.45\linewidth}[.5,.5](.5\paperwidth,.5\paperheight)
+\xBld{roanime}\psshadowbox[framesep=0pt]{\fcolorbox{red}{cornsilk}{%
+\parbox{\linewidth}{\insertRC{roanime}}}}\eBld
+\end{textblock*}
+\end{rollover}
+\begin{printRollover}
+\definePR{roanime}{\parbox{.4\linewidth}{\insertRC{roanime}}}\insertPR{roanime}
+\end{printRollover}
+
+Recall that the \emph{initial period} of the \addJStexHelpEnter{aebAnimeLayersForward(\animSpeed,\nFrames,"\animBaseName");}%
+\addJStexHelpExit{aebAnimeLayersClear(\animSpeed,\nFrames,"\animBaseName");}%
+\texHelp{roanime}{sine function}\resetaddJStexHelp\space
+is that portion of the graph over the interval $ [0, 2\pi] $.
+
+The verbatim listing of the \cs{texHelp} command for this animation is
+\begin{Verbatim}[xleftmargin=\parindent,fontsize=\small]
+\addJStexHelpExit{aebAnimeLayersClear(\animSpeed,\nFrames,"\animBaseName");}%
+\texHelp{roanime}{sine function}\resetaddJStexHelp
+\end{Verbatim}
+The arguments \cs{animSpeed}, \cs{nFrames}, and \cs{animBaseName} are defined by
+the \cs{DeclareAnime} command (not shown).
+
+
+\end{document}
diff --git a/macros/latex/contrib/aeb_pro/aeb_pro/examples/test_install-basic.tex b/macros/latex/contrib/aeb_pro/aeb_pro/examples/test_install-basic.tex
new file mode 100644
index 0000000000..b501c92838
--- /dev/null
+++ b/macros/latex/contrib/aeb_pro/aeb_pro/examples/test_install-basic.tex
@@ -0,0 +1,43 @@
+\documentclass{article}
+\usepackage[designiv]{web}
+\usepackage{eforms}
+
+\begin{defineJS}{\isImportAnFDFKnown}
+console.clear(); console.show();
+if ( typeof aebImportAnFDF == "function" ) {
+ app.beep(0);
+ console.println("aeb.js is successfully installed, congratulations!");
+ console.println("\\nYou're ready to Rock with AcroTeX!");
+} else {
+ app.beep(0); app.beep(0);
+ console.println("aeb.js is not, repeat NOT, installed correctly!");
+}
+\end{defineJS}
+
+\thispagestyle{empty}
+\parindent0pt\parskip6pt
+
+\begin{document}
+
+This is a file to test your \textsf{AeB} installation.
+
+To test the \textsf{AeB} installation, press this button:
+\pushButton[\CA{Test AeB}\A{\JS{\isImportAnFDFKnown}}]{btnTest}{}{11bp}
+
+Upon pressing the button, if you have installed the \texttt{aeb.js} file
+correctly, a congratulatory message appears in the console window; if the
+installation is not correct, a message informs you so.
+
+On failure, did you close \textsf{Acrobat} before opening this file? (The JS
+files are only read once when the \textsf{Acrobat} application is opened.)
+When all else fails, try rereading the installation instructions again
+(\texttt{install\_jsfiles.pdf}), found in the \texttt{doc} folder, but more
+carefully this time.
+
+Still failing? Do you have \textsf{Acrobat DC}? Perhaps your \textsf{Acrobat}
+needs to be configured. Try reading \texttt{acrobat-in-workflow.pdf}, found
+in the \texttt{doc} folder.
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/easybook/doc/chapter1.tex b/macros/latex/contrib/easybook/doc/chapter1.tex
index 58d20eb0e8..62d8898175 100644
--- a/macros/latex/contrib/easybook/doc/chapter1.tex
+++ b/macros/latex/contrib/easybook/doc/chapter1.tex
@@ -61,7 +61,7 @@
\zhlipsum*[59][name = aspirin]
\end{ebparbox}
-\begin{exercise}+[LightBlue][1.](习题)[after skip = 3.25ex][\zhlipsum*[20][name = zhufu]]
+\begin{exercise}+[LightSkyBlue][1.](习题)[after skip = 3.25ex][\zhlipsum*[20][name = zhufu]]
\index{x@习题环境}
\item \zhlipsum*[20][name = zhufu]
\begin{tasks}
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.pdf b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
index bcfab49697..79e9ef2ef1 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.tex b/macros/latex/contrib/easybook/doc/easybook-demo.tex
index 3d9bd6212f..d92084a44e 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.tex
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.tex
@@ -106,7 +106,7 @@
\url{https://latexstudio.net} \\
\url{https://gitee.com/texl3/easybook}\thanks{Gitee为项目的主要发布地址。}
}
-\date{2021/04/25\hskip\ccwd\relax v1.24t}
+\date{2021/04/27\hskip\ccwd\relax v1.24u}
\frontmatter[roman]
\maketitle
diff --git a/macros/latex/contrib/easybook/doc/easybook.pdf b/macros/latex/contrib/easybook/doc/easybook.pdf
index bd22407ff2..b2dd8f3d31 100644
--- a/macros/latex/contrib/easybook/doc/easybook.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index dd209df137..c496633842 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -56,7 +56,7 @@ The latest version of this license is in
%
% \title{\sffamily easybook 书籍文档类}
% \author{瞿毅}
-% \date{2021/04/25\hskip\ccwd\relax v1.24t\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/04/27\hskip\ccwd\relax v1.24u\thanks{\url{https://gitee.com/texl3/easybook}}}
% \maketitle
% \begin{abstract}
% \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -183,7 +183,7 @@ The latest version of this license is in
% \end{syntax}
% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。已经预置了中英文的目录标题,可以使用 \opt{title} 选项更改目录标题的名称。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
% \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
-% \changes{v1.24t}{2021/04/04}{目录命令的可选参数增加标题键值。}
+% \changes{v1.24u}{2021/04/04}{目录命令的可选参数增加标题键值。}
% \end{function}
%
% \section{接口选项}
@@ -266,7 +266,7 @@ The latest version of this license is in
% \ding{229} 以上选项路径为 \opt{link/...} \\
% \opt{link} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
% \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
-% \changes{v1.24t}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
+% \changes{v1.24u}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
% \end{function}
%
% \begin{optdesc}
@@ -345,7 +345,7 @@ The latest version of this license is in
% \ding{229} 以上选项路径为 \opt{bibset/...}
% \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
% \changes{v1.23}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
-% \changes{v1.24t}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
+% \changes{v1.24u}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
% \end{function}
%
% \begin{optdesc}
@@ -417,7 +417,7 @@ The latest version of this license is in
% \end{syntax}
% 文档类已预置8个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这两个命令。
% \changes{v1.23}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
-% \changes{v1.24t}{2021/04/25}{增加定义定理环境命令 \tn{EbNewtheorem}。}
+% \changes{v1.24u}{2021/04/25}{增加定义定理环境命令 \tn{EbNewtheorem}。}
% \end{function}
%
% \begin{optdesc}
@@ -501,7 +501,7 @@ The latest version of this license is in
% \changes{v1.21}{2021/01/13}{增加配置页眉页脚的选项。}
% \changes{v1.23}{2021/03/08}{优化页眉页脚设置,增加 \opt{chap-mark} 和 \opt{sec-mark} 标志选项。}
% \changes{v1.23}{2021/03/14}{可以手动绘制页眉、页脚和脚注的横线。}
-% \changes{v1.24t}{2021/04/09}{增加 \opt{subsec-mark} 标志选项,仅在 \opt{article} 模式生效。}
+% \changes{v1.24u}{2021/04/09}{增加 \opt{subsec-mark} 标志选项,仅在 \opt{article} 模式生效。}
% \end{function}
%
% \begin{function}[added = 2021-01-13,updated = 2021-03-14]{\easyhead,\easyfoot}
@@ -540,7 +540,7 @@ The latest version of this license is in
%
% \opt{format} 是目录中标题的格式,可以设置字体和加入垂直间距等,垂直间距最好使用无间距重合的 \tn{addvspace} 命令。\opt{indent} 是目录中标题在页面左侧的缩进距离,应该有长度单位。\opt{rule} 选项中一般应当使用 \tn{tocrule} 命令,将会在接下来介绍。\opt{numsep} 是有编号的标题在目录中编号与标题的间距。
% \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
-% \changes{v1.24t}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。}
+% \changes{v1.24u}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。}
% \end{function}
%
% \begin{function}[added = 2021-01-13,updated = 2021-04-20]{\tocrule,\EbNumberline}
@@ -579,9 +579,9 @@ The latest version of this license is in
% indent-all = <目录标题左边缩进>
% \end{syntax}
% \ding{229} 以上选项路径为 \opt{tocset/lists/...} 或 \opt{tocset/...}
-% \changes{v1.24t}{2021/04/05}{可以设置图、表和代码目录的标签。}
-% \changes{v1.24t}{2021/04/06}{增加目录引导线右边对齐方式。}
-% \changes{v1.24t}{2021/04/19}{给目录增加 \opt{hang} 样式选项。}
+% \changes{v1.24u}{2021/04/05}{可以设置图、表和代码目录的标签。}
+% \changes{v1.24u}{2021/04/06}{增加目录引导线右边对齐方式。}
+% \changes{v1.24u}{2021/04/19}{给目录增加 \opt{hang} 样式选项。}
% \end{function}
%
% \begin{optdesc}
@@ -621,7 +621,7 @@ The latest version of this license is in
% \tn{end}\marg{环境名}
% \end{syntax}
% \pkg{enumitem} 宏包为系统预置的列表环境 \env{enumerate}、\env{itemize}和 \env{description} 提供了更灵活的标签以及间距的控制,可使用 \tn{setlist} 命令设置原有的三种列表格式,也可以直接使用可选参数的键值列表,具体选项见 \pkg{enumitem} 宏包文档。已为三种列表预置了三个级别的格式可相互嵌套,默认标签与 \cls{book} 文档类相同,若自定义标签可例如
-% \changes{v1.24t}{2021/04/08}{重新优化列表环境的配置。}
+% \changes{v1.24u}{2021/04/08}{重新优化列表环境的配置。}
% \end{function}
%
% \begin{ctexexam}
@@ -740,7 +740,7 @@ The latest version of this license is in
% \tn{end}\marg{ebparbox}
% \end{syntax}
% 环境 \env{ebparbox} 与 \env{easybox} 类似,同样带有三个可选参数。当使用星号参数时盒子左边带有一条竖线,\meta{颜色名} 选项可以自定义竖线颜色,使用不带有星号的环境则盒子带有竖线颜色的浅色背景。\meta{段落标题} 选项可以设置标题,默认无标题。
-% \changes{v1.24t}{2021/04/19}{优化盒子环境的选项,增加可带有标题的扁平盒子 \env{ebparbox}。}
+% \changes{v1.24u}{2021/04/19}{优化盒子环境的选项,增加可带有标题的扁平盒子 \env{ebparbox}。}
% \end{function}
%
% \subsubsection{行内盒子}
@@ -799,7 +799,7 @@ The latest version of this license is in
% \tn{labelformat}\marg{计数器}\marg{标签引用格式}
% \end{syntax}
% 使用 \tn{ref} 命令进行引用将会自动检测环境并添加相应的前缀,\tn{labelformat} 可以设置标签引用格式,第二个参数中\#1代表 \tn{the}\meta{计数器},可以设置引用序号的前缀和后缀。
-% \changes{v1.24t}{2021/04/11}{取消载入 \pkg{cleveref} 宏包来交叉引用。}
+% \changes{v1.24u}{2021/04/11}{取消载入 \pkg{cleveref} 宏包来交叉引用。}
% \end{function}
%
% \subsubsection{索引}
@@ -909,7 +909,7 @@ The latest version of this license is in
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplClass{easybook}{2021/04/25}{1.24t}{beta}
+\ProvidesExplClass{easybook}{2021/04/27}{1.24u}{beta}
\cs_generate_variant:Nn \__ctex_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -1403,6 +1403,7 @@ The latest version of this license is in
\hspace{\use:c {eb@toc@#1@numsep}}
}{}
}
+\newtoggle{eb@titletoc@hang@fix}
\__ctex_define:nn {tocset}
{
lists/lolskip .skip_set:N = \l__eb_toc_lolskip_skip,
@@ -1417,29 +1418,22 @@ The latest version of this license is in
tocline-fig .initial:n =
{
\figurename\space#1
- \ifodd\eb@titletoc@hang@fix
- \else
- \hspace{\eb@toc@lists@numsep}
- \fi
+ \iftoggle{eb@titletoc@hang@fix}{}
+ {\hspace{\eb@toc@lists@numsep}}
},
tocline-tab .cs_set:Np = \eb@labelname@lot#1,
tocline-tab .initial:n =
{
\tablename\space#1
- \ifodd\eb@titletoc@hang@fix
- \else
- \hspace{\eb@toc@lists@numsep}
- \fi
+ \iftoggle{eb@titletoc@hang@fix}{}
+ {\hspace{\eb@toc@lists@numsep}}
},
tocline-lst .tl_set:N = \eb@labelname@lol,
tocline-lst .initial:n =
{
- \lstlistingname\space
- \thelstlisting
- \ifodd\eb@titletoc@hang@fix
- \else
- \hspace{\eb@toc@lists@numsep}
- \fi
+ \lstlistingname\space\thelstlisting
+ \iftoggle{eb@titletoc@hang@fix}{}
+ {\hspace{\eb@toc@lists@numsep}}
},
line-align .bool_set:N = \l__eb_toc_line_align_bool,
line-align .default:n = true,
@@ -1448,7 +1442,7 @@ The latest version of this license is in
hang .choice:,
hang/true .code:n =
{
- \bool_set_true:N \eb@titletoc@hang@fix
+ \toggletrue{eb@titletoc@hang@fix}
\ctex_set:n
{
chapter/tocline = \CTEXnumberline{##1}##2,
@@ -1458,7 +1452,6 @@ The latest version of this license is in
},
hang/false .code:n =
{
- \bool_set_false:N \eb@titletoc@hang@fix
\ctex_set:n
{
chapter/tocline = \EbNumberline{##1}##2,
@@ -1532,14 +1525,15 @@ The latest version of this license is in
[\use:c {l__eb_toc_#2_indent_tl}]
{\use:c {l__eb_toc_#2_format_tl}}
{
- \ifodd\eb@titletoc@hang@fix
- \contentspush
- {
- \color{ctex@link}
- \thecontentslabel
- \hspace{\use:c {eb@toc@#2@numsep}}
- }
- \fi
+ \iftoggle{eb@titletoc@hang@fix}
+ {
+ \contentspush
+ {
+ \bool_if:NT \l__eb_toc_color_bool{\color{ctex@toc}}
+ \thecontentslabel
+ \hspace{\use:c {eb@toc@#2@numsep}}
+ }
+ }{}
}{}
{\use:c {l__eb_toc_#2_rule_tl}}
}
@@ -1565,9 +1559,7 @@ The latest version of this license is in
{
\addcontentsline{#1}{#2}
{
- \ifodd\eb@titletoc@hang@fix
- \protect\numberline
- \fi
+ \iftoggle{eb@titletoc@hang@fix}{\protect\numberline}{}
{\prop_item:Nn \l__eb_label_name_prop{#2}{#3}}{#4}
}
}
@@ -1578,9 +1570,7 @@ The latest version of this license is in
}{
\addcontentsline{lol}{lstlisting}
{
- \ifodd\eb@titletoc@hang@fix
- \protect\numberline
- \fi
+ \iftoggle{eb@titletoc@hang@fix}{\protect\numberline}{}
{\eb@labelname@lol}\lst@@caption
}
}
@@ -2062,7 +2052,7 @@ The latest version of this license is in
{
label = (\Alph*),
after-item-skip = 0ex plus .1ex,
- column-sep = .5\ccwd,
+ column-sep = \ccwd,
item-indent = 2\ccwd,
label-width = 1.5\ccwd
}
@@ -2174,7 +2164,7 @@ The latest version of this license is in
\end{tcolorbox}
}{}
\NewDocumentEnvironment{exercise}
- {st+O{LightBlue}O{1.}D(){\c__eb_name_exercise_tl}o+O{}+b}
+ {st+O{LightSkyBlue}O{1.}D(){\c__eb_name_exercise_tl}o+O{}+b}
{
\IfBooleanTF{#2}
{
@@ -2498,29 +2488,43 @@ The latest version of this license is in
},
}
-\cs_new:Npn \__eb_allow_urlbreak:
- {
- \cs_new:Npn \__eb_add_urlbreak_points:
- {\tl_map_function:NN \c__eb_urlbreak_points_tl\do}
- \__eb_appto_cmd:Nn
- \UrlBreaks{\UrlOrds\__eb_add_urlbreak_points:}
- }
-\tl_const:Nn \c__eb_urlbreak_points_tl
- {
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
- abcdefghijklmnopqrstuvwxyz
- 0123456789
- }
-
-\__ctex_define:nx {link}
+\bool_set_false:N \l__eb_toc_color_bool
+\__ctex_define:nn {link}
{
hyperlink .choice:,
hyperlink/edge .code:n = {},
- hyperlink/various .code:n = \__eb_put_hyperref:n {colorlinks},
hyperlink/none .code:n = \__eb_put_hyperref:n {hidelinks},
+ hyperlink/various .code:n =
+ {
+ \bool_set_true:N \l__eb_toc_color_bool
+ \__eb_put_hyperref:n {colorlinks}
+ },
hyperlink .default:n = edge,
hyperlink .initial:n = edge,
+ linktoc .choice:,
+ linktoc/unknown .code:n =
+ {
+ \__eb_put_hyperref:n {linktoc = #1}
+ \clist_map_inline:nn {page,none}
+ {
+ \tl_if_eq:NnT \l_keys_value_tl{##1}
+ {\clist_map_break:n {\colorlet{ctex@toc}{black}}}
+ }
+ },
+ linktoc .default:n = all,
+ linktoc .initial:n = all,
+ unknown .code:n =
+ {
+ \__eb_put_hyperref:x
+ {
+ \l_keys_key_str
+ \tl_if_empty:NF \l_keys_value_tl{ = {#1}}
+ }
+ }
+ }
+\__ctex_define:nx {link}
+ {
linkcolor .choice:,
\clist_map_function:nN
{
@@ -2532,23 +2536,10 @@ The latest version of this license is in
\__eb_linkcolor_set:n
linkcolor .default:n = navyblue,
linkcolor .initial:n = navyblue,
- linkcol-all .code:n = \__eb_define_linkcolor:n {\exp_not:n {#1}},
-
- linktoc .choice:,
- linktoc/unknown .code:n =
- {\__eb_put_hyperref:n {linktoc = \exp_not:n {#1}}},
- linktoc .default:n = all,
- linktoc .initial:n = all,
- unknown .code:n =
- {
- \__eb_put_hyperref:x
- {
- \exp_not:N \l_keys_key_str
- \exp_not:N \tl_if_empty:NF
- \exp_not:N \l_keys_value_tl{ = \exp_not:n {#1}}
- }
- }
+ linkcol-all .code:n =
+ {\__eb_define_linkcolor:n {\exp_not:n {#1}}}
}
+\colorlet{ctex@toc}{ctex@link}
\__ctex_define:nx {style}
{
color .choice:,
@@ -2562,9 +2553,23 @@ The latest version of this license is in
}
\__eb_themecolor_set:n
color .initial:n = none,
- color-all .code:n = \__eb_define_themecolor:n {\exp_not:n {#1}}
+ color-all .code:n =
+ {\__eb_define_themecolor:n {\exp_not:n {#1}}}
}
+\cs_new:Npn \__eb_allow_urlbreak:
+ {
+ \cs_new:Npn \__eb_add_urlbreak_points:
+ {\tl_map_function:NN \c__eb_urlbreak_points_tl\do}
+ \__eb_appto_cmd:Nn
+ \UrlBreaks{\UrlOrds\__eb_add_urlbreak_points:}
+ }
+\tl_const:Nn \c__eb_urlbreak_points_tl
+ {
+ ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ abcdefghijklmnopqrstuvwxyz
+ 0123456789
+ }
\ctex_at_end_preamble:n
{
\RequirePackage{hyperref}
diff --git a/macros/latex/contrib/eq-save/README.md b/macros/latex/contrib/eq-save/README.md
index b62034bb3c..cfec2944d9 100644
--- a/macros/latex/contrib/eq-save/README.md
+++ b/macros/latex/contrib/eq-save/README.md
@@ -1,6 +1,6 @@
The eq-save Package
Author: D. P. Story
-Dated: 2021-02-17
+Dated: 2021-04-27
In the past, Adobe Reader did not save form data; consequently, work done by
the student is lost when the AeB document is closed. In the more recent
@@ -17,6 +17,8 @@ Interactive document, such as those produced by AeB (including exerquiz)
require Adobe Reader. Any such AeB document must be viewed in AR, outside a
browser.
+What's New (2021-04-27) Bug fixes; extension of logic in \string\texttt{restoreQuizData()}}
+
What's New (2021-02-17) Minor modification of restoreQuizData() to accomodate
the eq-pin2corr package.
diff --git a/macros/latex/contrib/eq-save/docs/eqsave-man.pdf b/macros/latex/contrib/eq-save/docs/eqsave-man.pdf
index 583ba2a63b..ac8f68302f 100644
--- a/macros/latex/contrib/eq-save/docs/eqsave-man.pdf
+++ b/macros/latex/contrib/eq-save/docs/eqsave-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/eq-save/docs/eqsave-man.tex b/macros/latex/contrib/eq-save/docs/eqsave-man.tex
index 510258b877..e30fa9fe49 100644
--- a/macros/latex/contrib/eq-save/docs/eqsave-man.tex
+++ b/macros/latex/contrib/eq-save/docs/eqsave-man.tex
@@ -43,7 +43,7 @@
email={dpstory@acrotex.net},
subject=Documentation for the eq-save package,
talksite={\url{www.acrotex.net}},
- version={1.2, 2021/02/17},
+ version={1.2.5, 2021/04/27},
Keywords={LaTeX, form field, hints, AcroTeX},
copyrightStatus=True,
copyrightNotice={Copyright (C) \the\year, D. P. Story},
@@ -106,9 +106,10 @@ _path=_path.substring(0,pos)+"/"+manualfilename;
\section{Introduction}
-In this documentation, the one reading an \AEB\footnote{{\AcroTeX} eDucation
-Bundle} document is referred to as a student, as that is the intended target
-audience for education materials developed by the various packages of \AEB.
+In this documentation, the person consuming an \AEB\footnote{{\AcroTeX}
+eDucation Bundle} (PDF) document is referred to as a student, as that is the
+intended target audience for education materials developed by the various
+packages of \AEB.
The \pkg{exerquiz} package defines the \env{oQuestion}, \env{shortquiz}, and
\env{quiz} environments that are used to pose interactive questions to
diff --git a/macros/latex/contrib/eq-save/eq-save.dtx b/macros/latex/contrib/eq-save/eq-save.dtx
index dbdf6b4868..531995f8b3 100644
--- a/macros/latex/contrib/eq-save/eq-save.dtx
+++ b/macros/latex/contrib/eq-save/eq-save.dtx
@@ -14,7 +14,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{eq-save}
-%<package> [2021/02/17 v1.2 eq-save: save exerquiz quizzes and resume (dps)]
+%<package> [2021/04/27 v1.2.5 eq-save: save exerquiz quizzes and resume (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
@@ -213,11 +213,21 @@
}
% \end{macrocode}
% \paragraph*{Open Page Action} We add a page open event to restore the data as needed. We only do this once
-% per document session.
-% \begin{macrocode}
-\thisPageAction{\JS{if(!restoreQuizData.hasRestoredData)\r\t
- var rqdTO=(app.setTimeOut("restoreQuizData();app.clearTimeOut(rqdTO);%
- restoreQuizData.hasRestoredData=true",1000));}}{}
+% per document session. The script used in contained in the command \DescribeMacro\restoreQD\cs{restoreQD}.
+% \changes{v1.2.3}{2019/27/07}{Made the open doc script into a macro \string\cs{resoreQD}}
+% \changes{v1.2.4}{2019/08/01}{Changed to page open}
+% \changes{v1.2.5}{2019/08/07}{added dirty=false to \string\cs{restoreQD}}
+% \begin{macrocode}
+\def\restoreQD{if(!restoreQuizData.hasRestoredData)\r\t
+ var rqdTO=(app.setTimeOut("try{restoreQuizData()}catch(e){};%
+ app.clearTimeOut(rqdTO);%
+ restoreQuizData.hasRestoredData=true;dirty=false;",1000));}
+%\addToDocOpen{\JS{\restoreQD}}
+\thisPageAction{\JS{\restoreQD}}{}
+%\thisPageAction{\JS{if(!restoreQuizData.hasRestoredData)\r\t
+% var rqdTO=(app.setTimeOut("restoreQuizData();%
+% app.clearTimeOut(rqdTO);%
+% restoreQuizData.hasRestoredData=true",1000));}}{}
% \end{macrocode}
% \paragraph*{Action prior to saving} It is important to save the quiz data, we can only do that if we save
% it to a field, the value of the field will be saved. We save the data to a hidden text field
@@ -366,10 +376,9 @@ cntCorrectResponses.nOutOfInDoc=0;
cntCorrectResponses.nPtsCorrectInDoc=0;
cntCorrectResponses.nPtsOutOfInDoc=0;
% \end{macrocode}
-%\leavevmode\IndexJS{cntCorrectResponses()}^^A
-% The workhorse of \pkg{eq-save}. It keeps tabs on the
-% total number of correct answers and the total number of questions. All \env{shortquiz}es are known immediately,
- %but results from \env{quiz} environments are not known until the student presses the `End Quiz' button.
+%\leavevmode\IndexJS{cntCorrectResponses()}is the workhorse of \pkg{eq-save}. It keeps tabs on the
+%total number of correct answers and the total number of questions. All \env{shortquiz}es are known immediately,
+%but results from \env{quiz} environments are not known until the student presses the `End Quiz' button.
% \begin{macrocode}
function cntCorrectResponses() {
var f=this.getField("\eqsroot");
@@ -414,6 +423,7 @@ function cntCorrectResponses() {
% included when they should.
% \changes{v1.1}{2018/04/07}{Removed test for isCorrect}
% \begin{macrocode}
+% if (typeof f.isCorrect=="undefined") continue;
cntCorrectResponses.nOutOfInDoc+=1;
if (f.isCorrect==1) {
cntCorrectResponses.nCorrectInDoc+=1;
@@ -471,11 +481,10 @@ function cntCorrectResponses() {
(cntCorrectResponses.nPtsOutOfInDoc));
}
% \end{macrocode}
-% \leavevmode\IndexJS{addInQuizResults()}^^A
-% Called by \texttt{cntCorrectResponses()} to add in the results
+% \leavevmode\IndexJS{addInQuizResults()} is called by \texttt{cntCorrectResponses()} to add in the results
% from the quizzes, if known. Because `Begin Quiz' and `End Quiz' can be links (not recommended) we save
% the results of the quiz as the value of the field \texttt{ScoreData.\ameta{quizName}}. \pkg{exerquiz}
-% package saved the quiz data in the form \texttt{"Score;\penalty0NQuestions;\penalty0ptScore;\penalty0NPointTotal"}.
+% package save the quiz data in the form \texttt{"Score;\penalty0NQuestions;\penalty0ptScore;\penalty0NPointTotal"}.
% This string can be split and the individual
% values may be retrieved.
% \begin{macrocode}
@@ -502,8 +511,7 @@ cntCorrectResponses.nCorrectInDoc;
}
}
% \end{macrocode}
-% \leavevmode\IndexJS{clearAllSQElements()}^^A
-% Clears all the quiz fields (all types). Much of the code
+% \leavevmode\IndexJS{clearAllSQElements()} clears all the quiz fields (all types). Much of the code
% here is copied from \pkg{exerquiz}.
% \begin{macrocode}
function clearAllSQElements() {
@@ -543,8 +551,7 @@ function clearAllSQElements() {
oRecordOfQuizData=new Object();
}
% \end{macrocode}
-% \leavevmode\IndexJS{chk4PassToQuestions()}^^A
-% This function is used in the keystroke and format
+% \leavevmode\IndexJS{chk4PassToQuestions()} This function is used in the keystroke and format
% phase of the \cs{nameField} command. If the student/user clears the field or changes the value
% of the field once it has been committed, \texttt{chk4PassToQuestions()} then calls \texttt{clearAllSQElements()}
% to clear all fields.
@@ -574,8 +581,7 @@ function chk4PassToQuestions(event) {
}
}
% \end{macrocode}
-% \leavevmode\IndexJS{collectQuizData()}^^A
-% Called by the \texttt{willSave} event. It saves
+% \leavevmode\IndexJS{collectQuizData()} is called by the \texttt{willSave} event. It save
% the object \texttt{oRecordOfQuizData} to the field \texttt{holdScoreData} as a string.
% \begin{macrocode}
function collectQuizData() {
@@ -583,9 +589,10 @@ function collectQuizData() {
f.value=(oRecordOfQuizData.toSource());
}
% \end{macrocode}
-% \leavevmode\IndexJS{restoreQuizData()}^^A
-% Called when the document is opened and attempts to
+% \leavevmode\IndexJS{restoreQuizData()} is called when the document is opened and attempts to
% transfer the value of \texttt{holdScoreData} back into \texttt{oRecordOfQuizData}.
+% \changes{v1.2}{2019/07/02}{Added ProbDist array}
+% \changes{v1.2.1}{2019/07/05}{Added RightWrong array}
% \begin{macrocode}
restoreQuizData.hasRestoredData=false;
function restoreQuizData() {
@@ -597,26 +604,38 @@ function restoreQuizData() {
// name of field is endQuiz.qzname
var pos=fname.indexOf(".");
var qzName=fname.substring(pos+1);
-% \end{macrocode}
+ var qzRoot=fname.substring(0,pos);
+ % \end{macrocode}
% (2021/02/17) Conditional to handle \texttt{ScoreData} only, this enables other
% data that are objects to be present in \texttt{oRecordOfQuizData}.
% \changes{v1.2}{2021/02/17}{Added conditional to process \texttt{ScoreData} only}
-% \begin{macrocode}
- if (fname.indexOf("ScoreData.")) {
- lstOfQuizzes[qzName]=eval(qzName);
- Score=1*oRecordOfQuizData[fname][0];
- NQuestions=1*oRecordOfQuizData[fname][1];
- ptScore=1*oRecordOfQuizData[fname][2];
- NPointTotal=1*oRecordOfQuizData[fname][3];
- var h=this.getField("ScoreData."+qzName);
- h.value=Score+";"+NQuestions+";"+ptScore+";"+NPointTotal;
+% \changes{v1.2.5}{2021/04/27}{Added a switch (JS) for more complex decision within
+% \string\texttt{restoreQuizData}}
+% \begin{macrocode}
+ switch(qzRoot) {
+ case "ScoreData":
+ lstOfQuizzes[qzName]=eval(qzName);
+ Score=1*oRecordOfQuizData[fname][0];
+ NQuestions=1*oRecordOfQuizData[fname][1];
+ ptScore=1*oRecordOfQuizData[fname][2];
+ NPointTotal=1*oRecordOfQuizData[fname][3];
+ var h=this.getField("ScoreData."+qzName);
+ h.value=Score+";"+NQuestions+";"+ptScore+";"+NPointTotal;
+ break;
+ case "ProbDist":
+ ProbDist=eval(oRecordOfQuizData[fname]);
+ break;
+ case "RightWrong":
+ RightWrong=eval(oRecordOfQuizData[fname]);
+ break;
+ default:
+ console.println("name not recognized:"+fname);
}
} else f.isCorrect=oRecordOfQuizData[fname];
}
}
% \end{macrocode}
-% \leavevmode\IndexJS{IhrNameFormat()}^^A
-% The format script for the \cs{nameField} command.
+% \leavevmode\IndexJS{IhrNameFormat()} is the format script for the \cs{nameField} command.
% \begin{macrocode}
function IhrNameFormat(event){
if(event.value!="") {
diff --git a/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf b/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf
index 327205d6b5..5d8261a86e 100644
--- a/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf
+++ b/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf
Binary files differ
diff --git a/macros/latex/contrib/onedown/ODw-Danish.dict b/macros/latex/contrib/onedown/ODw-Danish.dict
new file mode 100644
index 0000000000..5b6ddeb9b3
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-Danish.dict
@@ -0,0 +1,160 @@
+% this is file ODw-Danish.dict
+%
+% Entries with a "!" denote an abreviated form
+%
+%% retrieve with e.g \translation{dealer-(ODw)} to get givare
+%
+\ProvidesDictionary{ODw}{Danish}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1.}
+\providetranslation{2nd-(ODw)}{2.}
+\providetranslation{3rd-(ODw)}{3.}
+\providetranslation{4th-(ODw)}{4.}
+\providetranslation{ace-(ODw)}{es}
+\providetranslation{Ace-(ODw)}{Es}
+\providetranslation{all-(ODw)}{alle}
+\providetranslation{All-(ODw)}{Alle}
+\providetranslation{all!-(ODw)}{alle}
+\providetranslation{All!-(ODw)}{Alle}
+\providetranslation{all pass-(ODw)}{alle passer}
+\providetranslation{All pass-(ODw)}{Alle passer}
+\providetranslation{a-(ODw)}{e}
+\providetranslation{A-(ODw)}{E}% Es
+%\providetranslation{award-(ODw)}{poäng}
+%\providetranslation{Award-(ODw)}{Poäng}
+\providetranslation{award-(ODw)}{värdering}
+\providetranslation{Award-(ODw)}{Värdering}
+\providetranslation{bid-(ODw)}{meldt}
+\providetranslation{Bid-(ODw)}{Meldt}
+\providetranslation{board-(ODw)}{bræt}
+\providetranslation{Board-(ODw)}{Bræt}
+\providetranslation{brd-(ODw)}{brt}
+\providetranslation{Brd-(ODw)}{Brt}
+\providetranslation{by-(ODw)}{af}
+\providetranslation{call-(ODw)}{bud}
+\providetranslation{Call-(ODw)}{Bud}
+\providetranslation{-card-(ODw)}{-kort}
+\providetranslation{contract-(ODw)}{kontrakten}
+\providetranslation{Contract-(ODw)}{Kontrakten}
+\providetranslation{contr-(ODw)}{kontr}
+\providetranslation{Contr-(ODw)}{Kontr}
+\providetranslation{Dbl-(ODw)}{Dbl}
+\providetranslation{dealer-(ODw)}{givet}
+\providetranslation{Dealer-(ODw)}{Givet}
+\providetranslation{deal-(ODw)}{giv}
+\providetranslation{Deal-(ODw)}{Giv}
+\providetranslation{deal!-(ODw)}{giv}
+\providetranslation{Deal!-(ODw)}{Giv}
+\providetranslation{declarer-(ODw)}{spilfører}
+\providetranslation{Declarer-(ODw)}{Spilfører}
+\providetranslation{decl-(ODw)}{spilf}
+\providetranslation{Decl-(ODw)}{Spilf}
+\providetranslation{distribution points-(ODw)}{fordelingspoints}
+\providetranslation{Distribution Points-(ODw)}{Fordelingspoints}
+\providetranslation{doubled-(ODw)}{dubbelt}
+\providetranslation{Doubled-(ODw)}{Dubbelt}
+\providetranslation{double-(ODw)}{dubbelt}
+\providetranslation{Double-(ODw)}{Dubbelt}
+\providetranslation{dp-(ODw)}{fp}
+\providetranslation{DP-(ODw)}{FP}
+\providetranslation{east-(ODw)}{øst}
+\providetranslation{East-(ODw)}{Øst}
+\providetranslation{e-(ODw)}{ø}
+\providetranslation{E-(ODw)}{Ø}
+\providetranslation{fourth suit forcing-(ODw)}{fjerde farve forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Fjerde Farve Forcing}
+\providetranslation{fsf-(ODw)}{4.\,ff}
+\providetranslation{FSF-(ODw)}{4.\,FF}
+\providetranslation{game forcing-(ODw)}{krav till utgång}
+\providetranslation{Game Forcing-(ODw)}{Krav till Utgång}
+\providetranslation{gf-(ODw)}{ku}
+\providetranslation{GF-(ODw)}{KU}
+\providetranslation{Hand-(ODw)}{Hånd}
+\providetranslation{hand-(ODw)}{hånd}
+\providetranslation{hcp-(ODw)}{hp}
+\providetranslation{HCP-(ODw)}{HP}
+\providetranslation{high card points-(ODw)}{honnørpoints}
+\providetranslation{High Card Points-(ODw)}{Honnørpoints}
+\providetranslation{hlp-(ODw)}{hlp}
+\providetranslation{HLP-(ODw)}{HLP}
+\providetranslation{jack-(ODw)}{knægt}
+\providetranslation{Jack-(ODw)}{Knægt}
+\providetranslation{j-(ODw)}{kn}
+\providetranslation{J-(ODw)}{\mbox{K\kern-0.08emn}}
+\providetranslation{king-(ODw)}{konge}
+\providetranslation{King-(ODw)}{Konge}
+\providetranslation{k-(ODw)}{k}
+\providetranslation{K-(ODw)}{K}
+\providetranslation{lead!-(ODw)}{udsp.}
+\providetranslation{Lead!-(ODw)}{Udsp.}
+\providetranslation{Lead-(ODw)}{Udspillet}
+\providetranslation{lead-(ODw)}{udspillet}
+\providetranslation{length points-(ODw)}{længepoints}
+\providetranslation{Length Points-(ODw)}{Længepoints}
+\providetranslation{lp-(ODw)}{lp}
+\providetranslation{LP-(ODw)}{LP}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{new minor forcing-(ODw)}{nye minor forcing}
+\providetranslation{New Minor Forcing-(ODw)}{Nye Minor Forcing}
+\providetranslation{nmf-(ODw)}{nmf}
+\providetranslation{NMF-(ODw)}{NMF}
+\providetranslation{none-(ODw)}{ingen}
+\providetranslation{None-(ODw)}{Ingen}
+\providetranslation{none!-(ODw)}{ingen}
+\providetranslation{None!-(ODw)}{Ingen}
+\providetranslation{north-(ODw)}{norr}
+\providetranslation{North-(ODw)}{Norr}
+\providetranslation{no trump-(ODw)}{uden trumf}
+\providetranslation{No Trump-(ODw)}{Uden Trumf}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{NT-(ODw)}{U\kern-0.01emT}%Uden Trumf
+\providetranslation{nt-(ODw)}{ut}
+\providetranslation{pass-(ODw)}{pas}
+\providetranslation{Pass-(ODw)}{Pas}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{d}
+\providetranslation{Q-(ODw)}{D}
+\providetranslation{queen-(ODw)}{dame}
+\providetranslation{Queen-(ODw)}{Dame}
+\providetranslation{ReDbl-(ODw)}{ReDbl}
+\providetranslation{redoubled-(ODw)}{redubbelt}
+\providetranslation{Redoubled-(ODw)}{Redubbelt}
+\providetranslation{redouble-(ODw)}{redubbelt}
+\providetranslation{ReDouble-(ODw)}{Redubbelt}
+\providetranslation{semi forcing-(ODw)}{semi forcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forcing}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{syd}
+\providetranslation{South-(ODw)}{Syd}
+\providetranslation{suiter-(ODw)}{farver}
+\providetranslation{Suiter-(ODw)}{Farver}
+\providetranslation{suit-(ODw)}{farve}
+\providetranslation{Suit-(ODw)}{Farve}
+\providetranslation{third suit forcing-(ODw)}{tredje farve forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Tredje Farve Forcing}
+\providetranslation{total points-(ODw)}{total points}
+\providetranslation{Total Points-(ODw)}{Total Points}
+\providetranslation{tp-(ODw)}{tp}
+\providetranslation{TP-(ODw)}{TP}
+\providetranslation{trial bid-(ODw)}{trial bid}
+\providetranslation{Trial bid-(ODw)}{Trial bid}
+\providetranslation{trick-(ODw)}{træk}
+\providetranslation{Trick-(ODw)}{Træk}
+\providetranslation{tsf-(ODw)}{3.\,ff}
+\providetranslation{TSF-(ODw)}{3.\,FF}
+\providetranslation{vulnerable-(ODw)}{sårbar}
+\providetranslation{Vulnerable-(ODw)}{Sårbar}
+\providetranslation{vul-(ODw)}{sår}
+\providetranslation{Vul-(ODw)}{Sår}
+\providetranslation{west-(ODw)}{vest}
+\providetranslation{West-(ODw)}{Vest}
+\providetranslation{w-(ODw)}{v}
+\providetranslation{W-(ODw)}{V}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-Dutch.dict b/macros/latex/contrib/onedown/ODw-Dutch.dict
new file mode 100644
index 0000000000..0391c23d98
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-Dutch.dict
@@ -0,0 +1,160 @@
+% this is file ODw-Dutch.dict from the OneDown bundle
+%
+% Entries with a "!" denote an abreviated form
+%
+% retrieve with e.g. \translation{dealer-(ODw)} to get gever
+%
+\ProvidesDictionary{ODw}{Dutch}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1ste}
+\providetranslation{2nd-(ODw)}{2de}
+\providetranslation{3rd-(ODw)}{3de}
+\providetranslation{4th-(ODw)}{4de}
+\providetranslation{ace-(ODw)}{aas}
+\providetranslation{Ace-(ODw)}{Aas}
+\providetranslation{all-(ODw)}{alle}
+\providetranslation{All-(ODw)}{Alle}
+\providetranslation{all!-(ODw)}{alle}
+\providetranslation{All!-(ODw)}{Alle}
+\providetranslation{all pass-(ODw)}{allen passen}
+\providetranslation{All pass-(ODw)}{Allen passen}
+\providetranslation{a-(ODw)}{a}
+\providetranslation{A-(ODw)}{A}
+\providetranslation{ap-(ODw)}{ap}
+\providetranslation{AP-(ODw)}{AP}
+\providetranslation{award-(ODw)}{beloning}
+\providetranslation{Award-(ODw)}{Beloning}
+\providetranslation{bid-(ODw)}{bod}
+\providetranslation{Bid-(ODw)}{Bod}
+\providetranslation{board-(ODw)}{spel}
+\providetranslation{Board-(ODw)}{Spel}
+\providetranslation{brd-(ODw)}{spel}
+\providetranslation{Brd-(ODw)}{Spel}
+\providetranslation{by-(ODw)}{door}
+\providetranslation{call-(ODw)}{bod}
+\providetranslation{Call-(ODw)}{Bod}
+\providetranslation{-card-(ODw)}{-kaart}
+\providetranslation{contract-(ODw)}{contract}
+\providetranslation{Contract-(ODw)}{Contract}
+\providetranslation{contr-(ODw)}{contr}
+\providetranslation{Contr-(ODw)}{Contr}
+\providetranslation{Dbl-(ODw)}{Dbl}
+\providetranslation{dealer-(ODw)}{gever}
+\providetranslation{Dealer-(ODw)}{Gever}
+\providetranslation{deal-(ODw)}{spel}
+\providetranslation{Deal-(ODw)}{Spel}
+\providetranslation{deal!-(ODw)}{spel}
+\providetranslation{Deal!-(ODw)}{Spel}
+\providetranslation{declarer-(ODw)}{leider}
+\providetranslation{Declarer-(ODw)}{Leider}
+\providetranslation{decl-(ODw)}{leider}
+\providetranslation{Decl-(ODw)}{Leider}
+\providetranslation{distribution points-(ODw)}{distributie punten}
+\providetranslation{Distribution Points-(ODw)}{Distributie Punten}
+\providetranslation{doubled-(ODw)}{gedoubleerd}
+\providetranslation{Doubled-(ODw)}{Gedoubleerd}
+\providetranslation{double-(ODw)}{doublet}
+\providetranslation{Double-(ODw)}{Doublet}
+\providetranslation{dp-(ODw)}{dp}
+\providetranslation{DP-(ODw)}{DP}
+\providetranslation{east-(ODw)}{oost}
+\providetranslation{East-(ODw)}{Oost}
+\providetranslation{e-(ODw)}{o}
+\providetranslation{E-(ODw)}{O}
+\providetranslation{fourth suit forcing-(ODw)}{vierde kleur forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Vierde Kleur Forcing}
+\providetranslation{fsf-(ODw)}{4de\,kf}
+\providetranslation{FSF-(ODw)}{4de\,KF}
+\providetranslation{game forcing-(ODw)}{manche forcing}
+\providetranslation{Game Forcing-(ODw)}{Manche Forcing}
+\providetranslation{gf-(ODw)}{mf}
+\providetranslation{GF-(ODw)}{MF}
+\providetranslation{hand-(ODw)}{hand}
+\providetranslation{Hand-(ODw)}{Hand}
+\providetranslation{hcp-(ODw)}{hp}
+\providetranslation{HCP-(ODw)}{HP}
+\providetranslation{high card points-(ODw)}{hoge punten}
+\providetranslation{High Card Points-(ODw)}{Hoge Punten}
+\providetranslation{hlp-(ODw)}{hlp}
+\providetranslation{HLP-(ODw)}{HLP}
+\providetranslation{jack-(ODw)}{boer}
+\providetranslation{Jack-(ODw)}{Boer}
+\providetranslation{j-(ODw)}{b}
+\providetranslation{J-(ODw)}{B}
+\providetranslation{king-(ODw)}{heer}
+\providetranslation{King-(ODw)}{Heer}
+\providetranslation{k-(ODw)}{h}
+\providetranslation{K-(ODw)}{H}
+\providetranslation{lead!-(ODw)}{uitk.}
+\providetranslation{Lead!-(ODw)}{Uitk.}
+\providetranslation{lead-(ODw)}{uitkomst}
+\providetranslation{Lead-(ODw)}{Uitkomst}
+\providetranslation{length points-(ODw)}{lengte punten}
+\providetranslation{Length Points-(ODw)}{Lengte Punten}
+\providetranslation{lp-(ODw)}{lp}
+\providetranslation{LP-(ODw)}{LP}
+\providetranslation{new minor forcing-(ODw)}{nieuwe lage kleur forcing}
+\providetranslation{New Minor Forcing-(ODw)}{Nieuwe Lage Kleur Forcing}
+\providetranslation{nmf-(ODw)}{nlf}
+\providetranslation{NMF-(ODw)}{NLF}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none-(ODw)}{geen}
+\providetranslation{None-(ODw)}{Geen}
+\providetranslation{none!-(ODw)}{geen}
+\providetranslation{None!-(ODw)}{Geen}
+\providetranslation{north-(ODw)}{noord}
+\providetranslation{North-(ODw)}{Noord}
+\providetranslation{no trump-(ODw)}{sans atout}
+\providetranslation{No Trump-(ODw)}{Sans Atout}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{nt-(ODw)}{sa}
+\providetranslation{NT-(ODw)}{S\kern-0.01emA}
+\providetranslation{pass-(ODw)}{pas}
+\providetranslation{Pass-(ODw)}{Pas}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{v}
+\providetranslation{Q-(ODw)}{V}
+\providetranslation{queen-(ODw)}{vrouw}
+\providetranslation{Queen-(ODw)}{Vrouw}
+\providetranslation{ReDbl-(ODw)}{ReDblt}
+\providetranslation{redoubled-(ODw)}{geredoubleerd}
+\providetranslation{Redoubled-(ODw)}{Geredoubleerd}
+\providetranslation{redouble-(ODw)}{redoublet}
+\providetranslation{ReDouble-(ODw)}{Redoublet}
+\providetranslation{semi forcing-(ODw)}{semi-mancheforcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi-MancheForcing}
+\providetranslation{sf-(ODw)}{smf}
+\providetranslation{SF-(ODw)}{SMF}
+\providetranslation{s-(ODw)}{z}
+\providetranslation{S-(ODw)}{Z}
+\providetranslation{south-(ODw)}{zuid}
+\providetranslation{South-(ODw)}{Zuid}
+\providetranslation{suiter-(ODw)}{kleurenspel}
+\providetranslation{Suiter-(ODw)}{Kleurenspel}
+\providetranslation{suit-(ODw)}{kleur}
+\providetranslation{Suit-(ODw)}{Kleur}
+\providetranslation{third suit forcing-(ODw)}{derde kleur forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Derde Kleur Forcing}
+\providetranslation{total points-(ODw)}{totaal punten}
+\providetranslation{Total Points-(ODw)}{Totaal Punten}
+\providetranslation{tp-(ODw)}{tp}
+\providetranslation{TP-(ODw)}{TP}
+\providetranslation{trial bid-(ODw)}{help bod}
+\providetranslation{Trial bid-(ODw)}{Help bod}
+\providetranslation{trick-(ODw)}{slag}
+\providetranslation{Trick-(ODw)}{Slag}
+\providetranslation{tsf-(ODw)}{3de\,kf}
+\providetranslation{TSF-(ODw)}{3de\,KF}
+\providetranslation{vulnerable-(ODw)}{kwetsbaar}
+\providetranslation{Vulnerable-(ODw)}{Kwetsbaar}
+\providetranslation{vul-(ODw)}{kwetsb}
+\providetranslation{Vul-(ODw)}{Kwetsb}
+\providetranslation{west-(ODw)}{west}
+\providetranslation{West-(ODw)}{West}
+\providetranslation{w-(ODw)}{w}
+\providetranslation{W-(ODw)}{W}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-English.dict b/macros/latex/contrib/onedown/ODw-English.dict
new file mode 100644
index 0000000000..a448171c85
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-English.dict
@@ -0,0 +1,160 @@
+% this is file ODw-English.dict from the OneDown bundle
+%
+% Entries with a "!" denote an abreviated form
+%
+% retrieve with e.g. \translation{dealer-(ODw)} to get dealer
+%
+\ProvidesDictionary{ODw}{English}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1st}
+\providetranslation{2nd-(ODw)}{2nd}
+\providetranslation{3rd-(ODw)}{3rd}
+\providetranslation{4th-(ODw)}{4th}
+\providetranslation{ace-(ODw)}{ace}
+\providetranslation{Ace-(ODw)}{Ace}
+\providetranslation{all-(ODw)}{all}
+\providetranslation{All-(ODw)}{All}
+\providetranslation{all!-(ODw)}{all}
+\providetranslation{All!-(ODw)}{All}
+\providetranslation{all pass-(ODw)}{all pass}
+\providetranslation{All pass-(ODw)}{All pass}
+\providetranslation{a-(ODw)}{a}
+\providetranslation{A-(ODw)}{A}
+\providetranslation{ap-(ODw)}{ap}
+\providetranslation{AP-(ODw)}{AP}
+\providetranslation{Award-(ODw)}{Award}
+\providetranslation{award-(ODw)}{award}% = points you earn in a quiz
+\providetranslation{Bid-(ODw)}{Bid}
+\providetranslation{bid-(ODw)}{bid}% = e.g. 2C, 4H or 6NT
+\providetranslation{Board-(ODw)}{Board}
+\providetranslation{board-(ODw)}{board}% = equipment that holds 1 deal
+\providetranslation{Brd-(ODw)}{Brd}
+\providetranslation{brd-(ODw)}{brd}% = equipment that holds 1 deal
+\providetranslation{by-(ODw)}{by}
+\providetranslation{Call-(ODw)}{Call}
+\providetranslation{call-(ODw)}{call}% = bid + pass, (re)double
+\providetranslation{-card-(ODw)}{-card}
+\providetranslation{contract-(ODw)}{contract}
+\providetranslation{Contract-(ODw)}{Contract}
+\providetranslation{contr-(ODw)}{contr}
+\providetranslation{Contr-(ODw)}{Contr}
+\providetranslation{Dbl-(ODw)}{Dbl}
+\providetranslation{dealer-(ODw)}{dealer}
+\providetranslation{Dealer-(ODw)}{Dealer}
+\providetranslation{Deal-(ODw)}{Deal}
+\providetranslation{Deal!-(ODw)}{Deal}
+\providetranslation{deal-(ODw)}{deal}% = 4 hands
+\providetranslation{deal!-(ODw)}{deal}% = 4 hands
+\providetranslation{declarer-(ODw)}{declarer}
+\providetranslation{Declarer-(ODw)}{Declarer}
+\providetranslation{decl-(ODw)}{decl}
+\providetranslation{Decl-(ODw)}{Decl}
+\providetranslation{distribution points-(ODw)}{distribution points}
+\providetranslation{Distribution Points-(ODw)}{Distribution Points}
+\providetranslation{doubled-(ODw)}{doubled}
+\providetranslation{Doubled-(ODw)}{Doubled}
+\providetranslation{double-(ODw)}{double}
+\providetranslation{Double-(ODw)}{Double}
+\providetranslation{dp-(ODw)}{dp}
+\providetranslation{DP-(ODw)}{DP}
+\providetranslation{east-(ODw)}{east}
+\providetranslation{East-(ODw)}{East}
+\providetranslation{e-(ODw)}{e}
+\providetranslation{E-(ODw)}{E}
+\providetranslation{fourth suit forcing-(ODw)}{fourth suit forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Fourth Suit Forcing}
+\providetranslation{fsf-(ODw)}{4th\,sf}
+\providetranslation{FSF-(ODw)}{4th\,SF}
+\providetranslation{game forcing-(ODw)}{game forcing}
+\providetranslation{Game Forcing-(ODw)}{Game Forcing}
+\providetranslation{gf-(ODw)}{gf}
+\providetranslation{GF-(ODw)}{GF}
+\providetranslation{Hand-(ODw)}{Hand}
+\providetranslation{hand-(ODw)}{hand}% = 13 cards of 1 player
+\providetranslation{hcp-(ODw)}{hcp}
+\providetranslation{HCP-(ODw)}{HCP}
+\providetranslation{high card points-(ODw)}{high card points}
+\providetranslation{High Card Points-(ODw)}{High Card Points}
+\providetranslation{hlp-(ODw)}{hlp}
+\providetranslation{HLP-(ODw)}{HLP}
+\providetranslation{jack-(ODw)}{jack}
+\providetranslation{Jack-(ODw)}{Jack}
+\providetranslation{j-(ODw)}{j}
+\providetranslation{J-(ODw)}{J}
+\providetranslation{king-(ODw)}{king}
+\providetranslation{King-(ODw)}{King}
+\providetranslation{k-(ODw)}{k}
+\providetranslation{K-(ODw)}{K}
+\providetranslation{lead-(ODw)}{lead}
+\providetranslation{Lead-(ODw)}{Lead}
+\providetranslation{lead!-(ODw)}{lead}
+\providetranslation{Lead!-(ODw)}{Lead}
+\providetranslation{length points-(ODw)}{length points}
+\providetranslation{Length Points-(ODw)}{Length Points}
+\providetranslation{lp-(ODw)}{lp}
+\providetranslation{LP-(ODw)}{LP}
+\providetranslation{new minor forcing-(ODw)}{new minor forcing}
+\providetranslation{New Minor Forcing-(ODw)}{New Minor Forcing}
+\providetranslation{nmf-(ODw)}{nmf}
+\providetranslation{NMF-(ODw)}{NMF}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none-(ODw)}{none}
+\providetranslation{None-(ODw)}{None}
+\providetranslation{none!-(ODw)}{none}
+\providetranslation{None!-(ODw)}{None}
+\providetranslation{north-(ODw)}{north}
+\providetranslation{North-(ODw)}{North}
+\providetranslation{no trump-(ODw)}{no trump}
+\providetranslation{No Trump-(ODw)}{No Trump}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{NT-(ODw)}{N\kern-0.07emT}
+\providetranslation{nt-(ODw)}{nt}
+\providetranslation{pass-(ODw)}{pass}
+\providetranslation{Pass-(ODw)}{Pass}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{q}
+\providetranslation{Q-(ODw)}{Q}
+\providetranslation{queen-(ODw)}{queen}
+\providetranslation{Queen-(ODw)}{Queen}
+\providetranslation{ReDbl-(ODw)}{ReDbl}
+\providetranslation{redoubled-(ODw)}{redoubled}
+\providetranslation{Redoubled-(ODw)}{Redoubled}
+\providetranslation{redouble-(ODw)}{redouble}
+\providetranslation{ReDouble-(ODw)}{ReDouble}
+\providetranslation{semi forcing-(ODw)}{semi forcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forcing}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{south}
+\providetranslation{South-(ODw)}{South}
+\providetranslation{suiter-(ODw)}{suiter}
+\providetranslation{Suiter-(ODw)}{Suiter}
+\providetranslation{suit-(ODw)}{suit}
+\providetranslation{Suit-(ODw)}{Suit}
+\providetranslation{third suit forcing-(ODw)}{third suit forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Third Suit Forcing}
+\providetranslation{total points-(ODw)}{total points}
+\providetranslation{Total Points-(ODw)}{Total Points}
+\providetranslation{tp-(ODw)}{tp}
+\providetranslation{TP-(ODw)}{TP}
+\providetranslation{trial bid-(ODw)}{trial bid}
+\providetranslation{Trial bid-(ODw)}{Trial bid}
+\providetranslation{trick-(ODw)}{trick}
+\providetranslation{Trick-(ODw)}{Trick}
+\providetranslation{tsf-(ODw)}{3rd\,sf}
+\providetranslation{TSF-(ODw)}{3rd\,SF}
+\providetranslation{vulnerable-(ODw)}{vulnerable}
+\providetranslation{Vulnerable-(ODw)}{Vulnerable}
+\providetranslation{vul-(ODw)}{vul}
+\providetranslation{Vul-(ODw)}{Vul}
+\providetranslation{west-(ODw)}{west}
+\providetranslation{West-(ODw)}{West}
+\providetranslation{w-(ODw)}{w}
+\providetranslation{W-(ODw)}{W}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-French.dict b/macros/latex/contrib/onedown/ODw-French.dict
new file mode 100644
index 0000000000..4f75bfe53f
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-French.dict
@@ -0,0 +1,160 @@
+% this is file ODw-French.dict from the OneDown bundle
+%
+% Entries with a "!" denote an abreviated form
+%
+% retrieve with e.g. \translation{dealer-(ODw)} to get donneur
+%
+\ProvidesDictionary{ODw}{French}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1er}
+\providetranslation{2nd-(ODw)}{2e}
+\providetranslation{3rd-(ODw)}{3e}
+\providetranslation{4th-(ODw)}{4e}
+\providetranslation{ace-(ODw)}{as}
+\providetranslation{Ace-(ODw)}{As}
+\providetranslation{all-(ODw)}{tous}
+\providetranslation{All-(ODw)}{Tous}
+\providetranslation{all!-(ODw)}{tous}
+\providetranslation{All!-(ODw)}{Tous}
+\providetranslation{all pass-(ODw)}{tous passent}
+\providetranslation{All pass-(ODw)}{Tous passent}
+\providetranslation{a-(ODw)}{a}
+\providetranslation{A-(ODw)}{A}
+\providetranslation{ap-(ODw)}{tp}
+\providetranslation{AP-(ODw)}{TP}
+\providetranslation{award-(ODw)}{prix}
+\providetranslation{Award-(ODw)}{Prix}
+\providetranslation{bid-(ODw)}{enchère}
+\providetranslation{Bid-(ODw)}{Enchère}
+\providetranslation{board-(ODw)}{etui}
+\providetranslation{Board-(ODw)}{Etui}
+\providetranslation{brd-(ODw)}{etui}
+\providetranslation{Brd-(ODw)}{Etui}
+\providetranslation{by-(ODw)}{pour}
+\providetranslation{call-(ODw)}{annonce}
+\providetranslation{Call-(ODw)}{Annonce}
+\providetranslation{-card-(ODw)}{-carte}
+\providetranslation{contract-(ODw)}{contrat}
+\providetranslation{Contract-(ODw)}{Contrat}
+\providetranslation{contr-(ODw)}{contr}
+\providetranslation{Contr-(ODw)}{Contr}
+\providetranslation{Dbl-(ODw)}{Ctr}
+\providetranslation{dealer-(ODw)}{donneur}
+\providetranslation{Dealer-(ODw)}{Donneur}
+\providetranslation{deal!-(ODw)}{donne}
+\providetranslation{Deal!-(ODw)}{Donne}
+\providetranslation{deal-(ODw)}{donne}
+\providetranslation{Deal-(ODw)}{Donne}
+\providetranslation{declarer-(ODw)}{déclarant}
+\providetranslation{Declarer-(ODw)}{Déclarant}
+\providetranslation{decl-(ODw)}{décl}
+\providetranslation{Decl-(ODw)}{Décl}
+\providetranslation{distribution points-(ODw)}{points de Distribution}
+\providetranslation{Distribution Points-(ODw)}{Points de Distribution}
+\providetranslation{doubled-(ODw)}{contré}
+\providetranslation{Doubled-(ODw)}{Contré}
+\providetranslation{double-(ODw)}{contre}
+\providetranslation{Double-(ODw)}{Contre}
+\providetranslation{dp-(ODw)}{pd}
+\providetranslation{DP-(ODw)}{PD}
+\providetranslation{east-(ODw)}{est}
+\providetranslation{East-(ODw)}{Est}
+\providetranslation{e-(ODw)}{e}
+\providetranslation{E-(ODw)}{E}
+\providetranslation{fourth suit forcing-(ODw)}{quatrième couleur forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Quatrième Couleur Forcing}
+\providetranslation{fsf-(ODw)}{4e\,cf}
+\providetranslation{FSF-(ODw)}{4e\,CF}
+\providetranslation{game forcing-(ODw)}{forcing de manche}
+\providetranslation{Game Forcing-(ODw)}{Forcing de Manche}
+\providetranslation{GF-(ODw)}{FM}
+\providetranslation{gf-(ODw)}{gf}
+\providetranslation{hand-(ODw)}{main}
+\providetranslation{Hand-(ODw)}{Main}
+\providetranslation{hcp-(ODw)}{h}
+\providetranslation{HCP-(ODw)}{H}
+\providetranslation{high card points-(ODw)}{points d'honneurs}
+\providetranslation{High Card Points-(ODw)}{Points d'Honneurs}
+\providetranslation{hlp-(ODw)}{hl}
+\providetranslation{HLP-(ODw)}{HL}
+\providetranslation{jack-(ODw)}{valet}
+\providetranslation{Jack-(ODw)}{Valet}
+\providetranslation{j-(ODw)}{v}
+\providetranslation{J-(ODw)}{V}
+\providetranslation{king-(ODw)}{roi}
+\providetranslation{King-(ODw)}{Roi}
+\providetranslation{k-(ODw)}{r}
+\providetranslation{K-(ODw)}{R}
+\providetranslation{lead!-(ODw)}{ent.}
+\providetranslation{Lead!-(ODw)}{Ent.}
+\providetranslation{lead-(ODw)}{entame}
+\providetranslation{Lead-(ODw)}{Entame}
+\providetranslation{length points-(ODw)}{points de longueur}
+\providetranslation{Length Points-(ODw)}{Points de Longueur}
+\providetranslation{lp-(ODw)}{pl}
+\providetranslation{LP-(ODw)}{PL}
+\providetranslation{new minor forcing-(ODw)}{nouvelle mineure forcing}
+\providetranslation{New Minor Forcing-(ODw)}{Nouvelle Mineure Forcing}
+\providetranslation{nmf-(ODw)}{nmf}
+\providetranslation{NMF-(ODw)}{NMF}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none-(ODw)}{aucun}
+\providetranslation{None-(ODw)}{Aucun}
+\providetranslation{none!-(ODw)}{aucun}
+\providetranslation{None!-(ODw)}{Aucun}
+\providetranslation{north-(ODw)}{nord}
+\providetranslation{North-(ODw)}{Nord}
+\providetranslation{no trump-(ODw)}{sans atout}
+\providetranslation{No Trump-(ODw)}{Sans Atout}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{nt-(ODw)}{sa}
+\providetranslation{NT-(ODw)}{S\kern-0.01emA}
+\providetranslation{pass-(ODw)}{passe}
+\providetranslation{Pass-(ODw)}{Passe}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{d}
+\providetranslation{Q-(ODw)}{D}
+\providetranslation{queen-(ODw)}{dame}
+\providetranslation{Queen-(ODw)}{Dame}
+\providetranslation{ReDbl-(ODw)}{SurC}
+\providetranslation{redoubled-(ODw)}{surcontré}
+\providetranslation{Redoubled-(ODw)}{Surcontré}
+\providetranslation{redouble-(ODw)}{surcontre}
+\providetranslation{Redouble-(ODw)}{Surcontre}
+\providetranslation{semi forcing-(ODw)}{semi forcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forcing}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{sud}
+\providetranslation{South-(ODw)}{Sud}
+\providetranslation{suiter-(ODw)}{colore}
+\providetranslation{Suiter-(ODw)}{Colore}
+\providetranslation{suit-(ODw)}{couleur}
+\providetranslation{Suit-(ODw)}{Couleur}
+\providetranslation{third suit forcing-(ODw)}{troisième couleur forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Troisième Couleur Forcing}
+\providetranslation{total points-(ODw)}{points total}
+\providetranslation{Total Points-(ODw)}{Points Total}
+\providetranslation{TP-(ODw)}{PT}
+\providetranslation{tp-(ODw)}{tp}
+\providetranslation{trial bid-(ODw)}{trial bid}
+\providetranslation{Trial bid-(ODw)}{Trial bid}
+\providetranslation{trick-(ODw)}{levée}
+\providetranslation{Trick-(ODw)}{Levée}
+\providetranslation{tsf-(ODw)}{3e\,cf}
+\providetranslation{TSF-(ODw)}{3e\,CF}
+\providetranslation{vulnerable-(ODw)}{vulnérable}
+\providetranslation{Vulnerable-(ODw)}{Vulnérable}
+\providetranslation{vul-(ODw)}{vul}
+\providetranslation{Vul-(ODw)}{Vul}
+\providetranslation{west-(ODw)}{ouest}
+\providetranslation{West-(ODw)}{Ouest}
+\providetranslation{w-(ODw)}{o}
+\providetranslation{W-(ODw)}{O}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-German.dict b/macros/latex/contrib/onedown/ODw-German.dict
new file mode 100644
index 0000000000..3a16cf0881
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-German.dict
@@ -0,0 +1,160 @@
+% this is file ODw-German.dict from the OneDown bundle
+%
+% Entries with a "!" denote an abreviated form
+%
+% retrieve with e.g. \translation{dealer-(ODw)} to get teiler
+%
+\ProvidesDictionary{ODw}{German}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1.}
+\providetranslation{2nd-(ODw)}{2.}
+\providetranslation{3rd-(ODw)}{3.}
+\providetranslation{4th-(ODw)}{4.}
+\providetranslation{ace-(ODw)}{ass}
+\providetranslation{Ace-(ODw)}{Ass}
+\providetranslation{all-(ODw)}{alle}
+\providetranslation{All-(ODw)}{Alle}
+\providetranslation{all!-(ODw)}{alle}
+\providetranslation{All!-(ODw)}{Alle}
+\providetranslation{all pass-(ODw)}{alle passen}
+\providetranslation{All pass-(ODw)}{Alle passen}
+\providetranslation{a-(ODw)}{a}
+\providetranslation{A-(ODw)}{A}
+\providetranslation{ap-(ODw)}{ap}
+\providetranslation{AP-(ODw)}{AP}
+\providetranslation{award-(ODw)}{Bewertung}
+\providetranslation{Award-(ODw)}{Bewertung}
+\providetranslation{bid-(ODw)}{gebot}
+\providetranslation{Bid-(ODw)}{Gebot}
+\providetranslation{board-(ODw)}{board}
+\providetranslation{Board-(ODw)}{Board}
+\providetranslation{brd-(ODw)}{brd}
+\providetranslation{Brd-(ODw)}{Brd}
+\providetranslation{by-(ODw)}{von}
+\providetranslation{call-(ODw)}{ansage}
+\providetranslation{Call-(ODw)}{Ansage}
+\providetranslation{-card-(ODw)}{er}
+\providetranslation{contract-(ODw)}{kontrakt}
+\providetranslation{Contract-(ODw)}{Kontrakt}
+\providetranslation{contr-(ODw)}{kontr}
+\providetranslation{Contr-(ODw)}{Kontr}
+\providetranslation{Dbl-(ODw)}{Kntr}
+\providetranslation{dealer-(ODw)}{teiler}
+\providetranslation{Dealer-(ODw)}{Teiler}
+\providetranslation{deal!-(ODw)}{aust}
+\providetranslation{Deal!-(ODw)}{Aust}
+\providetranslation{deal-(ODw)}{austeilung}
+\providetranslation{Deal-(ODw)}{Austeilung}
+\providetranslation{declarer-(ODw)}{alleinspieler}
+\providetranslation{Declarer-(ODw)}{Alleinspieler}
+\providetranslation{decl-(ODw)}{alleinsp}
+\providetranslation{Decl-(ODw)}{Alleinsp}
+\providetranslation{distribution points-(ODw)}{verteilungspunkte}
+\providetranslation{Distribution Points-(ODw)}{Verteilungspunkte}
+\providetranslation{doubled-(ODw)}{kontriert}
+\providetranslation{Doubled-(ODw)}{Kontriert}
+\providetranslation{double-(ODw)}{kontra}
+\providetranslation{Double-(ODw)}{Kontra}
+\providetranslation{dp-(ODw)}{v}
+\providetranslation{DP-(ODw)}{V}
+\providetranslation{east-(ODw)}{ost}
+\providetranslation{East-(ODw)}{Ost}
+\providetranslation{e-(ODw)}{o}
+\providetranslation{E-(ODw)}{O}
+\providetranslation{fourth suit forcing-(ODw)}{vierte farbe forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Vierte Farbe Forcing}
+\providetranslation{fsf-(ODw)}{4.\,ff}
+\providetranslation{FSF-(ODw)}{4.\,FF}
+\providetranslation{game forcing-(ODw)}{partie forcing}
+\providetranslation{Game Forcing-(ODw)}{Partie Forcing}
+\providetranslation{gf-(ODw)}{pf}
+\providetranslation{GF-(ODw)}{PF}
+\providetranslation{hand-(ODw)}{blatt}
+\providetranslation{Hand-(ODw)}{Blatt}
+\providetranslation{hcp-(ODw)}{f}
+\providetranslation{HCP-(ODw)}{F}
+\providetranslation{high card points-(ODw)}{figurenpunkte}
+\providetranslation{High Card Points-(ODw)}{Figurenpunkte}
+\providetranslation{hlp-(ODw)}{fl}
+\providetranslation{HLP-(ODw)}{FL}
+\providetranslation{jack-(ODw)}{bube}
+\providetranslation{Jack-(ODw)}{Bube}
+\providetranslation{j-(ODw)}{b}
+\providetranslation{J-(ODw)}{B}
+\providetranslation{king-(ODw)}{könig}
+\providetranslation{King-(ODw)}{König}
+\providetranslation{k-(ODw)}{k}
+\providetranslation{K-(ODw)}{K}
+\providetranslation{lead!-(ODw)}{aussp.}
+\providetranslation{Lead!-(ODw)}{Aussp.}
+\providetranslation{lead-(ODw)}{ausspiel}
+\providetranslation{Lead-(ODw)}{Ausspiel}
+\providetranslation{length points-(ODw)}{längenpunkte}
+\providetranslation{Length Points-(ODw)}{Längenpunkte}
+\providetranslation{lp-(ODw)}{l}
+\providetranslation{LP-(ODw)}{L}
+\providetranslation{new minor forcing-(ODw)}{neue unterfarbe forcing}
+\providetranslation{New Minor Forcing-(ODw)}{Neue Unterfarbe Forcing}
+\providetranslation{nmf-(ODw)}{nuf}
+\providetranslation{NMF-(ODw)}{NUF}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none-(ODw)}{keiner}
+\providetranslation{None-(ODw)}{Keiner}
+\providetranslation{none!-(ODw)}{keiner}
+\providetranslation{None!-(ODw)}{Keiner}
+\providetranslation{north-(ODw)}{nord}
+\providetranslation{North-(ODw)}{Nord}
+\providetranslation{no trump-(ODw)}{sans atout}
+\providetranslation{No Trump-(ODw)}{Sans Atout}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{nt-(ODw)}{sa}
+\providetranslation{NT-(ODw)}{S\kern-0.01emA}
+\providetranslation{pass-(ODw)}{passe}
+\providetranslation{Pass-(ODw)}{Passe}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{d}
+\providetranslation{Q-(ODw)}{D}
+\providetranslation{queen-(ODw)}{dame}
+\providetranslation{Queen-(ODw)}{Dame}
+\providetranslation{ReDbl-(ODw)}{ReKntr}
+\providetranslation{redoubled-(ODw)}{rekontriert}
+\providetranslation{Redoubled-(ODw)}{Rekontriert}
+\providetranslation{redouble-(ODw)}{rekontra}
+\providetranslation{ReDouble-(ODw)}{ReKontra}
+\providetranslation{semi forcing-(ODw)}{semi forcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forcing}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{süd}
+\providetranslation{South-(ODw)}{Süd}
+\providetranslation{suiter-(ODw)}{färber}
+\providetranslation{Suiter-(ODw)}{Färber}
+\providetranslation{suit-(ODw)}{farbe}
+\providetranslation{Suit-(ODw)}{Farbe}
+\providetranslation{third suit forcing-(ODw)}{dritte farbe forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Dritte Farbe Forcing}
+\providetranslation{total points-(ODw)}{figuren-verteilungspunkte}
+\providetranslation{Total Points-(ODw)}{Figuren-Verteilungspunkte}
+\providetranslation{tp-(ODw)}{fv}
+\providetranslation{TP-(ODw)}{FV}
+\providetranslation{trial bid-(ODw)}{versuchsgebot}
+\providetranslation{Trial bid-(ODw)}{Versuchsgebot}
+\providetranslation{trick-(ODw)}{stich}
+\providetranslation{Trick-(ODw)}{Stich}
+\providetranslation{tsf-(ODw)}{3.\,ff}
+\providetranslation{TSF-(ODw)}{3.\,FF}
+\providetranslation{vulnerable-(ODw)}{gefahr}
+\providetranslation{Vulnerable-(ODw)}{Gefahr}
+\providetranslation{vul-(ODw)}{gef}
+\providetranslation{Vul-(ODw)}{Gef}
+\providetranslation{west-(ODw)}{west}
+\providetranslation{West-(ODw)}{West}
+\providetranslation{w-(ODw)}{w}
+\providetranslation{W-(ODw)}{W}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-Norsk.dict b/macros/latex/contrib/onedown/ODw-Norsk.dict
new file mode 100644
index 0000000000..2db801f3c8
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-Norsk.dict
@@ -0,0 +1,160 @@
+% this is file ODw-Norsk.dict from the OneDown bundle
+% Entries with a "!" denote an abreviated form
+% Thanks to Gunnar & Anne
+%
+% retrieve with e.g \translation{dealer-(ODw)} to get givare
+%
+\ProvidesDictionary{ODw}{Norsk}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1.}
+\providetranslation{2nd-(ODw)}{2.}
+\providetranslation{3rd-(ODw)}{3.}
+\providetranslation{4th-(ODw)}{4.}
+\providetranslation{ace-(ODw)}{ess}
+\providetranslation{Ace-(ODw)}{Ess}
+\providetranslation{all-(ODw)}{alle}
+\providetranslation{All-(ODw)}{Alle}
+\providetranslation{all!-(ODw)}{alle}
+\providetranslation{All!-(ODw)}{Alle}
+\providetranslation{all pass-(ODw)}{pass rundt}
+\providetranslation{All pass-(ODw)}{Pass rundt}
+\providetranslation{a-(ODw)}{e}
+\providetranslation{A-(ODw)}{E}
+%\providetranslation{award-(ODw)}{poeng}
+%\providetranslation{Award-(ODw)}{Poeng}
+\providetranslation{award-(ODw)}{vurdering}
+\providetranslation{Award-(ODw)}{Vurdering}
+\providetranslation{bid-(ODw)}{bud}
+\providetranslation{Bid-(ODw)}{Bud}
+\providetranslation{board-(ODw)}{spill}
+\providetranslation{Board-(ODw)}{Spill}
+\providetranslation{brd-(ODw)}{spill}
+\providetranslation{Brd-(ODw)}{Spill}
+\providetranslation{by-(ODw)}{ved}
+\providetranslation{call-(ODw)}{bud}
+\providetranslation{Call-(ODw)}{Bud}
+\providetranslation{-card-(ODw)}{-kortfarger}
+\providetranslation{contract-(ODw)}{kontrakt}
+\providetranslation{Contract-(ODw)}{Kontrakt}
+\providetranslation{contr-(ODw)}{kontr}
+\providetranslation{Contr-(ODw)}{Kontr}
+\providetranslation{Dbl-(ODw)}{Dbl}
+\providetranslation{dealer-(ODw)}{giver}
+\providetranslation{Dealer-(ODw)}{Giver}
+\providetranslation{deal-(ODw)}{giv}
+\providetranslation{Deal-(ODw)}{Giv}
+\providetranslation{deal!-(ODw)}{giv}
+\providetranslation{Deal!-(ODw)}{Giv}
+\providetranslation{declarer-(ODw)}{spilleförer}
+\providetranslation{Declarer-(ODw)}{Spilleförer}
+\providetranslation{decl-(ODw)}{spför}
+\providetranslation{Decl-(ODw)}{Spför}
+\providetranslation{distribution points-(ODw)}{trumfpoeng}
+\providetranslation{Distribution Points-(ODw)}{Trumfpoeng}
+\providetranslation{doubled-(ODw)}{doblet}
+\providetranslation{Doubled-(ODw)}{Doblet}
+\providetranslation{double-(ODw)}{doblet}
+\providetranslation{Double-(ODw)}{Doblet}
+\providetranslation{dp-(ODw)}{tp}
+\providetranslation{DP-(ODw)}{TP}
+\providetranslation{east-(ODw)}{øst}
+\providetranslation{East-(ODw)}{Øst}
+\providetranslation{e-(ODw)}{ø}
+\providetranslation{E-(ODw)}{Ø}
+\providetranslation{fourth suit forcing-(ODw)}{fjerde farge forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Fjerde Farge Forcing}
+\providetranslation{fsf-(ODw)}{4.\,ff}
+\providetranslation{FSF-(ODw)}{4.\,FF}
+\providetranslation{game forcing-(ODw)}{utgangskrav}
+\providetranslation{Game Forcing-(ODw)}{UtgangsKrav}
+\providetranslation{gf-(ODw)}{uk}
+\providetranslation{GF-(ODw)}{UK}
+\providetranslation{Hand-(ODw)}{Hånd}
+\providetranslation{hand-(ODw)}{hånd}
+\providetranslation{hcp-(ODw)}{hp}
+\providetranslation{HCP-(ODw)}{HP}
+\providetranslation{high card points-(ODw)}{høy kort poeng}
+\providetranslation{High Card Points-(ODw)}{høy Kort Poeng}
+\providetranslation{hlp-(ODw)}{hlp}
+\providetranslation{HLP-(ODw)}{HLP}
+\providetranslation{jack-(ODw)}{knekt}
+\providetranslation{Jack-(ODw)}{Knekt}
+\providetranslation{J-(ODw)}{\mbox{K\kern-0.08emn}}
+\providetranslation{j-(ODw)}{\mbox{kn}}
+\providetranslation{king-(ODw)}{konge}
+\providetranslation{King-(ODw)}{Konge}
+\providetranslation{k-(ODw)}{k}
+\providetranslation{K-(ODw)}{K}
+\providetranslation{lead!-(ODw)}{utsp.}
+\providetranslation{Lead!-(ODw)}{Utsp.}
+\providetranslation{lead-(ODw)}{utspill}
+\providetranslation{Lead-(ODw)}{Utspill}
+\providetranslation{length points-(ODw)}{lengde poeng}
+\providetranslation{Length Points-(ODw)}{Lengde Poeng}
+\providetranslation{lp-(ODw)}{lp}
+\providetranslation{LP-(ODw)}{LP}
+\providetranslation{new minor forcing-(ODw)}{nye minor krav}
+\providetranslation{New Minor Forcing-(ODw)}{Nye Minor Krav}
+\providetranslation{nmf-(ODw)}{nmk}
+\providetranslation{NMF-(ODw)}{NMK}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none!-(ODw)}{ing}
+\providetranslation{None!-(ODw)}{Ing}
+\providetranslation{none-(ODw)}{ingen}
+\providetranslation{None-(ODw)}{Ingen}
+\providetranslation{north-(ODw)}{nord}
+\providetranslation{North-(ODw)}{Nord}
+\providetranslation{no trump-(ODw)}{uten trumf}
+\providetranslation{No Trump-(ODw)}{Uten Trumf}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{NT-(ODw)}{N\kern-0.07emT}
+\providetranslation{nt-(ODw)}{nt}
+\providetranslation{pass-(ODw)}{pass}
+\providetranslation{Pass-(ODw)}{Pass}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{d}
+\providetranslation{Q-(ODw)}{D}
+\providetranslation{queen-(ODw)}{dame}
+\providetranslation{Queen-(ODw)}{Dame}
+\providetranslation{ReDbl-(ODw)}{ReDbl}
+\providetranslation{redoubled-(ODw)}{redoblet}
+\providetranslation{Redoubled-(ODw)}{Redoblet}
+\providetranslation{redouble-(ODw)}{redoblet}
+\providetranslation{ReDouble-(ODw)}{Redoblet}
+\providetranslation{semi forcing-(ODw)}{RundKrav}
+\providetranslation{Semi Forcing-(ODw)}{RundKrav}
+\providetranslation{sf-(ODw)}{rk}
+\providetranslation{SF-(ODw)}{RK}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{syd}
+\providetranslation{South-(ODw)}{Syd}
+\providetranslation{suiter-(ODw)}{farger}
+\providetranslation{Suiter-(ODw)}{Farger}
+\providetranslation{suit-(ODw)}{farge}
+\providetranslation{Suit-(ODw)}{Farge}
+\providetranslation{third suit forcing-(ODw)}{tredje farge forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Tredje Farge Forcing}
+\providetranslation{total points-(ODw)}{totalt poeng}
+\providetranslation{Total Points-(ODw)}{Totalt Poeng}
+\providetranslation{tp-(ODw)}{tp}
+\providetranslation{TP-(ODw)}{TP}
+\providetranslation{trial bid-(ODw)}{prøving bud}
+\providetranslation{Trial bid-(ODw)}{Prøving bud}
+\providetranslation{trick-(ODw)}{trekk}
+\providetranslation{Trick-(ODw)}{Trekk}
+\providetranslation{tsf-(ODw)}{3.\,ff}
+\providetranslation{TSF-(ODw)}{3.\,FF}
+\providetranslation{vulnerable-(ODw)}{sone}
+\providetranslation{Vulnerable-(ODw)}{Sone}
+\providetranslation{vul-(ODw)}{sone}
+\providetranslation{Vul-(ODw)}{Sone}
+\providetranslation{west-(ODw)}{vest}
+\providetranslation{West-(ODw)}{Vest}
+\providetranslation{w-(ODw)}{v}
+\providetranslation{W-(ODw)}{V}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-Spanish.dict b/macros/latex/contrib/onedown/ODw-Spanish.dict
new file mode 100644
index 0000000000..60dc1e9e8b
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-Spanish.dict
@@ -0,0 +1,160 @@
+% this is file ODw-Spanish.dict from the OneDown bundle
+%
+% Entries with a "!" denote an abreviated form
+%
+% retrieve with e.g. \translation{dealer-(ODw)} to get dador
+%
+\ProvidesDictionary{ODw}{Spanish}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1er}
+\providetranslation{2nd-(ODw)}{2do}
+\providetranslation{3rd-(ODw)}{3er}
+\providetranslation{4th-(ODw)}{4th}
+\providetranslation{ace-(ODw)}{as}
+\providetranslation{Ace-(ODw)}{As}
+\providetranslation{all-(ODw)}{todos}
+\providetranslation{All-(ODw)}{Todos}
+\providetranslation{all!-(ODw)}{todos}
+\providetranslation{All!-(ODw)}{Todos}
+\providetranslation{all pass-(ODw)}{todos pasan}
+\providetranslation{All pass-(ODw)}{Todos pasan}
+\providetranslation{a-(ODw)}{a}
+\providetranslation{A-(ODw)}{A}
+\providetranslation{ap-(ODw)}{tp}
+\providetranslation{AP-(ODw)}{TP}
+\providetranslation{award-(ODw)}{premio}
+\providetranslation{Award-(ODw)}{Premio}
+\providetranslation{bid-(ODw)}{contrato}
+\providetranslation{Bid-(ODw)}{Contrato}
+\providetranslation{board-(ODw)}{estuche}
+\providetranslation{Board-(ODw)}{Estuche}
+\providetranslation{brd-(ODw)}{est}
+\providetranslation{Brd-(ODw)}{Est}
+\providetranslation{by-(ODw)}{por}
+\providetranslation{call-(ODw)}{annonce}
+\providetranslation{Call-(ODw)}{Annonce}
+\providetranslation{-card-(ODw)}{-carta}
+\providetranslation{contract-(ODw)}{contrato final}
+\providetranslation{Contract-(ODw)}{Contrato final}
+\providetranslation{contr-(ODw)}{ctrf}
+\providetranslation{Contr-(ODw)}{Ctrf}
+\providetranslation{Dbl-(ODw)}{Dbl}
+\providetranslation{dealer-(ODw)}{dador}
+\providetranslation{Dealer-(ODw)}{Dador}
+\providetranslation{deal!-(ODw)}{donne}
+\providetranslation{Deal!-(ODw)}{Donne}
+\providetranslation{deal-(ODw)}{donne}
+\providetranslation{Deal-(ODw)}{Donne}
+\providetranslation{declarer-(ODw)}{declarante}
+\providetranslation{Declarer-(ODw)}{Declarante}
+\providetranslation{decl-(ODw)}{decl}
+\providetranslation{Decl-(ODw)}{Decl}
+\providetranslation{distribution points-(ODw)}{puntos de distribución}
+\providetranslation{Distribution Points-(ODw)}{Puntos de Distribución}
+\providetranslation{doubled-(ODw)}{doblado}
+\providetranslation{Doubled-(ODw)}{Doblado}
+\providetranslation{double-(ODw)}{doblo}
+\providetranslation{Double-(ODw)}{Doblo}
+\providetranslation{dp-(ODw)}{pd}
+\providetranslation{DP-(ODw)}{PD}
+\providetranslation{east-(ODw)}{este}
+\providetranslation{East-(ODw)}{Este}
+\providetranslation{e-(ODw)}{e}
+\providetranslation{E-(ODw)}{E}
+\providetranslation{fourth suit forcing-(ODw)}{cuarto palo forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Cuarto Palo Forcing}
+\providetranslation{fsf-(ODw)}{4th\,pf}
+\providetranslation{FSF-(ODw)}{4th\,PF}
+\providetranslation{game forcing-(ODw)}{forcing a manga}
+\providetranslation{Game Forcing-(ODw)}{Forcing a Manga}
+\providetranslation{GF-(ODw)}{FG}
+\providetranslation{gf-(ODw)}{fg}
+\providetranslation{hand-(ODw)}{mano}
+\providetranslation{Hand-(ODw)}{Mano}
+\providetranslation{hcp-(ODw)}{ph}
+\providetranslation{HCP-(ODw)}{PH}
+\providetranslation{high card points-(ODw)}{puntos de honores}
+\providetranslation{High Card Points-(ODw)}{Puntos de Honores}
+\providetranslation{hlp-(ODw)}{hl}
+\providetranslation{HLP-(ODw)}{HL}
+\providetranslation{jack-(ODw)}{jaco}
+\providetranslation{Jack-(ODw)}{Jaco}
+\providetranslation{j-(ODw)}{j}
+\providetranslation{J-(ODw)}{J}
+\providetranslation{king-(ODw)}{rey}
+\providetranslation{King-(ODw)}{Rey}
+\providetranslation{k-(ODw)}{r}
+\providetranslation{K-(ODw)}{R}
+\providetranslation{lead!-(ODw)}{ent.}
+\providetranslation{Lead!-(ODw)}{Ent.}
+\providetranslation{lead-(ODw)}{entame}
+\providetranslation{Lead-(ODw)}{Entame}
+\providetranslation{length points-(ODw)}{points de longueur}
+\providetranslation{Length Points-(ODw)}{Points de Longueur}
+\providetranslation{lp-(ODw)}{pl}
+\providetranslation{LP-(ODw)}{PL}
+\providetranslation{new minor forcing-(ODw)}{neuvo menor forcing}
+\providetranslation{New Minor Forcing-(ODw)}{Neuvo Menor Forcing}
+\providetranslation{nmf-(ODw)}{nmf}
+\providetranslation{NMF-(ODw)}{NMF}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none-(ODw)}{nadie}
+\providetranslation{None-(ODw)}{Nadie}
+\providetranslation{none!-(ODw)}{nadie}
+\providetranslation{None!-(ODw)}{Nadie}
+\providetranslation{north-(ODw)}{norte}
+\providetranslation{North-(ODw)}{Norte}
+\providetranslation{no trump-(ODw)}{sin triunfo}
+\providetranslation{No Trump-(ODw)}{Sin Triunfo}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{nt-(ODw)}{st}
+\providetranslation{NT-(ODw)}{S\kern-0.01emT}
+\providetranslation{pass-(ODw)}{paso}
+\providetranslation{Pass-(ODw)}{Paso}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{d}
+\providetranslation{Q-(ODw)}{D}
+\providetranslation{queen-(ODw)}{dama}
+\providetranslation{Queen-(ODw)}{Dama}
+\providetranslation{ReDbl-(ODw)}{ReDbl}
+\providetranslation{redoubled-(ODw)}{redoblado}
+\providetranslation{Redoubled-(ODw)}{Redoblado}
+\providetranslation{redouble-(ODw)}{redoblo}
+\providetranslation{Redouble-(ODw)}{Redoblo}
+\providetranslation{semi forcing-(ODw)}{semi forcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forcing}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{sur}
+\providetranslation{South-(ODw)}{Sur}
+\providetranslation{suiter-(ODw)}{color}
+\providetranslation{Suiter-(ODw)}{Color}
+\providetranslation{suit-(ODw)}{palo}
+\providetranslation{Suit-(ODw)}{Palo}
+\providetranslation{third suit forcing-(ODw)}{tercer palo forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Tercer Palo Forcing}
+\providetranslation{total points-(ODw)}{puntos de honor-distribución}
+\providetranslation{Total Points-(ODw)}{Puntos de Honor-Distribución}
+\providetranslation{TP-(ODw)}{PHD}
+\providetranslation{tp-(ODw)}{phd}
+\providetranslation{trial bid-(ODw)}{trial bid}
+\providetranslation{Trial bid-(ODw)}{Trial bid}
+\providetranslation{trick-(ODw)}{baza}
+\providetranslation{Trick-(ODw)}{Baza}
+\providetranslation{tsf-(ODw)}{3er\,pf}
+\providetranslation{TSF-(ODw)}{3er\,PF}
+\providetranslation{vulnerable-(ODw)}{vulnerable}
+\providetranslation{Vulnerable-(ODw)}{Vulnerable}
+\providetranslation{vul-(ODw)}{vul}
+\providetranslation{Vul-(ODw)}{Vul}
+\providetranslation{west-(ODw)}{oeste}
+\providetranslation{West-(ODw)}{Oeste}
+\providetranslation{w-(ODw)}{o}
+\providetranslation{W-(ODw)}{O}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-Swedish.dict b/macros/latex/contrib/onedown/ODw-Swedish.dict
new file mode 100644
index 0000000000..633571cd40
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-Swedish.dict
@@ -0,0 +1,162 @@
+% this is file ODw-Swedish.dict from the OneDown bundle
+%
+% Entries with a "!" denote an abreviated form
+% Thanks to Per Karlberg
+% retrieve with e.g \translation{dealer-(ODw)} to get givare
+%
+\ProvidesDictionary{ODw}{Swedish}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1:a}
+\providetranslation{2nd-(ODw)}{2:a}
+\providetranslation{3rd-(ODw)}{3:e}
+\providetranslation{4th-(ODw)}{4:e}
+\providetranslation{ace-(ODw)}{äss}
+\providetranslation{Ace-(ODw)}{Äss}
+\providetranslation{all-(ODw)}{alla}
+\providetranslation{All-(ODw)}{Alla}
+\providetranslation{all!-(ODw)}{alla}
+\providetranslation{All!-(ODw)}{Alla}
+\providetranslation{all pass-(ODw)}{alla passet}
+\providetranslation{All pass-(ODw)}{Alla passet}
+\providetranslation{a-(ODw)}{ä}
+\providetranslation{A-(ODw)}{Ä}
+\providetranslation{ap-(ODw)}{ap}
+\providetranslation{AP-(ODw)}{AP}
+%\providetranslation{award-(ODw)}{poäng}
+%\providetranslation{Award-(ODw)}{Poäng}
+\providetranslation{award-(ODw)}{värdering}
+\providetranslation{Award-(ODw)}{Värdering}
+\providetranslation{bid-(ODw)}{bud}
+\providetranslation{Bid-(ODw)}{Bud}
+\providetranslation{board-(ODw)}{bricka}
+\providetranslation{Board-(ODw)}{Bricka}
+\providetranslation{brd-(ODw)}{brck}
+\providetranslation{Brd-(ODw)}{Brck}
+\providetranslation{by-(ODw)}{per}
+\providetranslation{call-(ODw)}{bud}
+\providetranslation{Call-(ODw)}{Bud}
+\providetranslation{-card-(ODw)}{-kort}
+\providetranslation{contract-(ODw)}{kontrakt}
+\providetranslation{Contract-(ODw)}{Kontrakt}
+\providetranslation{contr-(ODw)}{kontr}
+\providetranslation{Contr-(ODw)}{Kontr}
+\providetranslation{Dbl-(ODw)}{Dbl}
+\providetranslation{dealer-(ODw)}{givare}
+\providetranslation{Dealer-(ODw)}{Givare}
+\providetranslation{deal-(ODw)}{giv}
+\providetranslation{Deal-(ODw)}{Giv}
+\providetranslation{deal!-(ODw)}{giv}
+\providetranslation{Deal!-(ODw)}{Giv}
+\providetranslation{declarer-(ODw)}{spelförare}
+\providetranslation{Declarer-(ODw)}{Spelförare}
+\providetranslation{decl-(ODw)}{spför}
+\providetranslation{Decl-(ODw)}{Spför}
+\providetranslation{distribution points-(ODw)}{fördelningpoints}
+\providetranslation{Distribution Points-(ODw)}{Fördelningpoints}
+\providetranslation{doubled-(ODw)}{dubbelt}
+\providetranslation{Doubled-(ODw)}{Dubbelt}
+\providetranslation{double-(ODw)}{dubbelt}
+\providetranslation{Double-(ODw)}{Dubbelt}
+\providetranslation{dp-(ODw)}{fp}
+\providetranslation{DP-(ODw)}{FP}
+\providetranslation{east-(ODw)}{öst}
+\providetranslation{East-(ODw)}{Öst}
+\providetranslation{e-(ODw)}{ö}
+\providetranslation{E-(ODw)}{Ö}
+\providetranslation{fourth suit forcing-(ODw)}{fjärde farve forcing}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Fjärde Farve Forcing}
+\providetranslation{fsf-(ODw)}{4:e\,ff}
+\providetranslation{FSF-(ODw)}{4:e\,FF}
+\providetranslation{game forcing-(ODw)}{krav till udgang}
+\providetranslation{Game Forcing-(ODw)}{Krav till Udgang}
+\providetranslation{gf-(ODw)}{ku}
+\providetranslation{GF-(ODw)}{KU}
+\providetranslation{Hand-(ODw)}{Hand}
+\providetranslation{hand-(ODw)}{hand}
+\providetranslation{hcp-(ODw)}{hp}
+\providetranslation{HCP-(ODw)}{HP}
+\providetranslation{high card points-(ODw)}{Honnørpoints}
+\providetranslation{High Card Points-(ODw)}{honnørpoints}
+\providetranslation{hlp-(ODw)}{hlp}
+\providetranslation{HLP-(ODw)}{HLP}
+\providetranslation{jack-(ODw)}{knekt}
+\providetranslation{Jack-(ODw)}{Knekt}
+\providetranslation{j-(ODw)}{kn}
+\providetranslation{J-(ODw)}{\mbox{K\kern-0.08emn}}
+\providetranslation{king-(ODw)}{kung}
+\providetranslation{King-(ODw)}{Kung}
+\providetranslation{k-(ODw)}{k}
+\providetranslation{K-(ODw)}{K}
+\providetranslation{lead!-(ODw)}{utsp.}
+\providetranslation{Lead!-(ODw)}{Utsp.}
+\providetranslation{lead-(ODw)}{utspel}
+\providetranslation{Lead-(ODw)}{Utspel}
+\providetranslation{length points-(ODw)}{längd points}
+\providetranslation{Length Points-(ODw)}{Längd Points}
+\providetranslation{lp-(ODw)}{lp}
+\providetranslation{LP-(ODw)}{LP}
+\providetranslation{new minor forcing-(ODw)}{new minor forcing}
+\providetranslation{New Minor Forcing-(ODw)}{New Minor Forcing}
+\providetranslation{nmf-(ODw)}{nmf}
+\providetranslation{NMF-(ODw)}{NMF}
+\providetranslation{n-(ODw)}{n}
+\providetranslation{N-(ODw)}{N}
+\providetranslation{none!-(ODw)}{ing}
+\providetranslation{None!-(ODw)}{Ing}
+\providetranslation{none-(ODw)}{ingen}
+\providetranslation{None-(ODw)}{Ingen}
+\providetranslation{north-(ODw)}{norr}
+\providetranslation{North-(ODw)}{Norr}
+\providetranslation{no trump-(ODw)}{utan trumf}
+\providetranslation{No Trump-(ODw)}{Utan Trumf}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{NT-(ODw)}{N\kern-0.07emT}
+\providetranslation{nt-(ODw)}{nt}
+\providetranslation{pass-(ODw)}{pass}
+\providetranslation{Pass-(ODw)}{Pass}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{d}
+\providetranslation{Q-(ODw)}{D}
+\providetranslation{queen-(ODw)}{dame}
+\providetranslation{Queen-(ODw)}{Dame}
+\providetranslation{ReDbl-(ODw)}{ReDbl}
+\providetranslation{redoubled-(ODw)}{redubbelt}
+\providetranslation{Redoubled-(ODw)}{Redubbelt}
+\providetranslation{redouble-(ODw)}{redubbelt}
+\providetranslation{Redouble-(ODw)}{Redubbelt}
+\providetranslation{semi forcing-(ODw)}{semi forcing}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forcing}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{s-(ODw)}{s}
+\providetranslation{S-(ODw)}{S}
+\providetranslation{south-(ODw)}{syd}
+\providetranslation{South-(ODw)}{Syd}
+\providetranslation{suiter-(ODw)}{farver}
+\providetranslation{Suiter-(ODw)}{Farver}
+\providetranslation{suit-(ODw)}{farve}
+\providetranslation{Suit-(ODw)}{Farve}
+\providetranslation{third suit forcing-(ODw)}{tredje farve forcing}
+\providetranslation{Third Suit Forcing-(ODw)}{Tredje Farve Forcing}
+\providetranslation{total points-(ODw)}{total points}
+\providetranslation{Total Points-(ODw)}{Total Points}
+\providetranslation{tp-(ODw)}{sp}
+\providetranslation{TP-(ODw)}{SP}
+\providetranslation{trial bid-(ODw)}{pröv bud}
+\providetranslation{Trial bid-(ODw)}{Pröv bud}
+\providetranslation{trick-(ODw)}{stik}
+\providetranslation{Trick-(ODw)}{Stik}
+\providetranslation{tsf-(ODw)}{3:e\,ff}
+\providetranslation{TSF-(ODw)}{3:e\,FF}
+\providetranslation{vulnerable-(ODw)}{zon}
+\providetranslation{Vulnerable-(ODw)}{Zon}
+\providetranslation{vul-(ODw)}{zon}
+\providetranslation{Vul-(ODw)}{Zon}
+\providetranslation{west-(ODw)}{väst}
+\providetranslation{West-(ODw)}{Väst}
+\providetranslation{w-(ODw)}{v}
+\providetranslation{W-(ODw)}{V}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-Turkish.dict b/macros/latex/contrib/onedown/ODw-Turkish.dict
new file mode 100644
index 0000000000..cb7c7ef3a5
--- /dev/null
+++ b/macros/latex/contrib/onedown/ODw-Turkish.dict
@@ -0,0 +1,160 @@
+% this is file ODw-Turkish.dict from the OneDown bundle
+% thanks to Yilmaz Aksoy
+% Entries with a "!" denote an abreviated form
+%
+% retrieve with e.g. \translation{dealer-(ODw)} to get kâğıdı
+%
+\ProvidesDictionary{ODw}{Turkish}[V0.6-2021/04/24]
+
+\providetranslation{1st-(ODw)}{1.}
+\providetranslation{2nd-(ODw)}{2.}
+\providetranslation{3rd-(ODw)}{3.}
+\providetranslation{4th-(ODw)}{4.}
+\providetranslation{ace-(ODw)}{as}
+\providetranslation{Ace-(ODw)}{As}
+\providetranslation{all!-(ODw)}{herk}
+\providetranslation{All!-(ODw)}{Herk}
+\providetranslation{all-(ODw)}{herkes}
+\providetranslation{All-(ODw)}{Herkes}
+\providetranslation{all pass-(ODw)}{pas geçildi}
+\providetranslation{All pass-(ODw)}{Pas geçildi}
+\providetranslation{a-(ODw)}{a}
+\providetranslation{A-(ODw)}{A}
+\providetranslation{ap-(ODw)}{ap}
+\providetranslation{AP-(ODw)}{AP}
+\providetranslation{award-(ODw)}{puan}
+\providetranslation{Award-(ODw)}{Puan}
+\providetranslation{Bid-(ODw)}{Deklare}
+\providetranslation{bid-(ODw)}{deklare}
+\providetranslation{Board-(ODw)}{Oyun Tahtası}
+\providetranslation{board-(ODw)}{oyun tahtası}
+\providetranslation{Brd-(ODw)}{Oyun}
+\providetranslation{brd-(ODw)}{oyun}
+\providetranslation{by-(ODw)}{tarafından}
+\providetranslation{Call-(ODw)}{İlan etme}
+\providetranslation{call-(ODw)}{ilan etme}
+\providetranslation{-card-(ODw)}{-card}
+\providetranslation{contract-(ODw)}{kontrat}
+\providetranslation{Contract-(ODw)}{Kontrat}
+\providetranslation{contr-(ODw)}{kontr}
+\providetranslation{Contr-(ODw)}{Kontr}
+\providetranslation{Dbl-(ODw)}{Knt}
+\providetranslation{dealer-(ODw)}{dağıtan}
+\providetranslation{Dealer-(ODw)}{Dağıtan}
+\providetranslation{Deal-(ODw)}{El}
+\providetranslation{Deal!-(ODw)}{El}
+\providetranslation{deal-(ODw)}{el}
+\providetranslation{deal!-(ODw)}{el}
+\providetranslation{declarer-(ODw)}{deklaran}
+\providetranslation{Declarer-(ODw)}{Deklaran}
+\providetranslation{decl-(ODw)}{dekl}
+\providetranslation{Decl-(ODw)}{Dekl}
+\providetranslation{distribution points-(ODw)}{dağılım puanı}
+\providetranslation{Distribution Points-(ODw)}{Dağılım Puanı}
+\providetranslation{doubled-(ODw)}{konturlu}
+\providetranslation{Doubled-(ODw)}{Konturlu}
+\providetranslation{double-(ODw)}{kontur}
+\providetranslation{Double-(ODw)}{Kontur}
+\providetranslation{dp-(ODw)}{dp}
+\providetranslation{DP-(ODw)}{DP}
+\providetranslation{east-(ODw)}{doğu}
+\providetranslation{East-(ODw)}{Doğu}
+\providetranslation{e-(ODw)}{d}
+\providetranslation{E-(ODw)}{D}
+\providetranslation{fourth suit forcing-(ODw)}{dördüncü renk forsingi}
+\providetranslation{Fourth Suit Forcing-(ODw)}{Dördüncü Renk Forsingi}
+\providetranslation{fsf-(ODw)}{4.\,rf}
+\providetranslation{FSF-(ODw)}{4.\,RF}
+\providetranslation{game forcing-(ODw)}{manş forsingi}
+\providetranslation{Game Forcing-(ODw)}{Manş Forsingi}
+\providetranslation{gf-(ODw)}{mf}
+\providetranslation{GF-(ODw)}{MF}
+\providetranslation{hand-(ODw)}{el}
+\providetranslation{Hand-(ODw)}{El}
+\providetranslation{hcp-(ODw)}{op}
+\providetranslation{HCP-(ODw)}{OP}
+\providetranslation{high card points-(ODw)}{onör puanı}
+\providetranslation{High Card Points-(ODw)}{Onör Puanı}
+\providetranslation{hlp-(ODw)}{oup}
+\providetranslation{HLP-(ODw)}{OUP}
+\providetranslation{jack-(ODw)}{vale}
+\providetranslation{Jack-(ODw)}{Vale}
+\providetranslation{j-(ODw)}{v}
+\providetranslation{J-(ODw)}{V}
+\providetranslation{king-(ODw)}{papaz}
+\providetranslation{King-(ODw)}{Papaz}
+\providetranslation{k-(ODw)}{p}
+\providetranslation{K-(ODw)}{P}
+\providetranslation{Lead!-(ODw)}{Atak}
+\providetranslation{lead-(ODw)}{atak}
+\providetranslation{Lead-(ODw)}{Atak}
+\providetranslation{lead!-(ODw)}{atak}
+\providetranslation{length points-(ODw)}{uzunluk puanları}
+\providetranslation{Length Points-(ODw)}{Uunluk Puanları}
+\providetranslation{lp-(ODw)}{up}
+\providetranslation{LP-(ODw)}{UP}
+\providetranslation{new minor forcing-(ODw)}{yeni minör forsingi}
+\providetranslation{New Minor Forcing-(ODw)}{Yeni Minör Forsingi}
+\providetranslation{nmf-(ODw)}{nmf}
+\providetranslation{NMF-(ODw)}{NMF}
+\providetranslation{n-(ODw)}{k}
+\providetranslation{N-(ODw)}{K}
+\providetranslation{none-(ODw)}{hiç}
+\providetranslation{None-(ODw)}{Hiç}
+\providetranslation{none!-(ODw)}{hiç}
+\providetranslation{None!-(ODw)}{Hiç}
+\providetranslation{north-(ODw)}{kuzey}
+\providetranslation{North-(ODw)}{Kuzey}
+\providetranslation{no trump-(ODw)}{sanzatu}
+\providetranslation{No Trump-(ODw)}{Sanzatu}
+\providetranslation{Nr-(ODw)}{\textnumero}
+\providetranslation{Nr.-(ODw)}{\textnumero.}
+\providetranslation{nt-(ODw)}{sa}
+\providetranslation{NT-(ODw)}{S\kern-0.01emA}
+\providetranslation{pass-(ODw)}{pas}
+\providetranslation{Pass-(ODw)}{Pas}
+\providetranslation{pass!-(ODw)}{p}
+\providetranslation{Pass!-(ODw)}{P}
+\providetranslation{q-(ODw)}{k}
+\providetranslation{Q-(ODw)}{K}
+\providetranslation{queen-(ODw)}{kız}
+\providetranslation{Queen-(ODw)}{Kız}
+\providetranslation{ReDbl-(ODw)}{SürKnt}
+\providetranslation{Redoubled-(ODw)}{Sürkonturlu}
+\providetranslation{redoubled-(ODw)}{sürkonturlu}
+\providetranslation{redouble-(ODw)}{sürkontur}
+\providetranslation{Redouble-(ODw)}{Sürkontur}
+\providetranslation{semi forcing-(ODw)}{semi forsingi}
+\providetranslation{Semi Forcing-(ODw)}{Semi Forsingi}
+\providetranslation{sf-(ODw)}{sf}
+\providetranslation{SF-(ODw)}{SF}
+\providetranslation{s-(ODw)}{g}
+\providetranslation{S-(ODw)}{G}
+\providetranslation{south-(ODw)}{güney}
+\providetranslation{South-(ODw)}{Güney}
+\providetranslation{suiter-(ODw)}{renkli}
+\providetranslation{Suiter-(ODw)}{Renkli}
+\providetranslation{suit-(ODw)}{renk}
+\providetranslation{Suit-(ODw)}{Renk}
+\providetranslation{third suit forcing-(ODw)}{üçüncü renk forsingi}
+\providetranslation{Third Suit Forcing-(ODw)}{Üçüncü Renk Forsingi}
+\providetranslation{total points-(ODw)}{onör destek puanı}
+\providetranslation{Total Points-(ODw)}{Onör Destek Puanı}
+\providetranslation{tp-(ODw)}{odp}
+\providetranslation{TP-(ODw)}{ODP}
+\providetranslation{trial bid-(ODw)}{trial bid}
+\providetranslation{Trial bid-(ODw)}{Trial bid}
+\providetranslation{trick-(ODw)}{löve}
+\providetranslation{Trick-(ODw)}{Löve}
+\providetranslation{tsf-(ODw)}{3.\,sf}
+\providetranslation{TSF-(ODw)}{3.\,SF}
+\providetranslation{vulnerable-(ODw)}{zonda}
+\providetranslation{Vulnerable-(ODw)}{Zonda}
+\providetranslation{vul-(ODw)}{zon}
+\providetranslation{Vul-(ODw)}{Zon}
+\providetranslation{west-(ODw)}{batı}
+\providetranslation{West-(ODw)}{Batı}
+\providetranslation{w-(ODw)}{b}
+\providetranslation{W-(ODw)}{B}
+%
+\endinput
diff --git a/macros/latex/contrib/onedown/ODw-danish.trsl b/macros/latex/contrib/onedown/ODw-danish.trsl
deleted file mode 100644
index 0f8c9dbbc7..0000000000
--- a/macros/latex/contrib/onedown/ODw-danish.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-danish.trsl
-%
-% Entries with a "!" denote an abreviated form
-%
-%% retrieve with e.g \GetTranslation{dealer-(ODw)} to get givare
-%
-\ProvideDictionaryFor{danish}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1.}
-\NewDictTranslation{2nd-(ODw)}{2.}
-\NewDictTranslation{3rd-(ODw)}{3.}
-\NewDictTranslation{4th-(ODw)}{4.}
-\NewDictTranslation{ace-(ODw)}{es}
-\NewDictTranslation{Ace-(ODw)}{Es}
-\NewDictTranslation{all-(ODw)}{alle}
-\NewDictTranslation{All-(ODw)}{Alle}
-\NewDictTranslation{all!-(ODw)}{alle}
-\NewDictTranslation{All!-(ODw)}{Alle}
-\NewDictTranslation{all pass-(ODw)}{alle passer}
-\NewDictTranslation{All pass-(ODw)}{Alle passer}
-\NewDictTranslation{a-(ODw)}{e}
-\NewDictTranslation{A-(ODw)}{E}% Es
-%\NewDictTranslation{award-(ODw)}{poäng}
-%\NewDictTranslation{Award-(ODw)}{Poäng}
-\NewDictTranslation{award-(ODw)}{värdering}
-\NewDictTranslation{Award-(ODw)}{Värdering}
-\NewDictTranslation{bid-(ODw)}{meldt}
-\NewDictTranslation{Bid-(ODw)}{Meldt}
-\NewDictTranslation{board-(ODw)}{bræt}
-\NewDictTranslation{Board-(ODw)}{Bræt}
-\NewDictTranslation{brd-(ODw)}{brt}
-\NewDictTranslation{Brd-(ODw)}{Brt}
-\NewDictTranslation{by-(ODw)}{af}
-\NewDictTranslation{call-(ODw)}{bud}
-\NewDictTranslation{Call-(ODw)}{Bud}
-\NewDictTranslation{-card-(ODw)}{-kort}
-\NewDictTranslation{contract-(ODw)}{kontrakten}
-\NewDictTranslation{Contract-(ODw)}{Kontrakten}
-\NewDictTranslation{contr-(ODw)}{kontr}
-\NewDictTranslation{Contr-(ODw)}{Kontr}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{givet}
-\NewDictTranslation{Dealer-(ODw)}{Givet}
-\NewDictTranslation{deal-(ODw)}{giv}
-\NewDictTranslation{Deal-(ODw)}{Giv}
-\NewDictTranslation{deal!-(ODw)}{giv}
-\NewDictTranslation{Deal!-(ODw)}{Giv}
-\NewDictTranslation{declarer-(ODw)}{spilfører}
-\NewDictTranslation{Declarer-(ODw)}{Spilfører}
-\NewDictTranslation{decl-(ODw)}{spilf}
-\NewDictTranslation{Decl-(ODw)}{Spilf}
-\NewDictTranslation{distribution points-(ODw)}{fordelingspoints}
-\NewDictTranslation{Distribution Points-(ODw)}{Fordelingspoints}
-\NewDictTranslation{doubled-(ODw)}{dubbelt}
-\NewDictTranslation{Doubled-(ODw)}{Dubbelt}
-\NewDictTranslation{double-(ODw)}{dubbelt}
-\NewDictTranslation{Double-(ODw)}{Dubbelt}
-\NewDictTranslation{dp-(ODw)}{fp}
-\NewDictTranslation{DP-(ODw)}{FP}
-\NewDictTranslation{east-(ODw)}{øst}
-\NewDictTranslation{East-(ODw)}{Øst}
-\NewDictTranslation{e-(ODw)}{ø}
-\NewDictTranslation{E-(ODw)}{Ø}
-\NewDictTranslation{fourth suit forcing-(ODw)}{fjerde farve forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Fjerde Farve Forcing}
-\NewDictTranslation{fsf-(ODw)}{4.\,ff}
-\NewDictTranslation{FSF-(ODw)}{4.\,FF}
-\NewDictTranslation{game forcing-(ODw)}{krav till utgång}
-\NewDictTranslation{Game Forcing-(ODw)}{Krav till Utgång}
-\NewDictTranslation{gf-(ODw)}{ku}
-\NewDictTranslation{GF-(ODw)}{KU}
-\NewDictTranslation{Hand-(ODw)}{Hånd}
-\NewDictTranslation{hand-(ODw)}{hånd}
-\NewDictTranslation{hcp-(ODw)}{hp}
-\NewDictTranslation{HCP-(ODw)}{HP}
-\NewDictTranslation{high card points-(ODw)}{honnørpoints}
-\NewDictTranslation{High Card Points-(ODw)}{Honnørpoints}
-\NewDictTranslation{hlp-(ODw)}{hlp}
-\NewDictTranslation{HLP-(ODw)}{HLP}
-\NewDictTranslation{jack-(ODw)}{knægt}
-\NewDictTranslation{Jack-(ODw)}{Knægt}
-\NewDictTranslation{j-(ODw)}{kn}
-\NewDictTranslation{J-(ODw)}{\mbox{K\kern-0.08emn}}
-\NewDictTranslation{king-(ODw)}{konge}
-\NewDictTranslation{King-(ODw)}{Konge}
-\NewDictTranslation{k-(ODw)}{k}
-\NewDictTranslation{K-(ODw)}{K}
-\NewDictTranslation{lead!-(ODw)}{udsp.}
-\NewDictTranslation{Lead!-(ODw)}{Udsp.}
-\NewDictTranslation{Lead-(ODw)}{Udspillet}
-\NewDictTranslation{lead-(ODw)}{udspillet}
-\NewDictTranslation{length points-(ODw)}{længepoints}
-\NewDictTranslation{Length Points-(ODw)}{Længepoints}
-\NewDictTranslation{lp-(ODw)}{lp}
-\NewDictTranslation{LP-(ODw)}{LP}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{new minor forcing-(ODw)}{nye minor forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Nye Minor Forcing}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{none-(ODw)}{ingen}
-\NewDictTranslation{None-(ODw)}{Ingen}
-\NewDictTranslation{none!-(ODw)}{ingen}
-\NewDictTranslation{None!-(ODw)}{Ingen}
-\NewDictTranslation{north-(ODw)}{norr}
-\NewDictTranslation{North-(ODw)}{Norr}
-\NewDictTranslation{no trump-(ODw)}{uden trumf}
-\NewDictTranslation{No Trump-(ODw)}{Uden Trumf}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{NT-(ODw)}{U\kern-0.01emT}%Uden Trumf
-\NewDictTranslation{nt-(ODw)}{ut}
-\NewDictTranslation{pass-(ODw)}{pas}
-\NewDictTranslation{Pass-(ODw)}{Pas}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{d}
-\NewDictTranslation{Q-(ODw)}{D}
-\NewDictTranslation{queen-(ODw)}{dame}
-\NewDictTranslation{Queen-(ODw)}{Dame}
-\NewDictTranslation{ReDbl-(ODw)}{ReDbl}
-\NewDictTranslation{redoubled-(ODw)}{redubbelt}
-\NewDictTranslation{Redoubled-(ODw)}{Redubbelt}
-\NewDictTranslation{redouble-(ODw)}{redubbelt}
-\NewDictTranslation{ReDouble-(ODw)}{Redubbelt}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{syd}
-\NewDictTranslation{South-(ODw)}{Syd}
-\NewDictTranslation{suiter-(ODw)}{farver}
-\NewDictTranslation{Suiter-(ODw)}{Farver}
-\NewDictTranslation{suit-(ODw)}{farve}
-\NewDictTranslation{Suit-(ODw)}{Farve}
-\NewDictTranslation{third suit forcing-(ODw)}{tredje farve forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Tredje Farve Forcing}
-\NewDictTranslation{total points-(ODw)}{total points}
-\NewDictTranslation{Total Points-(ODw)}{Total Points}
-\NewDictTranslation{tp-(ODw)}{tp}
-\NewDictTranslation{TP-(ODw)}{TP}
-\NewDictTranslation{trial bid-(ODw)}{trial bid}
-\NewDictTranslation{Trial bid-(ODw)}{Trial bid}
-\NewDictTranslation{trick-(ODw)}{træk}
-\NewDictTranslation{Trick-(ODw)}{Træk}
-\NewDictTranslation{tsf-(ODw)}{3.\,ff}
-\NewDictTranslation{TSF-(ODw)}{3.\,FF}
-\NewDictTranslation{vulnerable-(ODw)}{sårbar}
-\NewDictTranslation{Vulnerable-(ODw)}{Sårbar}
-\NewDictTranslation{vul-(ODw)}{sår}
-\NewDictTranslation{Vul-(ODw)}{Sår}
-\NewDictTranslation{west-(ODw)}{vest}
-\NewDictTranslation{West-(ODw)}{Vest}
-\NewDictTranslation{w-(ODw)}{v}
-\NewDictTranslation{W-(ODw)}{V}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-dutch.trsl b/macros/latex/contrib/onedown/ODw-dutch.trsl
deleted file mode 100644
index d2ab2df5c8..0000000000
--- a/macros/latex/contrib/onedown/ODw-dutch.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-dutch.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get dealer
-%
-\ProvideDictionaryFor{dutch}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1ste}
-\NewDictTranslation{2nd-(ODw)}{2de}
-\NewDictTranslation{3rd-(ODw)}{3de}
-\NewDictTranslation{4th-(ODw)}{4de}
-\NewDictTranslation{ace-(ODw)}{aas}
-\NewDictTranslation{Ace-(ODw)}{Aas}
-\NewDictTranslation{all-(ODw)}{alle}
-\NewDictTranslation{All-(ODw)}{Alle}
-\NewDictTranslation{all!-(ODw)}{alle}
-\NewDictTranslation{All!-(ODw)}{Alle}
-\NewDictTranslation{all pass-(ODw)}{allen passen}
-\NewDictTranslation{All pass-(ODw)}{Allen passen}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{ap}
-\NewDictTranslation{AP-(ODw)}{AP}
-\NewDictTranslation{award-(ODw)}{beloning}
-\NewDictTranslation{Award-(ODw)}{Beloning}
-\NewDictTranslation{bid-(ODw)}{bod}
-\NewDictTranslation{Bid-(ODw)}{Bod}
-\NewDictTranslation{board-(ODw)}{spel}
-\NewDictTranslation{Board-(ODw)}{Spel}
-\NewDictTranslation{brd-(ODw)}{spel}
-\NewDictTranslation{Brd-(ODw)}{Spel}
-\NewDictTranslation{by-(ODw)}{door}
-\NewDictTranslation{call-(ODw)}{bod}
-\NewDictTranslation{Call-(ODw)}{Bod}
-\NewDictTranslation{-card-(ODw)}{-kaart}
-\NewDictTranslation{contract-(ODw)}{contract}
-\NewDictTranslation{Contract-(ODw)}{Contract}
-\NewDictTranslation{contr-(ODw)}{contr}
-\NewDictTranslation{Contr-(ODw)}{Contr}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{gever}
-\NewDictTranslation{Dealer-(ODw)}{Gever}
-\NewDictTranslation{deal-(ODw)}{spel}
-\NewDictTranslation{Deal-(ODw)}{Spel}
-\NewDictTranslation{deal!-(ODw)}{spel}
-\NewDictTranslation{Deal!-(ODw)}{Spel}
-\NewDictTranslation{declarer-(ODw)}{leider}
-\NewDictTranslation{Declarer-(ODw)}{Leider}
-\NewDictTranslation{decl-(ODw)}{leider}
-\NewDictTranslation{Decl-(ODw)}{Leider}
-\NewDictTranslation{distribution points-(ODw)}{distributie punten}
-\NewDictTranslation{Distribution Points-(ODw)}{Distributie Punten}
-\NewDictTranslation{doubled-(ODw)}{gedoubleerd}
-\NewDictTranslation{Doubled-(ODw)}{Gedoubleerd}
-\NewDictTranslation{double-(ODw)}{doublet}
-\NewDictTranslation{Double-(ODw)}{Doublet}
-\NewDictTranslation{dp-(ODw)}{dp}
-\NewDictTranslation{DP-(ODw)}{DP}
-\NewDictTranslation{east-(ODw)}{oost}
-\NewDictTranslation{East-(ODw)}{Oost}
-\NewDictTranslation{e-(ODw)}{o}
-\NewDictTranslation{E-(ODw)}{O}
-\NewDictTranslation{fourth suit forcing-(ODw)}{vierde kleur forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Vierde Kleur Forcing}
-\NewDictTranslation{fsf-(ODw)}{4de\,kf}
-\NewDictTranslation{FSF-(ODw)}{4de\,KF}
-\NewDictTranslation{game forcing-(ODw)}{manche forcing}
-\NewDictTranslation{Game Forcing-(ODw)}{Manche Forcing}
-\NewDictTranslation{gf-(ODw)}{mf}
-\NewDictTranslation{GF-(ODw)}{MF}
-\NewDictTranslation{hand-(ODw)}{hand}
-\NewDictTranslation{Hand-(ODw)}{Hand}
-\NewDictTranslation{hcp-(ODw)}{hp}
-\NewDictTranslation{HCP-(ODw)}{HP}
-\NewDictTranslation{high card points-(ODw)}{hoge punten}
-\NewDictTranslation{High Card Points-(ODw)}{Hoge Punten}
-\NewDictTranslation{hlp-(ODw)}{hlp}
-\NewDictTranslation{HLP-(ODw)}{HLP}
-\NewDictTranslation{jack-(ODw)}{boer}
-\NewDictTranslation{Jack-(ODw)}{Boer}
-\NewDictTranslation{j-(ODw)}{b}
-\NewDictTranslation{J-(ODw)}{B}
-\NewDictTranslation{king-(ODw)}{heer}
-\NewDictTranslation{King-(ODw)}{Heer}
-\NewDictTranslation{k-(ODw)}{h}
-\NewDictTranslation{K-(ODw)}{H}
-\NewDictTranslation{lead!-(ODw)}{uitk.}
-\NewDictTranslation{Lead!-(ODw)}{Uitk.}
-\NewDictTranslation{lead-(ODw)}{uitkomst}
-\NewDictTranslation{Lead-(ODw)}{Uitkomst}
-\NewDictTranslation{length points-(ODw)}{lengte punten}
-\NewDictTranslation{Length Points-(ODw)}{Lengte Punten}
-\NewDictTranslation{lp-(ODw)}{lp}
-\NewDictTranslation{LP-(ODw)}{LP}
-\NewDictTranslation{new minor forcing-(ODw)}{nieuwe lage kleur forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Nieuwe Lage Kleur Forcing}
-\NewDictTranslation{nmf-(ODw)}{nlf}
-\NewDictTranslation{NMF-(ODw)}{NLF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none-(ODw)}{geen}
-\NewDictTranslation{None-(ODw)}{Geen}
-\NewDictTranslation{none!-(ODw)}{geen}
-\NewDictTranslation{None!-(ODw)}{Geen}
-\NewDictTranslation{north-(ODw)}{noord}
-\NewDictTranslation{North-(ODw)}{Noord}
-\NewDictTranslation{no trump-(ODw)}{sans atout}
-\NewDictTranslation{No Trump-(ODw)}{Sans Atout}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{nt-(ODw)}{sa}
-\NewDictTranslation{NT-(ODw)}{S\kern-0.01emA}
-\NewDictTranslation{pass-(ODw)}{pas}
-\NewDictTranslation{Pass-(ODw)}{Pas}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{v}
-\NewDictTranslation{Q-(ODw)}{V}
-\NewDictTranslation{queen-(ODw)}{vrouw}
-\NewDictTranslation{Queen-(ODw)}{Vrouw}
-\NewDictTranslation{ReDbl-(ODw)}{ReDblt}
-\NewDictTranslation{redoubled-(ODw)}{geredoubleerd}
-\NewDictTranslation{Redoubled-(ODw)}{Geredoubleerd}
-\NewDictTranslation{redouble-(ODw)}{redoublet}
-\NewDictTranslation{ReDouble-(ODw)}{Redoublet}
-\NewDictTranslation{semi forcing-(ODw)}{semi-mancheforcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi-MancheForcing}
-\NewDictTranslation{sf-(ODw)}{smf}
-\NewDictTranslation{SF-(ODw)}{SMF}
-\NewDictTranslation{s-(ODw)}{z}
-\NewDictTranslation{S-(ODw)}{Z}
-\NewDictTranslation{south-(ODw)}{zuid}
-\NewDictTranslation{South-(ODw)}{Zuid}
-\NewDictTranslation{suiter-(ODw)}{kleurenspel}
-\NewDictTranslation{Suiter-(ODw)}{Kleurenspel}
-\NewDictTranslation{suit-(ODw)}{kleur}
-\NewDictTranslation{Suit-(ODw)}{Kleur}
-\NewDictTranslation{third suit forcing-(ODw)}{derde kleur forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Derde Kleur Forcing}
-\NewDictTranslation{total points-(ODw)}{totaal punten}
-\NewDictTranslation{Total Points-(ODw)}{Totaal Punten}
-\NewDictTranslation{tp-(ODw)}{tp}
-\NewDictTranslation{TP-(ODw)}{TP}
-\NewDictTranslation{trial bid-(ODw)}{help bod}
-\NewDictTranslation{Trial bid-(ODw)}{Help bod}
-\NewDictTranslation{trick-(ODw)}{slag}
-\NewDictTranslation{Trick-(ODw)}{Slag}
-\NewDictTranslation{tsf-(ODw)}{3de\,kf}
-\NewDictTranslation{TSF-(ODw)}{3de\,KF}
-\NewDictTranslation{vulnerable-(ODw)}{kwetsbaar}
-\NewDictTranslation{Vulnerable-(ODw)}{Kwetsbaar}
-\NewDictTranslation{vul-(ODw)}{kwetsb}
-\NewDictTranslation{Vul-(ODw)}{Kwetsb}
-\NewDictTranslation{west-(ODw)}{west}
-\NewDictTranslation{West-(ODw)}{West}
-\NewDictTranslation{w-(ODw)}{w}
-\NewDictTranslation{W-(ODw)}{W}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-english.trsl b/macros/latex/contrib/onedown/ODw-english.trsl
deleted file mode 100644
index 052acb217c..0000000000
--- a/macros/latex/contrib/onedown/ODw-english.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-english.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get dealer
-%
-\ProvideDictionaryFor{english}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1st}
-\NewDictTranslation{2nd-(ODw)}{2nd}
-\NewDictTranslation{3rd-(ODw)}{3rd}
-\NewDictTranslation{4th-(ODw)}{4th}
-\NewDictTranslation{ace-(ODw)}{ace}
-\NewDictTranslation{Ace-(ODw)}{Ace}
-\NewDictTranslation{all-(ODw)}{all}
-\NewDictTranslation{All-(ODw)}{All}
-\NewDictTranslation{all!-(ODw)}{all}
-\NewDictTranslation{All!-(ODw)}{All}
-\NewDictTranslation{all pass-(ODw)}{all pass}
-\NewDictTranslation{All pass-(ODw)}{All pass}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{ap}
-\NewDictTranslation{AP-(ODw)}{AP}
-\NewDictTranslation{Award-(ODw)}{Award}
-\NewDictTranslation{award-(ODw)}{award}% = points you earn in a quiz
-\NewDictTranslation{Bid-(ODw)}{Bid}
-\NewDictTranslation{bid-(ODw)}{bid}% = e.g. 2C, 4H or 6NT
-\NewDictTranslation{Board-(ODw)}{Board}
-\NewDictTranslation{board-(ODw)}{board}% = equipment that holds 1 deal
-\NewDictTranslation{Brd-(ODw)}{Brd}
-\NewDictTranslation{brd-(ODw)}{brd}% = equipment that holds 1 deal
-\NewDictTranslation{by-(ODw)}{by}
-\NewDictTranslation{Call-(ODw)}{Call}
-\NewDictTranslation{call-(ODw)}{call}% = bid + pass, (re)double
-\NewDictTranslation{-card-(ODw)}{-card}
-\NewDictTranslation{contract-(ODw)}{contract}
-\NewDictTranslation{Contract-(ODw)}{Contract}
-\NewDictTranslation{contr-(ODw)}{contr}
-\NewDictTranslation{Contr-(ODw)}{Contr}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{dealer}
-\NewDictTranslation{Dealer-(ODw)}{Dealer}
-\NewDictTranslation{Deal-(ODw)}{Deal}
-\NewDictTranslation{Deal!-(ODw)}{Deal}
-\NewDictTranslation{deal-(ODw)}{deal}% = 4 hands
-\NewDictTranslation{deal!-(ODw)}{deal}% = 4 hands
-\NewDictTranslation{declarer-(ODw)}{declarer}
-\NewDictTranslation{Declarer-(ODw)}{Declarer}
-\NewDictTranslation{decl-(ODw)}{decl}
-\NewDictTranslation{Decl-(ODw)}{Decl}
-\NewDictTranslation{distribution points-(ODw)}{distribution points}
-\NewDictTranslation{Distribution Points-(ODw)}{Distribution Points}
-\NewDictTranslation{doubled-(ODw)}{doubled}
-\NewDictTranslation{Doubled-(ODw)}{Doubled}
-\NewDictTranslation{double-(ODw)}{double}
-\NewDictTranslation{Double-(ODw)}{Double}
-\NewDictTranslation{dp-(ODw)}{dp}
-\NewDictTranslation{DP-(ODw)}{DP}
-\NewDictTranslation{east-(ODw)}{east}
-\NewDictTranslation{East-(ODw)}{East}
-\NewDictTranslation{e-(ODw)}{e}
-\NewDictTranslation{E-(ODw)}{E}
-\NewDictTranslation{fourth suit forcing-(ODw)}{fourth suit forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Fourth Suit Forcing}
-\NewDictTranslation{fsf-(ODw)}{4th\,sf}
-\NewDictTranslation{FSF-(ODw)}{4th\,SF}
-\NewDictTranslation{game forcing-(ODw)}{game forcing}
-\NewDictTranslation{Game Forcing-(ODw)}{Game Forcing}
-\NewDictTranslation{gf-(ODw)}{gf}
-\NewDictTranslation{GF-(ODw)}{GF}
-\NewDictTranslation{Hand-(ODw)}{Hand}
-\NewDictTranslation{hand-(ODw)}{hand}% = 13 cards of 1 player
-\NewDictTranslation{hcp-(ODw)}{hcp}
-\NewDictTranslation{HCP-(ODw)}{HCP}
-\NewDictTranslation{high card points-(ODw)}{high card points}
-\NewDictTranslation{High Card Points-(ODw)}{High Card Points}
-\NewDictTranslation{hlp-(ODw)}{hlp}
-\NewDictTranslation{HLP-(ODw)}{HLP}
-\NewDictTranslation{jack-(ODw)}{jack}
-\NewDictTranslation{Jack-(ODw)}{Jack}
-\NewDictTranslation{j-(ODw)}{j}
-\NewDictTranslation{J-(ODw)}{J}
-\NewDictTranslation{king-(ODw)}{king}
-\NewDictTranslation{King-(ODw)}{King}
-\NewDictTranslation{k-(ODw)}{k}
-\NewDictTranslation{K-(ODw)}{K}
-\NewDictTranslation{lead-(ODw)}{lead}
-\NewDictTranslation{Lead-(ODw)}{Lead}
-\NewDictTranslation{lead!-(ODw)}{lead}
-\NewDictTranslation{Lead!-(ODw)}{Lead}
-\NewDictTranslation{length points-(ODw)}{length points}
-\NewDictTranslation{Length Points-(ODw)}{Length Points}
-\NewDictTranslation{lp-(ODw)}{lp}
-\NewDictTranslation{LP-(ODw)}{LP}
-\NewDictTranslation{new minor forcing-(ODw)}{new minor forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{New Minor Forcing}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none-(ODw)}{none}
-\NewDictTranslation{None-(ODw)}{None}
-\NewDictTranslation{none!-(ODw)}{none}
-\NewDictTranslation{None!-(ODw)}{None}
-\NewDictTranslation{north-(ODw)}{north}
-\NewDictTranslation{North-(ODw)}{North}
-\NewDictTranslation{no trump-(ODw)}{no trump}
-\NewDictTranslation{No Trump-(ODw)}{No Trump}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{NT-(ODw)}{N\kern-0.07emT}
-\NewDictTranslation{nt-(ODw)}{nt}
-\NewDictTranslation{pass-(ODw)}{pass}
-\NewDictTranslation{Pass-(ODw)}{Pass}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{q}
-\NewDictTranslation{Q-(ODw)}{Q}
-\NewDictTranslation{queen-(ODw)}{queen}
-\NewDictTranslation{Queen-(ODw)}{Queen}
-\NewDictTranslation{ReDbl-(ODw)}{ReDbl}
-\NewDictTranslation{redoubled-(ODw)}{redoubled}
-\NewDictTranslation{Redoubled-(ODw)}{Redoubled}
-\NewDictTranslation{redouble-(ODw)}{redouble}
-\NewDictTranslation{ReDouble-(ODw)}{ReDouble}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{south}
-\NewDictTranslation{South-(ODw)}{South}
-\NewDictTranslation{suiter-(ODw)}{suiter}
-\NewDictTranslation{Suiter-(ODw)}{Suiter}
-\NewDictTranslation{suit-(ODw)}{suit}
-\NewDictTranslation{Suit-(ODw)}{Suit}
-\NewDictTranslation{third suit forcing-(ODw)}{third suit forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Third Suit Forcing}
-\NewDictTranslation{total points-(ODw)}{total points}
-\NewDictTranslation{Total Points-(ODw)}{Total Points}
-\NewDictTranslation{tp-(ODw)}{tp}
-\NewDictTranslation{TP-(ODw)}{TP}
-\NewDictTranslation{trial bid-(ODw)}{trial bid}
-\NewDictTranslation{Trial bid-(ODw)}{Trial bid}
-\NewDictTranslation{trick-(ODw)}{trick}
-\NewDictTranslation{Trick-(ODw)}{Trick}
-\NewDictTranslation{tsf-(ODw)}{3rd\,sf}
-\NewDictTranslation{TSF-(ODw)}{3rd\,SF}
-\NewDictTranslation{vulnerable-(ODw)}{vulnerable}
-\NewDictTranslation{Vulnerable-(ODw)}{Vulnerable}
-\NewDictTranslation{vul-(ODw)}{vul}
-\NewDictTranslation{Vul-(ODw)}{Vul}
-\NewDictTranslation{west-(ODw)}{west}
-\NewDictTranslation{West-(ODw)}{West}
-\NewDictTranslation{w-(ODw)}{w}
-\NewDictTranslation{W-(ODw)}{W}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-fallback.trsl b/macros/latex/contrib/onedown/ODw-fallback.trsl
deleted file mode 100644
index 7c79d06de3..0000000000
--- a/macros/latex/contrib/onedown/ODw-fallback.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-fallback.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get dealer
-%
-\ProvideDictionaryFor{fallback}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1st}
-\NewDictTranslation{2nd-(ODw)}{2nd}
-\NewDictTranslation{3rd-(ODw)}{3rd}
-\NewDictTranslation{4th-(ODw)}{4th}
-\NewDictTranslation{ace-(ODw)}{ace}
-\NewDictTranslation{Ace-(ODw)}{Ace}
-\NewDictTranslation{all-(ODw)}{all}
-\NewDictTranslation{All-(ODw)}{All}
-\NewDictTranslation{all!-(ODw)}{all}
-\NewDictTranslation{All!-(ODw)}{All}
-\NewDictTranslation{all pass-(ODw)}{all pass}
-\NewDictTranslation{All pass-(ODw)}{All pass}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{ap}
-\NewDictTranslation{AP-(ODw)}{AP}
-\NewDictTranslation{Award-(ODw)}{Award}
-\NewDictTranslation{award-(ODw)}{award}% = points you earn in a quiz
-\NewDictTranslation{Bid-(ODw)}{Bid}
-\NewDictTranslation{bid-(ODw)}{bid}% = e.g. 2C, 4H or 6NT
-\NewDictTranslation{Board-(ODw)}{Board}
-\NewDictTranslation{board-(ODw)}{board}% = equipment that holds 1 deal
-\NewDictTranslation{Brd-(ODw)}{Brd}
-\NewDictTranslation{brd-(ODw)}{brd}% = equipment that holds 1 deal
-\NewDictTranslation{by-(ODw)}{by}
-\NewDictTranslation{Call-(ODw)}{Call}
-\NewDictTranslation{call-(ODw)}{call}% = bid + pass, (re)double
-\NewDictTranslation{-card-(ODw)}{-card}
-\NewDictTranslation{contract-(ODw)}{contract}
-\NewDictTranslation{Contract-(ODw)}{Contract}
-\NewDictTranslation{contr-(ODw)}{contr}
-\NewDictTranslation{Contr-(ODw)}{Contr}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{dealer}
-\NewDictTranslation{Dealer-(ODw)}{Dealer}
-\NewDictTranslation{Deal-(ODw)}{Deal}
-\NewDictTranslation{Deal!-(ODw)}{Deal}
-\NewDictTranslation{deal-(ODw)}{deal}% = 4 hands
-\NewDictTranslation{deal!-(ODw)}{deal}% = 4 hands
-\NewDictTranslation{declarer-(ODw)}{declarer}
-\NewDictTranslation{Declarer-(ODw)}{Declarer}
-\NewDictTranslation{decl-(ODw)}{decl}
-\NewDictTranslation{Decl-(ODw)}{Decl}
-\NewDictTranslation{distribution points-(ODw)}{distribution points}
-\NewDictTranslation{Distribution Points-(ODw)}{Distribution Points}
-\NewDictTranslation{doubled-(ODw)}{doubled}
-\NewDictTranslation{Doubled-(ODw)}{Doubled}
-\NewDictTranslation{double-(ODw)}{double}
-\NewDictTranslation{Double-(ODw)}{Double}
-\NewDictTranslation{dp-(ODw)}{dp}
-\NewDictTranslation{DP-(ODw)}{DP}
-\NewDictTranslation{east-(ODw)}{east}
-\NewDictTranslation{East-(ODw)}{East}
-\NewDictTranslation{e-(ODw)}{e}
-\NewDictTranslation{E-(ODw)}{E}
-\NewDictTranslation{fourth suit forcing-(ODw)}{fourth suit forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Fourth Suit Forcing}
-\NewDictTranslation{fsf-(ODw)}{4th\,sf}
-\NewDictTranslation{FSF-(ODw)}{4th\,SF}
-\NewDictTranslation{game forcing-(ODw)}{game forcing}
-\NewDictTranslation{Game Forcing-(ODw)}{Game Forcing}
-\NewDictTranslation{gf-(ODw)}{gf}
-\NewDictTranslation{GF-(ODw)}{GF}
-\NewDictTranslation{Hand-(ODw)}{Hand}
-\NewDictTranslation{hand-(ODw)}{hand}% = 13 cards of 1 player
-\NewDictTranslation{hcp-(ODw)}{hcp}
-\NewDictTranslation{HCP-(ODw)}{HCP}
-\NewDictTranslation{high card points-(ODw)}{high card points}
-\NewDictTranslation{High Card Points-(ODw)}{High Card Points}
-\NewDictTranslation{hlp-(ODw)}{hlp}
-\NewDictTranslation{HLP-(ODw)}{HLP}
-\NewDictTranslation{jack-(ODw)}{jack}
-\NewDictTranslation{Jack-(ODw)}{Jack}
-\NewDictTranslation{j-(ODw)}{j}
-\NewDictTranslation{J-(ODw)}{J}
-\NewDictTranslation{king-(ODw)}{king}
-\NewDictTranslation{King-(ODw)}{King}
-\NewDictTranslation{k-(ODw)}{k}
-\NewDictTranslation{K-(ODw)}{K}
-\NewDictTranslation{lead-(ODw)}{lead}
-\NewDictTranslation{Lead-(ODw)}{Lead}
-\NewDictTranslation{lead!-(ODw)}{lead}
-\NewDictTranslation{Lead!-(ODw)}{Lead}
-\NewDictTranslation{length points-(ODw)}{length points}
-\NewDictTranslation{Length Points-(ODw)}{Length Points}
-\NewDictTranslation{lp-(ODw)}{lp}
-\NewDictTranslation{LP-(ODw)}{LP}
-\NewDictTranslation{new minor forcing-(ODw)}{new minor forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{New Minor Forcing}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none-(ODw)}{none}
-\NewDictTranslation{None-(ODw)}{None}
-\NewDictTranslation{none!-(ODw)}{none}
-\NewDictTranslation{None!-(ODw)}{None}
-\NewDictTranslation{north-(ODw)}{north}
-\NewDictTranslation{North-(ODw)}{North}
-\NewDictTranslation{no trump-(ODw)}{no trump}
-\NewDictTranslation{No Trump-(ODw)}{No Trump}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{NT-(ODw)}{N\kern-0.07emT}
-\NewDictTranslation{nt-(ODw)}{nt}
-\NewDictTranslation{pass-(ODw)}{pass}
-\NewDictTranslation{Pass-(ODw)}{Pass}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{q}
-\NewDictTranslation{Q-(ODw)}{Q}
-\NewDictTranslation{queen-(ODw)}{queen}
-\NewDictTranslation{Queen-(ODw)}{Queen}
-\NewDictTranslation{ReDbl-(ODw)}{ReDbl}
-\NewDictTranslation{redoubled-(ODw)}{redoubled}
-\NewDictTranslation{Redoubled-(ODw)}{Redoubled}
-\NewDictTranslation{redouble-(ODw)}{redouble}
-\NewDictTranslation{ReDouble-(ODw)}{ReDouble}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{south}
-\NewDictTranslation{South-(ODw)}{South}
-\NewDictTranslation{suiter-(ODw)}{suiter}
-\NewDictTranslation{Suiter-(ODw)}{Suiter}
-\NewDictTranslation{suit-(ODw)}{suit}
-\NewDictTranslation{Suit-(ODw)}{Suit}
-\NewDictTranslation{third suit forcing-(ODw)}{third suit forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Third Suit Forcing}
-\NewDictTranslation{total points-(ODw)}{total points}
-\NewDictTranslation{Total Points-(ODw)}{Total Points}
-\NewDictTranslation{tp-(ODw)}{tp}
-\NewDictTranslation{TP-(ODw)}{TP}
-\NewDictTranslation{trial bid-(ODw)}{trial bid}
-\NewDictTranslation{Trial bid-(ODw)}{Trial bid}
-\NewDictTranslation{trick-(ODw)}{trick}
-\NewDictTranslation{Trick-(ODw)}{Trick}
-\NewDictTranslation{tsf-(ODw)}{3rd\,sf}
-\NewDictTranslation{TSF-(ODw)}{3rd\,SF}
-\NewDictTranslation{vulnerable-(ODw)}{vulnerable}
-\NewDictTranslation{Vulnerable-(ODw)}{Vulnerable}
-\NewDictTranslation{vul-(ODw)}{vul}
-\NewDictTranslation{Vul-(ODw)}{Vul}
-\NewDictTranslation{west-(ODw)}{west}
-\NewDictTranslation{West-(ODw)}{West}
-\NewDictTranslation{w-(ODw)}{w}
-\NewDictTranslation{W-(ODw)}{W}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-french.trsl b/macros/latex/contrib/onedown/ODw-french.trsl
deleted file mode 100644
index 5a9ec7e8c1..0000000000
--- a/macros/latex/contrib/onedown/ODw-french.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-french.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get donneur
-%
-\ProvideDictionaryFor{french}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1er}
-\NewDictTranslation{2nd-(ODw)}{2e}
-\NewDictTranslation{3rd-(ODw)}{3e}
-\NewDictTranslation{4th-(ODw)}{4e}
-\NewDictTranslation{ace-(ODw)}{as}
-\NewDictTranslation{Ace-(ODw)}{As}
-\NewDictTranslation{all-(ODw)}{tous}
-\NewDictTranslation{All-(ODw)}{Tous}
-\NewDictTranslation{all!-(ODw)}{tous}
-\NewDictTranslation{All!-(ODw)}{Tous}
-\NewDictTranslation{all pass-(ODw)}{tous passent}
-\NewDictTranslation{All pass-(ODw)}{Tous passent}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{tp}
-\NewDictTranslation{AP-(ODw)}{TP}
-\NewDictTranslation{award-(ODw)}{prix}
-\NewDictTranslation{Award-(ODw)}{Prix}
-\NewDictTranslation{bid-(ODw)}{enchère}
-\NewDictTranslation{Bid-(ODw)}{Enchère}
-\NewDictTranslation{board-(ODw)}{etui}
-\NewDictTranslation{Board-(ODw)}{Etui}
-\NewDictTranslation{brd-(ODw)}{etui}
-\NewDictTranslation{Brd-(ODw)}{Etui}
-\NewDictTranslation{by-(ODw)}{pour}
-\NewDictTranslation{call-(ODw)}{annonce}
-\NewDictTranslation{Call-(ODw)}{Annonce}
-\NewDictTranslation{-card-(ODw)}{-carte}
-\NewDictTranslation{contract-(ODw)}{contrat}
-\NewDictTranslation{Contract-(ODw)}{Contrat}
-\NewDictTranslation{contr-(ODw)}{contr}
-\NewDictTranslation{Contr-(ODw)}{Contr}
-\NewDictTranslation{Dbl-(ODw)}{Ctr}
-\NewDictTranslation{dealer-(ODw)}{donneur}
-\NewDictTranslation{Dealer-(ODw)}{Donneur}
-\NewDictTranslation{deal!-(ODw)}{donne}
-\NewDictTranslation{Deal!-(ODw)}{Donne}
-\NewDictTranslation{deal-(ODw)}{donne}
-\NewDictTranslation{Deal-(ODw)}{Donne}
-\NewDictTranslation{declarer-(ODw)}{déclarant}
-\NewDictTranslation{Declarer-(ODw)}{Déclarant}
-\NewDictTranslation{decl-(ODw)}{décl}
-\NewDictTranslation{Decl-(ODw)}{Décl}
-\NewDictTranslation{distribution points-(ODw)}{points de Distribution}
-\NewDictTranslation{Distribution Points-(ODw)}{Points de Distribution}
-\NewDictTranslation{doubled-(ODw)}{contré}
-\NewDictTranslation{Doubled-(ODw)}{Contré}
-\NewDictTranslation{double-(ODw)}{contre}
-\NewDictTranslation{Double-(ODw)}{Contre}
-\NewDictTranslation{dp-(ODw)}{pd}
-\NewDictTranslation{DP-(ODw)}{PD}
-\NewDictTranslation{east-(ODw)}{est}
-\NewDictTranslation{East-(ODw)}{Est}
-\NewDictTranslation{e-(ODw)}{e}
-\NewDictTranslation{E-(ODw)}{E}
-\NewDictTranslation{fourth suit forcing-(ODw)}{quatrième couleur forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Quatrième Couleur Forcing}
-\NewDictTranslation{fsf-(ODw)}{4e\,cf}
-\NewDictTranslation{FSF-(ODw)}{4e\,CF}
-\NewDictTranslation{game forcing-(ODw)}{forcing de manche}
-\NewDictTranslation{Game Forcing-(ODw)}{Forcing de Manche}
-\NewDictTranslation{GF-(ODw)}{FM}
-\NewDictTranslation{gf-(ODw)}{gf}
-\NewDictTranslation{hand-(ODw)}{main}
-\NewDictTranslation{Hand-(ODw)}{Main}
-\NewDictTranslation{hcp-(ODw)}{h}
-\NewDictTranslation{HCP-(ODw)}{H}
-\NewDictTranslation{high card points-(ODw)}{points d'honneurs}
-\NewDictTranslation{High Card Points-(ODw)}{Points d'Honneurs}
-\NewDictTranslation{hlp-(ODw)}{hl}
-\NewDictTranslation{HLP-(ODw)}{HL}
-\NewDictTranslation{jack-(ODw)}{valet}
-\NewDictTranslation{Jack-(ODw)}{Valet}
-\NewDictTranslation{j-(ODw)}{v}
-\NewDictTranslation{J-(ODw)}{V}
-\NewDictTranslation{king-(ODw)}{roi}
-\NewDictTranslation{King-(ODw)}{Roi}
-\NewDictTranslation{k-(ODw)}{r}
-\NewDictTranslation{K-(ODw)}{R}
-\NewDictTranslation{lead!-(ODw)}{ent.}
-\NewDictTranslation{Lead!-(ODw)}{Ent.}
-\NewDictTranslation{lead-(ODw)}{entame}
-\NewDictTranslation{Lead-(ODw)}{Entame}
-\NewDictTranslation{length points-(ODw)}{points de longueur}
-\NewDictTranslation{Length Points-(ODw)}{Points de Longueur}
-\NewDictTranslation{lp-(ODw)}{pl}
-\NewDictTranslation{LP-(ODw)}{PL}
-\NewDictTranslation{new minor forcing-(ODw)}{nouvelle mineure forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Nouvelle Mineure Forcing}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none-(ODw)}{aucun}
-\NewDictTranslation{None-(ODw)}{Aucun}
-\NewDictTranslation{none!-(ODw)}{aucun}
-\NewDictTranslation{None!-(ODw)}{Aucun}
-\NewDictTranslation{north-(ODw)}{nord}
-\NewDictTranslation{North-(ODw)}{Nord}
-\NewDictTranslation{no trump-(ODw)}{sans atout}
-\NewDictTranslation{No Trump-(ODw)}{Sans Atout}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{nt-(ODw)}{sa}
-\NewDictTranslation{NT-(ODw)}{S\kern-0.01emA}
-\NewDictTranslation{pass-(ODw)}{passe}
-\NewDictTranslation{Pass-(ODw)}{Passe}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{d}
-\NewDictTranslation{Q-(ODw)}{D}
-\NewDictTranslation{queen-(ODw)}{dame}
-\NewDictTranslation{Queen-(ODw)}{Dame}
-\NewDictTranslation{ReDbl-(ODw)}{SurC}
-\NewDictTranslation{redoubled-(ODw)}{surcontré}
-\NewDictTranslation{Redoubled-(ODw)}{Surcontré}
-\NewDictTranslation{redouble-(ODw)}{surcontre}
-\NewDictTranslation{Redouble-(ODw)}{Surcontre}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{sud}
-\NewDictTranslation{South-(ODw)}{Sud}
-\NewDictTranslation{suiter-(ODw)}{colore}
-\NewDictTranslation{Suiter-(ODw)}{Colore}
-\NewDictTranslation{suit-(ODw)}{couleur}
-\NewDictTranslation{Suit-(ODw)}{Couleur}
-\NewDictTranslation{third suit forcing-(ODw)}{troisième couleur forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Troisième Couleur Forcing}
-\NewDictTranslation{total points-(ODw)}{points total}
-\NewDictTranslation{Total Points-(ODw)}{Points Total}
-\NewDictTranslation{TP-(ODw)}{PT}
-\NewDictTranslation{tp-(ODw)}{tp}
-\NewDictTranslation{trial bid-(ODw)}{trial bid}
-\NewDictTranslation{Trial bid-(ODw)}{Trial bid}
-\NewDictTranslation{trick-(ODw)}{levée}
-\NewDictTranslation{Trick-(ODw)}{Levée}
-\NewDictTranslation{tsf-(ODw)}{3e\,cf}
-\NewDictTranslation{TSF-(ODw)}{3e\,CF}
-\NewDictTranslation{vulnerable-(ODw)}{vulnérable}
-\NewDictTranslation{Vulnerable-(ODw)}{Vulnérable}
-\NewDictTranslation{vul-(ODw)}{vul}
-\NewDictTranslation{Vul-(ODw)}{Vul}
-\NewDictTranslation{west-(ODw)}{ouest}
-\NewDictTranslation{West-(ODw)}{Ouest}
-\NewDictTranslation{w-(ODw)}{o}
-\NewDictTranslation{W-(ODw)}{O}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-german.trsl b/macros/latex/contrib/onedown/ODw-german.trsl
deleted file mode 100644
index b1cd730f37..0000000000
--- a/macros/latex/contrib/onedown/ODw-german.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-german.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get teiler
-%
-\ProvideDictionaryFor{german}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1.}
-\NewDictTranslation{2nd-(ODw)}{2.}
-\NewDictTranslation{3rd-(ODw)}{3.}
-\NewDictTranslation{4th-(ODw)}{4.}
-\NewDictTranslation{ace-(ODw)}{ass}
-\NewDictTranslation{Ace-(ODw)}{Ass}
-\NewDictTranslation{all-(ODw)}{alle}
-\NewDictTranslation{All-(ODw)}{Alle}
-\NewDictTranslation{all!-(ODw)}{alle}
-\NewDictTranslation{All!-(ODw)}{Alle}
-\NewDictTranslation{all pass-(ODw)}{alle passen}
-\NewDictTranslation{All pass-(ODw)}{Alle passen}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{ap}
-\NewDictTranslation{AP-(ODw)}{AP}
-\NewDictTranslation{award-(ODw)}{Bewertung}
-\NewDictTranslation{Award-(ODw)}{Bewertung}
-\NewDictTranslation{bid-(ODw)}{gebot}
-\NewDictTranslation{Bid-(ODw)}{Gebot}
-\NewDictTranslation{board-(ODw)}{board}
-\NewDictTranslation{Board-(ODw)}{Board}
-\NewDictTranslation{brd-(ODw)}{brd}
-\NewDictTranslation{Brd-(ODw)}{Brd}
-\NewDictTranslation{by-(ODw)}{von}
-\NewDictTranslation{call-(ODw)}{ansage}
-\NewDictTranslation{Call-(ODw)}{Ansage}
-\NewDictTranslation{-card-(ODw)}{er}
-\NewDictTranslation{contract-(ODw)}{kontrakt}
-\NewDictTranslation{Contract-(ODw)}{Kontrakt}
-\NewDictTranslation{contr-(ODw)}{kontr}
-\NewDictTranslation{Contr-(ODw)}{Kontr}
-\NewDictTranslation{Dbl-(ODw)}{Kntr}
-\NewDictTranslation{dealer-(ODw)}{teiler}
-\NewDictTranslation{Dealer-(ODw)}{Teiler}
-\NewDictTranslation{deal!-(ODw)}{aust}
-\NewDictTranslation{Deal!-(ODw)}{Aust}
-\NewDictTranslation{deal-(ODw)}{austeilung}
-\NewDictTranslation{Deal-(ODw)}{Austeilung}
-\NewDictTranslation{declarer-(ODw)}{alleinspieler}
-\NewDictTranslation{Declarer-(ODw)}{Alleinspieler}
-\NewDictTranslation{decl-(ODw)}{alleinsp}
-\NewDictTranslation{Decl-(ODw)}{Alleinsp}
-\NewDictTranslation{distribution points-(ODw)}{verteilungspunkte}
-\NewDictTranslation{Distribution Points-(ODw)}{Verteilungspunkte}
-\NewDictTranslation{doubled-(ODw)}{kontriert}
-\NewDictTranslation{Doubled-(ODw)}{Kontriert}
-\NewDictTranslation{double-(ODw)}{kontra}
-\NewDictTranslation{Double-(ODw)}{Kontra}
-\NewDictTranslation{dp-(ODw)}{v}
-\NewDictTranslation{DP-(ODw)}{V}
-\NewDictTranslation{east-(ODw)}{ost}
-\NewDictTranslation{East-(ODw)}{Ost}
-\NewDictTranslation{e-(ODw)}{o}
-\NewDictTranslation{E-(ODw)}{O}
-\NewDictTranslation{fourth suit forcing-(ODw)}{vierte farbe forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Vierte Farbe Forcing}
-\NewDictTranslation{fsf-(ODw)}{4.\,ff}
-\NewDictTranslation{FSF-(ODw)}{4.\,FF}
-\NewDictTranslation{game forcing-(ODw)}{partie forcing}
-\NewDictTranslation{Game Forcing-(ODw)}{Partie Forcing}
-\NewDictTranslation{gf-(ODw)}{pf}
-\NewDictTranslation{GF-(ODw)}{PF}
-\NewDictTranslation{hand-(ODw)}{blatt}
-\NewDictTranslation{Hand-(ODw)}{Blatt}
-\NewDictTranslation{hcp-(ODw)}{f}
-\NewDictTranslation{HCP-(ODw)}{F}
-\NewDictTranslation{high card points-(ODw)}{figurenpunkte}
-\NewDictTranslation{High Card Points-(ODw)}{Figurenpunkte}
-\NewDictTranslation{hlp-(ODw)}{fl}
-\NewDictTranslation{HLP-(ODw)}{FL}
-\NewDictTranslation{jack-(ODw)}{bube}
-\NewDictTranslation{Jack-(ODw)}{Bube}
-\NewDictTranslation{j-(ODw)}{b}
-\NewDictTranslation{J-(ODw)}{B}
-\NewDictTranslation{king-(ODw)}{könig}
-\NewDictTranslation{King-(ODw)}{König}
-\NewDictTranslation{k-(ODw)}{k}
-\NewDictTranslation{K-(ODw)}{K}
-\NewDictTranslation{lead!-(ODw)}{aussp.}
-\NewDictTranslation{Lead!-(ODw)}{Aussp.}
-\NewDictTranslation{lead-(ODw)}{ausspiel}
-\NewDictTranslation{Lead-(ODw)}{Ausspiel}
-\NewDictTranslation{length points-(ODw)}{längenpunkte}
-\NewDictTranslation{Length Points-(ODw)}{Längenpunkte}
-\NewDictTranslation{lp-(ODw)}{l}
-\NewDictTranslation{LP-(ODw)}{L}
-\NewDictTranslation{new minor forcing-(ODw)}{neue unterfarbe forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Neue Unterfarbe Forcing}
-\NewDictTranslation{nmf-(ODw)}{nuf}
-\NewDictTranslation{NMF-(ODw)}{NUF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none-(ODw)}{keiner}
-\NewDictTranslation{None-(ODw)}{Keiner}
-\NewDictTranslation{none!-(ODw)}{keiner}
-\NewDictTranslation{None!-(ODw)}{Keiner}
-\NewDictTranslation{north-(ODw)}{nord}
-\NewDictTranslation{North-(ODw)}{Nord}
-\NewDictTranslation{no trump-(ODw)}{sans atout}
-\NewDictTranslation{No Trump-(ODw)}{Sans Atout}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{nt-(ODw)}{sa}
-\NewDictTranslation{NT-(ODw)}{S\kern-0.01emA}
-\NewDictTranslation{pass-(ODw)}{passe}
-\NewDictTranslation{Pass-(ODw)}{Passe}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{d}
-\NewDictTranslation{Q-(ODw)}{D}
-\NewDictTranslation{queen-(ODw)}{dame}
-\NewDictTranslation{Queen-(ODw)}{Dame}
-\NewDictTranslation{ReDbl-(ODw)}{ReKntr}
-\NewDictTranslation{redoubled-(ODw)}{rekontriert}
-\NewDictTranslation{Redoubled-(ODw)}{Rekontriert}
-\NewDictTranslation{redouble-(ODw)}{rekontra}
-\NewDictTranslation{ReDouble-(ODw)}{ReKontra}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{süd}
-\NewDictTranslation{South-(ODw)}{Süd}
-\NewDictTranslation{suiter-(ODw)}{färber}
-\NewDictTranslation{Suiter-(ODw)}{Färber}
-\NewDictTranslation{suit-(ODw)}{farbe}
-\NewDictTranslation{Suit-(ODw)}{Farbe}
-\NewDictTranslation{third suit forcing-(ODw)}{dritte farbe forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Dritte Farbe Forcing}
-\NewDictTranslation{total points-(ODw)}{figuren-verteilungspunkte}
-\NewDictTranslation{Total Points-(ODw)}{Figuren-Verteilungspunkte}
-\NewDictTranslation{tp-(ODw)}{fv}
-\NewDictTranslation{TP-(ODw)}{FV}
-\NewDictTranslation{trial bid-(ODw)}{versuchsgebot}
-\NewDictTranslation{Trial bid-(ODw)}{Versuchsgebot}
-\NewDictTranslation{trick-(ODw)}{stich}
-\NewDictTranslation{Trick-(ODw)}{Stich}
-\NewDictTranslation{tsf-(ODw)}{3.\,ff}
-\NewDictTranslation{TSF-(ODw)}{3.\,FF}
-\NewDictTranslation{vulnerable-(ODw)}{gefahr}
-\NewDictTranslation{Vulnerable-(ODw)}{Gefahr}
-\NewDictTranslation{vul-(ODw)}{gef}
-\NewDictTranslation{Vul-(ODw)}{Gef}
-\NewDictTranslation{west-(ODw)}{west}
-\NewDictTranslation{West-(ODw)}{West}
-\NewDictTranslation{w-(ODw)}{w}
-\NewDictTranslation{W-(ODw)}{W}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-norwegian.trsl b/macros/latex/contrib/onedown/ODw-norwegian.trsl
deleted file mode 100644
index 894ad713dc..0000000000
--- a/macros/latex/contrib/onedown/ODw-norwegian.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-norsk.trsl from the OneDown bundle
-% Entries with a "!" denote an abreviated form
-% Thanks to Gunnar & Anne
-%
-% retrieve with e.g \GetTranslation{dealer-(ODw)} to get givare
-%
-\ProvideDictionaryFor{norwegian}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1.}
-\NewDictTranslation{2nd-(ODw)}{2.}
-\NewDictTranslation{3rd-(ODw)}{3.}
-\NewDictTranslation{4th-(ODw)}{4.}
-\NewDictTranslation{ace-(ODw)}{ess}
-\NewDictTranslation{Ace-(ODw)}{Ess}
-\NewDictTranslation{all-(ODw)}{alle}
-\NewDictTranslation{All-(ODw)}{Alle}
-\NewDictTranslation{all!-(ODw)}{alle}
-\NewDictTranslation{All!-(ODw)}{Alle}
-\NewDictTranslation{all pass-(ODw)}{pass rundt}
-\NewDictTranslation{All pass-(ODw)}{Pass rundt}
-\NewDictTranslation{a-(ODw)}{e}
-\NewDictTranslation{A-(ODw)}{E}
-%\NewDictTranslation{award-(ODw)}{poeng}
-%\NewDictTranslation{Award-(ODw)}{Poeng}
-\NewDictTranslation{award-(ODw)}{vurdering}
-\NewDictTranslation{Award-(ODw)}{Vurdering}
-\NewDictTranslation{bid-(ODw)}{bud}
-\NewDictTranslation{Bid-(ODw)}{Bud}
-\NewDictTranslation{board-(ODw)}{spill}
-\NewDictTranslation{Board-(ODw)}{Spill}
-\NewDictTranslation{brd-(ODw)}{spill}
-\NewDictTranslation{Brd-(ODw)}{Spill}
-\NewDictTranslation{by-(ODw)}{ved}
-\NewDictTranslation{call-(ODw)}{bud}
-\NewDictTranslation{Call-(ODw)}{Bud}
-\NewDictTranslation{-card-(ODw)}{-kortfarger}
-\NewDictTranslation{contract-(ODw)}{kontrakt}
-\NewDictTranslation{Contract-(ODw)}{Kontrakt}
-\NewDictTranslation{contr-(ODw)}{kontr}
-\NewDictTranslation{Contr-(ODw)}{Kontr}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{giver}
-\NewDictTranslation{Dealer-(ODw)}{Giver}
-\NewDictTranslation{deal-(ODw)}{giv}
-\NewDictTranslation{Deal-(ODw)}{Giv}
-\NewDictTranslation{deal!-(ODw)}{giv}
-\NewDictTranslation{Deal!-(ODw)}{Giv}
-\NewDictTranslation{declarer-(ODw)}{spilleförer}
-\NewDictTranslation{Declarer-(ODw)}{Spilleförer}
-\NewDictTranslation{decl-(ODw)}{spför}
-\NewDictTranslation{Decl-(ODw)}{Spför}
-\NewDictTranslation{distribution points-(ODw)}{trumfpoeng}
-\NewDictTranslation{Distribution Points-(ODw)}{Trumfpoeng}
-\NewDictTranslation{doubled-(ODw)}{doblet}
-\NewDictTranslation{Doubled-(ODw)}{Doblet}
-\NewDictTranslation{double-(ODw)}{doblet}
-\NewDictTranslation{Double-(ODw)}{Doblet}
-\NewDictTranslation{dp-(ODw)}{tp}
-\NewDictTranslation{DP-(ODw)}{TP}
-\NewDictTranslation{east-(ODw)}{øst}
-\NewDictTranslation{East-(ODw)}{Øst}
-\NewDictTranslation{e-(ODw)}{ø}
-\NewDictTranslation{E-(ODw)}{Ø}
-\NewDictTranslation{fourth suit forcing-(ODw)}{fjerde farge forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Fjerde Farge Forcing}
-\NewDictTranslation{fsf-(ODw)}{4.\,ff}
-\NewDictTranslation{FSF-(ODw)}{4.\,FF}
-\NewDictTranslation{game forcing-(ODw)}{utgangskrav}
-\NewDictTranslation{Game Forcing-(ODw)}{UtgangsKrav}
-\NewDictTranslation{gf-(ODw)}{uk}
-\NewDictTranslation{GF-(ODw)}{UK}
-\NewDictTranslation{Hand-(ODw)}{Hånd}
-\NewDictTranslation{hand-(ODw)}{hånd}
-\NewDictTranslation{hcp-(ODw)}{hp}
-\NewDictTranslation{HCP-(ODw)}{HP}
-\NewDictTranslation{high card points-(ODw)}{høy kort poeng}
-\NewDictTranslation{High Card Points-(ODw)}{høy Kort Poeng}
-\NewDictTranslation{hlp-(ODw)}{hlp}
-\NewDictTranslation{HLP-(ODw)}{HLP}
-\NewDictTranslation{jack-(ODw)}{knekt}
-\NewDictTranslation{Jack-(ODw)}{Knekt}
-\NewDictTranslation{J-(ODw)}{\mbox{K\kern-0.08emn}}
-\NewDictTranslation{j-(ODw)}{\mbox{kn}}
-\NewDictTranslation{king-(ODw)}{konge}
-\NewDictTranslation{King-(ODw)}{Konge}
-\NewDictTranslation{k-(ODw)}{k}
-\NewDictTranslation{K-(ODw)}{K}
-\NewDictTranslation{lead!-(ODw)}{utsp.}
-\NewDictTranslation{Lead!-(ODw)}{Utsp.}
-\NewDictTranslation{lead-(ODw)}{utspill}
-\NewDictTranslation{Lead-(ODw)}{Utspill}
-\NewDictTranslation{length points-(ODw)}{lengde poeng}
-\NewDictTranslation{Length Points-(ODw)}{Lengde Poeng}
-\NewDictTranslation{lp-(ODw)}{lp}
-\NewDictTranslation{LP-(ODw)}{LP}
-\NewDictTranslation{new minor forcing-(ODw)}{nye minor krav}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Nye Minor Krav}
-\NewDictTranslation{nmf-(ODw)}{nmk}
-\NewDictTranslation{NMF-(ODw)}{NMK}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none!-(ODw)}{ing}
-\NewDictTranslation{None!-(ODw)}{Ing}
-\NewDictTranslation{none-(ODw)}{ingen}
-\NewDictTranslation{None-(ODw)}{Ingen}
-\NewDictTranslation{north-(ODw)}{nord}
-\NewDictTranslation{North-(ODw)}{Nord}
-\NewDictTranslation{no trump-(ODw)}{uten trumf}
-\NewDictTranslation{No Trump-(ODw)}{Uten Trumf}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{NT-(ODw)}{N\kern-0.07emT}
-\NewDictTranslation{nt-(ODw)}{nt}
-\NewDictTranslation{pass-(ODw)}{pass}
-\NewDictTranslation{Pass-(ODw)}{Pass}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{d}
-\NewDictTranslation{Q-(ODw)}{D}
-\NewDictTranslation{queen-(ODw)}{dame}
-\NewDictTranslation{Queen-(ODw)}{Dame}
-\NewDictTranslation{ReDbl-(ODw)}{ReDbl}
-\NewDictTranslation{redoubled-(ODw)}{redoblet}
-\NewDictTranslation{Redoubled-(ODw)}{Redoblet}
-\NewDictTranslation{redouble-(ODw)}{redoblet}
-\NewDictTranslation{ReDouble-(ODw)}{Redoblet}
-\NewDictTranslation{semi forcing-(ODw)}{RundKrav}
-\NewDictTranslation{Semi Forcing-(ODw)}{RundKrav}
-\NewDictTranslation{sf-(ODw)}{rk}
-\NewDictTranslation{SF-(ODw)}{RK}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{syd}
-\NewDictTranslation{South-(ODw)}{Syd}
-\NewDictTranslation{suiter-(ODw)}{farger}
-\NewDictTranslation{Suiter-(ODw)}{Farger}
-\NewDictTranslation{suit-(ODw)}{farge}
-\NewDictTranslation{Suit-(ODw)}{Farge}
-\NewDictTranslation{third suit forcing-(ODw)}{tredje farge forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Tredje Farge Forcing}
-\NewDictTranslation{total points-(ODw)}{totalt poeng}
-\NewDictTranslation{Total Points-(ODw)}{Totalt Poeng}
-\NewDictTranslation{tp-(ODw)}{tp}
-\NewDictTranslation{TP-(ODw)}{TP}
-\NewDictTranslation{trial bid-(ODw)}{prøving bud}
-\NewDictTranslation{Trial bid-(ODw)}{Prøving bud}
-\NewDictTranslation{trick-(ODw)}{trekk}
-\NewDictTranslation{Trick-(ODw)}{Trekk}
-\NewDictTranslation{tsf-(ODw)}{3.\,ff}
-\NewDictTranslation{TSF-(ODw)}{3.\,FF}
-\NewDictTranslation{vulnerable-(ODw)}{sone}
-\NewDictTranslation{Vulnerable-(ODw)}{Sone}
-\NewDictTranslation{vul-(ODw)}{sone}
-\NewDictTranslation{Vul-(ODw)}{Sone}
-\NewDictTranslation{west-(ODw)}{vest}
-\NewDictTranslation{West-(ODw)}{Vest}
-\NewDictTranslation{w-(ODw)}{v}
-\NewDictTranslation{W-(ODw)}{V}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-spanish.trsl b/macros/latex/contrib/onedown/ODw-spanish.trsl
deleted file mode 100644
index db88594dd7..0000000000
--- a/macros/latex/contrib/onedown/ODw-spanish.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-spanish.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get donneur
-%
-\ProvideDictionaryFor{spanish}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1er}
-\NewDictTranslation{2nd-(ODw)}{2do}
-\NewDictTranslation{3rd-(ODw)}{3er}
-\NewDictTranslation{4th-(ODw)}{4th}
-\NewDictTranslation{ace-(ODw)}{as}
-\NewDictTranslation{Ace-(ODw)}{As}
-\NewDictTranslation{all-(ODw)}{todos}
-\NewDictTranslation{All-(ODw)}{Todos}
-\NewDictTranslation{all!-(ODw)}{todos}
-\NewDictTranslation{All!-(ODw)}{Todos}
-\NewDictTranslation{all pass-(ODw)}{todos pasan}
-\NewDictTranslation{All pass-(ODw)}{Todos pasan}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{tp}
-\NewDictTranslation{AP-(ODw)}{TP}
-\NewDictTranslation{award-(ODw)}{premio}
-\NewDictTranslation{Award-(ODw)}{Premio}
-\NewDictTranslation{bid-(ODw)}{contrato}
-\NewDictTranslation{Bid-(ODw)}{Contrato}
-\NewDictTranslation{board-(ODw)}{estuche}
-\NewDictTranslation{Board-(ODw)}{Estuche}
-\NewDictTranslation{brd-(ODw)}{est}
-\NewDictTranslation{Brd-(ODw)}{Est}
-\NewDictTranslation{by-(ODw)}{por}
-\NewDictTranslation{call-(ODw)}{annonce}
-\NewDictTranslation{Call-(ODw)}{Annonce}
-\NewDictTranslation{-card-(ODw)}{-carta}
-\NewDictTranslation{contract-(ODw)}{contrato final}
-\NewDictTranslation{Contract-(ODw)}{Contrato final}
-\NewDictTranslation{contr-(ODw)}{ctrf}
-\NewDictTranslation{Contr-(ODw)}{Ctrf}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{dador}
-\NewDictTranslation{Dealer-(ODw)}{Dador}
-\NewDictTranslation{deal!-(ODw)}{donne}
-\NewDictTranslation{Deal!-(ODw)}{Donne}
-\NewDictTranslation{deal-(ODw)}{donne}
-\NewDictTranslation{Deal-(ODw)}{Donne}
-\NewDictTranslation{declarer-(ODw)}{declarante}
-\NewDictTranslation{Declarer-(ODw)}{Declarante}
-\NewDictTranslation{decl-(ODw)}{decl}
-\NewDictTranslation{Decl-(ODw)}{Decl}
-\NewDictTranslation{distribution points-(ODw)}{puntos de distribución}
-\NewDictTranslation{Distribution Points-(ODw)}{Puntos de Distribución}
-\NewDictTranslation{doubled-(ODw)}{doblado}
-\NewDictTranslation{Doubled-(ODw)}{Doblado}
-\NewDictTranslation{double-(ODw)}{doblo}
-\NewDictTranslation{Double-(ODw)}{Doblo}
-\NewDictTranslation{dp-(ODw)}{pd}
-\NewDictTranslation{DP-(ODw)}{PD}
-\NewDictTranslation{east-(ODw)}{este}
-\NewDictTranslation{East-(ODw)}{Este}
-\NewDictTranslation{e-(ODw)}{e}
-\NewDictTranslation{E-(ODw)}{E}
-\NewDictTranslation{fourth suit forcing-(ODw)}{cuarto palo forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Cuarto Palo Forcing}
-\NewDictTranslation{fsf-(ODw)}{4th\,pf}
-\NewDictTranslation{FSF-(ODw)}{4th\,PF}
-\NewDictTranslation{game forcing-(ODw)}{forcing a manga}
-\NewDictTranslation{Game Forcing-(ODw)}{Forcing a Manga}
-\NewDictTranslation{GF-(ODw)}{FG}
-\NewDictTranslation{gf-(ODw)}{fg}
-\NewDictTranslation{hand-(ODw)}{mano}
-\NewDictTranslation{Hand-(ODw)}{Mano}
-\NewDictTranslation{hcp-(ODw)}{ph}
-\NewDictTranslation{HCP-(ODw)}{PH}
-\NewDictTranslation{high card points-(ODw)}{puntos de honores}
-\NewDictTranslation{High Card Points-(ODw)}{Puntos de Honores}
-\NewDictTranslation{hlp-(ODw)}{hl}
-\NewDictTranslation{HLP-(ODw)}{HL}
-\NewDictTranslation{jack-(ODw)}{jaco}
-\NewDictTranslation{Jack-(ODw)}{Jaco}
-\NewDictTranslation{j-(ODw)}{j}
-\NewDictTranslation{J-(ODw)}{J}
-\NewDictTranslation{king-(ODw)}{rey}
-\NewDictTranslation{King-(ODw)}{Rey}
-\NewDictTranslation{k-(ODw)}{r}
-\NewDictTranslation{K-(ODw)}{R}
-\NewDictTranslation{lead!-(ODw)}{ent.}
-\NewDictTranslation{Lead!-(ODw)}{Ent.}
-\NewDictTranslation{lead-(ODw)}{entame}
-\NewDictTranslation{Lead-(ODw)}{Entame}
-\NewDictTranslation{length points-(ODw)}{points de longueur}
-\NewDictTranslation{Length Points-(ODw)}{Points de Longueur}
-\NewDictTranslation{lp-(ODw)}{pl}
-\NewDictTranslation{LP-(ODw)}{PL}
-\NewDictTranslation{new minor forcing-(ODw)}{neuvo menor forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Neuvo Menor Forcing}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none-(ODw)}{nadie}
-\NewDictTranslation{None-(ODw)}{Nadie}
-\NewDictTranslation{none!-(ODw)}{nadie}
-\NewDictTranslation{None!-(ODw)}{Nadie}
-\NewDictTranslation{north-(ODw)}{norte}
-\NewDictTranslation{North-(ODw)}{Norte}
-\NewDictTranslation{no trump-(ODw)}{sin triunfo}
-\NewDictTranslation{No Trump-(ODw)}{Sin Triunfo}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{nt-(ODw)}{st}
-\NewDictTranslation{NT-(ODw)}{S\kern-0.01emT}
-\NewDictTranslation{pass-(ODw)}{paso}
-\NewDictTranslation{Pass-(ODw)}{Paso}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{d}
-\NewDictTranslation{Q-(ODw)}{D}
-\NewDictTranslation{queen-(ODw)}{dama}
-\NewDictTranslation{Queen-(ODw)}{Dama}
-\NewDictTranslation{ReDbl-(ODw)}{ReDbl}
-\NewDictTranslation{redoubled-(ODw)}{redoblado}
-\NewDictTranslation{Redoubled-(ODw)}{Redoblado}
-\NewDictTranslation{redouble-(ODw)}{redoblo}
-\NewDictTranslation{Redouble-(ODw)}{Redoblo}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{sur}
-\NewDictTranslation{South-(ODw)}{Sur}
-\NewDictTranslation{suiter-(ODw)}{color}
-\NewDictTranslation{Suiter-(ODw)}{Color}
-\NewDictTranslation{suit-(ODw)}{palo}
-\NewDictTranslation{Suit-(ODw)}{Palo}
-\NewDictTranslation{third suit forcing-(ODw)}{tercer palo forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Tercer Palo Forcing}
-\NewDictTranslation{total points-(ODw)}{puntos de honor-distribución}
-\NewDictTranslation{Total Points-(ODw)}{Puntos de Honor-Distribución}
-\NewDictTranslation{TP-(ODw)}{PHD}
-\NewDictTranslation{tp-(ODw)}{phd}
-\NewDictTranslation{trial bid-(ODw)}{trial bid}
-\NewDictTranslation{Trial bid-(ODw)}{Trial bid}
-\NewDictTranslation{trick-(ODw)}{baza}
-\NewDictTranslation{Trick-(ODw)}{Baza}
-\NewDictTranslation{tsf-(ODw)}{3er\,pf}
-\NewDictTranslation{TSF-(ODw)}{3er\,PF}
-\NewDictTranslation{vulnerable-(ODw)}{vulnerable}
-\NewDictTranslation{Vulnerable-(ODw)}{Vulnerable}
-\NewDictTranslation{vul-(ODw)}{vul}
-\NewDictTranslation{Vul-(ODw)}{Vul}
-\NewDictTranslation{west-(ODw)}{oeste}
-\NewDictTranslation{West-(ODw)}{Oeste}
-\NewDictTranslation{w-(ODw)}{o}
-\NewDictTranslation{W-(ODw)}{O}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-swedish.trsl b/macros/latex/contrib/onedown/ODw-swedish.trsl
deleted file mode 100644
index 5426b5e797..0000000000
--- a/macros/latex/contrib/onedown/ODw-swedish.trsl
+++ /dev/null
@@ -1,162 +0,0 @@
-% this is file ODw-swedish.trsl from the OneDown bundle
-%
-% Entries with a "!" denote an abreviated form
-% Thanks to Per Karlberg
-% retrieve with e.g \GetTranslation{dealer-(ODw)} to get givare
-%
-\ProvideDictionaryFor{swedish}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1:a}
-\NewDictTranslation{2nd-(ODw)}{2:a}
-\NewDictTranslation{3rd-(ODw)}{3:e}
-\NewDictTranslation{4th-(ODw)}{4:e}
-\NewDictTranslation{ace-(ODw)}{äss}
-\NewDictTranslation{Ace-(ODw)}{Äss}
-\NewDictTranslation{all-(ODw)}{alla}
-\NewDictTranslation{All-(ODw)}{Alla}
-\NewDictTranslation{all!-(ODw)}{alla}
-\NewDictTranslation{All!-(ODw)}{Alla}
-\NewDictTranslation{all pass-(ODw)}{alla passet}
-\NewDictTranslation{All pass-(ODw)}{Alla passet}
-\NewDictTranslation{a-(ODw)}{ä}
-\NewDictTranslation{A-(ODw)}{Ä}
-\NewDictTranslation{ap-(ODw)}{ap}
-\NewDictTranslation{AP-(ODw)}{AP}
-%\NewDictTranslation{award-(ODw)}{poäng}
-%\NewDictTranslation{Award-(ODw)}{Poäng}
-\NewDictTranslation{award-(ODw)}{värdering}
-\NewDictTranslation{Award-(ODw)}{Värdering}
-\NewDictTranslation{bid-(ODw)}{bud}
-\NewDictTranslation{Bid-(ODw)}{Bud}
-\NewDictTranslation{board-(ODw)}{bricka}
-\NewDictTranslation{Board-(ODw)}{Bricka}
-\NewDictTranslation{brd-(ODw)}{brck}
-\NewDictTranslation{Brd-(ODw)}{Brck}
-\NewDictTranslation{by-(ODw)}{per}
-\NewDictTranslation{call-(ODw)}{bud}
-\NewDictTranslation{Call-(ODw)}{Bud}
-\NewDictTranslation{-card-(ODw)}{-kort}
-\NewDictTranslation{contract-(ODw)}{kontrakt}
-\NewDictTranslation{Contract-(ODw)}{Kontrakt}
-\NewDictTranslation{contr-(ODw)}{kontr}
-\NewDictTranslation{Contr-(ODw)}{Kontr}
-\NewDictTranslation{Dbl-(ODw)}{Dbl}
-\NewDictTranslation{dealer-(ODw)}{givare}
-\NewDictTranslation{Dealer-(ODw)}{Givare}
-\NewDictTranslation{deal-(ODw)}{giv}
-\NewDictTranslation{Deal-(ODw)}{Giv}
-\NewDictTranslation{deal!-(ODw)}{giv}
-\NewDictTranslation{Deal!-(ODw)}{Giv}
-\NewDictTranslation{declarer-(ODw)}{spelförare}
-\NewDictTranslation{Declarer-(ODw)}{Spelförare}
-\NewDictTranslation{decl-(ODw)}{spför}
-\NewDictTranslation{Decl-(ODw)}{Spför}
-\NewDictTranslation{distribution points-(ODw)}{fördelningpoints}
-\NewDictTranslation{Distribution Points-(ODw)}{Fördelningpoints}
-\NewDictTranslation{doubled-(ODw)}{dubbelt}
-\NewDictTranslation{Doubled-(ODw)}{Dubbelt}
-\NewDictTranslation{double-(ODw)}{dubbelt}
-\NewDictTranslation{Double-(ODw)}{Dubbelt}
-\NewDictTranslation{dp-(ODw)}{fp}
-\NewDictTranslation{DP-(ODw)}{FP}
-\NewDictTranslation{east-(ODw)}{öst}
-\NewDictTranslation{East-(ODw)}{Öst}
-\NewDictTranslation{e-(ODw)}{ö}
-\NewDictTranslation{E-(ODw)}{Ö}
-\NewDictTranslation{fourth suit forcing-(ODw)}{fjärde farve forcing}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Fjärde Farve Forcing}
-\NewDictTranslation{fsf-(ODw)}{4:e\,ff}
-\NewDictTranslation{FSF-(ODw)}{4:e\,FF}
-\NewDictTranslation{game forcing-(ODw)}{krav till udgang}
-\NewDictTranslation{Game Forcing-(ODw)}{Krav till Udgang}
-\NewDictTranslation{gf-(ODw)}{ku}
-\NewDictTranslation{GF-(ODw)}{KU}
-\NewDictTranslation{Hand-(ODw)}{Hand}
-\NewDictTranslation{hand-(ODw)}{hand}
-\NewDictTranslation{hcp-(ODw)}{hp}
-\NewDictTranslation{HCP-(ODw)}{HP}
-\NewDictTranslation{high card points-(ODw)}{Honnørpoints}
-\NewDictTranslation{High Card Points-(ODw)}{honnørpoints}
-\NewDictTranslation{hlp-(ODw)}{hlp}
-\NewDictTranslation{HLP-(ODw)}{HLP}
-\NewDictTranslation{jack-(ODw)}{knekt}
-\NewDictTranslation{Jack-(ODw)}{Knekt}
-\NewDictTranslation{j-(ODw)}{kn}
-\NewDictTranslation{J-(ODw)}{\mbox{K\kern-0.08emn}}
-\NewDictTranslation{king-(ODw)}{kung}
-\NewDictTranslation{King-(ODw)}{Kung}
-\NewDictTranslation{k-(ODw)}{k}
-\NewDictTranslation{K-(ODw)}{K}
-\NewDictTranslation{lead!-(ODw)}{utsp.}
-\NewDictTranslation{Lead!-(ODw)}{Utsp.}
-\NewDictTranslation{lead-(ODw)}{utspel}
-\NewDictTranslation{Lead-(ODw)}{Utspel}
-\NewDictTranslation{length points-(ODw)}{längd points}
-\NewDictTranslation{Length Points-(ODw)}{Längd Points}
-\NewDictTranslation{lp-(ODw)}{lp}
-\NewDictTranslation{LP-(ODw)}{LP}
-\NewDictTranslation{new minor forcing-(ODw)}{new minor forcing}
-\NewDictTranslation{New Minor Forcing-(ODw)}{New Minor Forcing}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{n-(ODw)}{n}
-\NewDictTranslation{N-(ODw)}{N}
-\NewDictTranslation{none!-(ODw)}{ing}
-\NewDictTranslation{None!-(ODw)}{Ing}
-\NewDictTranslation{none-(ODw)}{ingen}
-\NewDictTranslation{None-(ODw)}{Ingen}
-\NewDictTranslation{north-(ODw)}{norr}
-\NewDictTranslation{North-(ODw)}{Norr}
-\NewDictTranslation{no trump-(ODw)}{utan trumf}
-\NewDictTranslation{No Trump-(ODw)}{Utan Trumf}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{NT-(ODw)}{N\kern-0.07emT}
-\NewDictTranslation{nt-(ODw)}{nt}
-\NewDictTranslation{pass-(ODw)}{pass}
-\NewDictTranslation{Pass-(ODw)}{Pass}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{d}
-\NewDictTranslation{Q-(ODw)}{D}
-\NewDictTranslation{queen-(ODw)}{dame}
-\NewDictTranslation{Queen-(ODw)}{Dame}
-\NewDictTranslation{ReDbl-(ODw)}{ReDbl}
-\NewDictTranslation{redoubled-(ODw)}{redubbelt}
-\NewDictTranslation{Redoubled-(ODw)}{Redubbelt}
-\NewDictTranslation{redouble-(ODw)}{redubbelt}
-\NewDictTranslation{Redouble-(ODw)}{Redubbelt}
-\NewDictTranslation{semi forcing-(ODw)}{semi forcing}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forcing}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{s-(ODw)}{s}
-\NewDictTranslation{S-(ODw)}{S}
-\NewDictTranslation{south-(ODw)}{syd}
-\NewDictTranslation{South-(ODw)}{Syd}
-\NewDictTranslation{suiter-(ODw)}{farver}
-\NewDictTranslation{Suiter-(ODw)}{Farver}
-\NewDictTranslation{suit-(ODw)}{farve}
-\NewDictTranslation{Suit-(ODw)}{Farve}
-\NewDictTranslation{third suit forcing-(ODw)}{tredje farve forcing}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Tredje Farve Forcing}
-\NewDictTranslation{total points-(ODw)}{total points}
-\NewDictTranslation{Total Points-(ODw)}{Total Points}
-\NewDictTranslation{tp-(ODw)}{sp}
-\NewDictTranslation{TP-(ODw)}{SP}
-\NewDictTranslation{trial bid-(ODw)}{pröv bud}
-\NewDictTranslation{Trial bid-(ODw)}{Pröv bud}
-\NewDictTranslation{trick-(ODw)}{stik}
-\NewDictTranslation{Trick-(ODw)}{Stik}
-\NewDictTranslation{tsf-(ODw)}{3:e\,ff}
-\NewDictTranslation{TSF-(ODw)}{3:e\,FF}
-\NewDictTranslation{vulnerable-(ODw)}{zon}
-\NewDictTranslation{Vulnerable-(ODw)}{Zon}
-\NewDictTranslation{vul-(ODw)}{zon}
-\NewDictTranslation{Vul-(ODw)}{Zon}
-\NewDictTranslation{west-(ODw)}{väst}
-\NewDictTranslation{West-(ODw)}{Väst}
-\NewDictTranslation{w-(ODw)}{v}
-\NewDictTranslation{W-(ODw)}{V}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/ODw-turkish.trsl b/macros/latex/contrib/onedown/ODw-turkish.trsl
deleted file mode 100644
index 384fa6dfb1..0000000000
--- a/macros/latex/contrib/onedown/ODw-turkish.trsl
+++ /dev/null
@@ -1,160 +0,0 @@
-% this is file ODw-turkish.trsl from the OneDown bundle
-% thanks to Yilmaz Aksoy
-% Entries with a "!" denote an abreviated form
-%
-% retrieve with e.g. \GetTranslation{dealer-(ODw)} to get kâğıdı
-%
-\ProvideDictionaryFor{turkish}{ODw}[V0.51-2019/10/15]
-
-\NewDictTranslation{1st-(ODw)}{1.}
-\NewDictTranslation{2nd-(ODw)}{2.}
-\NewDictTranslation{3rd-(ODw)}{3.}
-\NewDictTranslation{4th-(ODw)}{4.}
-\NewDictTranslation{ace-(ODw)}{as}
-\NewDictTranslation{Ace-(ODw)}{As}
-\NewDictTranslation{all!-(ODw)}{herk}
-\NewDictTranslation{All!-(ODw)}{Herk}
-\NewDictTranslation{all-(ODw)}{herkes}
-\NewDictTranslation{All-(ODw)}{Herkes}
-\NewDictTranslation{all pass-(ODw)}{pas geçildi}
-\NewDictTranslation{All pass-(ODw)}{Pas geçildi}
-\NewDictTranslation{a-(ODw)}{a}
-\NewDictTranslation{A-(ODw)}{A}
-\NewDictTranslation{ap-(ODw)}{ap}
-\NewDictTranslation{AP-(ODw)}{AP}
-\NewDictTranslation{award-(ODw)}{puan}
-\NewDictTranslation{Award-(ODw)}{Puan}
-\NewDictTranslation{Bid-(ODw)}{Deklare}
-\NewDictTranslation{bid-(ODw)}{deklare}
-\NewDictTranslation{Board-(ODw)}{Oyun Tahtası}
-\NewDictTranslation{board-(ODw)}{oyun tahtası}
-\NewDictTranslation{Brd-(ODw)}{Oyun}
-\NewDictTranslation{brd-(ODw)}{oyun}
-\NewDictTranslation{by-(ODw)}{tarafından}
-\NewDictTranslation{Call-(ODw)}{İlan etme}
-\NewDictTranslation{call-(ODw)}{ilan etme}
-\NewDictTranslation{-card-(ODw)}{-card}
-\NewDictTranslation{contract-(ODw)}{kontrat}
-\NewDictTranslation{Contract-(ODw)}{Kontrat}
-\NewDictTranslation{contr-(ODw)}{kontr}
-\NewDictTranslation{Contr-(ODw)}{Kontr}
-\NewDictTranslation{Dbl-(ODw)}{Knt}
-\NewDictTranslation{dealer-(ODw)}{dağıtan}
-\NewDictTranslation{Dealer-(ODw)}{Dağıtan}
-\NewDictTranslation{Deal-(ODw)}{El}
-\NewDictTranslation{Deal!-(ODw)}{El}
-\NewDictTranslation{deal-(ODw)}{el}
-\NewDictTranslation{deal!-(ODw)}{el}
-\NewDictTranslation{declarer-(ODw)}{deklaran}
-\NewDictTranslation{Declarer-(ODw)}{Deklaran}
-\NewDictTranslation{decl-(ODw)}{dekl}
-\NewDictTranslation{Decl-(ODw)}{Dekl}
-\NewDictTranslation{distribution points-(ODw)}{dağılım puanı}
-\NewDictTranslation{Distribution Points-(ODw)}{Dağılım Puanı}
-\NewDictTranslation{doubled-(ODw)}{konturlu}
-\NewDictTranslation{Doubled-(ODw)}{Konturlu}
-\NewDictTranslation{double-(ODw)}{kontur}
-\NewDictTranslation{Double-(ODw)}{Kontur}
-\NewDictTranslation{dp-(ODw)}{dp}
-\NewDictTranslation{DP-(ODw)}{DP}
-\NewDictTranslation{east-(ODw)}{doğu}
-\NewDictTranslation{East-(ODw)}{Doğu}
-\NewDictTranslation{e-(ODw)}{d}
-\NewDictTranslation{E-(ODw)}{D}
-\NewDictTranslation{fourth suit forcing-(ODw)}{dördüncü renk forsingi}
-\NewDictTranslation{Fourth Suit Forcing-(ODw)}{Dördüncü Renk Forsingi}
-\NewDictTranslation{fsf-(ODw)}{4.\,rf}
-\NewDictTranslation{FSF-(ODw)}{4.\,RF}
-\NewDictTranslation{game forcing-(ODw)}{manş forsingi}
-\NewDictTranslation{Game Forcing-(ODw)}{Manş Forsingi}
-\NewDictTranslation{gf-(ODw)}{mf}
-\NewDictTranslation{GF-(ODw)}{MF}
-\NewDictTranslation{hand-(ODw)}{el}
-\NewDictTranslation{Hand-(ODw)}{El}
-\NewDictTranslation{hcp-(ODw)}{op}
-\NewDictTranslation{HCP-(ODw)}{OP}
-\NewDictTranslation{high card points-(ODw)}{onör puanı}
-\NewDictTranslation{High Card Points-(ODw)}{Onör Puanı}
-\NewDictTranslation{hlp-(ODw)}{oup}
-\NewDictTranslation{HLP-(ODw)}{OUP}
-\NewDictTranslation{jack-(ODw)}{vale}
-\NewDictTranslation{Jack-(ODw)}{Vale}
-\NewDictTranslation{j-(ODw)}{v}
-\NewDictTranslation{J-(ODw)}{V}
-\NewDictTranslation{king-(ODw)}{papaz}
-\NewDictTranslation{King-(ODw)}{Papaz}
-\NewDictTranslation{k-(ODw)}{p}
-\NewDictTranslation{K-(ODw)}{P}
-\NewDictTranslation{Lead!-(ODw)}{Atak}
-\NewDictTranslation{lead-(ODw)}{atak}
-\NewDictTranslation{Lead-(ODw)}{Atak}
-\NewDictTranslation{lead!-(ODw)}{atak}
-\NewDictTranslation{length points-(ODw)}{uzunluk puanları}
-\NewDictTranslation{Length Points-(ODw)}{Uunluk Puanları}
-\NewDictTranslation{lp-(ODw)}{up}
-\NewDictTranslation{LP-(ODw)}{UP}
-\NewDictTranslation{new minor forcing-(ODw)}{yeni minör forsingi}
-\NewDictTranslation{New Minor Forcing-(ODw)}{Yeni Minör Forsingi}
-\NewDictTranslation{nmf-(ODw)}{nmf}
-\NewDictTranslation{NMF-(ODw)}{NMF}
-\NewDictTranslation{n-(ODw)}{k}
-\NewDictTranslation{N-(ODw)}{K}
-\NewDictTranslation{none-(ODw)}{hiç}
-\NewDictTranslation{None-(ODw)}{Hiç}
-\NewDictTranslation{none!-(ODw)}{hiç}
-\NewDictTranslation{None!-(ODw)}{Hiç}
-\NewDictTranslation{north-(ODw)}{kuzey}
-\NewDictTranslation{North-(ODw)}{Kuzey}
-\NewDictTranslation{no trump-(ODw)}{sanzatu}
-\NewDictTranslation{No Trump-(ODw)}{Sanzatu}
-\NewDictTranslation{Nr-(ODw)}{\textnumero}
-\NewDictTranslation{Nr.-(ODw)}{\textnumero.}
-\NewDictTranslation{nt-(ODw)}{sa}
-\NewDictTranslation{NT-(ODw)}{S\kern-0.01emA}
-\NewDictTranslation{pass-(ODw)}{pas}
-\NewDictTranslation{Pass-(ODw)}{Pas}
-\NewDictTranslation{pass!-(ODw)}{p}
-\NewDictTranslation{Pass!-(ODw)}{P}
-\NewDictTranslation{q-(ODw)}{k}
-\NewDictTranslation{Q-(ODw)}{K}
-\NewDictTranslation{queen-(ODw)}{kız}
-\NewDictTranslation{Queen-(ODw)}{Kız}
-\NewDictTranslation{ReDbl-(ODw)}{SürKnt}
-\NewDictTranslation{Redoubled-(ODw)}{Sürkonturlu}
-\NewDictTranslation{redoubled-(ODw)}{sürkonturlu}
-\NewDictTranslation{redouble-(ODw)}{sürkontur}
-\NewDictTranslation{Redouble-(ODw)}{Sürkontur}
-\NewDictTranslation{semi forcing-(ODw)}{semi forsingi}
-\NewDictTranslation{Semi Forcing-(ODw)}{Semi Forsingi}
-\NewDictTranslation{sf-(ODw)}{sf}
-\NewDictTranslation{SF-(ODw)}{SF}
-\NewDictTranslation{s-(ODw)}{g}
-\NewDictTranslation{S-(ODw)}{G}
-\NewDictTranslation{south-(ODw)}{güney}
-\NewDictTranslation{South-(ODw)}{Güney}
-\NewDictTranslation{suiter-(ODw)}{renkli}
-\NewDictTranslation{Suiter-(ODw)}{Renkli}
-\NewDictTranslation{suit-(ODw)}{renk}
-\NewDictTranslation{Suit-(ODw)}{Renk}
-\NewDictTranslation{third suit forcing-(ODw)}{üçüncü renk forsingi}
-\NewDictTranslation{Third Suit Forcing-(ODw)}{Üçüncü Renk Forsingi}
-\NewDictTranslation{total points-(ODw)}{onör destek puanı}
-\NewDictTranslation{Total Points-(ODw)}{Onör Destek Puanı}
-\NewDictTranslation{tp-(ODw)}{odp}
-\NewDictTranslation{TP-(ODw)}{ODP}
-\NewDictTranslation{trial bid-(ODw)}{trial bid}
-\NewDictTranslation{Trial bid-(ODw)}{Trial bid}
-\NewDictTranslation{trick-(ODw)}{löve}
-\NewDictTranslation{Trick-(ODw)}{Löve}
-\NewDictTranslation{tsf-(ODw)}{3.\,sf}
-\NewDictTranslation{TSF-(ODw)}{3.\,SF}
-\NewDictTranslation{vulnerable-(ODw)}{zonda}
-\NewDictTranslation{Vulnerable-(ODw)}{Zonda}
-\NewDictTranslation{vul-(ODw)}{zon}
-\NewDictTranslation{Vul-(ODw)}{Zon}
-\NewDictTranslation{west-(ODw)}{batı}
-\NewDictTranslation{West-(ODw)}{Batı}
-\NewDictTranslation{w-(ODw)}{b}
-\NewDictTranslation{W-(ODw)}{B}
-%
-\endinput
diff --git a/macros/latex/contrib/onedown/README b/macros/latex/contrib/onedown/README
index e4e096028c..fdc16ef9f6 100644
--- a/macros/latex/contrib/onedown/README
+++ b/macros/latex/contrib/onedown/README
@@ -1,13 +1,13 @@
--------------------------------------------------------------------------
-The OneDown package v1.4 - 2019/10/15
+The OneDown package v1.6 - 2021/04/27
A package to typeset diagrams for the game of bridge
--------------------------------------------------------------------------
Jacob Wiersma
Web:
-E-Mail: jack@schuli-wirsi.de
+E-Mail: jack46@schuli-wirsi.de
--------------------------------------------------------------------------
-Copyright 2018 Jacob Wiersma
+Copyright 2018-21 Jacob Wiersma
This work has the LPPL maintenance status `maintained'.
@@ -30,19 +30,18 @@ the files
onedown.dtx, onedown.ins,
onedown.sty, onedown.pdf
- - ODw-danish.trsl ODw-english.trsl ODw-french.trsl
- ODw-norwegian.trsl ODw-turkish.trsl ODw-dutch.trsl
- ODw-fallback.trsl ODw-german.trsl ODw-swedish.trsl
- ODw-spanish.trsl
+ - ODw-Danish.dict, ODw-Dutch.dict, ODw-English.dict,
+ ODw-French.dict, ODw-German.dict ODw-Norsk.dict,
+ ODw-Spanish.dict, ODw-Swedish.dict, ODw-Turkish.dict
the directory examples with the files
- - onedown-examples.pdf onedown-ref.pdf
+ - onedown-examples.pdf, onedown-ref.pdf
and 21 *.tex files
--------------------------------------------------------------------------
INSTALLATION
If onedown.sty is missing or you got a newer onedown.dtx/onedown.ins:
1) Run LaTeX on onedown.ins to create a new onedown.sty
-2) Copy onedown.sty and the .trsl files in your latex path
+2) Copy onedown.sty and the .dict files in your latex path
--------------------------------------------------------------------------
DOCUMENTATION
@@ -66,8 +65,8 @@ that are written in a separate file. Without this option this list will not
be generated. Use this option at your own risk.
MORE DOCUMENTATION
-- examples/onedown-examples.pdf
-- examples/onedown-ref.pdf
+- Examples/onedown-examples.pdf
+- Examples/onedown-ref.pdf
These are in english. To get PDFs which shows the (output of) onedown commands
in your language run
pdflatex '\AtBeginDocument{\def\RefLang{french}}\input{onedown-ref.tex}'
diff --git a/macros/latex/contrib/onedown/examples/CardSymbols.tex b/macros/latex/contrib/onedown/examples/CardSymbols.tex
new file mode 100644
index 0000000000..5ecca8a55d
--- /dev/null
+++ b/macros/latex/contrib/onedown/examples/CardSymbols.tex
@@ -0,0 +1,44 @@
+\documentclass[onedown-examples]{subfiles}
+
+\begin{document}
+\noindent
+\begin{tcolorbox}[colback=red!5!white,colframe=red!75!black,
+ title={Use card symbols like {\setdefaults{colors=b+w}♣,♢,♡,♠} directly as input}]
+%\begin{HBox}{Use card symbols like {\setdefaults{colors=b+w}♣,♢,♡,♠} directly as input}
+If you want to use the card symbols {\setdefaults{colors=b+w}♣,♢,♡,♠} within your \LaTeX-document,
+then put these lines in your preamble. That's all.
+\\[0.3em]
+\verb|\DeclareUnicodeCharacter{2660}{\Sp}|
+\verb|\DeclareUnicodeCharacter{2661}{\He}| \\
+\verb|\DeclareUnicodeCharacter{2662}{\Di}|
+\verb|\DeclareUnicodeCharacter{2663}{\Cl}| \\
+\verb|\DeclareUnicodeCharacter{2664}{\Sp}|
+\verb|\DeclareUnicodeCharacter{2665}{\He}| \\
+\verb|\DeclareUnicodeCharacter{2666}{\Di}|
+\verb|\DeclareUnicodeCharacter{2667}{\Cl}| \\[0.3em]
+
+%\vspace{0.3em}
+%\\[0.3em]
+If you put them in a file \textbf{\emph{onedown.symbols}}, somewhere where
+\LaTeX{} can find it, then the \OneDown package will take care of loading it. An
+apropriate place would be in your .texmf directory.
+\end{tcolorbox}
+%\end{HBox}
+\begin{tcolorbox}[colback=red!5!white,colframe=red!75!black,
+ title={To enter these card symbols on your keyboard, use this with Linux}]
+Add following lines to your \emph{.Xmodmap} and run \textbf{xmodmap .Xmodmap}
+\\[0.3em]
+{\ttfamily
+keycode 38 = 0x0061 0x0041 0x0061 0x0041 0x1002663 0x1002667 0x00e6 \\
+keycode 39 = 0x0073 0x0053 0x0073 0x0053 0x1002662 0x1002666 0x100017f \\
+keycode 40 = 0x0064 0x0044 0x0064 0x0044 0x1002661 0x1002665 0x00f0 \\
+keycode 41 = 0x0066 0x0046 0x0066 0x0046 0x1002660 0x1002664 0x01f0 \\
+keycode 65 = space nobreakspace space nobreakspace nobreakspace NoSymbol \\
+}
+\tcblower
+Now you can enter {\setdefaults{colors=b+w}♣,♢,♡,♠} with \emph{Shift+AltGr} a,s,d,f
+\end{tcolorbox}
+
+
+\end{document}
+\endinput
diff --git a/macros/latex/contrib/onedown/examples/Compass.pdf b/macros/latex/contrib/onedown/examples/Compass.pdf
new file mode 100644
index 0000000000..c9d613f276
--- /dev/null
+++ b/macros/latex/contrib/onedown/examples/Compass.pdf
Binary files differ
diff --git a/macros/latex/contrib/onedown/examples/Compass.tex b/macros/latex/contrib/onedown/examples/Compass.tex
index 7cd46ecc79..cbb19739b5 100644
--- a/macros/latex/contrib/onedown/examples/Compass.tex
+++ b/macros/latex/contrib/onedown/examples/Compass.tex
@@ -2,8 +2,6 @@
%\usepackage{forloop}
\gamefont{\larger\larger}
-\newcounter{Nr}
-\newcounter{Tmp}
\makeatletter
\def\CP{\ODw@Compass}
\makeatother
@@ -12,11 +10,16 @@
\noindent
Here we show the 16 possible combinations of dealership and vulnerability.
We use the default |colors=2| (|black & red|) and so the vulners appear in
-red. The command |\CP| is defined in the preamble.
+red. The command |\CP| is to be defined in every V- or HBox.
\par\vspace{1em}\noindent
%
\begin{VBox}{The 16 combinations of dealer/vulner\hfill File: \FileName}
+\newcounter{Nr}
+\newcounter{Tmp}
+\makeatletter
+ \def\CP{\ODw@Compass}
+\makeatother
\centering
\setdefaults{compsize=1.3,compmid=\boardtext}
\begin{tabular}{ll|ll}
@@ -40,10 +43,13 @@ for the letters in the compass.
First we enlarge the compass 1.5$\times$. Note that this does influence
neither the fontsize nor the frame thickness. Then we enlarge the fonsize.
As you see, this does influence the size of the compass too. Finally
-the set the size factor back to 1. Notice the difference with the second
+we set the size factor back to 1. Notice the difference with the first
compass.
\vfill
\begin{HBox}{controlling the compass I\hfill File: \FileName}
+\makeatletter
+ \def\CP{\ODw@Compass}
+\makeatother
\CP
\setdefaults{compsize=1.5}\CP
\setdefaults*{compass=\Large}\CP
@@ -54,6 +60,9 @@ As you see, we can make the frame very thick, very thin or let it
disappear completely when we use factor 0.
\vfill
\begin{HBox}{controlling the compass II\hfill File: \FileName}
+\makeatletter
+ \def\CP{\ODw@Compass}
+\makeatother
\setdefaults{compsize=1.5}\CP
\setdefaults{compline=3}\CP
\setdefaults{compline=0.1}\CP
@@ -71,6 +80,9 @@ frame is supressed. Finally we see a diagram where the total compass is
suppressed. For clarity's sake we have added the \east and \west hand.
\vfill
\begin{HBox}{controlling the compass III\hfill File: \FileName}
+\makeatletter
+ \def\CP{\ODw@Compass}
+\makeatother
\boardnr{0}
\setdefaults{compsize=1,compmid=x}\CP
\setdefaults{compsize=1.5}\CP
diff --git a/macros/latex/contrib/onedown/examples/Fontsizes.pdf b/macros/latex/contrib/onedown/examples/Fontsizes.pdf
new file mode 100644
index 0000000000..d2accbc38c
--- /dev/null
+++ b/macros/latex/contrib/onedown/examples/Fontsizes.pdf
Binary files differ
diff --git a/macros/latex/contrib/onedown/examples/Fontsizes.tex b/macros/latex/contrib/onedown/examples/Fontsizes.tex
new file mode 100644
index 0000000000..24f4fd4ced
--- /dev/null
+++ b/macros/latex/contrib/onedown/examples/Fontsizes.tex
@@ -0,0 +1,33 @@
+%\documentclass[onedown-examples]{subfiles}
+\documentclass[10pt]{report}
+%
+\usepackage{libertine}
+\usepackage{onedown}
+
+%
+\makeatletter
+\newcommand{\mysize}[1]{%
+ \bgroup\noindent\csname#1\endcsname The #1 size is: \textbf{\csname#1\endcsname\f@size\,pt}.\\The baselineskip is \the\baselineskip\par\vskip2mm\egroup}
+\makeatother
+
+\begin{document}
+\noindent
+Here we show the different fontsizes with values and output. \\
+For the size commands \emph{ssmall} and \emph{HUGE} refer to package \textsf{moresizes}.
+\\[1em]
+%%%%%
+\mysize{tiny}
+\mysize{ssmall}
+\mysize{scriptsize}
+\mysize{footnotesize}
+\mysize{small}
+\mysize{normalsize}
+\mysize{large}
+\mysize{Large}
+\mysize{LARGE}
+\mysize{huge}
+\mysize{Huge}
+\mysize{HUGE}
+%%%%%
+\end{document}
+\endinput
diff --git a/macros/latex/contrib/onedown/examples/Languages.tex b/macros/latex/contrib/onedown/examples/Languages.tex
index 568f8d0c2a..0e5d0e6702 100644
--- a/macros/latex/contrib/onedown/examples/Languages.tex
+++ b/macros/latex/contrib/onedown/examples/Languages.tex
@@ -29,7 +29,7 @@ Refer to the \OneDown manual for details.
\vfill\noindent
Here we switch to the Norwegian language. As we use the same settings for the
diagram, we simply call |\showAll| to display it, after we changed the
-language. The Jack is coded with \foreignlanguage{norsk}{\jack{}}
+language. The Jack is coded with \foreignlanguage{norsk}{\jack{}}
rather than \jack, so the hand is now closer to the right upper legend. (We already discussed ways
to solve this!)
\vfill
diff --git a/macros/latex/contrib/onedown/examples/onedown-examples.pdf b/macros/latex/contrib/onedown/examples/onedown-examples.pdf
index 60c32c6677..1aab50b8d1 100644
--- a/macros/latex/contrib/onedown/examples/onedown-examples.pdf
+++ b/macros/latex/contrib/onedown/examples/onedown-examples.pdf
Binary files differ
diff --git a/macros/latex/contrib/onedown/examples/onedown-examples.tex b/macros/latex/contrib/onedown/examples/onedown-examples.tex
index 1e5f5b57ad..12a00a6e24 100644
--- a/macros/latex/contrib/onedown/examples/onedown-examples.tex
+++ b/macros/latex/contrib/onedown/examples/onedown-examples.tex
@@ -9,28 +9,29 @@
%%-------------------------------------------------------
+\PassOptionsToPackage{shorthands=off}{babel}
+\documentclass[a4paper,fontsize=11pt,%
+ danish,%
+ dutch,%
+ french,%
+ german,%
+ norsk,%
+ spanish,%
+ swedish,%
+ turkish,%
+ english,% this is the default language
+]{scrartcl}
-\documentclass[a4paper,fontsize=11pt]{scrartcl}
\usepackage{scrlayer-scrpage}
%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%
\usepackage{subfiles}% can compile stand-alone/combined
-\usepackage[%
- danish,%
- dutch,%
- french,%
- german,%
- norsk,%
- spanish,es-noshorthands,% unset active chars to avoid problems with '.' '’' '"' '~' '<' and '>'
- swedish,%
- turkish,shorthands=,% unset active chars to avoid problems with ':', '=' and '!'
- english,%
-]{babel}% introduce all known languages, default is english
+\usepackage{babel}%
%\usepackage[mono=false]{libertine}% verbatim needs option mono=false
-% linertine screws verbatim, at least I don't know how to handle that
+% libertine screws verbatim, at least I don't know how to handle that
\usepackage{onedown}% our own style to set bridge stuff
\usepackage[most]{tcolorbox}% show examples with code
%\usepackage{tcolorbox}% show examples with code
@@ -115,10 +116,10 @@
\def\ExLang{english}
\begin{document}
% when compiled with:
-% pdflatex '\AtBeginDocument{\def\RefLang{YourLanguage}}\input{onedown-ref.tex}'
+% pdflatex '\AtBeginDocument{\def\ExLang{YourLanguage}}\input{onedown-ref.tex}'
% you'll get the onedown commands expansions in YourLanguage
% YourLanguage can be any language out of:
-% english, danish, dutch, french, german, norsk, spanish, swedish, turkish
+% danish, dutch, english, french, german, norsk, spanish, swedish, turkish
%
\expandafter\selectlanguage\expandafter{\ExLang}
\pdfbookmark[1]{Title}{Title}
@@ -128,8 +129,8 @@ use the following command: \newline \texttt{\$ pdflatex \jobname.tex}}
\\[1em]
\normalsize\url{www.ctan.org/pkg/onedown}
}
-\author{J.\,Wiersma\footnote{email: \textsf{jack46@online.de}}}
-\date{23 September 2018 (v0.5)}
+\author{J.\,Wiersma\footnote{email: \textsf{jack@schuli-wirsi.de}}}
+\date{29 January 2020 (v0.5)}
\maketitle
\section*{Introduction}
@@ -152,12 +153,12 @@ sections bear the file name, which can also be found in the list below. The
examples are produced using the \textsf{tcolorbox} package. This enables us
to show the code and the output of it side by side.
-The explanatory text is always in the English language. But you can show the output of all commands
-in any of the supported languages.\\
-These are: english, danish, dutch, french, german, norsk, spanish, swedish, turkish. \\
+The explanatory text is always in the English language. But you can show the
+output of all commands in any of the supported languages.\\
+These are: danish, dutch, english, french, german, norsk, spanish, swedish, turkish. \\
You obtain this output in \emph{YourLanguage} by compiling onedown-ref.tex with: \\[0.2em]
-\verb|pdflatex '\AtBeginDocument{\def\RefLang{YourLanguage}}\input{onedown-examples.tex}'|
+\verb|pdflatex '\AtBeginDocument{\def\ExLang{YourLanguage}}\input{onedown-examples.tex}'|
\par\vspace{1\baselineskip}
\setlength\columnseprule{.8pt}% rule between cols
\begin{multicols}{3}[{\centering \textbf{\Large List of Examples}}]
@@ -189,5 +190,6 @@ You obtain this output in \emph{YourLanguage} by compiling onedown-ref.tex with:
\SubFile{ExpertQuiz}
\SubFile{Languages}
\SubFile{Compass}
+\SubFile{CardSymbols}
\end{document}
diff --git a/macros/latex/contrib/onedown/examples/onedown-ref.pdf b/macros/latex/contrib/onedown/examples/onedown-ref.pdf
index 8b6f3b9018..92ec145e0a 100644
--- a/macros/latex/contrib/onedown/examples/onedown-ref.pdf
+++ b/macros/latex/contrib/onedown/examples/onedown-ref.pdf
Binary files differ
diff --git a/macros/latex/contrib/onedown/examples/onedown-ref.tex b/macros/latex/contrib/onedown/examples/onedown-ref.tex
index 6d16724130..95d6918172 100644
--- a/macros/latex/contrib/onedown/examples/onedown-ref.tex
+++ b/macros/latex/contrib/onedown/examples/onedown-ref.tex
@@ -8,24 +8,24 @@
%% USAGE: (pdf)latex onedown-ref.tex
%%-------------------------------------------------------
-\documentclass[a4paper,fontsize=11pt]{scrartcl}
-\usepackage{scrlayer-scrpage}
-%
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-%
-\usepackage[%
+\PassOptionsToPackage{shorthands=off}{babel}
+\documentclass[a4paper,fontsize=11pt,%
danish,%
dutch,%
french,%
german,%
norsk,%
- spanish,es-noshorthands,% unset active chars to avoid problems with '.' '’' '"' '~' '<' and '>'
+ spanish,%
swedish,%
- turkish,shorthands=,% unset active chars to avoid problems with ':', '=' and '!'
- english,%
-]{babel}% introduce all known languages, default is english
-
+ turkish,%
+ english,% this is the default language
+]{scrartcl}
+\usepackage{scrlayer-scrpage}
+%
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+%
+\usepackage{babel}%
\usepackage{onedown}% our own style to set bridge stuff
\usepackage[a4paper, total={185mm, 257mm},left=12mm,top=20mm]{geometry}
\newcommand\OneDown{\textcolor{red}{\smaller\bfseries\textsc{OneDown}}\xspace}
@@ -66,6 +66,7 @@
% english, danish, dutch, french, german, norsk, spanish, swedish, turkish
%
\expandafter\selectlanguage\expandafter{\RefLang}
+%
\larger
\newgeometry{total={150mm, 265mm},left=25mm,top=15mm}
\pagestyle{empty}
@@ -88,7 +89,7 @@ You obtain this output in \emph{YourLanguage} by compiling onedown-ref.tex with:
%
\verb|pdflatex '\AtBeginDocument{\def\RefLang{YourLanguage}}\input{onedown-ref.tex}'|
\\[0.7em]
-\centerline{\textbf{This document shows the commands for the \emph{\RefLang}\ language}}
+\centerline{\textbf{This document shows the commands for the \emph{\languagename}\ language}}
\begin{description}[itemsep=-0.3em]
\item[ace]: \ace
\item[Ace\Oarg{*!}]: \Ace, \Ace*, \Ace!, \Ace*!
diff --git a/macros/latex/contrib/onedown/onedown.dtx b/macros/latex/contrib/onedown/onedown.dtx
index 89f6d5034b..92ffa66155 100644
--- a/macros/latex/contrib/onedown/onedown.dtx
+++ b/macros/latex/contrib/onedown/onedown.dtx
@@ -24,20 +24,23 @@
\ProvidesFile{onedown.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[2014/05/01]
-%<package>\def\ODwstyleversion{1.4}\def\ODwstyledate{2019/10/15}
+%<package>\def\ODwstyleversion{1.6}\def\ODwstyledate{2021/04/27}
%<package>\ProvidesPackage{onedown}
%<package> [\ODwstyledate\space v\ODwstyleversion\space
-%<package> Typeset Bridge Diagrams - Jacob Wiersma (C) 2016-2019]
+%<package> Typeset Bridge Diagrams - Jacob Wiersma (C) 2016-2021]
%
%<*driver>
-%\documentclass[a4paper,12pt,draft]{ltxdoc}% with draft no hyperrefs
-\documentclass[a4paper,12pt]{ltxdoc}
+\PassOptionsToPackage{shorthands=off}{babel}
+%
+% with draft no hyperrefs
+\documentclass[a4paper,12pt,%
+german,dutch,french,swedish,english]{ltxdoc}
% the package |shortvrb| is auto-loaded, providing |...| as shorthand
\usepackage[utf8]{inputenc}
%
\usepackage[T1]{fontenc}
-\usepackage[german,dutch,french,swedish,english,shorthands=]{babel}
-\usepackage{onedown}[2019/10/15]
+\usepackage{babel}
+\usepackage{onedown}[2021/04/27]
\usepackage[normalem]{ulem}% for strikeout todos that are done
\usepackage{needspace}% keep contiguous lines on one page
\usepackage[inline]{enumitem}% Control various parameters of lists
@@ -185,7 +188,7 @@
\let\xspaceODwold=\xspace%
\def\xspace{}%
\foreignlanguage{#3}{%
- \IfBooleanTF#1{\GetTranslation{#2-(ODw)}}{#2}%
+ \IfBooleanTF#1{\translate{#2-(ODw)}}{#2}%
}%
\let\xspace=\xspaceODwold%
}% Translate
@@ -209,7 +212,7 @@
%</driver>
% \fi
%
-% \CheckSum{3771}
+% \CheckSum{3810}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -384,6 +387,18 @@
% I renamed \emph{symbols} into \textbf{ODw@symbols} and \emph{symbolsC} into \textbf{ODw@symbolsC}
% to solve this.
% }
+% \changes{v1.5}{2020/02/02}{\\
+% - Added a check if the etoolbox package is recent enough.\\
+% - Added code to load onedown.symbols (card symbols) and explained in onedown-examples
+% (CardSymbols) how to use it.
+% }
+% \changes{v1.6}{2021/04/25}{\\
+% - Switched to \packname{translator} due to incompatibilities with
+% \packname{translations}\\
+% - We now use \cmd{\translate} rather than \cmd{\GetTranslation}\\
+% - Translation files are named like: ODw-German.dict\\
+% - Adapted the code to read them on the fly
+% }
% ^^A Note: ^^21 denotes the exclamation mark (!)
% ^^A Note: Char ' is not allowed within changes
%
@@ -404,7 +419,7 @@
% \hangafter,\hangindent,\hbadness,\hbox,\heartsuit,\hfill,\ExplSyntaxOn,
% \hline,\hsize,\hskip,\hspace,\hss,\ht,\HUGE,\if,\IfBooleanTF,\moveto,
% \ifthenelse,\ifx,\itemsep,\kern,\labelsep,\labelwidth,\large,
-% \leftmargin,\leftskip,\lengthtest,\LoadDictionaryFor,\lower,
+% \leftmargin,\leftskip,\lengthtest,\uselanguage,\lower,
% \mathbf,\medskip,\multicolumn,\NeedsTeXFormat,\newboolean,\numexpr,
% \newcounter,\newdimen,\NewDocumentCommand,\strokepath,\closepath,
% \NewDocumentEnvironment,\newlength,\noindent,\p@,\par,\whiledo,
@@ -425,7 +440,7 @@
% \DeclareSymbolFont,\footnotemark,\footnotesize,\footnotetext,\isodd,
% \mathalpha,\pgfkeys,\pgfqkeys,\ProcessPgfOptions,\scriptsize,
% \shortstack,\superscript,\textcolor,\thinspace,\tiny,\underline,\value}
-% \DoNotIndex{\GetTranslation,\ifpdf,\iflanguage,\iffalse,\AfterPackage,
+% \DoNotIndex{\translate,\translation,\ifpdf,\iflanguage,\iffalse,\AfterPackage,
% \ifbool,\setbool,\newbool,\StrSubstitute,\StrCount,\StrDel,\ifcase,
% \ifboolexpr,\ifnumcomp,\or,\overline,\mbox,\@ODw}
% \setcounter{IndexColumns}{2}
@@ -461,7 +476,7 @@
% ^^A The frustrating ltxdoc also obfuscates this simple thing!
% \thispagestyle{empty}
% }
-% \author{Jacob Wiersma \\ \url{jack@schuli-wirsi.de}}
+% \author{Jacob Wiersma \\ \url{jack46@schuli-wirsi.de}}
% \date{v\ODwstyleversion~from \ODwstyledate}
%
% \maketitle
@@ -570,7 +585,7 @@ pdflatex --shell-escape onedown.dtx
% \fi
% Use:\\
% |pdflatex --shell-escape '\AtBeginDocument{\NoColortrue}\input{onedown.dtx}'|
-% as last run to get a pdf for printing on a monochrome printer.
+% as last run to get a |PDF| for printing on a monochrome printer.
% The |--shell-escape| flag is necesary to generate the list of user
% commands. If you think this is too dangerous, then run pdflatex without
% this flag and you will get the docmentation without the list of user
@@ -612,7 +627,7 @@ pdflatex --shell-escape onedown.dtx
% friendly package with detailed documentation. For example you don't need
% to say |\setlength{\handskip}{5mm}| or |\def\handskip{5mm}| but rather
% call the command |\handskip{1em}|. Not only the call is somewhat
-% friendlier, more important, setting the width in terms of the
+% friendlier, but more important, by setting the width in terms of the
% font used, it will automatically adapt its size accordingly to font and
% font-size changes. \OneDown features:
% \begin{itemize}
@@ -629,7 +644,7 @@ pdflatex --shell-escape onedown.dtx
% card diagrams with the hands of the \north, \east, etc.\ player can
% be defined in several ways. One can select which hands are to be shown.
% Bidding diagrams can be shown stand-alone or in connection with one or
-% more hands. In |bidding| diagrams annotations are possible.
+% more hands. One can add annotations to any bid in a bidding diagrams.
%
% \section{Usage}
%
@@ -638,7 +653,7 @@ pdflatex --shell-escape onedown.dtx
% \subsubsection{Requirements}
%
% The package \OneDown depends on several other packages, such as
-% \packname{ifthen}, \packname{translations} or \packname{xspace}. All
+% \packname{ifthen}, \packname{translator} or \packname{xspace}. All
% these packages get loaded automatically if not already used in your
% document. For a complete overview of all required packages, refer to page
% \pageref{RequirePackage}. All the packages are loaded without any option,
@@ -648,12 +663,15 @@ pdflatex --shell-escape onedown.dtx
% Furthermore, for the several languages that \OneDown supports, there are
% the dictionary files with translations of the specific bridge terms.
% These dictionaries follow the naming convention:
-% \texttt{ODw-\meta{language}.trsl} and are included in the bundle. The
-% name of the \meta{language} is generally the same as the name that you
-% use as option for \packname{babel}. There is one exception: the
+% |ODw-<Language>.dict| and are included in the bundle. The
+% name of the |<Language>| is generally the same as the name that you
+% use as option for \packname{babel}, but starting with a capital.
+% \iffalse
+% There is one exception: the
% Norwegian language uses |norsk| for \packname{babel} and |norwegian| for
-% \packname{translations}. But all the same, the |norwegian| dictionary is
+% \packname{translator}. But all the same, the |norwegian| dictionary is
% automatically loaded when |norsk| is used.
+% \fi
%
% Should you make a dictionary for a language that is not provided yet, or
% have corrections for an existing one, please send it to the maintainer,
@@ -665,13 +683,13 @@ pdflatex --shell-escape onedown.dtx
% your document if you want to load \OneDown with its default settings.
%
% \textbf{Warning:} \OneDown loads all necessary |ODw|-dictionaries
-% automatically at the begin of the document. In order to know which
+% automatically. In order to know which
% languages must be loaded, these must be specified \emph{before} package
% \packname{onedown} is loaded. In general this means that if you use
% \packname{babel} (or \packname{polyglossia}) you must
% load it before package \OneDown. If for some reason you cannot
% or do not want to do that, you can load any |ODw|-dictionary if you put
-% the command: |\LoadDictionaryFor{|\marg{language}|}{ODw}| in your
+% the command: |\uselanguage{<ODw-Language>}| in your
% preamble, provided that the dictionary is in the \TeX-path. For a
% discussion about the caveats of using e.g.\ babel, refer to section%
% \ref{Languages}.
@@ -679,15 +697,15 @@ pdflatex --shell-escape onedown.dtx
% \subsubsection{Options}\label{Options}
%
% To change the behaviour of \OneDown one can load the package with certain
-% options: |\usepackage[|\meta{options}|]{onedown}|. Of course this 'option
+% options: |\usepackage[<options>]{onedown}|. Of course this 'option
% loading' takes place in the preamble. But it is also possible to set (or
% change) options within the document by calling the macro |\setdefaults|.
-% This macro uses the same \meta{key}=\meta{val} syntax as is used for the
+% This macro uses the same |key=val| syntax as is used for the
% options and offers some more keys that cannot be used when loading the
% package. Refer to page~\pageref{Defaults} for details.
%
% As said before, the package loads its options using the
-% \meta{key}=\meta{val} syntax. These options deal with:
+% |key=val| syntax. These options deal with:
% \begin{itemize}
% \item[colors] \verb:colors=0|1|2|3|4A|4B:\\
% The color in which the card symbols will
@@ -733,16 +751,21 @@ pdflatex --shell-escape onedown.dtx
% option.
% \end{itemize}
%
-% \subsubsection{Active Characters: a Warning}\label{Languages}
+% \subsubsection{Languages \& Dictionaries}\label{Languages}
%
-% \OneDown uses the \packname{tranlation} package to automatically
+% \OneDown uses the \packname{tranlator} package to automatically
% translate often appearing brigde terms like e.g.\ \emph{declarer}. It does
% so by looking up these terms in the special |ODw|-dictionary for the
% active language. The current \OneDown version supports English, German,
-% Dutch, French, most Scadinavian languages and Turkish. Some dictionaries
-% may not be complete or may contain errors, please send
+% Dutch, French, Spanish, most Scandinavian languages and Turkish. Some
+% dictionaries may not be complete or may contain errors, please send
% corrections/additions to the maintainer.
%
+% In order to make \packname{translator} do its job (automatically select the
+% right translation when the current language switches to another), it is
+% necessary to specify the languages with the |documentclass|, and not with
+% |babel|!
+%
% \needspace{5\baselineskip}
%
% \paragraph*{\textcolor{red}{\centering Warning for people using active
@@ -773,7 +796,27 @@ pdflatex --shell-escape onedown.dtx
% So babel-Turkish makes the equal sign and exlamation mark active. This
% leads to errors when you call e.g.\ |\setdefaults{warn=on}| or |\hand!|.
% If you do not need any character to be active, then load this language
-% with |\usepackage[turkish,shorthands=]{babel}|. If you do need the
+% with |\usepackage[turkish,shorthands=]{babel}|.
+%
+% You can also put |\PassOptionsToPackage{shorthands=off}{babel}|
+% above your |documentclass| line. Here is a complete example:
+% % \iffalse
+%<*verb>
+% \fi
+\begin{verbnobox}[\small]
+\PassOptionsToPackage{shorthands=off}{babel}
+\documentclass[a4paper,fontsize=11pt,%
+ dutch,%
+ german,%
+ english,% this is the default language
+]{scrartcl}
+\usepackage{babel}
+\end{verbnobox}
+% \iffalse
+%</verb>
+% \fi
+%
+% If you do need the
% shorthand then you must disable it every time you have to use e.g.\ the
% |=|~character as a normal character by:
%
@@ -802,6 +845,7 @@ pdflatex --shell-escape onedown.dtx
% page layout of this document too much, we scaled them down to
% |footnotesize|.
% \gamefont{\bfseries\sffamily\footnotesize}
+%
% Sometimes the output of a command is shown as an example. This output is
% framed in this document like \example{this}, just to recognize it easily
% as an output example. In an accompanying
@@ -941,7 +985,7 @@ pdflatex --shell-escape onedown.dtx
%
% \subsubsection{The hands of the players}
% Before a card diagram can be shown, one must specify the cards that
-% each player holds. With the various \meta{player}|hand|-commands one can
+% each player holds. With the various |<player>hand|-commands one can
% do this. The suits they define are only shown when a |show|-command is
% issued after they have been defined. The |show|-commands are discussed on
% page \pageref{ShowCommands}.
@@ -1014,7 +1058,7 @@ pdflatex --shell-escape onedown.dtx
% \example{\onesuitAll{AQ6}{J3}{T54}{K2}}.
% \par\noindent
% Please note the order of the
-% players in the arguments: the first 2 denote the \north and \south hand.
+% players in the arguments: the first two denote the \north and \south hand.
% The last 2 denote the \east and \west hand. We choose it this way so you
% can easily cut and paste one pair from the |\onesuitAll|, or extend
% |\onesuitNS| to showing all hands.
@@ -1223,7 +1267,7 @@ pdflatex --shell-escape onedown.dtx
% code for an abbreviated form, i.e.\ |\Lead[*!]|, because it produces only
% the variants \Lead and \Lead*. But remember that we also support automatic
% translations into other languages and that in another language an
-% abreviationt might be feasible: With the german language active |\Lead*|
+% abreviation might be feasible: With the german language active |\Lead*|
% and |\Lead*!| produce \foreignlanguage{german}{\example{\Lead*}} and
% \foreignlanguage{german}{\example{\Lead*!}} respectively.
@@ -1733,19 +1777,21 @@ pdflatex --shell-escape onedown.dtx
%
% \label{RequirePackage}
% \begin{macrocode}
+% Warn if a too old expl3 package is used.
+\RequirePackage{expl3}[2019/09/21]% needed for LaTeX3 packages (xparse)
\RequirePackage{%
xcolor,% colorizing symbols \Sp etc.
textcomp,% for the numbersign in environment play.
moresize,% add \HUGE and \ssmall to font-sizes
relsize,% relative font-sizes. (e.g. \smaller)
makecmds,% needed for provideenvironment
- expl3,% needed for LaTeX3 packages (xparse)
+% expl3,% needed for LaTeX3 packages (xparse)
xparse,% optional params and starred commands
xspace,% handling of spacing behind a command
calc,% makes calculations and lengths easier
ifthen,% easy booleans, tests and loops
adjustbox,% stacked boxes in L-/R-Lower captions
- translations,% auto-translate terms (e.g. East->Ost)
+ translator,% auto-translate terms (e.g. East->Ost)
array,% actions for tabular column cells
collcell,% macro calls for tabular column cells
pgfopts,% for keyval opts, loads also pgfkeys
@@ -1759,21 +1805,14 @@ pdflatex --shell-escape onedown.dtx
% Add exceptions for xspace
% \begin{macrocode}
\xspaceaddexceptions{%
- = \markit \, \suit \GetTranslation
+ = \markit \, \suit \translate
2 3 4 5 6 7 8 9 T J Q K A
}
% \end{macrocode}
-% Load the fallback dictionary. This is the default one and equals the
-% English dictionary. All other dictionaries are loaded on the fly, when
-% needed, provided they are in the \TeX-path.
-%
-% \begin{macrocode}
-\LoadDictionaryFor{fallback}{ODw}
-% \end{macrocode}
%
% \subsubsection{Options}
%
-% We use the \packname{pgf} \meta{key}=\meta{val} system for our
+% We use the \packname{pgf} |<key>=<val>| system for our
% options: |colors|, |warn| and |err|.
% \begin{macrocode}
\pgfkeys{/ODw/.is family}
@@ -2197,7 +2236,7 @@ pdflatex --shell-escape onedown.dtx
% \NT) that are used in the game of bridge.
% We define the international version with the English shortcuts. We use
% the |xcolor| package to colorize the suit symbols. The color can be set
-% as an \meta{key}=\meta{val} option when loading the package. The option
+% as an |<key>=<val>| option when loading the package. The option
% |colors=0| means mono-color (black only), synonyms of key 0 are |mono|
% and |black|. |colors=1| means black and white, a synonym is |b+w|.
% |colors=2| means bi-color (black and red), with synonym |b+r|.
@@ -2326,12 +2365,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF#1{%
\IfBooleanTF#2
- {\,[0.3]\GetTranslation{NT-(ODw)}}%
- {\GetTranslation{No Trump-(ODw)}}%
+ {\,[0.3]\translate{NT-(ODw)}}%
+ {\translate{No Trump-(ODw)}}%
}{%
\IfBooleanTF#2
- {\,[0.3]\GetTranslation{nt-(ODw)}}%
- {\GetTranslation{no trump-(ODw)}}%
+ {\,[0.3]\translate{nt-(ODw)}}%
+ {\translate{no trump-(ODw)}}%
}%
\egroup%
\xspace%
@@ -2745,20 +2784,20 @@ pdflatex --shell-escape onedown.dtx
% \begin{macro}{\ODw@W}
% \begin{macrocode}
\def\ODw@N{%
- \@ifstar{\GetTranslation{N-(ODw)}}%
- {\GetTranslation{n-(ODw)}}%
+ \@ifstar{\translate{N-(ODw)}}%
+ {\translate{n-(ODw)}}%
}
\def\ODw@E{%
- \@ifstar{\GetTranslation{E-(ODw)}}%
- {\GetTranslation{e-(ODw)}}%
+ \@ifstar{\translate{E-(ODw)}}%
+ {\translate{e-(ODw)}}%
}
\def\ODw@S{%
- \@ifstar{\GetTranslation{S-(ODw)}}%
- {\GetTranslation{s-(ODw)}}%
+ \@ifstar{\translate{S-(ODw)}}%
+ {\translate{s-(ODw)}}%
}
\def\ODw@W{%
- \@ifstar{\GetTranslation{W-(ODw)}}%
- {\GetTranslation{w-(ODw)}}%
+ \@ifstar{\translate{W-(ODw)}}%
+ {\translate{w-(ODw)}}%
}
% \end{macrocode}
% \end{macro}
@@ -2783,20 +2822,20 @@ pdflatex --shell-escape onedown.dtx
% \begin{macro}{\ODw@West}
% \begin{macrocode}
\def\ODw@North{%
- \@ifstar{\GetTranslation{North-(ODw)}}%
- {\GetTranslation{north-(ODw)}}%
+ \@ifstar{\translate{North-(ODw)}}%
+ {\translate{north-(ODw)}}%
}
\def\ODw@East{%
- \@ifstar{\GetTranslation{East-(ODw)}}%
- {\GetTranslation{east-(ODw)}}%
+ \@ifstar{\translate{East-(ODw)}}%
+ {\translate{east-(ODw)}}%
}
\def\ODw@South{%
- \@ifstar{\GetTranslation{South-(ODw)}}%
- {\GetTranslation{south-(ODw)}}%
+ \@ifstar{\translate{South-(ODw)}}%
+ {\translate{south-(ODw)}}%
}
\def\ODw@West{%
- \@ifstar{\GetTranslation{West-(ODw)}}%
- {\GetTranslation{west-(ODw)}}%
+ \@ifstar{\translate{West-(ODw)}}%
+ {\translate{west-(ODw)}}%
}
% \end{macrocode}
% \end{macro}
@@ -2815,12 +2854,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Pass!-(ODw)}}%
- {\GetTranslation{Pass-(ODw)}}%
+ {\translate{Pass!-(ODw)}}%
+ {\translate{Pass-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{pass!-(ODw)}}%
- {\GetTranslation{pass-(ODw)}}%
+ {\translate{pass!-(ODw)}}%
+ {\translate{pass-(ODw)}}%
}% TF#1
\egroup%
\xspace%
@@ -2839,12 +2878,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF#1{%
\IfBooleanTF{#2}%
- {\GetTranslation{AP-(ODw)}}%
- {\GetTranslation{All pass-(ODw)}}%
+ {\translate{AP-(ODw)}}%
+ {\translate{All pass-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{ap-(ODw)}}%
- {\GetTranslation{all pass-(ODw)}}%
+ {\translate{ap-(ODw)}}%
+ {\translate{all pass-(ODw)}}%
}% TF#1
\egroup%
\xspace%
@@ -2863,12 +2902,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF#1{%
\IfBooleanTF{#2}%
- {\GetTranslation{Dbl-(ODw)}}%
- {\GetTranslation{Double-(ODw)}}%
+ {\translate{Dbl-(ODw)}}%
+ {\translate{Double-(ODw)}}%
}{%
\IfBooleanTF{#2}%
{X}%
- {\GetTranslation{double-(ODw)}}%
+ {\translate{double-(ODw)}}%
}% TF#1
\egroup%
\xspace%
@@ -2887,12 +2926,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF#1{%
\IfBooleanTF{#2}%
- {\GetTranslation{ReDbl-(ODw)}}%
- {\GetTranslation{ReDouble-(ODw)}}%
+ {\translate{ReDbl-(ODw)}}%
+ {\translate{ReDouble-(ODw)}}%
}{%
\IfBooleanTF{#2}%
{\mbox{X\kern-0.1em X}}%
- {\GetTranslation{redouble-(ODw)}}%
+ {\translate{redouble-(ODw)}}%
}% TF#1
\egroup%
\xspace%
@@ -4049,7 +4088,7 @@ pdflatex --shell-escape onedown.dtx
% board number. |\boardtext*| outputs something like 'Board:~23'.
% \begin{macrocode}
\NewDocumentCommand\boardtext{s}{%
- \IfBooleanTF#1{\GetTranslation{Board-(ODw)}:\,\ODw@BoardText}%
+ \IfBooleanTF#1{\translate{Board-(ODw)}:\,\ODw@BoardText}%
{\ODw@BoardText}%
}% boardtext
% \end{macrocode}
@@ -4066,7 +4105,7 @@ pdflatex --shell-escape onedown.dtx
\gdef\ODw@BoardText{%
\bgroup%
\ODw@OtherFont%
-% \GetTranslation{Board-(ODw)} #1%
+% \translate{Board-(ODw)} #1%
#1%
\egroup%
}%
@@ -4250,7 +4289,7 @@ pdflatex --shell-escape onedown.dtx
% \end{macro}
%
% \begin{macro}{\handskip}\MacroDef{handskip}[\marg{length}]
-% |\handskip| adds \meta{length} to |SkipWidth|, i.e.\ the distance between
+% |\handskip| adds |<length>| to |SkipWidth|, i.e.\ the distance between
% the card diagram (with or without the east hand) and the |bidding|
% diagram.
% \begin{macrocode}
@@ -4266,7 +4305,7 @@ pdflatex --shell-escape onedown.dtx
% \begin{macrocode}
\def\ODw@DealerText{%
\bgroup%
- \ODw@OtherFont\GetTranslation{Dealer-(ODw)}%
+ \ODw@OtherFont\translate{Dealer-(ODw)}%
\egroup%
}% ODw@DealerText
% \end{macrocode}
@@ -4283,11 +4322,11 @@ pdflatex --shell-escape onedown.dtx
\bgroup%
\ODw@OtherFont%
\IfBooleanTF#1{%
- \IfBooleanTF#2{\GetTranslation{Vul-(ODw)}}%
- {\GetTranslation{Vulnerable-(ODw)}}%
+ \IfBooleanTF#2{\translate{Vul-(ODw)}}%
+ {\translate{Vulnerable-(ODw)}}%
}{%
- \IfBooleanTF#2{\GetTranslation{vul-(ODw)}}%
- {\GetTranslation{vulnerable-(ODw)}}%
+ \IfBooleanTF#2{\translate{vul-(ODw)}}%
+ {\translate{vulnerable-(ODw)}}%
}%
\egroup%
\xspace%
@@ -4298,7 +4337,7 @@ pdflatex --shell-escape onedown.dtx
% \begin{macro}{\ODw@AwardText} Typesets the text to be put as 'title' in
% the \emph{award} part of a expert quiz.
% \begin{macrocode}
-\def\ODw@AwardText{\textsf{\GetTranslation{Award-(ODw)}}}
+\def\ODw@AwardText{\textsf{\translate{Award-(ODw)}}}
% \end{macrocode}
% \end{macro}
%
@@ -4726,7 +4765,7 @@ pdflatex --shell-escape onedown.dtx
\def\ODw@Tricks{%
\setcounter{ODw@PlayerNr}{0}%
\gdef\ODw@Last{\ODw@NextLead}%
- \expandafter\GetTranslation%
+ \expandafter\translate%
\expandafter{\ODw@NextLead-(ODw)}:\,%
% write a colon and a thin space in the table,
% as separator between lead player and lead card.
@@ -4833,10 +4872,10 @@ pdflatex --shell-escape onedown.dtx
%
\provideenvironment{TableII}{%
\begin{tabular}[b]{FPPP}%
- \multicolumn{1}{c}{\GetTranslation{Lead!-(ODw)}} &%
- \cci{\GetTranslation{2nd-(ODw)}} &%
- \cci{\GetTranslation{3rd-(ODw)}} &%
- \cci{\GetTranslation{4th-(ODw)}} \\[0.3em]\hline%
+ \multicolumn{1}{c}{\translate{Lead!-(ODw)}} &%
+ \cci{\translate{2nd-(ODw)}} &%
+ \cci{\translate{3rd-(ODw)}} &%
+ \cci{\translate{4th-(ODw)}} \\[0.3em]\hline%
\multicolumn{4}{c}{}\\[-\ODw@EXtra]%
}{%
\end{tabular}%
@@ -4866,7 +4905,7 @@ pdflatex --shell-escape onedown.dtx
% \begin{macrocode}
%
\begin{tabular}[b]{r}% TableI
- \cci{\GetTranslation{Nr-(ODw)}}\\[0.3em]
+ \cci{\translate{Nr-(ODw)}}\\[0.3em]
\hline\\[-\ODw@EXtra]%
\setcounter{ODw@Cnt}{1}%
\whiledo{\theODw@Cnt<\theODw@Nr}{%
@@ -4996,7 +5035,7 @@ pdflatex --shell-escape onedown.dtx
%
% \subsection{Resetting the Game}
%
-% We use \packname{pgfkeys} with its \meta{key}=\meta{val} system to
+% We use \packname{pgfkeys} with its |<key>=<val>| system to
%specify the fonts and other things that we want to have as defaults,
%rather than the intitial \OneDown values. Therefore we first define the
%keys and the store for it.
@@ -5302,12 +5341,12 @@ pdflatex --shell-escape onedown.dtx
%JW \ODw@GameFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{A-(ODw)}}%
- {\GetTranslation{Ace-(ODw)}}%
+ {\translate{A-(ODw)}}%
+ {\translate{Ace-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{a-(ODw)}}%
- {\GetTranslation{ace-(ODw)}}%
+ {\translate{a-(ODw)}}%
+ {\translate{ace-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5326,12 +5365,12 @@ pdflatex --shell-escape onedown.dtx
%JW \ODw@GameFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{K-(ODw)}}%
- {\GetTranslation{King-(ODw)}}%
+ {\translate{K-(ODw)}}%
+ {\translate{King-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{k-(ODw)}}%
- {\GetTranslation{king-(ODw)}}%
+ {\translate{k-(ODw)}}%
+ {\translate{king-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5350,12 +5389,12 @@ pdflatex --shell-escape onedown.dtx
%JW \ODw@GameFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Q-(ODw)}}%
- {\GetTranslation{Queen-(ODw)}}%
+ {\translate{Q-(ODw)}}%
+ {\translate{Queen-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{q-(ODw)}}%
- {\GetTranslation{queen-(ODw)}}%
+ {\translate{q-(ODw)}}%
+ {\translate{queen-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5374,12 +5413,12 @@ pdflatex --shell-escape onedown.dtx
%JW \ODw@GameFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{J-(ODw)}}%
- {\GetTranslation{Jack-(ODw)}}%
+ {\translate{J-(ODw)}}%
+ {\translate{Jack-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{j-(ODw)}}%
- {\GetTranslation{jack-(ODw)}}%
+ {\translate{j-(ODw)}}%
+ {\translate{jack-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5419,12 +5458,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{All!-(ODw)}}%
- {\GetTranslation{All-(ODw)}}%
+ {\translate{All!-(ODw)}}%
+ {\translate{All-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{all!-(ODw)}}%
- {\GetTranslation{all-(ODw)}}%
+ {\translate{all!-(ODw)}}%
+ {\translate{all-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5443,12 +5482,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{None!-(ODw)}}%
- {\GetTranslation{None-(ODw)}}%
+ {\translate{None!-(ODw)}}%
+ {\translate{None-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{none!-(ODw)}}%
- {\GetTranslation{none-(ODw)}}%
+ {\translate{none!-(ODw)}}%
+ {\translate{none-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5473,12 +5512,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Contr-(ODw)}}%
- {\GetTranslation{Contract-(ODw)}}%
+ {\translate{Contr-(ODw)}}%
+ {\translate{Contract-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{contr-(ODw)}}%
- {\GetTranslation{contract-(ODw)}}%
+ {\translate{contr-(ODw)}}%
+ {\translate{contract-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5497,12 +5536,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Lead!-(ODw)}}%
- {\GetTranslation{Lead-(ODw)}}%
+ {\translate{Lead!-(ODw)}}%
+ {\translate{Lead-(ODw)}}%
}{% else #1
\IfBooleanTF{#2}%
- {\GetTranslation{lead!-(ODw)}}%
- {\GetTranslation{lead-(ODw)}}%
+ {\translate{lead!-(ODw)}}%
+ {\translate{lead-(ODw)}}%
}% #1
\egroup%
\xspace%
@@ -5521,12 +5560,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Decl-(ODw)}}%
- {\GetTranslation{Declarer-(ODw)}}%
+ {\translate{Decl-(ODw)}}%
+ {\translate{Declarer-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{decl-(ODw)}}%
- {\GetTranslation{declarer-(ODw)}}%
+ {\translate{decl-(ODw)}}%
+ {\translate{declarer-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5542,7 +5581,7 @@ pdflatex --shell-escape onedown.dtx
\newcommand\by{%
\bgroup%
\ODw@OtherFont%
- \GetTranslation{by-(ODw)}%
+ \translate{by-(ODw)}%
\egroup%
\xspace%
}% by
@@ -5557,12 +5596,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Brd-(ODw)}}%
- {\GetTranslation{Board-(ODw)}}%
+ {\translate{Brd-(ODw)}}%
+ {\translate{Board-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{brd-(ODw)}}%
- {\GetTranslation{board-(ODw)}}%
+ {\translate{brd-(ODw)}}%
+ {\translate{board-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5581,12 +5620,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{Deal!-(ODw)}}%
- {\GetTranslation{Deal-(ODw)}}%
+ {\translate{Deal!-(ODw)}}%
+ {\translate{Deal-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{deal!-(ODw)}}%
- {\GetTranslation{deal-(ODw)}}%
+ {\translate{deal!-(ODw)}}%
+ {\translate{deal-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5603,8 +5642,8 @@ pdflatex --shell-escape onedown.dtx
\bgroup%
\ODw@OtherFont%
\IfBooleanTF{#1}{%
- \GetTranslation{Doubled-(ODw)}}{%
- \GetTranslation{doubled-(ODw)}%
+ \translate{Doubled-(ODw)}}{%
+ \translate{doubled-(ODw)}%
}%
\egroup%
\xspace%
@@ -5618,8 +5657,8 @@ pdflatex --shell-escape onedown.dtx
\bgroup%
\ODw@OtherFont%
\IfBooleanTF{#1}{%
- \GetTranslation{Redoubled-(ODw)}}{%
- \GetTranslation{redoubled-(ODw)}%
+ \translate{Redoubled-(ODw)}}{%
+ \translate{redoubled-(ODw)}%
}%
\egroup%
\xspace%
@@ -5639,12 +5678,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{HCP-(ODw)}}%
- {\GetTranslation{High Card Points-(ODw)}}%
+ {\translate{HCP-(ODw)}}%
+ {\translate{High Card Points-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{hcp-(ODw)}}%
- {\GetTranslation{high card points-(ODw)}}%
+ {\translate{hcp-(ODw)}}%
+ {\translate{high card points-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5664,19 +5703,19 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{LP-(ODw)}}%
- {\GetTranslation{Length Points-(ODw)}}%
+ {\translate{LP-(ODw)}}%
+ {\translate{Length Points-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{lp-(ODw)}}%
- {\GetTranslation{length points-(ODw)}}%
+ {\translate{lp-(ODw)}}%
+ {\translate{length points-(ODw)}}%
}%
\egroup%
\xspace%
}% Length Points
%
\def\LP{\,\lpts*!}
-\def\HLP{\,\bgroup\ODw@OtherFont\GetTranslation{HLP-(ODw)}\egroup\xspace}
+\def\HLP{\,\bgroup\ODw@OtherFont\translate{HLP-(ODw)}\egroup\xspace}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -5690,12 +5729,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{DP-(ODw)}}%
- {\GetTranslation{Distribution Points-(ODw)}}%
+ {\translate{DP-(ODw)}}%
+ {\translate{Distribution Points-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{dp-(ODw)}}%
- {\GetTranslation{distribution points-(ODw)}}%
+ {\translate{dp-(ODw)}}%
+ {\translate{distribution points-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5714,12 +5753,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{TP-(ODw)}}%
- {\GetTranslation{Total Points-(ODw)}}%
+ {\translate{TP-(ODw)}}%
+ {\translate{Total Points-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{tp-(ODw)}}%
- {\GetTranslation{total points-(ODw)}}%
+ {\translate{tp-(ODw)}}%
+ {\translate{total points-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5743,12 +5782,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{GF-(ODw)}}%
- {\GetTranslation{Game Forcing-(ODw)}}%
+ {\translate{GF-(ODw)}}%
+ {\translate{Game Forcing-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{gf-(ODw)}}%
- {\GetTranslation{game forcing-(ODw)}}%
+ {\translate{gf-(ODw)}}%
+ {\translate{game forcing-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5767,12 +5806,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{SF-(ODw)}}%
- {\GetTranslation{Semi Forcing-(ODw)}}%
+ {\translate{SF-(ODw)}}%
+ {\translate{Semi Forcing-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{sf-(ODw)}}%
- {\GetTranslation{semi forcing-(ODw)}}%
+ {\translate{sf-(ODw)}}%
+ {\translate{semi forcing-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5791,12 +5830,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{NMF-(ODw)}}%
- {\GetTranslation{New Minor Forcing-(ODw)}}%
+ {\translate{NMF-(ODw)}}%
+ {\translate{New Minor Forcing-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{nmf-(ODw)}}%
- {\GetTranslation{new minor forcing-(ODw)}}%
+ {\translate{nmf-(ODw)}}%
+ {\translate{new minor forcing-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5815,12 +5854,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{TSF-(ODw)}}%
- {\GetTranslation{Third Suit Forcing-(ODw)}}%
+ {\translate{TSF-(ODw)}}%
+ {\translate{Third Suit Forcing-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{tsf-(ODw)}}%
- {\GetTranslation{third suit forcing-(ODw)}}%
+ {\translate{tsf-(ODw)}}%
+ {\translate{third suit forcing-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5839,12 +5878,12 @@ pdflatex --shell-escape onedown.dtx
\ODw@OtherFont%
\IfBooleanTF{#1}{%
\IfBooleanTF{#2}%
- {\GetTranslation{FSF-(ODw)}}%
- {\GetTranslation{Fourth Suit Forcing-(ODw)}}%
+ {\translate{FSF-(ODw)}}%
+ {\translate{Fourth Suit Forcing-(ODw)}}%
}{%
\IfBooleanTF{#2}%
- {\GetTranslation{fsf-(ODw)}}%
- {\GetTranslation{fourth suit forcing-(ODw)}}%
+ {\translate{fsf-(ODw)}}%
+ {\translate{fourth suit forcing-(ODw)}}%
}%
\egroup%
\xspace%
@@ -5886,30 +5925,85 @@ pdflatex --shell-escape onedown.dtx
% \end{macrocode}
% Now we load the dictionaries for the languages that are to be used in
% the document. We use \packname{tracklang} to iterate over all the
-% document languages and load the corresponding |ODw|-dictionaries. Due to
+% document languages and load the corresponding |ODw|-dictionaries.
+% \iffalse
+% Due to
% an inconsistency between \packname{babel} and \packname{translations}
% with respect to the Norwegian language (\packname{babel} calls this
% language \emph{norsk} whereas \packname{translations} insist on using
% \emph{norwegian}, we redefine |\thislang| to the latter if it happens to
% be \emph{norsk}.
+% \fi
% \begin{macrocode}
-\AtBeginDocument{%
+%\AtBeginDocument{%
+\usedictionary{ODw}
+%%%%
\ForEachTrackedLanguage{\thislang}{%
- \ifthenelse{\equal{\thislang}{norsk}}%
- {\def\thislang{norwegian}}{}%
- \IfFileExists{ODw-\thislang.trsl}%
- {%
- \LoadDictionaryFor{\thislang}{ODw}%
- \PackageInfo{ODw}{%
- Translation dictionary ODw-\thislang.trsl loaded%
- }%
- }{%
- \PackageWarning{ODw}{%
- Translation dictionary ODw-\thislang.trsl not found%
- }%
- }%
+ \PackageInfo{ODw}{Language \thislang\ detected}%
+%
+% Commented out due to translator
+% \ifthenelse{\equal{\thislang}{norsk}}%
+% {\def\thislang{norwegian}}{}%
+%
+ \IfEqCase{\thislang}{%
+ {danish}{\IfFileExists{ODw-Danish.dict}%
+ {\uselanguage{Danish}%
+ \PackageInfo{ODw}{Dictionary ODw-Danish.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-Danish.dict missing}}}%
+%
+ {dutch}{\IfFileExists{ODw-Dutch.dict}%
+ {\uselanguage{Dutch}%
+ \PackageInfo{ODw}{Dictionary ODw-Dutch.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-Dutch.dict missing}}}%
+%
+ {english}{\IfFileExists{ODw-English.dict}%
+ {\uselanguage{English}%
+ \PackageInfo{ODw}{Dictionary ODw-English.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-English.dict missing}}}%
+%
+ {french}{\IfFileExists{ODw-French.dict}%
+ {\uselanguage{French}%
+ \PackageInfo{ODw}{Dictionary ODw-French.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-French.dict missing}}}%
+%
+ {german}{\IfFileExists{ODw-German.dict}%
+ {\uselanguage{German}%
+ \PackageInfo{ODw}{Dictionary ODw-German.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-German.dict missing}}}%
+%
+ {norsk}{\IfFileExists{ODw-Norsk.dict}%
+ {\uselanguage{Norsk}%
+ \PackageInfo{ODw}{Dictionary ODw-Norsk.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-Norsk.dict missing}}}%
+%
+ {spanish}{\IfFileExists{ODw-Spanish.dict}%
+ {\uselanguage{Spanish}%
+ \PackageInfo{ODw}{Dictionary ODw-Spanish.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-Spanish.dict missing}}}%
+%
+ {swedish}{\IfFileExists{ODw-Swedish.dict}%
+ {\uselanguage{Swedish}%
+ \PackageInfo{ODw}{Dictionary ODw-Swedish.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-Swedish.dict missing}}}%
+%
+ {turkish}{\IfFileExists{ODw-Turkish.dict}%
+ {\uselanguage{Turkish}%
+ \PackageInfo{ODw}{Dictionary ODw-Turkish.dict loaded}
+ }{\PackageWarning{ODw}{Dictionary ODw-Turkish.dict missing}}}%
+%
+ }[%
+ \PackageWarning{ODw}%
+ {Language \thislang\space not supported by OneDown}
+ ]% IfEqCase
+%
}% ForEach
-}% AtBeginDocument
+%%%%%
+%}% AtBeginDocument
+% Look if we can find a file called onedown.symbols somewhere in the \LaTeX-path
+% If so, we load it (the code for inputting card symbols directly from keyboard).
+% If not, we keep silent about it
+\@input{onedown.symbols}
+%
% \end{macrocode}
% That's it folks, happy \TeX ing!
% \begin{macrocode}
diff --git a/macros/latex/contrib/onedown/onedown.pdf b/macros/latex/contrib/onedown/onedown.pdf
index c503a27925..726f4bb0d3 100644
--- a/macros/latex/contrib/onedown/onedown.pdf
+++ b/macros/latex/contrib/onedown/onedown.pdf
Binary files differ
diff --git a/macros/latex/contrib/rmannot/README.md b/macros/latex/contrib/rmannot/README.md
index 593867de9a..6a18207b6c 100644
--- a/macros/latex/contrib/rmannot/README.md
+++ b/macros/latex/contrib/rmannot/README.md
@@ -1,6 +1,6 @@
Distribution: rmannot
Author: D. P. Story
-Dated: 2020-08-21
+Dated: 2021-04-21
The rmannot package is part of the AeB Pro family of packages. The package
creates rich media annotations, in which MOV, MP4, M4V, 3GP, 3G2, and MP3
@@ -9,6 +9,13 @@ Acrobat/Adobe Reader. Acrobat Pro and Distiller version 9.0 or later are
required to build a document, Adobe Reader 9.0 or later is needed to activate
the annotation and play the media.
+What's New (2021-04-21) A rmannot document can now be compiled and built
+using non-Distiller workflows; however, the document is non-functional. A
+frame box replaces any Rich Media annotation; the frame box contains the
+caption "Distiller required". This enables document authors to use their
+favorite workflow for building and prefiewing a PDF; an Acrobat/Distiller
+workflow is still needed to producing annotations that play media files.
+
What's New (2020-08-21) This is the update to the rmannot package in response
to the EOL of Flash player. The package now supports alternate media file
types. The richness of rich media annotations is gone; there is no longer any
diff --git a/macros/latex/contrib/rmannot/doc/rmannot.pdf b/macros/latex/contrib/rmannot/doc/rmannot.pdf
deleted file mode 100644
index 67b3b50c63..0000000000
--- a/macros/latex/contrib/rmannot/doc/rmannot.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/rmannot/doc/rmannot_man.pdf b/macros/latex/contrib/rmannot/doc/rmannot_man.pdf
index 2dbd0bddc1..cc31b8f39d 100644
--- a/macros/latex/contrib/rmannot/doc/rmannot_man.pdf
+++ b/macros/latex/contrib/rmannot/doc/rmannot_man.pdf
Binary files differ
diff --git a/macros/latex/contrib/rmannot/doc/rmannot_man.tex b/macros/latex/contrib/rmannot/doc/rmannot_man.tex
index f2301a116e..a19ec7a9a3 100644
--- a/macros/latex/contrib/rmannot/doc/rmannot_man.tex
+++ b/macros/latex/contrib/rmannot/doc/rmannot_man.tex
@@ -85,7 +85,7 @@ are no longer supported.}}}
email={dpstory@acrotex.net},
subject={Documentation for AeB Pro from AcroTeX},
talksite={\url{www.acrotex.net}},
- version={2.2, 2020/08/21},
+ version={v2.2.1, 2021/04/21},
keywords={Rich Media Annotations, SWF, FLV, MP3, AcroTeX, AcroFlex, LaTeX},
copyrightStatus=True,
copyrightNotice={Copyright (C) \the\year, D. P. Story},
@@ -140,7 +140,7 @@ are no longer supported.}}}
%\pagestyle{empty}
%\parindent0pt\parskip\medskipamount
-\AcroVer{11}
+%\AcroVer{11}
%\def\expath{./../examples/rma}
\def\expath{./../examples/graphics}
@@ -279,7 +279,7 @@ with the \textsf{rmannot} package, there are numerous examples of
\href{\urlAcroTeXBlog//?tag=rmannot-package}{{\AcroTeX} Blog} (having tag
\textsl{rmannot-package}). There is also a whole series of articles on the
\textbf{\href{\urlAcroTeXBlog/?cat=22}{Rich Media Annotation}} using
-\textbf{AeB Pro} and \textsf{rmannot}.\footnote{Articles that use \FT{FLV} or
+\pkg{AeB Pro} and \textsf{rmannot}.\footnote{Articles that use \FT{FLV} or
\FT{SWF} files, or uses the ``JavaScript bridge'' will not work in recent versions
of \app{Acrobat DC} or \app{Acrobat Reader DC} after EOL of Flash player.}
@@ -292,11 +292,11 @@ The requirements for your {\LaTeX} system are highlighted in this section.
The following packages, in addition to the standard {\LaTeX}
distribution, are required:
\begin{enumerate}
- \item AeB (\AcroTeX{} eDucation Bundle) The most recent version.
- In particular the \texttt{eforms} package and its companion
- package \texttt{insdljs}. The AeB Pro package is recommended. (All
- the demo files use AeB Pro.) Get it at \href{http://ctan.org/pkg/acrotex}{ctan.org/pkg/acrotex}.
- \item The \texttt{graphicxsp} Package. The latest version, I made
+ \item \pkg{AeB} (\AcroTeX{} eDucation Bundle) The most recent version.
+ In particular the \pkg{eforms} package and its companion
+ package \pkg{insdljs}. The \pkg{AeB Pro} package is recommended. (All
+ the demo files use \pkg{AeB Pro}.) Get it at \href{http://ctan.org/pkg/acrotex}{ctan.org/pkg/acrotex}.
+ \item The \pkg{graphicxsp} package. The latest version, I made
some slight modifications of this package for \pkg{rmannot}.
This package allows the embedding of poster graphics for use in
the appearances of the annotations when they are not activated.
@@ -319,7 +319,7 @@ its companion application \app{Distiller}.\footnote{Current \app{Acrobat} is \ap
\app{dvips} to produce a Postscript file, which is then distilled to obtain a
PDF.
-If you are using \app{Acrobat DC} to build \pkg{rmannot} , it is necessary \emph{to clear the checkbox}
+If you are using \app{Acrobat DC} to build \pkg{rmannot}, it is necessary \emph{to clear the checkbox}
\uif{Enable Protected Mode at startup}\FmtMP{Protected Mode}, this checkbox is found under the menu
\uif{Edit > Preferences}. In the \uif{Preferences} dialog box, select
\uif{Security (Enhanced)} category from the left panel; the targeted checkbox
@@ -330,11 +330,20 @@ is at the top line on the right panel. Refer to \hyperref[fig:SP]{Figure~\ref*{f
\caption{\tops{\protect\uif}{}{Security (Enhanced) Preferences}}\label{fig:SP}
\end{figure}
+\subsubsection{\tops{\protect\pkg}{}{rmannot} and non-Distiller workflows}
+
+With \pkg{rmannot} dated 2021/04/21 or later, a non-Distiller workflow can be
+utilized to compile and build a PDF; however, any Rich Media annotation
+created by \cs{rmAnnot} is non-functional and is represented by a frame box
+with the caption \textsf{Distiller required}. This allows the document author
+to use his/her favorite PDF creator and favorite PDF previewer to develop the
+document. To build the document to be published, \app{Acrobat/Distiller} are
+required at the tail end of the workflow \textsf{tex -> dvi -> ps -> pdf}.
+
\subsection{Supported Media Formats}\label{s:MediaFmts}
\definePath{\urlFmts}{https://helpx.adobe.com/acrobat/kb/supported-file-formats-acrobat-reader.html}
-
\subsubsection{Supported video formats}
The resource for video formats is
@@ -505,8 +514,8 @@ When no optional argument is passed, \texttt{win} is assumed (\uif{Windows
OS}). Possible values for \meta{version} are \texttt{DC}, a year
(\texttt{2015} or later), or a version number, such as \texttt{9},
\texttt{10}, or \texttt{11}.\footnote{A value of \texttt{Beta} is also
-recognized, for those in the Beta Program of \app{Acrobat}.}
-The default is \cs{AcroVer\darg{DC}}, which is equivalent to \cs{AcroVer[win=32]\darg{DC}}.
+recognized, for those in the Beta Program of \app{Acrobat}.} The default is
+\cs{AcroVer\darg{DC}}, which is equivalent to \cs{AcroVer[win=32]\darg{DC}}.
The \textsf{rmannot} package, based on the information passed to it by
\cs{AcroVer}, builds the appropriated path and passes this path to the
diff --git a/macros/latex/contrib/rmannot/examples/rma/aebmovie_poster.eps b/macros/latex/contrib/rmannot/examples/rma/aebmovie_poster.eps
index 00abfb8f2e..3b9993e676 100644
--- a/macros/latex/contrib/rmannot/examples/rma/aebmovie_poster.eps
+++ b/macros/latex/contrib/rmannot/examples/rma/aebmovie_poster.eps
@@ -1,7972 +1,7972 @@
-%!PS-Adobe-3.1 EPSF-3.0
-%ADO_DSC_Encoding: Windows Roman
-%%Title: aebmovie_poster.pdf
-%%Creator: Adobe Acrobat 10.1.1
-%%For: D. P. Story
-%%CreationDate: 11/3/2011, 6:50:31 AM
-%%BoundingBox: 0 0 320 240
-%%HiResBoundingBox: 0 0 320 240
-%%CropBox: 0 0 320 240
-%%LanguageLevel: 3
-%%DocumentNeededResources: (atend)
-%%DocumentSuppliedResources: (atend)
-%%DocumentNeededFeatures: (atend)
-%%DocumentSuppliedFeatures: (atend)
-%%DocumentData: Clean7Bit
-%%Pages: (atend)
-%%DocumentProcessColors: Cyan Magenta Yellow Black
-%%DocumentCustomColors: (atend)
-%%EndComments
-%%BeginDefaults
-%%ViewingOrientation: 1 0 0 1
-%%EndDefaults
-%%BeginProlog
-%%BeginResource: procset Adobe_AGM_Utils 1.0 0
-%%Version: 1.0 0
-%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{currentpacking true setpacking}if
-userdict/Adobe_AGM_Utils 75 dict dup begin put
-/bdf
-{bind def}bind def
-/nd{null def}bdf
-/xdf
-{exch def}bdf
-/ldf
-{load def}bdf
-/ddf
-{put}bdf
-/xddf
-{3 -1 roll put}bdf
-/xpt
-{exch put}bdf
-/ndf
-{
- exch dup where{
- pop pop pop
- }{
- xdf
- }ifelse
-}def
-/cdndf
-{
- exch dup currentdict exch known{
- pop pop
- }{
- exch def
- }ifelse
-}def
-/gx
-{get exec}bdf
-/ps_level
- /languagelevel where{
- pop systemdict/languagelevel gx
- }{
- 1
- }ifelse
-def
-/level2
- ps_level 2 ge
-def
-/level3
- ps_level 3 ge
-def
-/ps_version
- {version cvr}stopped{-1}if
-def
-/set_gvm
-{currentglobal exch setglobal}bdf
-/reset_gvm
-{setglobal}bdf
-/makereadonlyarray
-{
- /packedarray where{pop packedarray
- }{
- array astore readonly}ifelse
-}bdf
-/map_reserved_ink_name
-{
- dup type/stringtype eq{
- dup/Red eq{
- pop(_Red_)
- }{
- dup/Green eq{
- pop(_Green_)
- }{
- dup/Blue eq{
- pop(_Blue_)
- }{
- dup()cvn eq{
- pop(Process)
- }if
- }ifelse
- }ifelse
- }ifelse
- }if
-}bdf
-/AGMUTIL_GSTATE 22 dict def
-/get_gstate
-{
- AGMUTIL_GSTATE begin
- /AGMUTIL_GSTATE_clr_spc currentcolorspace def
- /AGMUTIL_GSTATE_clr_indx 0 def
- /AGMUTIL_GSTATE_clr_comps 12 array def
- mark currentcolor counttomark
- {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
- /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop
- /AGMUTIL_GSTATE_fnt rootfont def
- /AGMUTIL_GSTATE_lw currentlinewidth def
- /AGMUTIL_GSTATE_lc currentlinecap def
- /AGMUTIL_GSTATE_lj currentlinejoin def
- /AGMUTIL_GSTATE_ml currentmiterlimit def
- currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf
- /AGMUTIL_GSTATE_sa currentstrokeadjust def
- /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
- /AGMUTIL_GSTATE_op currentoverprint def
- /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
- /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
- currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf
- cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf
- /AGMUTIL_GSTATE_ht currenthalftone def
- /AGMUTIL_GSTATE_flt currentflat def
- end
-}def
-/set_gstate
-{
- AGMUTIL_GSTATE begin
- AGMUTIL_GSTATE_clr_spc setcolorspace
- AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
- /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor
- AGMUTIL_GSTATE_fnt setfont
- AGMUTIL_GSTATE_lw setlinewidth
- AGMUTIL_GSTATE_lc setlinecap
- AGMUTIL_GSTATE_lj setlinejoin
- AGMUTIL_GSTATE_ml setmiterlimit
- AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
- AGMUTIL_GSTATE_sa setstrokeadjust
- AGMUTIL_GSTATE_clr_rnd setcolorrendering
- AGMUTIL_GSTATE_op setoverprint
- AGMUTIL_GSTATE_bg cvx setblackgeneration
- AGMUTIL_GSTATE_ucr cvx setundercolorremoval
- AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
- AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
- AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or
- {
- currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne
- {
- mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark
- }if
- }{
- AGMUTIL_GSTATE_ht sethalftone
- }ifelse
- AGMUTIL_GSTATE_flt setflat
- end
-}def
-/get_gstate_and_matrix
-{
- AGMUTIL_GSTATE begin
- /AGMUTIL_GSTATE_ctm matrix currentmatrix def
- end
- get_gstate
-}def
-/set_gstate_and_matrix
-{
- set_gstate
- AGMUTIL_GSTATE begin
- AGMUTIL_GSTATE_ctm setmatrix
- end
-}def
-/AGMUTIL_str256 256 string def
-/AGMUTIL_src256 256 string def
-/AGMUTIL_dst64 64 string def
-/AGMUTIL_srcLen nd
-/AGMUTIL_ndx nd
-/AGMUTIL_cpd nd
-/capture_cpd{
- //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf
-}def
-/thold_halftone
-{
- level3
- {sethalftone currenthalftone}
- {
- dup/HalftoneType get 3 eq
- {
- sethalftone currenthalftone
- }{
- begin
- Width Height mul{
- Thresholds read{pop}if
- }repeat
- end
- currenthalftone
- }ifelse
- }ifelse
-}def
-/rdcmntline
-{
- currentfile AGMUTIL_str256 readline pop
- (%)anchorsearch{pop}if
-}bdf
-/filter_cmyk
-{
- dup type/filetype ne{
- exch()/SubFileDecode filter
- }{
- exch pop
- }
- ifelse
- [
- exch
- {
- AGMUTIL_src256 readstring pop
- dup length/AGMUTIL_srcLen exch def
- /AGMUTIL_ndx 0 def
- AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
- 1 index exch get
- AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
- /AGMUTIL_ndx AGMUTIL_ndx 1 add def
- }for
- pop
- AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
- }
- bind
- /exec cvx
- ]cvx
-}bdf
-/filter_indexed_devn
-{
- cvi Names length mul names_index add Lookup exch get
-}bdf
-/filter_devn
-{
- 4 dict begin
- /srcStr xdf
- /dstStr xdf
- dup type/filetype ne{
- 0()/SubFileDecode filter
- }if
- [
- exch
- [
- /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx
- currentdict/srcStr get/readstring cvx/pop cvx
- /dup cvx/length cvx 0/gt cvx[
- Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx
- names_index Names length currentdict/srcStr get length 1 sub{
- 1/index cvx/exch cvx/get cvx
- currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx
- Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx
- }for
- currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx
- ]cvx/if cvx
- /end cvx
- ]cvx
- bind
- /exec cvx
- ]cvx
- end
-}bdf
-/AGMUTIL_imagefile nd
-/read_image_file
-{
- AGMUTIL_imagefile 0 setfileposition
- 10 dict begin
- /imageDict xdf
- /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
- /imbufIdx 0 def
- /origDataSource imageDict/DataSource get def
- /origMultipleDataSources imageDict/MultipleDataSources get def
- /origDecode imageDict/Decode get def
- /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def
- imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- {
- /imbufCnt imageDict/DataSource get length def
- /imbufs imbufCnt array def
- 0 1 imbufCnt 1 sub{
- /imbufIdx xdf
- imbufs imbufIdx imbufLen string put
- imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put
- }for
- DeviceN_PS2{
- imageDict begin
- /DataSource[DataSource/devn_sep_datasource cvx]cvx def
- /MultipleDataSources false def
- /Decode[0 1]def
- end
- }if
- }{
- /imbuf imbufLen string def
- Indexed_DeviceN level3 not and DeviceN_NoneName or{
- /srcDataStrs[imageDict begin
- currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
- {
- Width Decode length 2 div mul cvi string
- }repeat
- end]def
- imageDict begin
- /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def
- /Decode[0 1]def
- end
- }{
- imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put
- imageDict/Decode[0 1]put
- }ifelse
- }ifelse
- imageDict exch
- load exec
- imageDict/DataSource origDataSource put
- imageDict/MultipleDataSources origMultipleDataSources put
- imageDict/Decode origDecode put
- end
-}bdf
-/write_image_file
-{
- begin
- {(AGMUTIL_imagefile)(w+)file}stopped{
- false
- }{
- Adobe_AGM_Utils/AGMUTIL_imagefile xddf
- 2 dict begin
- /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
- MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{
- /imbuf imbufLen string def
- }if
- 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{
- pop
- MultipleDataSources{
- 0 1 DataSource length 1 sub{
- DataSource type dup
- /arraytype eq{
- pop DataSource exch gx
- }{
- /filetype eq{
- DataSource exch get imbuf readstring pop
- }{
- DataSource exch get
- }ifelse
- }ifelse
- AGMUTIL_imagefile exch writestring
- }for
- }{
- DataSource type dup
- /arraytype eq{
- pop DataSource exec
- }{
- /filetype eq{
- DataSource imbuf readstring pop
- }{
- DataSource
- }ifelse
- }ifelse
- AGMUTIL_imagefile exch writestring
- }ifelse
- }for
- end
- true
- }ifelse
- end
-}bdf
-/close_image_file
-{
- AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile
-}def
-statusdict/product known userdict/AGMP_current_show known not and{
- /pstr statusdict/product get def
- pstr(HP LaserJet 2200)eq
- pstr(HP LaserJet 4000 Series)eq or
- pstr(HP LaserJet 4050 Series )eq or
- pstr(HP LaserJet 8000 Series)eq or
- pstr(HP LaserJet 8100 Series)eq or
- pstr(HP LaserJet 8150 Series)eq or
- pstr(HP LaserJet 5000 Series)eq or
- pstr(HP LaserJet 5100 Series)eq or
- pstr(HP Color LaserJet 4500)eq or
- pstr(HP Color LaserJet 4600)eq or
- pstr(HP LaserJet 5Si)eq or
- pstr(HP LaserJet 1200 Series)eq or
- pstr(HP LaserJet 1300 Series)eq or
- pstr(HP LaserJet 4100 Series)eq or
- {
- userdict/AGMP_current_show/show load put
- userdict/show{
- currentcolorspace 0 get
- /Pattern eq
- {false charpath f}
- {AGMP_current_show}ifelse
- }put
- }if
- currentdict/pstr undef
-}if
-/consumeimagedata
-{
- begin
- AGMIMG_init_common
- currentdict/MultipleDataSources known not
- {/MultipleDataSources false def}if
- MultipleDataSources
- {
- DataSource 0 get type
- dup/filetype eq
- {
- 1 dict begin
- /flushbuffer Width cvi string def
- 1 1 Height cvi
- {
- pop
- 0 1 DataSource length 1 sub
- {
- DataSource exch get
- flushbuffer readstring pop pop
- }for
- }for
- end
- }if
- dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and
- {
- Width Height mul cvi
- {
- 0 1 DataSource length 1 sub
- {dup DataSource exch gx length exch 0 ne{pop}if}for
- dup 0 eq
- {pop exit}if
- sub dup 0 le
- {exit}if
- }loop
- pop
- }if
- }
- {
- /DataSource load type
- dup/filetype eq
- {
- 1 dict begin
- /flushbuffer Width Decode length 2 idiv mul cvi string def
- 1 1 Height{pop DataSource flushbuffer readstring pop pop}for
- end
- }if
- dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and
- {
- Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
- {
- DataSource length dup 0 eq
- {pop exit}if
- sub dup 0 le
- {exit}if
- }loop
- pop
- }if
- }ifelse
- end
-}bdf
-/addprocs
-{
- 2{/exec load}repeat
- 3 1 roll
- [5 1 roll]bind cvx
-}def
-/modify_halftone_xfer
-{
- currenthalftone dup length dict copy begin
- currentdict 2 index known{
- 1 index load dup length dict copy begin
- currentdict/TransferFunction known{
- /TransferFunction load
- }{
- currenttransfer
- }ifelse
- addprocs/TransferFunction xdf
- currentdict end def
- currentdict end sethalftone
- }{
- currentdict/TransferFunction known{
- /TransferFunction load
- }{
- currenttransfer
- }ifelse
- addprocs/TransferFunction xdf
- currentdict end sethalftone
- pop
- }ifelse
-}def
-/clonearray
-{
- dup xcheck exch
- dup length array exch
- Adobe_AGM_Core/AGMCORE_tmp -1 ddf
- {
- Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf
- dup type/dicttype eq
- {
- Adobe_AGM_Core/AGMCORE_tmp get
- exch
- clonedict
- Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
- }if
- dup type/arraytype eq
- {
- Adobe_AGM_Core/AGMCORE_tmp get exch
- clonearray
- Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
- }if
- exch dup
- Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
- }forall
- exch{cvx}if
-}bdf
-/clonedict
-{
- dup length dict
- begin
- {
- dup type/dicttype eq
- {clonedict}if
- dup type/arraytype eq
- {clonearray}if
- def
- }forall
- currentdict
- end
-}bdf
-/DeviceN_PS2
-{
- /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and
-}bdf
-/Indexed_DeviceN
-{
- /indexed_colorspace_dict AGMCORE_gget dup null ne{
- dup/CSDBase known{
- /CSDBase get/CSD get_res/Names known
- }{
- pop false
- }ifelse
- }{
- pop false
- }ifelse
-}bdf
-/DeviceN_NoneName
-{
- /Names where{
- pop
- false Names
- {
- (None)eq or
- }forall
- }{
- false
- }ifelse
-}bdf
-/DeviceN_PS2_inRip_seps
-{
- /AGMCORE_in_rip_sep where
- {
- pop dup type dup/arraytype eq exch/packedarraytype eq or
- {
- dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and
- {
- /currentcolorspace exch AGMCORE_gput
- false
- }{
- true
- }ifelse
- }{
- true
- }ifelse
- }{
- true
- }ifelse
-}bdf
-/base_colorspace_type
-{
- dup type/arraytype eq{0 get}if
-}bdf
-/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
-{
- /pdfmark_5{cleartomark}bind def
-}{
- /pdfmark_5{pdfmark}bind def
-}ifelse
-/ReadBypdfmark_5
-{
- currentfile exch 0 exch/SubFileDecode filter
- /currentdistillerparams where
- {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
- {flushfile cleartomark}
- {/PUT pdfmark}ifelse
-}bdf
-/ReadBypdfmark_5_string
-{
- 2 dict begin
- /makerString exch def string/tmpString exch def
- {
- currentfile tmpString readline not{pop exit}if
- makerString anchorsearch
- {
- pop pop cleartomark exit
- }{
- 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5
- }ifelse
- }loop
- end
-}bdf
-/xpdfm
-{
- {
- dup 0 get/Label eq
- {
- aload length[exch 1 add 1 roll/PAGELABEL
- }{
- aload pop
- [{ThisPage}<<5 -2 roll>>/PUT
- }ifelse
- pdfmark_5
- }forall
-}bdf
-/lmt{
- dup 2 index le{exch}if pop dup 2 index ge{exch}if pop
-}bdf
-/int{
- dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop
-}bdf
-/ds{
- Adobe_AGM_Utils begin
-}bdf
-/dt{
- currentdict Adobe_AGM_Utils eq{
- end
- }if
-}bdf
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-%%BeginResource: procset Adobe_AGM_Core 2.0 0
-%%Version: 2.0 0
-%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{
- currentpacking
- true setpacking
-}if
-userdict/Adobe_AGM_Core 209 dict dup begin put
-/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def
-/AGMCORE_str256 256 string def
-/AGMCORE_save nd
-/AGMCORE_graphicsave nd
-/AGMCORE_c 0 def
-/AGMCORE_m 0 def
-/AGMCORE_y 0 def
-/AGMCORE_k 0 def
-/AGMCORE_cmykbuf 4 array def
-/AGMCORE_screen[currentscreen]cvx def
-/AGMCORE_tmp 0 def
-/AGMCORE_&setgray nd
-/AGMCORE_&setcolor nd
-/AGMCORE_&setcolorspace nd
-/AGMCORE_&setcmykcolor nd
-/AGMCORE_cyan_plate nd
-/AGMCORE_magenta_plate nd
-/AGMCORE_yellow_plate nd
-/AGMCORE_black_plate nd
-/AGMCORE_plate_ndx nd
-/AGMCORE_get_ink_data nd
-/AGMCORE_is_cmyk_sep nd
-/AGMCORE_host_sep nd
-/AGMCORE_avoid_L2_sep_space nd
-/AGMCORE_distilling nd
-/AGMCORE_composite_job nd
-/AGMCORE_producing_seps nd
-/AGMCORE_ps_level -1 def
-/AGMCORE_ps_version -1 def
-/AGMCORE_environ_ok nd
-/AGMCORE_CSD_cache 0 dict def
-/AGMCORE_currentoverprint false def
-/AGMCORE_deltaX nd
-/AGMCORE_deltaY nd
-/AGMCORE_name nd
-/AGMCORE_sep_special nd
-/AGMCORE_err_strings 4 dict def
-/AGMCORE_cur_err nd
-/AGMCORE_current_spot_alias false def
-/AGMCORE_inverting false def
-/AGMCORE_feature_dictCount nd
-/AGMCORE_feature_opCount nd
-/AGMCORE_feature_ctm nd
-/AGMCORE_ConvertToProcess false def
-/AGMCORE_Default_CTM matrix def
-/AGMCORE_Default_PageSize nd
-/AGMCORE_Default_flatness nd
-/AGMCORE_currentbg nd
-/AGMCORE_currentucr nd
-/AGMCORE_pattern_paint_type 0 def
-/knockout_unitsq nd
-currentglobal true setglobal
-[/CSA/Gradient/Procedure]
-{
- /Generic/Category findresource dup length dict copy/Category defineresource pop
-}forall
-setglobal
-/AGMCORE_key_known
-{
- where{
- /Adobe_AGM_Core_Id known
- }{
- false
- }ifelse
-}ndf
-/flushinput
-{
- save
- 2 dict begin
- /CompareBuffer 3 -1 roll def
- /readbuffer 256 string def
- mark
- {
- currentfile readbuffer{readline}stopped
- {cleartomark mark}
- {
- not
- {pop exit}
- if
- CompareBuffer eq
- {exit}
- if
- }ifelse
- }loop
- cleartomark
- end
- restore
-}bdf
-/getspotfunction
-{
- AGMCORE_screen exch pop exch pop
- dup type/dicttype eq{
- dup/HalftoneType get 1 eq{
- /SpotFunction get
- }{
- dup/HalftoneType get 2 eq{
- /GraySpotFunction get
- }{
- pop
- {
- abs exch abs 2 copy add 1 gt{
- 1 sub dup mul exch 1 sub dup mul add 1 sub
- }{
- dup mul exch dup mul add 1 exch sub
- }ifelse
- }bind
- }ifelse
- }ifelse
- }if
-}def
-/np
-{newpath}bdf
-/clp_npth
-{clip np}def
-/eoclp_npth
-{eoclip np}def
-/npth_clp
-{np clip}def
-/graphic_setup
-{
- /AGMCORE_graphicsave save store
- concat
- 0 setgray
- 0 setlinecap
- 0 setlinejoin
- 1 setlinewidth
- []0 setdash
- 10 setmiterlimit
- np
- false setoverprint
- false setstrokeadjust
- //Adobe_AGM_Core/spot_alias gx
- /Adobe_AGM_Image where{
- pop
- Adobe_AGM_Image/spot_alias 2 copy known{
- gx
- }{
- pop pop
- }ifelse
- }if
- /sep_colorspace_dict null AGMCORE_gput
- 100 dict begin
- /dictstackcount countdictstack def
- /showpage{}def
- mark
-}def
-/graphic_cleanup
-{
- cleartomark
- dictstackcount 1 countdictstack 1 sub{end}for
- end
- AGMCORE_graphicsave restore
-}def
-/compose_error_msg
-{
- grestoreall initgraphics
- /Helvetica findfont 10 scalefont setfont
- /AGMCORE_deltaY 100 def
- /AGMCORE_deltaX 310 def
- clippath pathbbox np pop pop 36 add exch 36 add exch moveto
- 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
- 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
- 0 AGMCORE_&setgray
- gsave 1 AGMCORE_&setgray fill grestore
- 1 setlinewidth gsave stroke grestore
- currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
- /AGMCORE_deltaY 12 def
- /AGMCORE_tmp 0 def
- AGMCORE_err_strings exch get
- {
- dup 32 eq
- {
- pop
- AGMCORE_str256 0 AGMCORE_tmp getinterval
- stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
- {
- currentpoint AGMCORE_deltaY sub exch pop
- clippath pathbbox pop pop pop 44 add exch moveto
- }if
- AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show
- 0 1 AGMCORE_str256 length 1 sub
- {
- AGMCORE_str256 exch 0 put
- }for
- /AGMCORE_tmp 0 def
- }{
- AGMCORE_str256 exch AGMCORE_tmp xpt
- /AGMCORE_tmp AGMCORE_tmp 1 add def
- }ifelse
- }forall
-}bdf
-/AGMCORE_CMYKDeviceNColorspaces[
- [/Separation/None/DeviceCMYK{0 0 0}]
- [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind]
- [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind]
- [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind]
- [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind]
- [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind]
- [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind]
- [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind]
- [/Separation(Cyan)/DeviceCMYK{0 0 0}]
- [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind]
- [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind]
- [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind]
- [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}]
- [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind]
- [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}]
- [/DeviceCMYK]
-]def
-/ds{
- Adobe_AGM_Core begin
- /currentdistillerparams where
- {
- pop currentdistillerparams/CoreDistVersion get 5000 lt
- {<</DetectBlends false>>setdistillerparams}if
- }if
- /AGMCORE_ps_version xdf
- /AGMCORE_ps_level xdf
- errordict/AGM_handleerror known not{
- errordict/AGM_handleerror errordict/handleerror get put
- errordict/handleerror{
- Adobe_AGM_Core begin
- $error/newerror get AGMCORE_cur_err null ne and{
- $error/newerror false put
- AGMCORE_cur_err compose_error_msg
- }if
- $error/newerror true put
- end
- errordict/AGM_handleerror get exec
- }bind put
- }if
- /AGMCORE_environ_ok
- ps_level AGMCORE_ps_level ge
- ps_version AGMCORE_ps_version ge and
- AGMCORE_ps_level -1 eq or
- def
- AGMCORE_environ_ok not
- {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
- /AGMCORE_&setgray systemdict/setgray get def
- level2{
- /AGMCORE_&setcolor systemdict/setcolor get def
- /AGMCORE_&setcolorspace systemdict/setcolorspace get def
- }if
- /AGMCORE_currentbg currentblackgeneration def
- /AGMCORE_currentucr currentundercolorremoval def
- /AGMCORE_Default_flatness currentflat def
- /AGMCORE_distilling
- /product where{
- pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
- }{
- false
- }ifelse
- def
- /AGMCORE_GSTATE AGMCORE_key_known not{
- /AGMCORE_GSTATE 21 dict def
- /AGMCORE_tmpmatrix matrix def
- /AGMCORE_gstack 32 array def
- /AGMCORE_gstackptr 0 def
- /AGMCORE_gstacksaveptr 0 def
- /AGMCORE_gstackframekeys 14 def
- /AGMCORE_&gsave/gsave ldf
- /AGMCORE_&grestore/grestore ldf
- /AGMCORE_&grestoreall/grestoreall ldf
- /AGMCORE_&save/save ldf
- /AGMCORE_&setoverprint/setoverprint ldf
- /AGMCORE_gdictcopy{
- begin
- {def}forall
- end
- }def
- /AGMCORE_gput{
- AGMCORE_gstack AGMCORE_gstackptr get
- 3 1 roll
- put
- }def
- /AGMCORE_gget{
- AGMCORE_gstack AGMCORE_gstackptr get
- exch
- get
- }def
- /gsave{
- AGMCORE_&gsave
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gstackptr 1 add
- dup 32 ge{limitcheck}if
- /AGMCORE_gstackptr exch store
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gdictcopy
- }def
- /grestore{
- AGMCORE_&grestore
- AGMCORE_gstackptr 1 sub
- dup AGMCORE_gstacksaveptr lt{1 add}if
- dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known
- {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
- /AGMCORE_gstackptr exch store
- }def
- /grestoreall{
- AGMCORE_&grestoreall
- /AGMCORE_gstackptr AGMCORE_gstacksaveptr store
- }def
- /save{
- AGMCORE_&save
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gstackptr 1 add
- dup 32 ge{limitcheck}if
- /AGMCORE_gstackptr exch store
- /AGMCORE_gstacksaveptr AGMCORE_gstackptr store
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gdictcopy
- }def
- /setoverprint{
- dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
- }def
- 0 1 AGMCORE_gstack length 1 sub{
- AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
- }for
- }if
- level3/AGMCORE_&sysshfill AGMCORE_key_known not and
- {
- /AGMCORE_&sysshfill systemdict/shfill get def
- /AGMCORE_&sysmakepattern systemdict/makepattern get def
- /AGMCORE_&usrmakepattern/makepattern load def
- }if
- /currentcmykcolor[0 0 0 0]AGMCORE_gput
- /currentstrokeadjust false AGMCORE_gput
- /currentcolorspace[/DeviceGray]AGMCORE_gput
- /sep_tint 0 AGMCORE_gput
- /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput
- /sep_colorspace_dict null AGMCORE_gput
- /devicen_colorspace_dict null AGMCORE_gput
- /indexed_colorspace_dict null AGMCORE_gput
- /currentcolor_intent()AGMCORE_gput
- /customcolor_tint 1 AGMCORE_gput
- /absolute_colorimetric_crd null AGMCORE_gput
- /relative_colorimetric_crd null AGMCORE_gput
- /saturation_crd null AGMCORE_gput
- /perceptual_crd null AGMCORE_gput
- currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf
- cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf
- <<
- /MaxPatternItem currentsystemparams/MaxPatternCache get
- >>
- setuserparams
- end
-}def
-/ps
-{
- /setcmykcolor where{
- pop
- Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put
- }if
- Adobe_AGM_Core begin
- /setcmykcolor
- {
- 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput
- 1 sub 4 1 roll
- 3{
- 3 index add neg dup 0 lt{
- pop 0
- }if
- 3 1 roll
- }repeat
- setrgbcolor pop
- }ndf
- /currentcmykcolor
- {
- /currentcmykcolor AGMCORE_gget aload pop
- }ndf
- /setoverprint
- {pop}ndf
- /currentoverprint
- {false}ndf
- /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
- /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
- /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
- /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
- /AGMCORE_plate_ndx
- AGMCORE_cyan_plate{
- 0
- }{
- AGMCORE_magenta_plate{
- 1
- }{
- AGMCORE_yellow_plate{
- 2
- }{
- AGMCORE_black_plate{
- 3
- }{
- 4
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_have_reported_unsupported_color_space false def
- /AGMCORE_report_unsupported_color_space
- {
- AGMCORE_have_reported_unsupported_color_space false eq
- {
- (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)==
- Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf
- }if
- }def
- /AGMCORE_composite_job
- AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
- /AGMCORE_in_rip_sep
- /AGMCORE_in_rip_sep where{
- pop AGMCORE_in_rip_sep
- }{
- AGMCORE_distilling
- {
- false
- }{
- userdict/Adobe_AGM_OnHost_Seps known{
- false
- }{
- level2{
- currentpagedevice/Separations 2 copy known{
- get
- }{
- pop pop false
- }ifelse
- }{
- false
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
- /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
- /AGM_preserve_spots
- /AGM_preserve_spots where{
- pop AGM_preserve_spots
- }{
- AGMCORE_distilling AGMCORE_producing_seps or
- }ifelse
- def
- /AGM_is_distiller_preserving_spotimages
- {
- currentdistillerparams/PreserveOverprintSettings known
- {
- currentdistillerparams/PreserveOverprintSettings get
- {
- currentdistillerparams/ColorConversionStrategy known
- {
- currentdistillerparams/ColorConversionStrategy get
- /sRGB ne
- }{
- true
- }ifelse
- }{
- false
- }ifelse
- }{
- false
- }ifelse
- }def
- /convert_spot_to_process where{pop}{
- /convert_spot_to_process
- {
- //Adobe_AGM_Core begin
- dup map_alias{
- /Name get exch pop
- }if
- dup dup(None)eq exch(All)eq or
- {
- pop false
- }{
- AGMCORE_host_sep
- {
- gsave
- 1 0 0 0 setcmykcolor currentgray 1 exch sub
- 0 1 0 0 setcmykcolor currentgray 1 exch sub
- 0 0 1 0 setcmykcolor currentgray 1 exch sub
- 0 0 0 1 setcmykcolor currentgray 1 exch sub
- add add add 0 eq
- {
- pop false
- }{
- false setoverprint
- current_spot_alias false set_spot_alias
- 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
- set_spot_alias
- currentgray 1 ne
- }ifelse
- grestore
- }{
- AGMCORE_distilling
- {
- pop AGM_is_distiller_preserving_spotimages not
- }{
- //Adobe_AGM_Core/AGMCORE_name xddf
- false
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq
- AGMUTIL_cpd/OverrideSeparations known and
- {
- AGMUTIL_cpd/OverrideSeparations get
- {
- /HqnSpots/ProcSet resourcestatus
- {
- pop pop pop true
- }if
- }if
- }if
- {
- AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not
- }{
- gsave
- [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace
- false
- AGMUTIL_cpd/SeparationColorNames 2 copy known
- {
- get
- {AGMCORE_name eq or}forall
- not
- }{
- pop pop pop true
- }ifelse
- grestore
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- end
- }def
- }ifelse
- /convert_to_process where{pop}{
- /convert_to_process
- {
- dup length 0 eq
- {
- pop false
- }{
- AGMCORE_host_sep
- {
- dup true exch
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- dup(Black)eq 3 -1 roll or
- {pop}
- {convert_spot_to_process and}ifelse
- }
- forall
- {
- true exch
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- (Black)eq or and
- }forall
- not
- }{pop false}ifelse
- }{
- false exch
- {
- /PhotoshopDuotoneList where{pop false}{true}ifelse
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- dup(Black)eq 3 -1 roll or
- {pop}
- {convert_spot_to_process or}ifelse
- }
- {
- convert_spot_to_process or
- }
- ifelse
- }
- forall
- }ifelse
- }ifelse
- }def
- }ifelse
- /AGMCORE_avoid_L2_sep_space
- version cvr 2012 lt
- level2 and
- AGMCORE_producing_seps not and
- def
- /AGMCORE_is_cmyk_sep
- AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
- def
- /AGM_avoid_0_cmyk where{
- pop AGM_avoid_0_cmyk
- }{
- AGM_preserve_spots
- userdict/Adobe_AGM_OnHost_Seps known
- userdict/Adobe_AGM_InRip_Seps known or
- not and
- }ifelse
- {
- /setcmykcolor[
- {
- 4 copy add add add 0 eq currentoverprint and{
- pop 0.0005
- }if
- }/exec cvx
- /AGMCORE_&setcmykcolor load dup type/operatortype ne{
- /exec cvx
- }if
- ]cvx def
- }if
- /AGMCORE_IsSeparationAProcessColor
- {
- dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or
- }def
- AGMCORE_host_sep{
- /setcolortransfer
- {
- AGMCORE_cyan_plate{
- pop pop pop
- }{
- AGMCORE_magenta_plate{
- 4 3 roll pop pop pop
- }{
- AGMCORE_yellow_plate{
- 4 2 roll pop pop pop
- }{
- 4 1 roll pop pop pop
- }ifelse
- }ifelse
- }ifelse
- settransfer
- }
- def
- /AGMCORE_get_ink_data
- AGMCORE_cyan_plate{
- {pop pop pop}
- }{
- AGMCORE_magenta_plate{
- {4 3 roll pop pop pop}
- }{
- AGMCORE_yellow_plate{
- {4 2 roll pop pop pop}
- }{
- {4 1 roll pop pop pop}
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_RemoveProcessColorNames
- {
- 1 dict begin
- /filtername
- {
- dup/Cyan eq 1 index(Cyan)eq or
- {pop(_cyan_)}if
- dup/Magenta eq 1 index(Magenta)eq or
- {pop(_magenta_)}if
- dup/Yellow eq 1 index(Yellow)eq or
- {pop(_yellow_)}if
- dup/Black eq 1 index(Black)eq or
- {pop(_black_)}if
- }def
- dup type/arraytype eq
- {[exch{filtername}forall]}
- {filtername}ifelse
- end
- }def
- level3{
- /AGMCORE_IsCurrentColor
- {
- dup AGMCORE_IsSeparationAProcessColor
- {
- AGMCORE_plate_ndx 0 eq
- {dup(Cyan)eq exch/Cyan eq or}if
- AGMCORE_plate_ndx 1 eq
- {dup(Magenta)eq exch/Magenta eq or}if
- AGMCORE_plate_ndx 2 eq
- {dup(Yellow)eq exch/Yellow eq or}if
- AGMCORE_plate_ndx 3 eq
- {dup(Black)eq exch/Black eq or}if
- AGMCORE_plate_ndx 4 eq
- {pop false}if
- }{
- gsave
- false setoverprint
- current_spot_alias false set_spot_alias
- 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
- set_spot_alias
- currentgray 1 ne
- grestore
- }ifelse
- }def
- /AGMCORE_filter_functiondatasource
- {
- 5 dict begin
- /data_in xdf
- data_in type/stringtype eq
- {
- /ncomp xdf
- /comp xdf
- /string_out data_in length ncomp idiv string def
- 0 ncomp data_in length 1 sub
- {
- string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
- }for
- string_out
- }{
- string/string_in xdf
- /string_out 1 string def
- /component xdf
- [
- data_in string_in/readstring cvx
- [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx
- [/pop cvx()]cvx/ifelse cvx
- ]cvx/ReusableStreamDecode filter
- }ifelse
- end
- }def
- /AGMCORE_separateShadingFunction
- {
- 2 dict begin
- /paint? xdf
- /channel xdf
- dup type/dicttype eq
- {
- begin
- FunctionType 0 eq
- {
- /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
- currentdict/Decode known
- {/Decode Decode channel 2 mul 2 getinterval def}if
- paint? not
- {/Decode[1 1]def}if
- }if
- FunctionType 2 eq
- {
- paint?
- {
- /C0[C0 channel get 1 exch sub]def
- /C1[C1 channel get 1 exch sub]def
- }{
- /C0[1]def
- /C1[1]def
- }ifelse
- }if
- FunctionType 3 eq
- {
- /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def
- }if
- currentdict/Range known
- {/Range[0 1]def}if
- currentdict
- end}{
- channel get 0 paint? AGMCORE_separateShadingFunction
- }ifelse
- end
- }def
- /AGMCORE_separateShading
- {
- 3 -1 roll begin
- currentdict/Function known
- {
- currentdict/Background known
- {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
- Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf
- /ColorSpace[/DeviceGray]def
- }{
- ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
- }{
- ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
- }ifelse
- ColorSpace 0 get/Separation eq
- {
- {
- [1/exch cvx/sub cvx]cvx
- }{
- [/pop cvx 1]cvx
- }ifelse
- ColorSpace 3 3 -1 roll put
- pop
- }{
- {
- [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx
- }{
- pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx
- }ifelse
- ColorSpace 3 3 -1 roll bind put
- }ifelse
- ColorSpace 2/DeviceGray put
- }ifelse
- end
- }def
- /AGMCORE_separateShadingDict
- {
- dup/ColorSpace get
- dup type/arraytype ne
- {[exch]}if
- dup 0 get/DeviceCMYK eq
- {
- exch begin
- currentdict
- AGMCORE_cyan_plate
- {0 true}if
- AGMCORE_magenta_plate
- {1 true}if
- AGMCORE_yellow_plate
- {2 true}if
- AGMCORE_black_plate
- {3 true}if
- AGMCORE_plate_ndx 4 eq
- {0 false}if
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- currentdict
- end exch
- }if
- dup 0 get/Separation eq
- {
- exch begin
- ColorSpace 1 get dup/None ne exch/All ne and
- {
- ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
- {
- ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace
- [
- /Separation
- ColorSpace 1 get
- /DeviceGray
- [
- ColorSpace 3 get/exec cvx
- 4 AGMCORE_plate_ndx sub -1/roll cvx
- 4 1/roll cvx
- 3[/pop cvx]cvx/repeat cvx
- 1/exch cvx/sub cvx
- ]cvx
- ]def
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- currentdict 0 false AGMCORE_separateShading
- }if
- }ifelse
- }{
- currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
- 0 exch
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- }ifelse
- }if
- currentdict
- end exch
- }if
- dup 0 get/DeviceN eq
- {
- exch begin
- ColorSpace 1 get convert_to_process
- {
- ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace
- [
- /DeviceN
- ColorSpace 1 get
- /DeviceGray
- [
- ColorSpace 3 get/exec cvx
- 4 AGMCORE_plate_ndx sub -1/roll cvx
- 4 1/roll cvx
- 3[/pop cvx]cvx/repeat cvx
- 1/exch cvx/sub cvx
- ]cvx
- ]def
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- currentdict 0 false AGMCORE_separateShading
- /ColorSpace[/DeviceGray]def
- }if
- }ifelse
- }{
- currentdict
- false -1 ColorSpace 1 get
- {
- AGMCORE_IsCurrentColor
- {
- 1 add
- exch pop true exch exit
- }if
- 1 add
- }forall
- exch
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- }ifelse
- currentdict
- end exch
- }if
- dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not
- {
- exch begin
- ColorSpace dup type/arraytype eq
- {0 get}if
- /DeviceGray ne
- {
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- ColorSpace 0 get/CIEBasedA eq
- {
- /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def
- }if
- ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or
- {
- /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def
- }if
- ColorSpace 0 get/CIEBasedDEFG eq
- {
- /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
- }if
- currentdict 0 false AGMCORE_separateShading
- }if
- }if
- currentdict
- end exch
- }if
- pop
- dup/AGMCORE_ignoreshade known
- {
- begin
- /ColorSpace[/Separation(None)/DeviceGray{}]def
- currentdict end
- }if
- }def
- /shfill
- {
- AGMCORE_separateShadingDict
- dup/AGMCORE_ignoreshade known
- {pop}
- {AGMCORE_&sysshfill}ifelse
- }def
- /makepattern
- {
- exch
- dup/PatternType get 2 eq
- {
- clonedict
- begin
- /Shading Shading AGMCORE_separateShadingDict def
- Shading/AGMCORE_ignoreshade known
- currentdict end exch
- {pop<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
- exch AGMCORE_&sysmakepattern
- }{
- exch AGMCORE_&usrmakepattern
- }ifelse
- }def
- }if
- }if
- AGMCORE_in_rip_sep{
- /setcustomcolor
- {
- exch aload pop
- dup 7 1 roll inRip_spot_has_ink not {
- 4{4 index mul 4 1 roll}
- repeat
- /DeviceCMYK setcolorspace
- 6 -2 roll pop pop
- }{
- //Adobe_AGM_Core begin
- /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
- end
- [/Separation 4 -1 roll/DeviceCMYK
- {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
- ]
- setcolorspace
- }ifelse
- setcolor
- }ndf
- /setseparationgray
- {
- [/Separation(All)/DeviceGray{}]setcolorspace_opt
- 1 exch sub setcolor
- }ndf
- }{
- /setseparationgray
- {
- AGMCORE_&setgray
- }ndf
- }ifelse
- /findcmykcustomcolor
- {
- 5 makereadonlyarray
- }ndf
- /setcustomcolor
- {
- exch aload pop pop
- 4{4 index mul 4 1 roll}repeat
- setcmykcolor pop
- }ndf
- /has_color
- /colorimage where{
- AGMCORE_producing_seps{
- pop true
- }{
- systemdict eq
- }ifelse
- }{
- false
- }ifelse
- def
- /map_index
- {
- 1 index mul exch getinterval{255 div}forall
- }bdf
- /map_indexed_devn
- {
- Lookup Names length 3 -1 roll cvi map_index
- }bdf
- /n_color_components
- {
- base_colorspace_type
- dup/DeviceGray eq{
- pop 1
- }{
- /DeviceCMYK eq{
- 4
- }{
- 3
- }ifelse
- }ifelse
- }bdf
- level2{
- /mo/moveto ldf
- /li/lineto ldf
- /cv/curveto ldf
- /knockout_unitsq
- {
- 1 setgray
- 0 0 1 1 rectfill
- }def
- level2/setcolorspace AGMCORE_key_known not and{
- /AGMCORE_&&&setcolorspace/setcolorspace ldf
- /AGMCORE_ReplaceMappedColor
- {
- dup type dup/arraytype eq exch/packedarraytype eq or
- {
- /AGMCORE_SpotAliasAry2 where{
- begin
- dup 0 get dup/Separation eq
- {
- pop
- dup length array copy
- dup dup 1 get
- current_spot_alias
- {
- dup map_alias
- {
- false set_spot_alias
- dup 1 exch setsepcolorspace
- true set_spot_alias
- begin
- /sep_colorspace_dict currentdict AGMCORE_gput
- pop pop pop
- [
- /Separation Name
- CSA map_csa
- MappedCSA
- /sep_colorspace_proc load
- ]
- dup Name
- end
- }if
- }if
- map_reserved_ink_name 1 xpt
- }{
- /DeviceN eq
- {
- dup length array copy
- dup dup 1 get[
- exch{
- current_spot_alias{
- dup map_alias{
- /Name get exch pop
- }if
- }if
- map_reserved_ink_name
- }forall
- ]1 xpt
- }if
- }ifelse
- end
- }if
- }if
- }def
- /setcolorspace
- {
- dup type dup/arraytype eq exch/packedarraytype eq or
- {
- dup 0 get/Indexed eq
- {
- AGMCORE_distilling
- {
- /PhotoshopDuotoneList where
- {
- pop false
- }{
- true
- }ifelse
- }{
- true
- }ifelse
- {
- aload pop 3 -1 roll
- AGMCORE_ReplaceMappedColor
- 3 1 roll 4 array astore
- }if
- }{
- AGMCORE_ReplaceMappedColor
- }ifelse
- }if
- DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
- }def
- }if
- }{
- /adj
- {
- currentstrokeadjust{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
- }if
- }def
- /mo{
- adj moveto
- }def
- /li{
- adj lineto
- }def
- /cv{
- 6 2 roll adj
- 6 2 roll adj
- 6 2 roll adj curveto
- }def
- /knockout_unitsq
- {
- 1 setgray
- 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
- }def
- /currentstrokeadjust{
- /currentstrokeadjust AGMCORE_gget
- }def
- /setstrokeadjust{
- /currentstrokeadjust exch AGMCORE_gput
- }def
- /setcolorspace
- {
- /currentcolorspace exch AGMCORE_gput
- }def
- /currentcolorspace
- {
- /currentcolorspace AGMCORE_gget
- }def
- /setcolor_devicecolor
- {
- base_colorspace_type
- dup/DeviceGray eq{
- pop setgray
- }{
- /DeviceCMYK eq{
- setcmykcolor
- }{
- setrgbcolor
- }ifelse
- }ifelse
- }def
- /setcolor
- {
- currentcolorspace 0 get
- dup/DeviceGray ne{
- dup/DeviceCMYK ne{
- dup/DeviceRGB ne{
- dup/Separation eq{
- pop
- currentcolorspace 3 gx
- currentcolorspace 2 get
- }{
- dup/Indexed eq{
- pop
- currentcolorspace 3 get dup type/stringtype eq{
- currentcolorspace 1 get n_color_components
- 3 -1 roll map_index
- }{
- exec
- }ifelse
- currentcolorspace 1 get
- }{
- /AGMCORE_cur_err/AGMCORE_invalid_color_space def
- AGMCORE_invalid_color_space
- }ifelse
- }ifelse
- }if
- }if
- }if
- setcolor_devicecolor
- }def
- }ifelse
- /sop/setoverprint ldf
- /lw/setlinewidth ldf
- /lc/setlinecap ldf
- /lj/setlinejoin ldf
- /ml/setmiterlimit ldf
- /dsh/setdash ldf
- /sadj/setstrokeadjust ldf
- /gry/setgray ldf
- /rgb/setrgbcolor ldf
- /cmyk[
- /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
- /setcmykcolor load dup type/operatortype ne{/exec cvx}if
- ]cvx bdf
- level3 AGMCORE_host_sep not and{
- /nzopmsc{
- 6 dict begin
- /kk exch def
- /yy exch def
- /mm exch def
- /cc exch def
- /sum 0 def
- cc 0 ne{/sum sum 2#1000 or def cc}if
- mm 0 ne{/sum sum 2#0100 or def mm}if
- yy 0 ne{/sum sum 2#0010 or def yy}if
- kk 0 ne{/sum sum 2#0001 or def kk}if
- AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
- sum 0 eq{0}if
- end
- setcolor
- }bdf
- }{
- /nzopmsc/cmyk ldf
- }ifelse
- /sep/setsepcolor ldf
- /devn/setdevicencolor ldf
- /idx/setindexedcolor ldf
- /colr/setcolor ldf
- /csacrd/set_csa_crd ldf
- /sepcs/setsepcolorspace ldf
- /devncs/setdevicencolorspace ldf
- /idxcs/setindexedcolorspace ldf
- /cp/closepath ldf
- /clp/clp_npth ldf
- /eclp/eoclp_npth ldf
- /f/fill ldf
- /ef/eofill ldf
- /@/stroke ldf
- /nclp/npth_clp ldf
- /gset/graphic_setup ldf
- /gcln/graphic_cleanup ldf
- /ct/concat ldf
- /cf/currentfile ldf
- /fl/filter ldf
- /rs/readstring ldf
- /AGMCORE_def_ht currenthalftone def
- /clonedict Adobe_AGM_Utils begin/clonedict load end def
- /clonearray Adobe_AGM_Utils begin/clonearray load end def
- currentdict{
- dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
- bind
- }if
- def
- }forall
- /getrampcolor
- {
- /indx exch def
- 0 1 NumComp 1 sub
- {
- dup
- Samples exch get
- dup type/stringtype eq{indx get}if
- exch
- Scaling exch get aload pop
- 3 1 roll
- mul add
- }for
- ColorSpaceFamily/Separation eq
- {sep}
- {
- ColorSpaceFamily/DeviceN eq
- {devn}{setcolor}ifelse
- }ifelse
- }bdf
- /sssetbackground{
- aload pop
- ColorSpaceFamily/Separation eq
- {sep}
- {
- ColorSpaceFamily/DeviceN eq
- {devn}{setcolor}ifelse
- }ifelse
- }bdf
- /RadialShade
- {
- 40 dict begin
- /ColorSpaceFamily xdf
- /background xdf
- /ext1 xdf
- /ext0 xdf
- /BBox xdf
- /r2 xdf
- /c2y xdf
- /c2x xdf
- /r1 xdf
- /c1y xdf
- /c1x xdf
- /rampdict xdf
- /setinkoverprint where{pop/setinkoverprint{pop}def}if
- gsave
- BBox length 0 gt
- {
- np
- BBox 0 get BBox 1 get moveto
- BBox 2 get BBox 0 get sub 0 rlineto
- 0 BBox 3 get BBox 1 get sub rlineto
- BBox 2 get BBox 0 get sub neg 0 rlineto
- closepath
- clip
- np
- }if
- c1x c2x eq
- {
- c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
- }{
- /slope c2y c1y sub c2x c1x sub div def
- /theta slope 1 atan def
- c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
- c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
- }ifelse
- gsave
- clippath
- c1x c1y translate
- theta rotate
- -90 rotate
- {pathbbox}stopped
- {0 0 0 0}if
- /yMax xdf
- /xMax xdf
- /yMin xdf
- /xMin xdf
- grestore
- xMax xMin eq yMax yMin eq or
- {
- grestore
- end
- }{
- /max{2 copy gt{pop}{exch pop}ifelse}bdf
- /min{2 copy lt{pop}{exch pop}ifelse}bdf
- rampdict begin
- 40 dict begin
- background length 0 gt{background sssetbackground gsave clippath fill grestore}if
- gsave
- c1x c1y translate
- theta rotate
- -90 rotate
- /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
- /c1y 0 def
- /c1x 0 def
- /c2x 0 def
- ext0
- {
- 0 getrampcolor
- c2y r2 add r1 sub 0.0001 lt
- {
- c1x c1y r1 360 0 arcn
- pathbbox
- /aymax exch def
- /axmax exch def
- /aymin exch def
- /axmin exch def
- /bxMin xMin axmin min def
- /byMin yMin aymin min def
- /bxMax xMax axmax max def
- /byMax yMax aymax max def
- bxMin byMin moveto
- bxMax byMin lineto
- bxMax byMax lineto
- bxMin byMax lineto
- bxMin byMin lineto
- eofill
- }{
- c2y r1 add r2 le
- {
- c1x c1y r1 0 360 arc
- fill
- }
- {
- c2x c2y r2 0 360 arc fill
- r1 r2 eq
- {
- /p1x r1 neg def
- /p1y c1y def
- /p2x r1 def
- /p2y c1y def
- p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
- fill
- }{
- /AA r2 r1 sub c2y div def
- AA -1 eq
- {/theta 89.99 def}
- {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
- ifelse
- /SS1 90 theta add dup sin exch cos div def
- /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
- /p1y p1x SS1 div neg def
- /SS2 90 theta sub dup sin exch cos div def
- /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
- /p2y p2x SS2 div neg def
- r1 r2 gt
- {
- /L1maxX p1x yMin p1y sub SS1 div add def
- /L2maxX p2x yMin p2y sub SS2 div add def
- }{
- /L1maxX 0 def
- /L2maxX 0 def
- }ifelse
- p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
- L1maxX L1maxX p1x sub SS1 mul p1y add lineto
- fill
- }ifelse
- }ifelse
- }ifelse
- }if
- c1x c2x sub dup mul
- c1y c2y sub dup mul
- add 0.5 exp
- 0 dtransform
- dup mul exch dup mul add 0.5 exp 72 div
- 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 1 index 1 index lt{exch}if pop
- /hires xdf
- hires mul
- /numpix xdf
- /numsteps NumSamples def
- /rampIndxInc 1 def
- /subsampling false def
- numpix 0 ne
- {
- NumSamples numpix div 0.5 gt
- {
- /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
- /rampIndxInc NumSamples 1 sub numsteps div def
- /subsampling true def
- }if
- }if
- /xInc c2x c1x sub numsteps div def
- /yInc c2y c1y sub numsteps div def
- /rInc r2 r1 sub numsteps div def
- /cx c1x def
- /cy c1y def
- /radius r1 def
- np
- xInc 0 eq yInc 0 eq rInc 0 eq and and
- {
- 0 getrampcolor
- cx cy radius 0 360 arc
- stroke
- NumSamples 1 sub getrampcolor
- cx cy radius 72 hires div add 0 360 arc
- 0 setlinewidth
- stroke
- }{
- 0
- numsteps
- {
- dup
- subsampling{round cvi}if
- getrampcolor
- cx cy radius 0 360 arc
- /cx cx xInc add def
- /cy cy yInc add def
- /radius radius rInc add def
- cx cy radius 360 0 arcn
- eofill
- rampIndxInc add
- }repeat
- pop
- }ifelse
- ext1
- {
- c2y r2 add r1 lt
- {
- c2x c2y r2 0 360 arc
- fill
- }{
- c2y r1 add r2 sub 0.0001 le
- {
- c2x c2y r2 360 0 arcn
- pathbbox
- /aymax exch def
- /axmax exch def
- /aymin exch def
- /axmin exch def
- /bxMin xMin axmin min def
- /byMin yMin aymin min def
- /bxMax xMax axmax max def
- /byMax yMax aymax max def
- bxMin byMin moveto
- bxMax byMin lineto
- bxMax byMax lineto
- bxMin byMax lineto
- bxMin byMin lineto
- eofill
- }{
- c2x c2y r2 0 360 arc fill
- r1 r2 eq
- {
- /p1x r2 neg def
- /p1y c2y def
- /p2x r2 def
- /p2y c2y def
- p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
- fill
- }{
- /AA r2 r1 sub c2y div def
- AA -1 eq
- {/theta 89.99 def}
- {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
- ifelse
- /SS1 90 theta add dup sin exch cos div def
- /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
- /p1y c2y p1x SS1 div sub def
- /SS2 90 theta sub dup sin exch cos div def
- /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
- /p2y c2y p2x SS2 div sub def
- r1 r2 lt
- {
- /L1maxX p1x yMax p1y sub SS1 div add def
- /L2maxX p2x yMax p2y sub SS2 div add def
- }{
- /L1maxX 0 def
- /L2maxX 0 def
- }ifelse
- p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
- L1maxX L1maxX p1x sub SS1 mul p1y add lineto
- fill
- }ifelse
- }ifelse
- }ifelse
- }if
- grestore
- grestore
- end
- end
- end
- }ifelse
- }bdf
- /GenStrips
- {
- 40 dict begin
- /ColorSpaceFamily xdf
- /background xdf
- /ext1 xdf
- /ext0 xdf
- /BBox xdf
- /y2 xdf
- /x2 xdf
- /y1 xdf
- /x1 xdf
- /rampdict xdf
- /setinkoverprint where{pop/setinkoverprint{pop}def}if
- gsave
- BBox length 0 gt
- {
- np
- BBox 0 get BBox 1 get moveto
- BBox 2 get BBox 0 get sub 0 rlineto
- 0 BBox 3 get BBox 1 get sub rlineto
- BBox 2 get BBox 0 get sub neg 0 rlineto
- closepath
- clip
- np
- }if
- x1 x2 eq
- {
- y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
- }{
- /slope y2 y1 sub x2 x1 sub div def
- /theta slope 1 atan def
- x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
- x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
- }
- ifelse
- gsave
- clippath
- x1 y1 translate
- theta rotate
- {pathbbox}stopped
- {0 0 0 0}if
- /yMax exch def
- /xMax exch def
- /yMin exch def
- /xMin exch def
- grestore
- xMax xMin eq yMax yMin eq or
- {
- grestore
- end
- }{
- rampdict begin
- 20 dict begin
- background length 0 gt{background sssetbackground gsave clippath fill grestore}if
- gsave
- x1 y1 translate
- theta rotate
- /xStart 0 def
- /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
- /ySpan yMax yMin sub def
- /numsteps NumSamples def
- /rampIndxInc 1 def
- /subsampling false def
- xStart 0 transform
- xEnd 0 transform
- 3 -1 roll
- sub dup mul
- 3 1 roll
- sub dup mul
- add 0.5 exp 72 div
- 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 1 index 1 index lt{exch}if pop
- mul
- /numpix xdf
- numpix 0 ne
- {
- NumSamples numpix div 0.5 gt
- {
- /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
- /rampIndxInc NumSamples 1 sub numsteps div def
- /subsampling true def
- }if
- }if
- ext0
- {
- 0 getrampcolor
- xMin xStart lt
- {
- xMin yMin xMin neg ySpan rectfill
- }if
- }if
- /xInc xEnd xStart sub numsteps div def
- /x xStart def
- 0
- numsteps
- {
- dup
- subsampling{round cvi}if
- getrampcolor
- x yMin xInc ySpan rectfill
- /x x xInc add def
- rampIndxInc add
- }repeat
- pop
- ext1{
- xMax xEnd gt
- {
- xEnd yMin xMax xEnd sub ySpan rectfill
- }if
- }if
- grestore
- grestore
- end
- end
- end
- }ifelse
- }bdf
-}def
-/pt
-{
- end
-}def
-/dt{
-}def
-/pgsv{
- //Adobe_AGM_Core/AGMCORE_save save put
-}def
-/pgrs{
- //Adobe_AGM_Core/AGMCORE_save get restore
-}def
-systemdict/findcolorrendering known{
- /findcolorrendering systemdict/findcolorrendering get def
-}if
-systemdict/setcolorrendering known{
- /setcolorrendering systemdict/setcolorrendering get def
-}if
-/test_cmyk_color_plate
-{
- gsave
- setcmykcolor currentgray 1 ne
- grestore
-}def
-/inRip_spot_has_ink
-{
- dup//Adobe_AGM_Core/AGMCORE_name xddf
- convert_spot_to_process not
-}def
-/map255_to_range
-{
- 1 index sub
- 3 -1 roll 255 div mul add
-}def
-/set_csa_crd
-{
- /sep_colorspace_dict null AGMCORE_gput
- begin
- CSA get_csa_by_name setcolorspace_opt
- set_crd
- end
-}
-def
-/map_csa
-{
- currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
- {pop}{get_csa_by_name/MappedCSA xdf}ifelse
-}def
-/setsepcolor
-{
- /sep_colorspace_dict AGMCORE_gget begin
- dup/sep_tint exch AGMCORE_gput
- TintProc
- end
-}def
-/setdevicencolor
-{
- /devicen_colorspace_dict AGMCORE_gget begin
- Names length copy
- Names length 1 sub -1 0
- {
- /devicen_tints AGMCORE_gget 3 1 roll xpt
- }for
- TintProc
- end
-}def
-/sep_colorspace_proc
-{
- /AGMCORE_tmp exch store
- /sep_colorspace_dict AGMCORE_gget begin
- currentdict/Components known{
- Components aload pop
- TintMethod/Lab eq{
- 2{AGMCORE_tmp mul NComponents 1 roll}repeat
- LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
- }{
- TintMethod/Subtractive eq{
- NComponents{
- AGMCORE_tmp mul NComponents 1 roll
- }repeat
- }{
- NComponents{
- 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
- }repeat
- }ifelse
- }ifelse
- }{
- ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
- aload pop
- }ifelse
- end
-}def
-/sep_colorspace_gray_proc
-{
- /AGMCORE_tmp exch store
- /sep_colorspace_dict AGMCORE_gget begin
- GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
- end
-}def
-/sep_proc_name
-{
- dup 0 get
- dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
- pop[/DeviceGray]
- /sep_colorspace_gray_proc
- }{
- /sep_colorspace_proc
- }ifelse
-}def
-/setsepcolorspace
-{
- current_spot_alias{
- dup begin
- Name map_alias{
- exch pop
- }if
- end
- }if
- dup/sep_colorspace_dict exch AGMCORE_gput
- begin
- CSA map_csa
- /AGMCORE_sep_special Name dup()eq exch(All)eq or store
- AGMCORE_avoid_L2_sep_space{
- [/Indexed MappedCSA sep_proc_name 255 exch
- {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
- ]setcolorspace_opt
- /TintProc{
- 255 mul round cvi setcolor
- }bdf
- }{
- MappedCSA 0 get/DeviceCMYK eq
- currentdict/Components known and
- AGMCORE_sep_special not and{
- /TintProc[
- Components aload pop Name findcmykcustomcolor
- /exch cvx/setcustomcolor cvx
- ]cvx bdf
- }{
- AGMCORE_host_sep Name(All)eq and{
- /TintProc{
- 1 exch sub setseparationgray
- }bdf
- }{
- AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
- AGMCORE_host_sep or
- Name()eq and{
- /TintProc[
- MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
- cvx/setcmykcolor cvx
- }{
- cvx/setgray cvx
- }ifelse
- ]cvx bdf
- }{
- AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
- /TintProc[
- /dup cvx
- MappedCSA sep_proc_name cvx exch
- 0 get/DeviceGray eq{
- 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
- }if
- /Name cvx/findcmykcustomcolor cvx/exch cvx
- AGMCORE_host_sep{
- AGMCORE_is_cmyk_sep
- /Name cvx
- /AGMCORE_IsSeparationAProcessColor load/exec cvx
- /not cvx/and cvx
- }{
- Name inRip_spot_has_ink not
- }ifelse
- [
- /pop cvx 1
- ]cvx/if cvx
- /setcustomcolor cvx
- ]cvx bdf
- }{
- /TintProc{setcolor}bdf
- [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- set_crd
- setsepcolor
- end
-}def
-/additive_blend
-{
- 3 dict begin
- /numarrays xdf
- /numcolors xdf
- 0 1 numcolors 1 sub
- {
- /c1 xdf
- 1
- 0 1 numarrays 1 sub
- {
- 1 exch add/index cvx
- c1/get cvx/mul cvx
- }for
- numarrays 1 add 1/roll cvx
- }for
- numarrays[/pop cvx]cvx/repeat cvx
- end
-}def
-/subtractive_blend
-{
- 3 dict begin
- /numarrays xdf
- /numcolors xdf
- 0 1 numcolors 1 sub
- {
- /c1 xdf
- 1 1
- 0 1 numarrays 1 sub
- {
- 1 3 3 -1 roll add/index cvx
- c1/get cvx/sub cvx/mul cvx
- }for
- /sub cvx
- numarrays 1 add 1/roll cvx
- }for
- numarrays[/pop cvx]cvx/repeat cvx
- end
-}def
-/exec_tint_transform
-{
- /TintProc[
- /TintTransform cvx/setcolor cvx
- ]cvx bdf
- MappedCSA setcolorspace_opt
-}bdf
-/devn_makecustomcolor
-{
- 2 dict begin
- /names_index xdf
- /Names xdf
- 1 1 1 1 Names names_index get findcmykcustomcolor
- /devicen_tints AGMCORE_gget names_index get setcustomcolor
- Names length{pop}repeat
- end
-}bdf
-/setdevicencolorspace
-{
- dup/AliasedColorants known{false}{true}ifelse
- current_spot_alias and{
- 7 dict begin
- /names_index 0 def
- dup/names_len exch/Names get length def
- /new_names names_len array def
- /new_LookupTables names_len array def
- /alias_cnt 0 def
- dup/Names get
- {
- dup map_alias{
- exch pop
- dup/ColorLookup known{
- dup begin
- new_LookupTables names_index ColorLookup put
- end
- }{
- dup/Components known{
- dup begin
- new_LookupTables names_index Components put
- end
- }{
- dup begin
- new_LookupTables names_index[null null null null]put
- end
- }ifelse
- }ifelse
- new_names names_index 3 -1 roll/Name get put
- /alias_cnt alias_cnt 1 add def
- }{
- /name xdf
- new_names names_index name put
- dup/LookupTables known{
- dup begin
- new_LookupTables names_index LookupTables names_index get put
- end
- }{
- dup begin
- new_LookupTables names_index[null null null null]put
- end
- }ifelse
- }ifelse
- /names_index names_index 1 add def
- }forall
- alias_cnt 0 gt{
- /AliasedColorants true def
- /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
- 0 1 names_len 1 sub{
- /names_index xdf
- new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
- /AliasedColorants false def
- exit
- }{
- new_LookupTables names_index get 0 get null eq{
- dup/Names get names_index get/name xdf
- name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
- or or or not{
- /AliasedColorants false def
- exit
- }if
- }if
- }ifelse
- }for
- lut_entry_len 1 eq{
- /AliasedColorants false def
- }if
- AliasedColorants{
- dup begin
- /Names new_names def
- /LookupTables new_LookupTables def
- /AliasedColorants true def
- /NComponents lut_entry_len def
- /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
- /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
- currentdict/TTTablesIdx known not{
- /TTTablesIdx -1 def
- }if
- end
- }if
- }if
- end
- }if
- dup/devicen_colorspace_dict exch AGMCORE_gput
- begin
- currentdict/AliasedColorants known{
- AliasedColorants
- }{
- false
- }ifelse
- dup not{
- CSA map_csa
- }if
- /TintTransform load type/nulltype eq or{
- /TintTransform[
- 0 1 Names length 1 sub
- {
- /TTTablesIdx TTTablesIdx 1 add def
- dup LookupTables exch get dup 0 get null eq
- {
- 1 index
- Names exch get
- dup(Cyan)eq
- {
- pop exch
- LookupTables length exch sub
- /index cvx
- 0 0 0
- }
- {
- dup(Magenta)eq
- {
- pop exch
- LookupTables length exch sub
- /index cvx
- 0/exch cvx 0 0
- }{
- (Yellow)eq
- {
- exch
- LookupTables length exch sub
- /index cvx
- 0 0 3 -1/roll cvx 0
- }{
- exch
- LookupTables length exch sub
- /index cvx
- 0 0 0 4 -1/roll cvx
- }ifelse
- }ifelse
- }ifelse
- 5 -1/roll cvx/astore cvx
- }{
- dup length 1 sub
- LookupTables length 4 -1 roll sub 1 add
- /index cvx/mul cvx/round cvx/cvi cvx/get cvx
- }ifelse
- Names length TTTablesIdx add 1 add 1/roll cvx
- }for
- Names length[/pop cvx]cvx/repeat cvx
- NComponents Names length
- TintMethod/Subtractive eq
- {
- subtractive_blend
- }{
- additive_blend
- }ifelse
- ]cvx bdf
- }if
- AGMCORE_host_sep{
- Names convert_to_process{
- exec_tint_transform
- }
- {
- currentdict/AliasedColorants known{
- AliasedColorants not
- }{
- false
- }ifelse
- 5 dict begin
- /AvoidAliasedColorants xdf
- /painted? false def
- /names_index 0 def
- /names_len Names length def
- AvoidAliasedColorants{
- /currentspotalias current_spot_alias def
- false set_spot_alias
- }if
- Names{
- AGMCORE_is_cmyk_sep{
- dup(Cyan)eq AGMCORE_cyan_plate and exch
- dup(Magenta)eq AGMCORE_magenta_plate and exch
- dup(Yellow)eq AGMCORE_yellow_plate and exch
- (Black)eq AGMCORE_black_plate and or or or{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- Names names_index/devn_makecustomcolor cvx
- ]cvx ddf
- /painted? true def
- }if
- painted?{exit}if
- }{
- 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- Names names_index/devn_makecustomcolor cvx
- ]cvx ddf
- /painted? true def
- exit
- }if
- }ifelse
- /names_index names_index 1 add def
- }forall
- AvoidAliasedColorants{
- currentspotalias set_spot_alias
- }if
- painted?{
- /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
- }{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
- 0 0 0 0/setcmykcolor cvx
- ]cvx ddf
- }ifelse
- end
- }ifelse
- }
- {
- AGMCORE_in_rip_sep{
- Names convert_to_process not
- }{
- level3
- }ifelse
- {
- [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
- /TintProc level3 not AGMCORE_in_rip_sep and{
- [
- Names/length cvx[/pop cvx]cvx/repeat cvx
- ]cvx bdf
- }{
- {setcolor}bdf
- }ifelse
- }{
- exec_tint_transform
- }ifelse
- }ifelse
- set_crd
- /AliasedColorants false def
- end
-}def
-/setindexedcolorspace
-{
- dup/indexed_colorspace_dict exch AGMCORE_gput
- begin
- currentdict/CSDBase known{
- CSDBase/CSD get_res begin
- currentdict/Names known{
- currentdict devncs
- }{
- 1 currentdict sepcs
- }ifelse
- AGMCORE_host_sep{
- 4 dict begin
- /compCnt/Names where{pop Names length}{1}ifelse def
- /NewLookup HiVal 1 add string def
- 0 1 HiVal{
- /tableIndex xdf
- Lookup dup type/stringtype eq{
- compCnt tableIndex map_index
- }{
- exec
- }ifelse
- /Names where{
- pop setdevicencolor
- }{
- setsepcolor
- }ifelse
- currentgray
- tableIndex exch
- 255 mul cvi
- NewLookup 3 1 roll put
- }for
- [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
- end
- }{
- level3
- {
- currentdict/Names known{
- [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
- }{
- [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
- }ifelse
- }{
- [/Indexed MappedCSA HiVal
- [
- currentdict/Names known{
- Lookup dup type/stringtype eq
- {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
- {/exec cvx}ifelse
- /TintTransform load/exec cvx
- }{
- Lookup dup type/stringtype eq
- {/exch cvx/get cvx 255/div cvx}
- {/exec cvx}ifelse
- CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
- }ifelse
- ]cvx
- ]setcolorspace_opt
- }ifelse
- }ifelse
- end
- set_crd
- }
- {
- CSA map_csa
- AGMCORE_host_sep level2 not and{
- 0 0 0 0 setcmykcolor
- }{
- [/Indexed MappedCSA
- level2 not has_color not and{
- dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
- pop[/DeviceGray]
- }if
- HiVal GrayLookup
- }{
- HiVal
- currentdict/RangeArray known{
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- Lookup exch
- dup HiVal gt{
- pop HiVal
- }if
- NComponents mul NComponents getinterval{}forall
- NComponents 1 sub -1 0{
- RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
- NComponents 1 roll
- }for
- end
- }bind
- }{
- Lookup
- }ifelse
- }ifelse
- ]setcolorspace_opt
- set_crd
- }ifelse
- }ifelse
- end
-}def
-/setindexedcolor
-{
- AGMCORE_host_sep{
- /indexed_colorspace_dict AGMCORE_gget
- begin
- currentdict/CSDBase known{
- CSDBase/CSD get_res begin
- currentdict/Names known{
- map_indexed_devn
- devn
- }
- {
- Lookup 1 3 -1 roll map_index
- sep
- }ifelse
- end
- }{
- Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
- map_index
- MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
- }ifelse
- end
- }{
- level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
- /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
- map_indexed_devn
- devn
- end
- }
- {
- setcolor
- }ifelse
- }ifelse
-}def
-/ignoreimagedata
-{
- currentoverprint not{
- gsave
- dup clonedict begin
- 1 setgray
- /Decode[0 1]def
- /DataSource<FF>def
- /MultipleDataSources false def
- /BitsPerComponent 8 def
- currentdict end
- systemdict/image gx
- grestore
- }if
- consumeimagedata
-}def
-/add_res
-{
- dup/CSD eq{
- pop
- //Adobe_AGM_Core begin
- /AGMCORE_CSD_cache load 3 1 roll put
- end
- }{
- defineresource pop
- }ifelse
-}def
-/del_res
-{
- {
- aload pop exch
- dup/CSD eq{
- pop
- {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
- }{
- exch
- {1 index undefineresource}forall
- pop
- }ifelse
- }forall
-}def
-/get_res
-{
- dup/CSD eq{
- pop
- dup type dup/nametype eq exch/stringtype eq or{
- AGMCORE_CSD_cache exch get
- }if
- }{
- findresource
- }ifelse
-}def
-/get_csa_by_name
-{
- dup type dup/nametype eq exch/stringtype eq or{
- /CSA get_res
- }if
-}def
-/paintproc_buf_init
-{
- /count get 0 0 put
-}def
-/paintproc_buf_next
-{
- dup/count get dup 0 get
- dup 3 1 roll
- 1 add 0 xpt
- get
-}def
-/cachepaintproc_compress
-{
- 5 dict begin
- currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
- /ppdict 20 dict def
- /string_size 16000 def
- /readbuffer string_size string def
- currentglobal true setglobal
- ppdict 1 array dup 0 1 put/count xpt
- setglobal
- /LZWFilter
- {
- exch
- dup length 0 eq{
- pop
- }{
- ppdict dup length 1 sub 3 -1 roll put
- }ifelse
- {string_size}{0}ifelse string
- }/LZWEncode filter def
- {
- ReadFilter readbuffer readstring
- exch LZWFilter exch writestring
- not{exit}if
- }loop
- LZWFilter closefile
- ppdict
- end
-}def
-/cachepaintproc
-{
- 2 dict begin
- currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
- /ppdict 20 dict def
- currentglobal true setglobal
- ppdict 1 array dup 0 1 put/count xpt
- setglobal
- {
- ReadFilter 16000 string readstring exch
- ppdict dup length 1 sub 3 -1 roll put
- not{exit}if
- }loop
- ppdict dup dup length 1 sub()put
- end
-}def
-/make_pattern
-{
- exch clonedict exch
- dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
- exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
- exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
- matrix translate exch matrix concatmatrix
- 1 index begin
- BBox 0 get XStep div cvi XStep mul/xshift exch neg def
- BBox 1 get YStep div cvi YStep mul/yshift exch neg def
- BBox 0 get xshift add
- BBox 1 get yshift add
- BBox 2 get xshift add
- BBox 3 get yshift add
- 4 array astore
- /BBox exch def
- [xshift yshift/translate load null/exec load]dup
- 3/PaintProc load put cvx/PaintProc exch def
- end
- gsave 0 setgray
- makepattern
- grestore
-}def
-/set_pattern
-{
- dup/PatternType get 1 eq{
- dup/PaintType get 1 eq{
- currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
- }if
- }if
- setpattern
-}def
-/setcolorspace_opt
-{
- dup currentcolorspace eq{pop}{setcolorspace}ifelse
-}def
-/updatecolorrendering
-{
- currentcolorrendering/RenderingIntent known{
- currentcolorrendering/RenderingIntent get
- }
- {
- Intent/AbsoluteColorimetric eq
- {
- /absolute_colorimetric_crd AGMCORE_gget dup null eq
- }
- {
- Intent/RelativeColorimetric eq
- {
- /relative_colorimetric_crd AGMCORE_gget dup null eq
- }
- {
- Intent/Saturation eq
- {
- /saturation_crd AGMCORE_gget dup null eq
- }
- {
- /perceptual_crd AGMCORE_gget dup null eq
- }ifelse
- }ifelse
- }ifelse
- {
- pop null
- }
- {
- /RenderingIntent known{null}{Intent}ifelse
- }ifelse
- }ifelse
- Intent ne{
- Intent/ColorRendering{findresource}stopped
- {
- pop pop systemdict/findcolorrendering known
- {
- Intent findcolorrendering
- {
- /ColorRendering findresource true exch
- }
- {
- /ColorRendering findresource
- product(Xerox Phaser 5400)ne
- exch
- }ifelse
- dup Intent/AbsoluteColorimetric eq
- {
- /absolute_colorimetric_crd exch AGMCORE_gput
- }
- {
- Intent/RelativeColorimetric eq
- {
- /relative_colorimetric_crd exch AGMCORE_gput
- }
- {
- Intent/Saturation eq
- {
- /saturation_crd exch AGMCORE_gput
- }
- {
- Intent/Perceptual eq
- {
- /perceptual_crd exch AGMCORE_gput
- }
- {
- pop
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- 1 index{exch}{pop}ifelse
- }
- {false}ifelse
- }
- {true}ifelse
- {
- dup begin
- currentdict/TransformPQR known{
- currentdict/TransformPQR get aload pop
- 3{{}eq 3 1 roll}repeat or or
- }
- {true}ifelse
- currentdict/MatrixPQR known{
- currentdict/MatrixPQR get aload pop
- 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
- 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
- 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
- and and and and and and and and
- }
- {true}ifelse
- end
- or
- {
- clonedict begin
- /TransformPQR[
- {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
- 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
- {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
- 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
- {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
- 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
- ]def
- /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
- /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
- currentdict end
- }if
- setcolorrendering_opt
- }if
- }if
-}def
-/set_crd
-{
- AGMCORE_host_sep not level2 and{
- currentdict/ColorRendering known{
- ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
- }{
- currentdict/Intent known{
- updatecolorrendering
- }if
- }ifelse
- currentcolorspace dup type/arraytype eq
- {0 get}if
- /DeviceRGB eq
- {
- currentdict/UCR known
- {/UCR}{/AGMCORE_currentucr}ifelse
- load setundercolorremoval
- currentdict/BG known
- {/BG}{/AGMCORE_currentbg}ifelse
- load setblackgeneration
- }if
- }if
-}def
-/set_ucrbg
-{
- dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse
- dup currentblackgeneration eq {pop}{setblackgeneration}ifelse
- dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse
- dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse
-}def
-/setcolorrendering_opt
-{
- dup currentcolorrendering eq{
- pop
- }{
- product(HP Color LaserJet 2605)anchorsearch{
- pop pop pop
- }{
- pop
- clonedict
- begin
- /Intent Intent def
- currentdict
- end
- setcolorrendering
- }ifelse
- }ifelse
-}def
-/cpaint_gcomp
-{
- convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
- //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
- {
- (%end_cpaint_gcomp)flushinput
- }if
-}def
-/cpaint_gsep
-{
- //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
- {
- (%end_cpaint_gsep)flushinput
- }if
-}def
-/cpaint_gend
-{np}def
-/T1_path
-{
- currentfile token pop currentfile token pop mo
- {
- currentfile token pop dup type/stringtype eq
- {pop exit}if
- 0 exch rlineto
- currentfile token pop dup type/stringtype eq
- {pop exit}if
- 0 rlineto
- }loop
-}def
-/T1_gsave
- level3
- {/clipsave}
- {/gsave}ifelse
- load def
-/T1_grestore
- level3
- {/cliprestore}
- {/grestore}ifelse
- load def
-/set_spot_alias_ary
-{
- dup inherit_aliases
- //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
-}def
-/set_spot_normalization_ary
-{
- dup inherit_aliases
- dup length
- /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
- array
- //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
- /AGMCORE_SpotAliasAry where{
- pop
- AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
- AGMCORE_SpotAliasAry length
- }{0}ifelse
- AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
- true set_spot_alias
-}def
-/inherit_aliases
-{
- {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
-}def
-/set_spot_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- /AGMCORE_current_spot_alias 3 -1 roll put
- }{
- pop
- }ifelse
-}def
-/current_spot_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- /AGMCORE_current_spot_alias get
- }{
- false
- }ifelse
-}def
-/map_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- begin
- /AGMCORE_name xdf
- false
- AGMCORE_SpotAliasAry2{
- dup/Name get AGMCORE_name eq{
- /CSD get/CSD get_res
- exch pop true
- exit
- }{
- pop
- }ifelse
- }forall
- end
- }{
- pop false
- }ifelse
-}bdf
-/spot_alias
-{
- true set_spot_alias
- /AGMCORE_&setcustomcolor AGMCORE_key_known not{
- //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
- }if
- /customcolor_tint 1 AGMCORE_gput
- //Adobe_AGM_Core begin
- /setcustomcolor
- {
- //Adobe_AGM_Core begin
- dup/customcolor_tint exch AGMCORE_gput
- 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
- current_spot_alias and{1 index 4 get map_alias}{false}ifelse
- {
- false set_spot_alias
- /sep_colorspace_dict AGMCORE_gget null ne
- {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse
- 3 1 roll 2 index{
- exch pop/sep_tint AGMCORE_gget exch
- }if
- mark 3 1 roll
- setsepcolorspace
- counttomark 0 ne{
- setsepcolor
- }if
- pop
- not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if
- pop
- true set_spot_alias
- }{
- AGMCORE_&setcustomcolor
- }ifelse
- end
- }bdf
- end
-}def
-/begin_feature
-{
- Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
- count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
- {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
-}def
-/end_feature
-{
- 2 dict begin
- /spd/setpagedevice load def
- /setpagedevice{get_gstate spd set_gstate}def
- stopped{$error/newerror false put}if
- end
- count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
- countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
- {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
-}def
-/set_negative
-{
- //Adobe_AGM_Core begin
- /AGMCORE_inverting exch def
- level2{
- currentpagedevice/NegativePrint known AGMCORE_distilling not and{
- currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
- true begin_feature true{
- <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
- }end_feature
- }if
- /AGMCORE_inverting false def
- }if
- }if
- AGMCORE_inverting{
- [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
- AGMCORE_distilling{
- erasepage
- }{
- gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
- /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
- }ifelse
- }if
- end
-}def
-/lw_save_restore_override{
- /md where{
- pop
- md begin
- initializepage
- /initializepage{}def
- /pmSVsetup{}def
- /endp{}def
- /pse{}def
- /psb{}def
- /orig_showpage where
- {pop}
- {/orig_showpage/showpage load def}
- ifelse
- /showpage{orig_showpage gR}def
- end
- }if
-}def
-/pscript_showpage_override{
- /NTPSOct95 where
- {
- begin
- showpage
- save
- /showpage/restore load def
- /restore{exch pop}def
- end
- }if
-}def
-/driver_media_override
-{
- /md where{
- pop
- md/initializepage known{
- md/initializepage{}put
- }if
- md/rC known{
- md/rC{4{pop}repeat}put
- }if
- }if
- /mysetup where{
- /mysetup[1 0 0 1 0 0]put
- }if
- Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
- level2
- {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
-}def
-/capture_mysetup
-{
- /Pscript_Win_Data where{
- pop
- Pscript_Win_Data/mysetup known{
- Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
- }if
- }if
-}def
-/restore_mysetup
-{
- /Pscript_Win_Data where{
- pop
- Pscript_Win_Data/mysetup known{
- Adobe_AGM_Core/save_mysetup known{
- Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
- Adobe_AGM_Core/save_mysetup undef
- }if
- }if
- }if
-}def
-/driver_check_media_override
-{
- /PrepsDict where
- {pop}
- {
- Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
- Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
- {
- Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
- Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
- }if
- {
- Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
- }if
- }ifelse
-}def
-AGMCORE_err_strings begin
- /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
- /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
- /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
-end
-/set_def_ht
-{AGMCORE_def_ht sethalftone}def
-/set_def_flat
-{AGMCORE_Default_flatness setflat}def
-end
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-%%BeginResource: procset Adobe_CoolType_Core 2.31 0
-%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
-%%Version: 2.31 0
-10 dict begin
-/Adobe_CoolType_Passthru currentdict def
-/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
-Adobe_CoolType_Core_Defined
- {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
-if
-userdict/Adobe_CoolType_Core 70 dict dup begin put
-/Adobe_CoolType_Version 2.31 def
-/Level2?
- systemdict/languagelevel known dup
- {pop systemdict/languagelevel get 2 ge}
- if def
-Level2? not
- {
- /currentglobal false def
- /setglobal/pop load def
- /gcheck{pop false}bind def
- /currentpacking false def
- /setpacking/pop load def
- /SharedFontDirectory 0 dict def
- }
-if
-currentpacking
-true setpacking
-currentglobal false setglobal
-userdict/Adobe_CoolType_Data 2 copy known not
- {2 copy 10 dict put}
-if
-get
- begin
- /@opStackCountByLevel 32 dict def
- /@opStackLevel 0 def
- /@dictStackCountByLevel 32 dict def
- /@dictStackLevel 0 def
- end
-setglobal
-currentglobal true setglobal
-userdict/Adobe_CoolType_GVMFonts known not
- {userdict/Adobe_CoolType_GVMFonts 10 dict put}
-if
-setglobal
-currentglobal false setglobal
-userdict/Adobe_CoolType_LVMFonts known not
- {userdict/Adobe_CoolType_LVMFonts 10 dict put}
-if
-setglobal
-/ct_VMDictPut
- {
- dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
- 3 1 roll put
- }bind def
-/ct_VMDictUndef
- {
- dup Adobe_CoolType_GVMFonts exch known
- {Adobe_CoolType_GVMFonts exch undef}
- {
- dup Adobe_CoolType_LVMFonts exch known
- {Adobe_CoolType_LVMFonts exch undef}
- {pop}
- ifelse
- }ifelse
- }bind def
-/ct_str1 1 string def
-/ct_xshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- _ct_x _ct_y moveto
- 0
- rmoveto
- }
- ifelse
- /_ct_i _ct_i 1 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/ct_yshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- _ct_x _ct_y moveto
- 0 exch
- rmoveto
- }
- ifelse
- /_ct_i _ct_i 1 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/ct_xyshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- {_ct_na _ct_i 1 add get}stopped
- {pop pop pop}
- {
- _ct_x _ct_y moveto
- rmoveto
- }
- ifelse
- }
- ifelse
- /_ct_i _ct_i 2 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
-/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
-/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
-currentglobal true setglobal
-/ct_T3Defs
-{
-/BuildChar
-{
- 1 index/Encoding get exch get
- 1 index/BuildGlyph get exec
-}bind def
-/BuildGlyph
-{
- exch begin
- GlyphProcs exch get exec
- end
-}bind def
-}bind def
-setglobal
-/@_SaveStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@vmState currentglobal def false setglobal
- @opStackCountByLevel
- @opStackLevel
- 2 copy known not
- {
- 2 copy
- 3 dict dup/args
- 7 index
- 5 add array put
- put get
- }
- {
- get dup/args get dup length 3 index lt
- {
- dup length 5 add array exch
- 1 index exch 0 exch putinterval
- 1 index exch/args exch put
- }
- {pop}
- ifelse
- }
- ifelse
- begin
- count 1 sub
- 1 index lt
- {pop count}
- if
- dup/argCount exch def
- dup 0 gt
- {
- args exch 0 exch getinterval
- astore pop
- }
- {pop}
- ifelse
- count
- /restCount exch def
- end
- /@opStackLevel @opStackLevel 1 add def
- countdictstack 1 sub
- @dictStackCountByLevel exch @dictStackLevel exch put
- /@dictStackLevel @dictStackLevel 1 add def
- @vmState setglobal
- end
- }bind def
-/@_RestoreStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@opStackLevel @opStackLevel 1 sub def
- @opStackCountByLevel @opStackLevel get
- begin
- count restCount sub dup 0 gt
- {{pop}repeat}
- {pop}
- ifelse
- args 0 argCount getinterval{}forall
- end
- /@dictStackLevel @dictStackLevel 1 sub def
- @dictStackCountByLevel @dictStackLevel get
- end
- countdictstack exch sub dup 0 gt
- {{end}repeat}
- {pop}
- ifelse
- }bind def
-/@_PopStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@opStackLevel @opStackLevel 1 sub def
- /@dictStackLevel @dictStackLevel 1 sub def
- end
- }bind def
-/@Raise
- {
- exch cvx exch errordict exch get exec
- stop
- }bind def
-/@ReRaise
- {
- cvx $error/errorname get errordict exch get exec
- stop
- }bind def
-/@Stopped
- {
- 0 @#Stopped
- }bind def
-/@#Stopped
- {
- @_SaveStackLevels
- stopped
- {@_RestoreStackLevels true}
- {@_PopStackLevels false}
- ifelse
- }bind def
-/@Arg
- {
- Adobe_CoolType_Data
- begin
- @opStackCountByLevel @opStackLevel 1 sub get
- begin
- args exch
- argCount 1 sub exch sub get
- end
- end
- }bind def
-currentglobal true setglobal
-/CTHasResourceForAllBug
- Level2?
- {
- 1 dict dup
- /@shouldNotDisappearDictValue true def
- Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
- begin
- count @_SaveStackLevels
- {(*){pop stop}128 string/Category resourceforall}
- stopped pop
- @_RestoreStackLevels
- currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
- {
- /@shouldNotDisappearDictValue known
- {
- {
- end
- currentdict 1 index eq
- {pop exit}
- if
- }
- loop
- }
- if
- }
- {
- pop
- end
- }
- ifelse
- }
- {false}
- ifelse
- def
-true setglobal
-/CTHasResourceStatusBug
- Level2?
- {
- mark
- {/steveamerige/Category resourcestatus}
- stopped
- {cleartomark true}
- {cleartomark currentglobal not}
- ifelse
- }
- {false}
- ifelse
- def
-setglobal
-/CTResourceStatus
- {
- mark 3 1 roll
- /Category findresource
- begin
- ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
- {cleartomark false}
- {{3 2 roll pop true}{cleartomark false}ifelse}
- ifelse
- end
- }bind def
-/CTWorkAroundBugs
- {
- Level2?
- {
- /cid_PreLoad/ProcSet resourcestatus
- {
- pop pop
- currentglobal
- mark
- {
- (*)
- {
- dup/CMap CTHasResourceStatusBug
- {CTResourceStatus}
- {resourcestatus}
- ifelse
- {
- pop dup 0 eq exch 1 eq or
- {
- dup/CMap findresource gcheck setglobal
- /CMap undefineresource
- }
- {
- pop CTHasResourceForAllBug
- {exit}
- {stop}
- ifelse
- }
- ifelse
- }
- {pop}
- ifelse
- }
- 128 string/CMap resourceforall
- }
- stopped
- {cleartomark}
- stopped pop
- setglobal
- }
- if
- }
- if
- }bind def
-/ds
- {
- Adobe_CoolType_Core
- begin
- CTWorkAroundBugs
- /mo/moveto load def
- /nf/newencodedfont load def
- /msf{makefont setfont}bind def
- /uf{dup undefinefont ct_VMDictUndef}bind def
- /ur/undefineresource load def
- /chp/charpath load def
- /awsh/awidthshow load def
- /wsh/widthshow load def
- /ash/ashow load def
- /@xshow/xshow load def
- /@yshow/yshow load def
- /@xyshow/xyshow load def
- /@cshow/cshow load def
- /sh/show load def
- /rp/repeat load def
- /.n/.notdef def
- end
- currentglobal false setglobal
- userdict/Adobe_CoolType_Data 2 copy known not
- {2 copy 10 dict put}
- if
- get
- begin
- /AddWidths? false def
- /CC 0 def
- /charcode 2 string def
- /@opStackCountByLevel 32 dict def
- /@opStackLevel 0 def
- /@dictStackCountByLevel 32 dict def
- /@dictStackLevel 0 def
- /InVMFontsByCMap 10 dict def
- /InVMDeepCopiedFonts 10 dict def
- end
- setglobal
- }bind def
-/dt
- {
- currentdict Adobe_CoolType_Core eq
- {end}
- if
- }bind def
-/ps
- {
- Adobe_CoolType_Core begin
- Adobe_CoolType_GVMFonts begin
- Adobe_CoolType_LVMFonts begin
- SharedFontDirectory begin
- }bind def
-/pt
- {
- end
- end
- end
- end
- }bind def
-/unload
- {
- systemdict/languagelevel known
- {
- systemdict/languagelevel get 2 ge
- {
- userdict/Adobe_CoolType_Core 2 copy known
- {undef}
- {pop pop}
- ifelse
- }
- if
- }
- if
- }bind def
-/ndf
- {
- 1 index where
- {pop pop pop}
- {dup xcheck{bind}if def}
- ifelse
- }def
-/findfont systemdict
- begin
- userdict
- begin
- /globaldict where{/globaldict get begin}if
- dup where pop exch get
- /globaldict where{pop end}if
- end
- end
-Adobe_CoolType_Core_Defined
- {/systemfindfont exch def}
- {
- /findfont 1 index def
- /systemfindfont exch def
- }
-ifelse
-/undefinefont
- {pop}ndf
-/copyfont
- {
- currentglobal 3 1 roll
- 1 index gcheck setglobal
- dup null eq{0}{dup length}ifelse
- 2 index length add 1 add dict
- begin
- exch
- {
- 1 index/FID eq
- {pop pop}
- {def}
- ifelse
- }
- forall
- dup null eq
- {pop}
- {{def}forall}
- ifelse
- currentdict
- end
- exch setglobal
- }bind def
-/copyarray
- {
- currentglobal exch
- dup gcheck setglobal
- dup length array copy
- exch setglobal
- }bind def
-/newencodedfont
- {
- currentglobal
- {
- SharedFontDirectory 3 index known
- {SharedFontDirectory 3 index get/FontReferenced known}
- {false}
- ifelse
- }
- {
- FontDirectory 3 index known
- {FontDirectory 3 index get/FontReferenced known}
- {
- SharedFontDirectory 3 index known
- {SharedFontDirectory 3 index get/FontReferenced known}
- {false}
- ifelse
- }
- ifelse
- }
- ifelse
- dup
- {
- 3 index findfont/FontReferenced get
- 2 index dup type/nametype eq
- {findfont}
- if ne
- {pop false}
- if
- }
- if
- dup
- {
- 1 index dup type/nametype eq
- {findfont}
- if
- dup/CharStrings known
- {
- /CharStrings get length
- 4 index findfont/CharStrings get length
- ne
- {
- pop false
- }
- if
- }
- {pop}
- ifelse
- }
- if
- {
- pop
- 1 index findfont
- /Encoding get exch
- 0 1 255
- {2 copy get 3 index 3 1 roll put}
- for
- pop pop pop
- }
- {
- currentglobal
- 4 1 roll
- dup type/nametype eq
- {findfont}
- if
- dup gcheck setglobal
- dup dup maxlength 2 add dict
- begin
- exch
- {
- 1 index/FID ne
- 2 index/Encoding ne and
- {def}
- {pop pop}
- ifelse
- }
- forall
- /FontReferenced exch def
- /Encoding exch dup length array copy def
- /FontName 1 index dup type/stringtype eq{cvn}if def dup
- currentdict
- end
- definefont ct_VMDictPut
- setglobal
- }
- ifelse
- }bind def
-/SetSubstituteStrategy
- {
- $SubstituteFont
- begin
- dup type/dicttype ne
- {0 dict}
- if
- currentdict/$Strategies known
- {
- exch $Strategies exch
- 2 copy known
- {
- get
- 2 copy maxlength exch maxlength add dict
- begin
- {def}forall
- {def}forall
- currentdict
- dup/$Init known
- {dup/$Init get exec}
- if
- end
- /$Strategy exch def
- }
- {pop pop pop}
- ifelse
- }
- {pop pop}
- ifelse
- end
- }bind def
-/scff
- {
- $SubstituteFont
- begin
- dup type/stringtype eq
- {dup length exch}
- {null}
- ifelse
- /$sname exch def
- /$slen exch def
- /$inVMIndex
- $sname null eq
- {
- 1 index $str cvs
- dup length $slen sub $slen getinterval cvn
- }
- {$sname}
- ifelse def
- end
- {findfont}
- @Stopped
- {
- dup length 8 add string exch
- 1 index 0(BadFont:)putinterval
- 1 index exch 8 exch dup length string cvs putinterval cvn
- {findfont}
- @Stopped
- {pop/Courier findfont}
- if
- }
- if
- $SubstituteFont
- begin
- /$sname null def
- /$slen 0 def
- /$inVMIndex null def
- end
- }bind def
-/isWidthsOnlyFont
- {
- dup/WidthsOnly known
- {pop pop true}
- {
- dup/FDepVector known
- {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
- {
- dup/FDArray known
- {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
- {pop}
- ifelse
- }
- ifelse
- }
- ifelse
- }bind def
-/ct_StyleDicts 4 dict dup begin
- /Adobe-Japan1 4 dict dup begin
- Level2?
- {
- /Serif
- /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiMin-W3}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiMin-W3/CIDFont resourcestatus
- {pop pop/HeiseiMin-W3}
- {/Ryumin-Light}
- ifelse
- }
- {/Ryumin-Light}
- ifelse
- }
- ifelse
- def
- /SansSerif
- /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiKakuGo-W5}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiKakuGo-W5/CIDFont resourcestatus
- {pop pop/HeiseiKakuGo-W5}
- {/GothicBBB-Medium}
- ifelse
- }
- {/GothicBBB-Medium}
- ifelse
- }
- ifelse
- def
- /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiMaruGo-W4}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiMaruGo-W4/CIDFont resourcestatus
- {pop pop/HeiseiMaruGo-W4}
- {
- /Jun101-Light-RKSJ-H/Font resourcestatus
- {pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- }
- ifelse
- }
- {
- /Jun101-Light-RKSJ-H/Font resourcestatus
- {pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- }
- ifelse
- }
- ifelse
- /RoundSansSerif exch def
- /Default Serif def
- }
- {
- /Serif/Ryumin-Light def
- /SansSerif/GothicBBB-Medium def
- {
- (fonts/Jun101-Light-83pv-RKSJ-H)status
- }stopped
- {pop}{
- {pop pop pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- /RoundSansSerif exch def
- }ifelse
- /Default Serif def
- }
- ifelse
- end
- def
- /Adobe-Korea1 4 dict dup begin
- /Serif/HYSMyeongJo-Medium def
- /SansSerif/HYGoThic-Medium def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
- /Adobe-GB1 4 dict dup begin
- /Serif/STSong-Light def
- /SansSerif/STHeiti-Regular def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
- /Adobe-CNS1 4 dict dup begin
- /Serif/MKai-Medium def
- /SansSerif/MHei-Medium def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
-end
-def
-Level2?{currentglobal true setglobal}if
-/ct_BoldRomanWidthProc
- {
- stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
- 0 0
- }bind def
-/ct_Type0WidthProc
- {
- dup stringwidth 0 0 moveto
- 2 index true charpath pathbbox
- 0 -1
- 7 index 2 div .88
- setcachedevice2
- pop
- 0 0
- }bind def
-/ct_Type0WMode1WidthProc
- {
- dup stringwidth
- pop 2 div neg -0.88
- 2 copy
- moveto
- 0 -1
- 5 -1 roll true charpath pathbbox
- setcachedevice
- }bind def
-/cHexEncoding
-[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
-/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
-/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
-/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
-/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
-/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
-/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
-/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
-/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
-/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
-/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
-/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
-/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
-/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
-/ct_BoldBaseFont
- 11 dict begin
- /FontType 3 def
- /FontMatrix[1 0 0 1 0 0]def
- /FontBBox[0 0 1 1]def
- /Encoding cHexEncoding def
- /_setwidthProc/ct_BoldRomanWidthProc load def
- /_bcstr1 1 string def
- /BuildChar
- {
- exch begin
- _basefont setfont
- _bcstr1 dup 0 4 -1 roll put
- dup
- _setwidthProc
- 3 copy
- moveto
- show
- _basefonto setfont
- moveto
- show
- end
- }bind def
- currentdict
- end
-def
-systemdict/composefont known
-{
-/ct_DefineIdentity-H
-{
- /Identity-H/CMap resourcestatus
- {
- pop pop
- }
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CIDSystemInfo 3 dict dup begin
- /Registry(Adobe)def
- /Ordering(Identity)def
- /Supplement 0 def
- end def
- /CMapName/Identity-H def
- /CMapVersion 1.000 def
- /CMapType 1 def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
-}
-def
-/ct_BoldBaseCIDFont
- 11 dict begin
- /CIDFontType 1 def
- /CIDFontName/ct_BoldBaseCIDFont def
- /FontMatrix[1 0 0 1 0 0]def
- /FontBBox[0 0 1 1]def
- /_setwidthProc/ct_Type0WidthProc load def
- /_bcstr2 2 string def
- /BuildGlyph
- {
- exch begin
- _basefont setfont
- _bcstr2 1 2 index 256 mod put
- _bcstr2 0 3 -1 roll 256 idiv put
- _bcstr2 dup _setwidthProc
- 3 copy
- moveto
- show
- _basefonto setfont
- moveto
- show
- end
- }bind def
- currentdict
- end
-def
-}if
-Level2?{setglobal}if
-/ct_CopyFont{
- {
- 1 index/FID ne 2 index/UniqueID ne and
- {def}{pop pop}ifelse
- }forall
-}bind def
-/ct_Type0CopyFont
-{
- exch
- dup length dict
- begin
- ct_CopyFont
- [
- exch
- FDepVector
- {
- dup/FontType get 0 eq
- {
- 1 index ct_Type0CopyFont
- /_ctType0 exch definefont
- }
- {
- /_ctBaseFont exch
- 2 index exec
- }
- ifelse
- exch
- }
- forall
- pop
- ]
- /FDepVector exch def
- currentdict
- end
-}bind def
-/ct_MakeBoldFont
-{
- dup/ct_SyntheticBold known
- {
- dup length 3 add dict begin
- ct_CopyFont
- /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
- /ct_SyntheticBold true def
- currentdict
- end
- definefont
- }
- {
- dup dup length 3 add dict
- begin
- ct_CopyFont
- /PaintType 2 def
- /StrokeWidth .03 0 FontMatrix idtransform pop def
- /dummybold currentdict
- end
- definefont
- dup/FontType get dup 9 ge exch 11 le and
- {
- ct_BoldBaseCIDFont
- dup length 3 add dict copy begin
- dup/CIDSystemInfo get/CIDSystemInfo exch def
- ct_DefineIdentity-H
- /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
- /_basefont exch def
- /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
- /_basefonto exch def
- currentdict
- end
- /CIDFont defineresource
- }
- {
- ct_BoldBaseFont
- dup length 3 add dict copy begin
- /_basefont exch def
- /_basefonto exch def
- currentdict
- end
- definefont
- }
- ifelse
- }
- ifelse
-}bind def
-/ct_MakeBold{
- 1 index
- 1 index
- findfont
- currentglobal 5 1 roll
- dup gcheck setglobal
- dup
- /FontType get 0 eq
- {
- dup/WMode known{dup/WMode get 1 eq}{false}ifelse
- version length 4 ge
- and
- {version 0 4 getinterval cvi 2015 ge}
- {true}
- ifelse
- {/ct_Type0WidthProc}
- {/ct_Type0WMode1WidthProc}
- ifelse
- ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
- {ct_MakeBoldFont}ct_Type0CopyFont definefont
- }
- {
- dup/_fauxfont known not 1 index/SubstMaster known not and
- {
- ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
- ct_MakeBoldFont
- }
- {
- 2 index 2 index eq
- {exch pop }
- {
- dup length dict begin
- ct_CopyFont
- currentdict
- end
- definefont
- }
- ifelse
- }
- ifelse
- }
- ifelse
- pop pop pop
- setglobal
-}bind def
-/?str1 256 string def
-/?set
- {
- $SubstituteFont
- begin
- /$substituteFound false def
- /$fontname 1 index def
- /$doSmartSub false def
- end
- dup
- findfont
- $SubstituteFont
- begin
- $substituteFound
- {false}
- {
- dup/FontName known
- {
- dup/FontName get $fontname eq
- 1 index/DistillerFauxFont known not and
- /currentdistillerparams where
- {pop false 2 index isWidthsOnlyFont not and}
- if
- }
- {false}
- ifelse
- }
- ifelse
- exch pop
- /$doSmartSub true def
- end
- {
- 5 1 roll pop pop pop pop
- findfont
- }
- {
- 1 index
- findfont
- dup/FontType get 3 eq
- {
- 6 1 roll pop pop pop pop pop false
- }
- {pop true}
- ifelse
- {
- $SubstituteFont
- begin
- pop pop
- /$styleArray 1 index def
- /$regOrdering 2 index def
- pop pop
- 0 1 $styleArray length 1 sub
- {
- $styleArray exch get
- ct_StyleDicts $regOrdering
- 2 copy known
- {
- get
- exch 2 copy known not
- {pop/Default}
- if
- get
- dup type/nametype eq
- {
- ?str1 cvs length dup 1 add exch
- ?str1 exch(-)putinterval
- exch dup length exch ?str1 exch 3 index exch putinterval
- add ?str1 exch 0 exch getinterval cvn
- }
- {
- pop pop/Unknown
- }
- ifelse
- }
- {
- pop pop pop pop/Unknown
- }
- ifelse
- }
- for
- end
- findfont
- }if
- }
- ifelse
- currentglobal false setglobal 3 1 roll
- null copyfont definefont pop
- setglobal
- }bind def
-setpacking
-userdict/$SubstituteFont 25 dict put
-1 dict
- begin
- /SubstituteFont
- dup $error exch 2 copy known
- {get}
- {pop pop{pop/Courier}bind}
- ifelse def
- /currentdistillerparams where dup
- {
- pop pop
- currentdistillerparams/CannotEmbedFontPolicy 2 copy known
- {get/Error eq}
- {pop pop false}
- ifelse
- }
- if not
- {
- countdictstack array dictstack 0 get
- begin
- userdict
- begin
- $SubstituteFont
- begin
- /$str 128 string def
- /$fontpat 128 string def
- /$slen 0 def
- /$sname null def
- /$match false def
- /$fontname null def
- /$substituteFound false def
- /$inVMIndex null def
- /$doSmartSub true def
- /$depth 0 def
- /$fontname null def
- /$italicangle 26.5 def
- /$dstack null def
- /$Strategies 10 dict dup
- begin
- /$Type3Underprint
- {
- currentglobal exch false setglobal
- 11 dict
- begin
- /UseFont exch
- $WMode 0 ne
- {
- dup length dict copy
- dup/WMode $WMode put
- /UseFont exch definefont
- }
- if def
- /FontName $fontname dup type/stringtype eq{cvn}if def
- /FontType 3 def
- /FontMatrix[.001 0 0 .001 0 0]def
- /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
- /FontBBox[0 0 0 0]def
- /CCInfo 7 dict dup
- begin
- /cc null def
- /x 0 def
- /y 0 def
- end def
- /BuildChar
- {
- exch
- begin
- CCInfo
- begin
- 1 string dup 0 3 index put exch pop
- /cc exch def
- UseFont 1000 scalefont setfont
- cc stringwidth/y exch def/x exch def
- x y setcharwidth
- $SubstituteFont/$Strategy get/$Underprint get exec
- 0 0 moveto cc show
- x y moveto
- end
- end
- }bind def
- currentdict
- end
- exch setglobal
- }bind def
- /$GetaTint
- 2 dict dup
- begin
- /$BuildFont
- {
- dup/WMode known
- {dup/WMode get}
- {0}
- ifelse
- /$WMode exch def
- $fontname exch
- dup/FontName known
- {
- dup/FontName get
- dup type/stringtype eq{cvn}if
- }
- {/unnamedfont}
- ifelse
- exch
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- 1 index/FontName get known
- {
- pop
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- 1 index get
- null copyfont
- }
- {$deepcopyfont}
- ifelse
- exch 1 index exch/FontBasedOn exch put
- dup/FontName $fontname dup type/stringtype eq{cvn}if put
- definefont
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- begin
- dup/FontBasedOn get 1 index def
- end
- }bind def
- /$Underprint
- {
- gsave
- x abs y abs gt
- {/y 1000 def}
- {/x -1000 def 500 120 translate}
- ifelse
- Level2?
- {
- [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
- setcolorspace
- }
- {0 setgray}
- ifelse
- 10 setlinewidth
- x .8 mul
- [7 3]
- {
- y mul 8 div 120 sub x 10 div exch moveto
- 0 y 4 div neg rlineto
- dup 0 rlineto
- 0 y 4 div rlineto
- closepath
- gsave
- Level2?
- {.2 setcolor}
- {.8 setgray}
- ifelse
- fill grestore
- stroke
- }
- forall
- pop
- grestore
- }bind def
- end def
- /$Oblique
- 1 dict dup
- begin
- /$BuildFont
- {
- currentglobal exch dup gcheck setglobal
- null copyfont
- begin
- /FontBasedOn
- currentdict/FontName known
- {
- FontName
- dup type/stringtype eq{cvn}if
- }
- {/unnamedfont}
- ifelse
- def
- /FontName $fontname dup type/stringtype eq{cvn}if def
- /currentdistillerparams where
- {pop}
- {
- /FontInfo currentdict/FontInfo known
- {FontInfo null copyfont}
- {2 dict}
- ifelse
- dup
- begin
- /ItalicAngle $italicangle def
- /FontMatrix FontMatrix
- [1 0 ItalicAngle dup sin exch cos div 1 0 0]
- matrix concatmatrix readonly
- end
- 4 2 roll def
- def
- }
- ifelse
- FontName currentdict
- end
- definefont
- exch setglobal
- }bind def
- end def
- /$None
- 1 dict dup
- begin
- /$BuildFont{}bind def
- end def
- end def
- /$Oblique SetSubstituteStrategy
- /$findfontByEnum
- {
- dup type/stringtype eq{cvn}if
- dup/$fontname exch def
- $sname null eq
- {$str cvs dup length $slen sub $slen getinterval}
- {pop $sname}
- ifelse
- $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
- /$match false def
- $SubstituteFont/$dstack countdictstack array dictstack put
- mark
- {
- $fontpat 0 $slen 7 add getinterval
- {/$match exch def exit}
- $str filenameforall
- }
- stopped
- {
- cleardictstack
- currentdict
- true
- $SubstituteFont/$dstack get
- {
- exch
- {
- 1 index eq
- {pop false}
- {true}
- ifelse
- }
- {begin false}
- ifelse
- }
- forall
- pop
- }
- if
- cleartomark
- /$slen 0 def
- $match false ne
- {$match(fonts/)anchorsearch pop pop cvn}
- {/Courier}
- ifelse
- }bind def
- /$ROS 1 dict dup
- begin
- /Adobe 4 dict dup
- begin
- /Japan1 [/Ryumin-Light/HeiseiMin-W3
- /GothicBBB-Medium/HeiseiKakuGo-W5
- /HeiseiMaruGo-W4/Jun101-Light]def
- /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
- /GB1 [/STSong-Light/STHeiti-Regular]def
- /CNS1 [/MKai-Medium/MHei-Medium]def
- end def
- end def
- /$cmapname null def
- /$deepcopyfont
- {
- dup/FontType get 0 eq
- {
- 1 dict dup/FontName/copied put copyfont
- begin
- /FDepVector FDepVector copyarray
- 0 1 2 index length 1 sub
- {
- 2 copy get $deepcopyfont
- dup/FontName/copied put
- /copied exch definefont
- 3 copy put pop pop
- }
- for
- def
- currentdict
- end
- }
- {$Strategies/$Type3Underprint get exec}
- ifelse
- }bind def
- /$buildfontname
- {
- dup/CIDFont findresource/CIDSystemInfo get
- begin
- Registry length Ordering length Supplement 8 string cvs
- 3 copy length 2 add add add string
- dup 5 1 roll dup 0 Registry putinterval
- dup 4 index(-)putinterval
- dup 4 index 1 add Ordering putinterval
- 4 2 roll add 1 add 2 copy(-)putinterval
- end
- 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
- anchorsearch
- {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
- {pop pop pop pop pop}
- ifelse
- length
- $str 1 index(-)putinterval 1 add
- $str 1 index $cmapname $fontpat cvs putinterval
- $cmapname length add
- $str exch 0 exch getinterval cvn
- }bind def
- /$findfontByROS
- {
- /$fontname exch def
- $ROS Registry 2 copy known
- {
- get Ordering 2 copy known
- {get}
- {pop pop[]}
- ifelse
- }
- {pop pop[]}
- ifelse
- false exch
- {
- dup/CIDFont resourcestatus
- {
- pop pop
- save
- 1 index/CIDFont findresource
- dup/WidthsOnly known
- {dup/WidthsOnly get}
- {false}
- ifelse
- exch pop
- exch restore
- {pop}
- {exch pop true exit}
- ifelse
- }
- {pop}
- ifelse
- }
- forall
- {$str cvs $buildfontname}
- {
- false(*)
- {
- save exch
- dup/CIDFont findresource
- dup/WidthsOnly known
- {dup/WidthsOnly get not}
- {true}
- ifelse
- exch/CIDSystemInfo get
- dup/Registry get Registry eq
- exch/Ordering get Ordering eq and and
- {exch restore exch pop true exit}
- {pop restore}
- ifelse
- }
- $str/CIDFont resourceforall
- {$buildfontname}
- {$fontname $findfontByEnum}
- ifelse
- }
- ifelse
- }bind def
- end
- end
- currentdict/$error known currentdict/languagelevel known and dup
- {pop $error/SubstituteFont known}
- if
- dup
- {$error}
- {Adobe_CoolType_Core}
- ifelse
- begin
- {
- /SubstituteFont
- /CMap/Category resourcestatus
- {
- pop pop
- {
- $SubstituteFont
- begin
- /$substituteFound true def
- dup length $slen gt
- $sname null ne or
- $slen 0 gt and
- {
- $sname null eq
- {dup $str cvs dup length $slen sub $slen getinterval cvn}
- {$sname}
- ifelse
- Adobe_CoolType_Data/InVMFontsByCMap get
- 1 index 2 copy known
- {
- get
- false exch
- {
- pop
- currentglobal
- {
- GlobalFontDirectory 1 index known
- {exch pop true exit}
- {pop}
- ifelse
- }
- {
- FontDirectory 1 index known
- {exch pop true exit}
- {
- GlobalFontDirectory 1 index known
- {exch pop true exit}
- {pop}
- ifelse
- }
- ifelse
- }
- ifelse
- }
- forall
- }
- {pop pop false}
- ifelse
- {
- exch pop exch pop
- }
- {
- dup/CMap resourcestatus
- {
- pop pop
- dup/$cmapname exch def
- /CMap findresource/CIDSystemInfo get{def}forall
- $findfontByROS
- }
- {
- 128 string cvs
- dup(-)search
- {
- 3 1 roll search
- {
- 3 1 roll pop
- {dup cvi}
- stopped
- {pop pop pop pop pop $findfontByEnum}
- {
- 4 2 roll pop pop
- exch length
- exch
- 2 index length
- 2 index
- sub
- exch 1 sub -1 0
- {
- $str cvs dup length
- 4 index
- 0
- 4 index
- 4 3 roll add
- getinterval
- exch 1 index exch 3 index exch
- putinterval
- dup/CMap resourcestatus
- {
- pop pop
- 4 1 roll pop pop pop
- dup/$cmapname exch def
- /CMap findresource/CIDSystemInfo get{def}forall
- $findfontByROS
- true exit
- }
- {pop}
- ifelse
- }
- for
- dup type/booleantype eq
- {pop}
- {pop pop pop $findfontByEnum}
- ifelse
- }
- ifelse
- }
- {pop pop pop $findfontByEnum}
- ifelse
- }
- {pop pop $findfontByEnum}
- ifelse
- }
- ifelse
- }
- ifelse
- }
- {//SubstituteFont exec}
- ifelse
- /$slen 0 def
- end
- }
- }
- {
- {
- $SubstituteFont
- begin
- /$substituteFound true def
- dup length $slen gt
- $sname null ne or
- $slen 0 gt and
- {$findfontByEnum}
- {//SubstituteFont exec}
- ifelse
- end
- }
- }
- ifelse
- bind readonly def
- Adobe_CoolType_Core/scfindfont/systemfindfont load put
- }
- {
- /scfindfont
- {
- $SubstituteFont
- begin
- dup systemfindfont
- dup/FontName known
- {dup/FontName get dup 3 index ne}
- {/noname true}
- ifelse
- dup
- {
- /$origfontnamefound 2 index def
- /$origfontname 4 index def/$substituteFound true def
- }
- if
- exch pop
- {
- $slen 0 gt
- $sname null ne
- 3 index length $slen gt or and
- {
- pop dup $findfontByEnum findfont
- dup maxlength 1 add dict
- begin
- {1 index/FID eq{pop pop}{def}ifelse}
- forall
- currentdict
- end
- definefont
- dup/FontName known{dup/FontName get}{null}ifelse
- $origfontnamefound ne
- {
- $origfontname $str cvs print
- ( substitution revised, using )print
- dup/FontName known
- {dup/FontName get}{(unspecified font)}
- ifelse
- $str cvs print(.\n)print
- }
- if
- }
- {exch pop}
- ifelse
- }
- {exch pop}
- ifelse
- end
- }bind def
- }
- ifelse
- end
- end
- Adobe_CoolType_Core_Defined not
- {
- Adobe_CoolType_Core/findfont
- {
- $SubstituteFont
- begin
- $depth 0 eq
- {
- /$fontname 1 index dup type/stringtype ne{$str cvs}if def
- /$substituteFound false def
- }
- if
- /$depth $depth 1 add def
- end
- scfindfont
- $SubstituteFont
- begin
- /$depth $depth 1 sub def
- $substituteFound $depth 0 eq and
- {
- $inVMIndex null ne
- {dup $inVMIndex $AddInVMFont}
- if
- $doSmartSub
- {
- currentdict/$Strategy known
- {$Strategy/$BuildFont get exec}
- if
- }
- if
- }
- if
- end
- }bind put
- }
- if
- }
- if
- end
-/$AddInVMFont
- {
- exch/FontName 2 copy known
- {
- get
- 1 dict dup begin exch 1 index gcheck def end exch
- Adobe_CoolType_Data/InVMFontsByCMap get exch
- $DictAdd
- }
- {pop pop pop}
- ifelse
- }bind def
-/$DictAdd
- {
- 2 copy known not
- {2 copy 4 index length dict put}
- if
- Level2? not
- {
- 2 copy get dup maxlength exch length 4 index length add lt
- 2 copy get dup length 4 index length add exch maxlength 1 index lt
- {
- 2 mul dict
- begin
- 2 copy get{forall}def
- 2 copy currentdict put
- end
- }
- {pop}
- ifelse
- }
- if
- get
- begin
- {def}
- forall
- end
- }bind def
-end
-end
-%%EndResource
-currentglobal true setglobal
-%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
-%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
-%%Version: 1.23 0
-systemdict/languagelevel known dup
- {currentglobal false setglobal}
- {false}
-ifelse
-exch
-userdict/Adobe_CoolType_Utility 2 copy known
- {2 copy get dup maxlength 27 add dict copy}
- {27 dict}
-ifelse put
-Adobe_CoolType_Utility
- begin
- /@eexecStartData
- <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
- 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
- 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
- /@recognizeCIDFont null def
- /ct_Level2? exch def
- /ct_Clone? 1183615869 internaldict dup
- /CCRun known not
- exch/eCCRun known not
- ct_Level2? and or def
-ct_Level2?
- {globaldict begin currentglobal true setglobal}
-if
- /ct_AddStdCIDMap
- ct_Level2?
- {{
- mark
- Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
- {
- ((Hex)57 StartData
- 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
- 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
- d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
- cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
- }
- stopped
- {
- cleartomark
- Adobe_CoolType_Utility/@recognizeCIDFont get
- countdictstack dup array dictstack
- exch 1 sub -1 0
- {
- 2 copy get 3 index eq
- {1 index length exch sub 1 sub{end}repeat exit}
- {pop}
- ifelse
- }
- for
- pop pop
- Adobe_CoolType_Utility/@eexecStartData get eexec
- }
- {cleartomark}
- ifelse
- }}
- {{
- Adobe_CoolType_Utility/@eexecStartData get eexec
- }}
- ifelse bind def
-userdict/cid_extensions known
-dup{cid_extensions/cid_UpdateDB known and}if
- {
- cid_extensions
- begin
- /cid_GetCIDSystemInfo
- {
- 1 index type/stringtype eq
- {exch cvn exch}
- if
- cid_extensions
- begin
- dup load 2 index known
- {
- 2 copy
- cid_GetStatusInfo
- dup null ne
- {
- 1 index load
- 3 index get
- dup null eq
- {pop pop cid_UpdateDB}
- {
- exch
- 1 index/Created get eq
- {exch pop exch pop}
- {pop cid_UpdateDB}
- ifelse
- }
- ifelse
- }
- {pop cid_UpdateDB}
- ifelse
- }
- {cid_UpdateDB}
- ifelse
- end
- }bind def
- end
- }
-if
-ct_Level2?
- {end setglobal}
-if
- /ct_UseNativeCapability? systemdict/composefont known def
- /ct_MakeOCF 35 dict def
- /ct_Vars 25 dict def
- /ct_GlyphDirProcs 6 dict def
- /ct_BuildCharDict 15 dict dup
- begin
- /charcode 2 string def
- /dst_string 1500 string def
- /nullstring()def
- /usewidths? true def
- end def
- ct_Level2?{setglobal}{pop}ifelse
- ct_GlyphDirProcs
- begin
- /GetGlyphDirectory
- {
- systemdict/languagelevel known
- {pop/CIDFont findresource/GlyphDirectory get}
- {
- 1 index/CIDFont findresource/GlyphDirectory
- get dup type/dicttype eq
- {
- dup dup maxlength exch length sub 2 index lt
- {
- dup length 2 index add dict copy 2 index
- /CIDFont findresource/GlyphDirectory 2 index put
- }
- if
- }
- if
- exch pop exch pop
- }
- ifelse
- +
- }def
- /+
- {
- systemdict/languagelevel known
- {
- currentglobal false setglobal
- 3 dict begin
- /vm exch def
- }
- {1 dict begin}
- ifelse
- /$ exch def
- systemdict/languagelevel known
- {
- vm setglobal
- /gvm currentglobal def
- $ gcheck setglobal
- }
- if
- ?{$ begin}if
- }def
- /?{$ type/dicttype eq}def
- /|{
- userdict/Adobe_CoolType_Data known
- {
- Adobe_CoolType_Data/AddWidths? known
- {
- currentdict Adobe_CoolType_Data
- begin
- begin
- AddWidths?
- {
- Adobe_CoolType_Data/CC 3 index put
- ?{def}{$ 3 1 roll put}ifelse
- CC charcode exch 1 index 0 2 index 256 idiv put
- 1 index exch 1 exch 256 mod put
- stringwidth 2 array astore
- currentfont/Widths get exch CC exch put
- }
- {?{def}{$ 3 1 roll put}ifelse}
- ifelse
- end
- end
- }
- {?{def}{$ 3 1 roll put}ifelse} ifelse
- }
- {?{def}{$ 3 1 roll put}ifelse}
- ifelse
- }def
- /!
- {
- ?{end}if
- systemdict/languagelevel known
- {gvm setglobal}
- if
- end
- }def
- /:{string currentfile exch readstring pop}executeonly def
- end
- ct_MakeOCF
- begin
- /ct_cHexEncoding
- [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
- /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
- /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
- /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
- /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
- /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
- /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
- /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
- /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
- /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
- /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
- /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
- /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
- /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
- /ct_CID_STR_SIZE 8000 def
- /ct_mkocfStr100 100 string def
- /ct_defaultFontMtx[.001 0 0 .001 0 0]def
- /ct_1000Mtx[1000 0 0 1000 0 0]def
- /ct_raise{exch cvx exch errordict exch get exec stop}bind def
- /ct_reraise
- {cvx $error/errorname get(Error: )print dup( )cvs print
- errordict exch get exec stop
- }bind def
- /ct_cvnsi
- {
- 1 index add 1 sub 1 exch 0 4 1 roll
- {
- 2 index exch get
- exch 8 bitshift
- add
- }
- for
- exch pop
- }bind def
- /ct_GetInterval
- {
- Adobe_CoolType_Utility/ct_BuildCharDict get
- begin
- /dst_index 0 def
- dup dst_string length gt
- {dup string/dst_string exch def}
- if
- 1 index ct_CID_STR_SIZE idiv
- /arrayIndex exch def
- 2 index arrayIndex get
- 2 index
- arrayIndex ct_CID_STR_SIZE mul
- sub
- {
- dup 3 index add 2 index length le
- {
- 2 index getinterval
- dst_string dst_index 2 index putinterval
- length dst_index add/dst_index exch def
- exit
- }
- {
- 1 index length 1 index sub
- dup 4 1 roll
- getinterval
- dst_string dst_index 2 index putinterval
- pop dup dst_index add/dst_index exch def
- sub
- /arrayIndex arrayIndex 1 add def
- 2 index dup length arrayIndex gt
- {arrayIndex get}
- {
- pop
- exit
- }
- ifelse
- 0
- }
- ifelse
- }
- loop
- pop pop pop
- dst_string 0 dst_index getinterval
- end
- }bind def
- ct_Level2?
- {
- /ct_resourcestatus
- currentglobal mark true setglobal
- {/unknowninstancename/Category resourcestatus}
- stopped
- {cleartomark setglobal true}
- {cleartomark currentglobal not exch setglobal}
- ifelse
- {
- {
- mark 3 1 roll/Category findresource
- begin
- ct_Vars/vm currentglobal put
- ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
- {cleartomark false}
- {{3 2 roll pop true}{cleartomark false}ifelse}
- ifelse
- ct_Vars/vm get setglobal
- end
- }
- }
- {{resourcestatus}}
- ifelse bind def
- /CIDFont/Category ct_resourcestatus
- {pop pop}
- {
- currentglobal true setglobal
- /Generic/Category findresource
- dup length dict copy
- dup/InstanceType/dicttype put
- /CIDFont exch/Category defineresource pop
- setglobal
- }
- ifelse
- ct_UseNativeCapability?
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CIDSystemInfo 3 dict dup begin
- /Registry(Adobe)def
- /Ordering(Identity)def
- /Supplement 0 def
- end def
- /CMapName/Identity-H def
- /CMapVersion 1.000 def
- /CMapType 1 def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- if
- }
- {
- /ct_Category 2 dict begin
- /CIDFont 10 dict def
- /ProcSet 2 dict def
- currentdict
- end
- def
- /defineresource
- {
- ct_Category 1 index 2 copy known
- {
- get
- dup dup maxlength exch length eq
- {
- dup length 10 add dict copy
- ct_Category 2 index 2 index put
- }
- if
- 3 index 3 index put
- pop exch pop
- }
- {pop pop/defineresource/undefined ct_raise}
- ifelse
- }bind def
- /findresource
- {
- ct_Category 1 index 2 copy known
- {
- get
- 2 index 2 copy known
- {get 3 1 roll pop pop}
- {pop pop/findresource/undefinedresource ct_raise}
- ifelse
- }
- {pop pop/findresource/undefined ct_raise}
- ifelse
- }bind def
- /resourcestatus
- {
- ct_Category 1 index 2 copy known
- {
- get
- 2 index known
- exch pop exch pop
- {
- 0 -1 true
- }
- {
- false
- }
- ifelse
- }
- {pop pop/findresource/undefined ct_raise}
- ifelse
- }bind def
- /ct_resourcestatus/resourcestatus load def
- }
- ifelse
- /ct_CIDInit 2 dict
- begin
- /ct_cidfont_stream_init
- {
- {
- dup(Binary)eq
- {
- pop
- null
- currentfile
- ct_Level2?
- {
- {cid_BYTE_COUNT()/SubFileDecode filter}
- stopped
- {pop pop pop}
- if
- }
- if
- /readstring load
- exit
- }
- if
- dup(Hex)eq
- {
- pop
- currentfile
- ct_Level2?
- {
- {null exch/ASCIIHexDecode filter/readstring}
- stopped
- {pop exch pop(>)exch/readhexstring}
- if
- }
- {(>)exch/readhexstring}
- ifelse
- load
- exit
- }
- if
- /StartData/typecheck ct_raise
- }
- loop
- cid_BYTE_COUNT ct_CID_STR_SIZE le
- {
- 2 copy cid_BYTE_COUNT string exch exec
- pop
- 1 array dup
- 3 -1 roll
- 0 exch put
- }
- {
- cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
- dup array exch 2 sub 0 exch 1 exch
- {
- 2 copy
- 5 index
- ct_CID_STR_SIZE
- string
- 6 index exec
- pop
- put
- pop
- }
- for
- 2 index
- cid_BYTE_COUNT ct_CID_STR_SIZE mod string
- 3 index exec
- pop
- 1 index exch
- 1 index length 1 sub
- exch put
- }
- ifelse
- cid_CIDFONT exch/GlyphData exch put
- 2 index null eq
- {
- pop pop pop
- }
- {
- pop/readstring load
- 1 string exch
- {
- 3 copy exec
- pop
- dup length 0 eq
- {
- pop pop pop pop pop
- true exit
- }
- if
- 4 index
- eq
- {
- pop pop pop pop
- false exit
- }
- if
- }
- loop
- pop
- }
- ifelse
- }bind def
- /StartData
- {
- mark
- {
- currentdict
- dup/FDArray get 0 get/FontMatrix get
- 0 get 0.001 eq
- {
- dup/CDevProc known not
- {
- /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
- {get}
- {
- pop pop
- {pop pop pop pop pop 0 -1000 7 index 2 div 880}
- }
- ifelse
- def
- }
- if
- }
- {
- /CDevProc
- {
- pop pop pop pop pop
- 0
- 1 cid_temp/cid_CIDFONT get
- /FDArray get 0 get
- /FontMatrix get 0 get div
- 7 index 2 div
- 1 index 0.88 mul
- }def
- }
- ifelse
- /cid_temp 15 dict def
- cid_temp
- begin
- /cid_CIDFONT exch def
- 3 copy pop
- dup/cid_BYTE_COUNT exch def 0 gt
- {
- ct_cidfont_stream_init
- FDArray
- {
- /Private get
- dup/SubrMapOffset known
- {
- begin
- /Subrs SubrCount array def
- Subrs
- SubrMapOffset
- SubrCount
- SDBytes
- ct_Level2?
- {
- currentdict dup/SubrMapOffset undef
- dup/SubrCount undef
- /SDBytes undef
- }
- if
- end
- /cid_SD_BYTES exch def
- /cid_SUBR_COUNT exch def
- /cid_SUBR_MAP_OFFSET exch def
- /cid_SUBRS exch def
- cid_SUBR_COUNT 0 gt
- {
- GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
- 0 cid_SD_BYTES ct_cvnsi
- 0 1 cid_SUBR_COUNT 1 sub
- {
- exch 1 index
- 1 add
- cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
- GlyphData exch cid_SD_BYTES ct_GetInterval
- 0 cid_SD_BYTES ct_cvnsi
- cid_SUBRS 4 2 roll
- GlyphData exch
- 4 index
- 1 index
- sub
- ct_GetInterval
- dup length string copy put
- }
- for
- pop
- }
- if
- }
- {pop}
- ifelse
- }
- forall
- }
- if
- cleartomark pop pop
- end
- CIDFontName currentdict/CIDFont defineresource pop
- end end
- }
- stopped
- {cleartomark/StartData ct_reraise}
- if
- }bind def
- currentdict
- end def
- /ct_saveCIDInit
- {
- /CIDInit/ProcSet ct_resourcestatus
- {true}
- {/CIDInitC/ProcSet ct_resourcestatus}
- ifelse
- {
- pop pop
- /CIDInit/ProcSet findresource
- ct_UseNativeCapability?
- {pop null}
- {/CIDInit ct_CIDInit/ProcSet defineresource pop}
- ifelse
- }
- {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
- ifelse
- ct_Vars exch/ct_oldCIDInit exch put
- }bind def
- /ct_restoreCIDInit
- {
- ct_Vars/ct_oldCIDInit get dup null ne
- {/CIDInit exch/ProcSet defineresource pop}
- {pop}
- ifelse
- }bind def
- /ct_BuildCharSetUp
- {
- 1 index
- begin
- CIDFont
- begin
- Adobe_CoolType_Utility/ct_BuildCharDict get
- begin
- /ct_dfCharCode exch def
- /ct_dfDict exch def
- CIDFirstByte ct_dfCharCode add
- dup CIDCount ge
- {pop 0}
- if
- /cid exch def
- {
- GlyphDirectory cid 2 copy known
- {get}
- {pop pop nullstring}
- ifelse
- dup length FDBytes sub 0 gt
- {
- dup
- FDBytes 0 ne
- {0 FDBytes ct_cvnsi}
- {pop 0}
- ifelse
- /fdIndex exch def
- dup length FDBytes sub FDBytes exch getinterval
- /charstring exch def
- exit
- }
- {
- pop
- cid 0 eq
- {/charstring nullstring def exit}
- if
- /cid 0 def
- }
- ifelse
- }
- loop
- }def
- /ct_SetCacheDevice
- {
- 0 0 moveto
- dup stringwidth
- 3 -1 roll
- true charpath
- pathbbox
- 0 -1000
- 7 index 2 div 880
- setcachedevice2
- 0 0 moveto
- }def
- /ct_CloneSetCacheProc
- {
- 1 eq
- {
- stringwidth
- pop -2 div -880
- 0 -1000 setcharwidth
- moveto
- }
- {
- usewidths?
- {
- currentfont/Widths get cid
- 2 copy known
- {get exch pop aload pop}
- {pop pop stringwidth}
- ifelse
- }
- {stringwidth}
- ifelse
- setcharwidth
- 0 0 moveto
- }
- ifelse
- }def
- /ct_Type3ShowCharString
- {
- ct_FDDict fdIndex 2 copy known
- {get}
- {
- currentglobal 3 1 roll
- 1 index gcheck setglobal
- ct_Type1FontTemplate dup maxlength dict copy
- begin
- FDArray fdIndex get
- dup/FontMatrix 2 copy known
- {get}
- {pop pop ct_defaultFontMtx}
- ifelse
- /FontMatrix exch dup length array copy def
- /Private get
- /Private exch def
- /Widths rootfont/Widths get def
- /CharStrings 1 dict dup/.notdef
- <d841272cf18f54fc13>dup length string copy put def
- currentdict
- end
- /ct_Type1Font exch definefont
- dup 5 1 roll put
- setglobal
- }
- ifelse
- dup/CharStrings get 1 index/Encoding get
- ct_dfCharCode get charstring put
- rootfont/WMode 2 copy known
- {get}
- {pop pop 0}
- ifelse
- exch
- 1000 scalefont setfont
- ct_str1 0 ct_dfCharCode put
- ct_str1 exch ct_dfSetCacheProc
- ct_SyntheticBold
- {
- currentpoint
- ct_str1 show
- newpath
- moveto
- ct_str1 true charpath
- ct_StrokeWidth setlinewidth
- stroke
- }
- {ct_str1 show}
- ifelse
- }def
- /ct_Type4ShowCharString
- {
- ct_dfDict ct_dfCharCode charstring
- FDArray fdIndex get
- dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
- {ct_1000Mtx matrix concatmatrix concat}
- {pop}
- ifelse
- /Private get
- Adobe_CoolType_Utility/ct_Level2? get not
- {
- ct_dfDict/Private
- 3 -1 roll
- {put}
- 1183615869 internaldict/superexec get exec
- }
- if
- 1183615869 internaldict
- Adobe_CoolType_Utility/ct_Level2? get
- {1 index}
- {3 index/Private get mark 6 1 roll}
- ifelse
- dup/RunInt known
- {/RunInt get}
- {pop/CCRun}
- ifelse
- get exec
- Adobe_CoolType_Utility/ct_Level2? get not
- {cleartomark}
- if
- }bind def
- /ct_BuildCharIncremental
- {
- {
- Adobe_CoolType_Utility/ct_MakeOCF get begin
- ct_BuildCharSetUp
- ct_ShowCharString
- }
- stopped
- {stop}
- if
- end
- end
- end
- end
- }bind def
- /BaseFontNameStr(BF00)def
- /ct_Type1FontTemplate 14 dict
- begin
- /FontType 1 def
- /FontMatrix [0.001 0 0 0.001 0 0]def
- /FontBBox [-250 -250 1250 1250]def
- /Encoding ct_cHexEncoding def
- /PaintType 0 def
- currentdict
- end def
- /BaseFontTemplate 11 dict
- begin
- /FontMatrix [0.001 0 0 0.001 0 0]def
- /FontBBox [-250 -250 1250 1250]def
- /Encoding ct_cHexEncoding def
- /BuildChar/ct_BuildCharIncremental load def
- ct_Clone?
- {
- /FontType 3 def
- /ct_ShowCharString/ct_Type3ShowCharString load def
- /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
- /ct_SyntheticBold false def
- /ct_StrokeWidth 1 def
- }
- {
- /FontType 4 def
- /Private 1 dict dup/lenIV 4 put def
- /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
- /PaintType 0 def
- /ct_ShowCharString/ct_Type4ShowCharString load def
- }
- ifelse
- /ct_str1 1 string def
- currentdict
- end def
- /BaseFontDictSize BaseFontTemplate length 5 add def
- /ct_matrixeq
- {
- true 0 1 5
- {
- dup 4 index exch get exch 3 index exch get eq and
- dup not
- {exit}
- if
- }
- for
- exch pop exch pop
- }bind def
- /ct_makeocf
- {
- 15 dict
- begin
- exch/WMode exch def
- exch/FontName exch def
- /FontType 0 def
- /FMapType 2 def
- dup/FontMatrix known
- {dup/FontMatrix get/FontMatrix exch def}
- {/FontMatrix matrix def}
- ifelse
- /bfCount 1 index/CIDCount get 256 idiv 1 add
- dup 256 gt{pop 256}if def
- /Encoding
- 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
- bfCount 1 255{2 copy bfCount put pop}for
- def
- /FDepVector bfCount dup 256 lt{1 add}if array def
- BaseFontTemplate BaseFontDictSize dict copy
- begin
- /CIDFont exch def
- CIDFont/FontBBox known
- {CIDFont/FontBBox get/FontBBox exch def}
- if
- CIDFont/CDevProc known
- {CIDFont/CDevProc get/CDevProc exch def}
- if
- currentdict
- end
- BaseFontNameStr 3(0)putinterval
- 0 1 bfCount dup 256 eq{1 sub}if
- {
- FDepVector exch
- 2 index BaseFontDictSize dict copy
- begin
- dup/CIDFirstByte exch 256 mul def
- FontType 3 eq
- {/ct_FDDict 2 dict def}
- if
- currentdict
- end
- 1 index 16
- BaseFontNameStr 2 2 getinterval cvrs pop
- BaseFontNameStr exch definefont
- put
- }
- for
- ct_Clone?
- {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
- if
- FontName
- currentdict
- end
- definefont
- ct_Clone?
- {
- gsave
- dup 1000 scalefont setfont
- ct_BuildCharDict
- begin
- /usewidths? false def
- currentfont/Widths get
- begin
- exch/CIDFont get/GlyphDirectory get
- {
- pop
- dup charcode exch 1 index 0 2 index 256 idiv put
- 1 index exch 1 exch 256 mod put
- stringwidth 2 array astore def
- }
- forall
- end
- /usewidths? true def
- end
- grestore
- }
- {exch pop}
- ifelse
- }bind def
- currentglobal true setglobal
- /ct_ComposeFont
- {
- ct_UseNativeCapability?
- {
- 2 index/CMap ct_resourcestatus
- {pop pop exch pop}
- {
- /CIDInit/ProcSet findresource
- begin
- 12 dict
- begin
- begincmap
- /CMapName 3 index def
- /CMapVersion 1.000 def
- /CMapType 1 def
- exch/WMode exch def
- /CIDSystemInfo 3 dict dup
- begin
- /Registry(Adobe)def
- /Ordering
- CMapName ct_mkocfStr100 cvs
- (Adobe-)search
- {
- pop pop
- (-)search
- {
- dup length string copy
- exch pop exch pop
- }
- {pop(Identity)}
- ifelse
- }
- {pop (Identity)}
- ifelse
- def
- /Supplement 0 def
- end def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
- composefont
- }
- {
- 3 2 roll pop
- 0 get/CIDFont findresource
- ct_makeocf
- }
- ifelse
- }bind def
- setglobal
- /ct_MakeIdentity
- {
- ct_UseNativeCapability?
- {
- 1 index/CMap ct_resourcestatus
- {pop pop}
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CMapName 2 index def
- /CMapVersion 1.000 def
- /CMapType 1 def
- /CIDSystemInfo 3 dict dup
- begin
- /Registry(Adobe)def
- /Ordering
- CMapName ct_mkocfStr100 cvs
- (Adobe-)search
- {
- pop pop
- (-)search
- {dup length string copy exch pop exch pop}
- {pop(Identity)}
- ifelse
- }
- {pop(Identity)}
- ifelse
- def
- /Supplement 0 def
- end def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
- composefont
- }
- {
- exch pop
- 0 get/CIDFont findresource
- ct_makeocf
- }
- ifelse
- }bind def
- currentdict readonly pop
- end
- end
-%%EndResource
-setglobal
-%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
-%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
-%%Version: 1.0 0
-userdict/ct_T42Dict 15 dict put
-ct_T42Dict begin
-/Is2015?
-{
- version
- cvi
- 2015
- ge
-}bind def
-/AllocGlyphStorage
-{
- Is2015?
- {
- pop
- }
- {
- {string}forall
- }ifelse
-}bind def
-/Type42DictBegin
-{
-25 dict begin
- /FontName exch def
- /CharStrings 256 dict
-begin
- /.notdef 0 def
- currentdict
-end def
- /Encoding exch def
- /PaintType 0 def
- /FontType 42 def
- /FontMatrix[1 0 0 1 0 0]def
- 4 array astore cvx/FontBBox exch def
- /sfnts
-}bind def
-/Type42DictEnd
-{
- currentdict dup/FontName get exch definefont end
-ct_T42Dict exch
-dup/FontName get exch put
-}bind def
-/RD{string currentfile exch readstring pop}executeonly def
-/PrepFor2015
-{
-Is2015?
-{
- /GlyphDirectory
- 16
- dict def
- sfnts 0 get
- dup
- 2 index
- (glyx)
- putinterval
- 2 index
- (locx)
- putinterval
- pop
- pop
-}
-{
- pop
- pop
-}ifelse
-}bind def
-/AddT42Char
-{
-Is2015?
-{
- /GlyphDirectory get
- begin
- def
- end
- pop
- pop
-}
-{
- /sfnts get
- 4 index
- get
- 3 index
- 2 index
- putinterval
- pop
- pop
- pop
- pop
-}ifelse
-}bind def
-/T0AddT42Mtx2
-{
-/CIDFont findresource/Metrics2 get begin def end
-}bind def
-end
-%%EndResource
-currentglobal true setglobal
-%%BeginFile: MMFauxFont.prc
-%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
-%%All Rights Reserved.
-userdict /ct_EuroDict 10 dict put
-ct_EuroDict begin
-/ct_CopyFont
-{
- { 1 index /FID ne {def} {pop pop} ifelse} forall
-} def
-/ct_GetGlyphOutline
-{
- gsave
- initmatrix newpath
- exch findfont dup
- length 1 add dict
- begin
- ct_CopyFont
- /Encoding Encoding dup length array copy
- dup
- 4 -1 roll
- 0 exch put
- def
- currentdict
- end
- /ct_EuroFont exch definefont
- 1000 scalefont setfont
- 0 0 moveto
- [
- <00> stringwidth
- <00> false charpath
- pathbbox
- [
- {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
- grestore
- counttomark 8 add
-}
-def
-/ct_MakeGlyphProc
-{
- ] cvx
- /ct_PSBuildGlyph cvx
- ] cvx
-} def
-/ct_PSBuildGlyph
-{
- gsave
- 8 -1 roll pop
- 7 1 roll
- 6 -2 roll ct_FontMatrix transform 6 2 roll
- 4 -2 roll ct_FontMatrix transform 4 2 roll
- ct_FontMatrix transform
- currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
- dup 9 1 roll
- {
- currentdict /StrokeWidth 2 copy known
- {
- get 2 div
- 0 ct_FontMatrix dtransform pop
- 5 1 roll
- 4 -1 roll 4 index sub
- 4 1 roll
- 3 -1 roll 4 index sub
- 3 1 roll
- exch 4 index add exch
- 4 index add
- 5 -1 roll pop
- }
- {
- pop pop
- }
- ifelse
- }
- if
- setcachedevice
- ct_FontMatrix concat
- ct_PSPathOps begin
- exec
- end
- {
- currentdict /StrokeWidth 2 copy known
- { get }
- { pop pop 0 }
- ifelse
- setlinewidth stroke
- }
- {
- fill
- }
- ifelse
- grestore
-} def
-/ct_PSPathOps 4 dict dup begin
- /m {moveto} def
- /l {lineto} def
- /c {curveto} def
- /cp {closepath} def
-end
-def
-/ct_matrix1000 [1000 0 0 1000 0 0] def
-/ct_AddGlyphProc
-{
- 2 index findfont dup length 4 add dict
- begin
- ct_CopyFont
- /CharStrings CharStrings dup length 1 add dict copy
- begin
- 3 1 roll def
- currentdict
- end
- def
- /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
- /ct_PSBuildGlyph /ct_PSBuildGlyph load def
- /ct_PSPathOps /ct_PSPathOps load def
- currentdict
- end
- definefont pop
-}
-def
-systemdict /languagelevel known
-{
- /ct_AddGlyphToPrinterFont {
- 2 copy
- ct_GetGlyphOutline 3 add -1 roll restore
- ct_MakeGlyphProc
- ct_AddGlyphProc
- } def
-}
-{
- /ct_AddGlyphToPrinterFont {
- pop pop restore
- Adobe_CTFauxDict /$$$FONTNAME get
- /Euro
- Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
- ct_EuroDict exch get
- ct_AddGlyphProc
- } def
-} ifelse
-/AdobeSansMM
-{
-556 0 24 -19 541 703
- {
- 541 628 m
- 510 669 442 703 354 703 c
- 201 703 117 607 101 444 c
- 50 444 l
- 25 372 l
- 97 372 l
- 97 301 l
- 49 301 l
- 24 229 l
- 103 229 l
- 124 67 209 -19 350 -19 c
- 435 -19 501 25 509 32 c
- 509 131 l
- 492 105 417 60 343 60 c
- 267 60 204 127 197 229 c
- 406 229 l
- 430 301 l
- 191 301 l
- 191 372 l
- 455 372 l
- 479 444 l
- 194 444 l
- 201 531 245 624 348 624 c
- 433 624 484 583 509 534 c
- cp
- 556 0 m
- }
-ct_PSBuildGlyph
-} def
-/AdobeSerifMM
-{
-500 0 10 -12 484 692
- {
- 347 298 m
- 171 298 l
- 170 310 170 322 170 335 c
- 170 362 l
- 362 362 l
- 374 403 l
- 172 403 l
- 184 580 244 642 308 642 c
- 380 642 434 574 457 457 c
- 481 462 l
- 474 691 l
- 449 691 l
- 433 670 429 657 410 657 c
- 394 657 360 692 299 692 c
- 204 692 94 604 73 403 c
- 22 403 l
- 10 362 l
- 70 362 l
- 69 352 69 341 69 330 c
- 69 319 69 308 70 298 c
- 22 298 l
- 10 257 l
- 73 257 l
- 97 57 216 -12 295 -12 c
- 364 -12 427 25 484 123 c
- 458 142 l
- 425 101 384 37 316 37 c
- 256 37 189 84 173 257 c
- 335 257 l
- cp
- 500 0 m
- }
-ct_PSBuildGlyph
-} def
-end
-%%EndFile
-setglobal
-Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
-%%BeginResource: procset Adobe_AGM_Image 1.0 0
-%%Version: 1.0 0
-%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{
- currentpacking
- true setpacking
-}if
-userdict/Adobe_AGM_Image 71 dict dup begin put
-/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
-/nd{
- null def
-}bind def
-/AGMIMG_&image nd
-/AGMIMG_&colorimage nd
-/AGMIMG_&imagemask nd
-/AGMIMG_mbuf()def
-/AGMIMG_ybuf()def
-/AGMIMG_kbuf()def
-/AGMIMG_c 0 def
-/AGMIMG_m 0 def
-/AGMIMG_y 0 def
-/AGMIMG_k 0 def
-/AGMIMG_tmp nd
-/AGMIMG_imagestring0 nd
-/AGMIMG_imagestring1 nd
-/AGMIMG_imagestring2 nd
-/AGMIMG_imagestring3 nd
-/AGMIMG_imagestring4 nd
-/AGMIMG_imagestring5 nd
-/AGMIMG_cnt nd
-/AGMIMG_fsave nd
-/AGMIMG_colorAry nd
-/AGMIMG_override nd
-/AGMIMG_name nd
-/AGMIMG_maskSource nd
-/AGMIMG_flushfilters nd
-/invert_image_samples nd
-/knockout_image_samples nd
-/img nd
-/sepimg nd
-/devnimg nd
-/idximg nd
-/ds
-{
- Adobe_AGM_Core begin
- Adobe_AGM_Image begin
- /AGMIMG_&image systemdict/image get def
- /AGMIMG_&imagemask systemdict/imagemask get def
- /colorimage where{
- pop
- /AGMIMG_&colorimage/colorimage ldf
- }if
- end
- end
-}def
-/ps
-{
- Adobe_AGM_Image begin
- /AGMIMG_ccimage_exists{/customcolorimage where
- {
- pop
- /Adobe_AGM_OnHost_Seps where
- {
- pop false
- }{
- /Adobe_AGM_InRip_Seps where
- {
- pop false
- }{
- true
- }ifelse
- }ifelse
- }{
- false
- }ifelse
- }bdf
- level2{
- /invert_image_samples
- {
- Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
- /Decode[Decode 1 get Decode 0 get]def
- }def
- /knockout_image_samples
- {
- Operator/imagemask ne{
- /Decode[1 1]def
- }if
- }def
- }{
- /invert_image_samples
- {
- {1 exch sub}currenttransfer addprocs settransfer
- }def
- /knockout_image_samples
- {
- {pop 1}currenttransfer addprocs settransfer
- }def
- }ifelse
- /img/imageormask ldf
- /sepimg/sep_imageormask ldf
- /devnimg/devn_imageormask ldf
- /idximg/indexed_imageormask ldf
- /_ctype 7 def
- currentdict{
- dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
- bind
- }if
- def
- }forall
-}def
-/pt
-{
- end
-}def
-/dt
-{
-}def
-/AGMIMG_flushfilters
-{
- dup type/arraytype ne
- {1 array astore}if
- dup 0 get currentfile ne
- {dup 0 get flushfile}if
- {
- dup type/filetype eq
- {
- dup status 1 index currentfile ne and
- {closefile}
- {pop}
- ifelse
- }{pop}ifelse
- }forall
-}def
-/AGMIMG_init_common
-{
- currentdict/T known{/ImageType/T ldf currentdict/T undef}if
- currentdict/W known{/Width/W ldf currentdict/W undef}if
- currentdict/H known{/Height/H ldf currentdict/H undef}if
- currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
- currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
- currentdict/D known{/Decode/D ldf currentdict/D undef}if
- currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
- currentdict/O known{
- /Operator/O load 1 eq{
- /imagemask
- }{
- /O load 2 eq{
- /image
- }{
- /colorimage
- }ifelse
- }ifelse
- def
- currentdict/O undef
- }if
- currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
- currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
- currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
- currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
- /DataSource load xcheck not{
- DataSource type/arraytype eq{
- DataSource 0 get type/filetype eq{
- /_Filters DataSource def
- currentdict/MultipleDataSources known not{
- /DataSource DataSource dup length 1 sub get def
- }if
- }if
- }if
- currentdict/MultipleDataSources known not{
- /MultipleDataSources DataSource type/arraytype eq{
- DataSource length 1 gt
- }
- {false}ifelse def
- }if
- }if
- /NComponents Decode length 2 div def
- currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
-}bdf
-/imageormask_sys
-{
- begin
- AGMIMG_init_common
- save mark
- level2{
- currentdict
- Operator/imagemask eq{
- AGMIMG_&imagemask
- }{
- use_mask{
- process_mask AGMIMG_&image
- }{
- AGMIMG_&image
- }ifelse
- }ifelse
- }{
- Width Height
- Operator/imagemask eq{
- Decode 0 get 1 eq Decode 1 get 0 eq and
- ImageMatrix/DataSource load
- AGMIMG_&imagemask
- }{
- BitsPerComponent ImageMatrix/DataSource load
- AGMIMG_&image
- }ifelse
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- cleartomark restore
- end
-}def
-/overprint_plate
-{
- currentoverprint{
- 0 get dup type/nametype eq{
- dup/DeviceGray eq{
- pop AGMCORE_black_plate not
- }{
- /DeviceCMYK eq{
- AGMCORE_is_cmyk_sep not
- }if
- }ifelse
- }{
- false exch
- {
- AGMOHS_sepink eq or
- }forall
- not
- }ifelse
- }{
- pop false
- }ifelse
-}def
-/process_mask
-{
- level3{
- dup begin
- /ImageType 1 def
- end
- 4 dict begin
- /DataDict exch def
- /ImageType 3 def
- /InterleaveType 3 def
- /MaskDict 9 dict begin
- /ImageType 1 def
- /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
- /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
- /ImageMatrix[Width 0 0 Height neg 0 Height]def
- /NComponents 1 def
- /BitsPerComponent 1 def
- /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
- /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
- currentdict end def
- currentdict end
- }if
-}def
-/use_mask
-{
- dup/Mask known {dup/Mask get}{false}ifelse
-}def
-/imageormask
-{
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }
- {
- save mark
- level2 AGMCORE_host_sep not and{
- currentdict
- Operator/imagemask eq DeviceN_PS2 not and{
- imagemask
- }{
- AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
- [/Separation/Black/DeviceGray{}]setcolorspace
- /Decode[Decode 1 get Decode 0 get]def
- }if
- use_mask{
- process_mask image
- }{
- DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
- {
- Names convert_to_process not{
- 2 dict begin
- /imageDict xdf
- /names_index 0 def
- gsave
- imageDict write_image_file{
- Names{
- dup(None)ne{
- [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
- Operator imageDict read_image_file
- names_index 0 eq{true setoverprint}if
- /names_index names_index 1 add def
- }{
- pop
- }ifelse
- }forall
- close_image_file
- }if
- grestore
- end
- }{
- Operator/imagemask eq{
- imagemask
- }{
- image
- }ifelse
- }ifelse
- }{
- Operator/imagemask eq{
- imagemask
- }{
- image
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- }{
- Width Height
- Operator/imagemask eq{
- Decode 0 get 1 eq Decode 1 get 0 eq and
- ImageMatrix/DataSource load
- /Adobe_AGM_OnHost_Seps where{
- pop imagemask
- }{
- currentgray 1 ne{
- currentdict imageormask_sys
- }{
- currentoverprint not{
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentdict ignoreimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- BitsPerComponent ImageMatrix
- MultipleDataSources{
- 0 1 NComponents 1 sub{
- DataSource exch get
- }for
- }{
- /DataSource load
- }ifelse
- Operator/colorimage eq{
- AGMCORE_host_sep{
- MultipleDataSources level2 or NComponents 4 eq and{
- AGMCORE_is_cmyk_sep{
- MultipleDataSources{
- /DataSource DataSource 0 get xcheck
- {
- [
- DataSource 0 get/exec cvx
- DataSource 1 get/exec cvx
- DataSource 2 get/exec cvx
- DataSource 3 get/exec cvx
- /AGMCORE_get_ink_data cvx
- ]cvx
- }{
- DataSource aload pop AGMCORE_get_ink_data
- }ifelse def
- }{
- /DataSource
- Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
- /DataSource load
- filter_cmyk 0()/SubFileDecode filter def
- }ifelse
- /Decode[Decode 0 get Decode 1 get]def
- /MultipleDataSources false def
- /NComponents 1 def
- /Operator/image def
- invert_image_samples
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentoverprint not Operator/imagemask eq and{
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentdict ignoreimagedata
- }ifelse
- }ifelse
- }{
- MultipleDataSources NComponents AGMIMG_&colorimage
- }ifelse
- }{
- true NComponents colorimage
- }ifelse
- }{
- Operator/image eq{
- AGMCORE_host_sep{
- /DoImage true def
- currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
- {
- AGMCORE_black_plate not Operator/imagemask ne and{
- /DoImage false def
- currentdict ignoreimagedata
- }if
- }if
- 1 AGMCORE_&setgray
- DoImage
- {currentdict imageormask_sys}if
- }{
- use_mask{
- process_mask image
- }{
- image
- }ifelse
- }ifelse
- }{
- Operator/knockout eq{
- pop pop pop pop pop
- currentcolorspace overprint_plate not{
- knockout_unitsq
- }if
- }if
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
-}def
-/sep_imageormask
-{
- /sep_colorspace_dict AGMCORE_gget begin
- CSA map_csa
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }{
- save mark
- AGMCORE_avoid_L2_sep_space{
- /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
- }if
- AGMIMG_ccimage_exists
- MappedCSA 0 get/DeviceCMYK eq and
- currentdict/Components known and
- Name()ne and
- Name(All)ne and
- Operator/image eq and
- AGMCORE_producing_seps not and
- level2 not and
- {
- Width Height BitsPerComponent ImageMatrix
- [
- /DataSource load/exec cvx
- {
- 0 1 2 index length 1 sub{
- 1 index exch
- 2 copy get 255 xor put
- }for
- }/exec cvx
- ]cvx bind
- MappedCSA 0 get/DeviceCMYK eq{
- Components aload pop
- }{
- 0 0 0 Components aload pop 1 exch sub
- }ifelse
- Name findcmykcustomcolor
- customcolorimage
- }{
- AGMCORE_producing_seps not{
- level2{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
- [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
- /sep_tint AGMCORE_gget setcolor
- }if
- currentdict imageormask
- }{
- currentdict
- Operator/imagemask eq{
- imageormask
- }{
- sep_imageormask_lev1
- }ifelse
- }ifelse
- }{
- AGMCORE_host_sep{
- Operator/knockout eq{
- currentdict/ImageMatrix get concat
- knockout_unitsq
- }{
- currentgray 1 ne{
- AGMCORE_is_cmyk_sep Name(All)ne and{
- level2{
- Name AGMCORE_IsSeparationAProcessColor
- {
- Operator/imagemask eq{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
- }if
- }{
- invert_image_samples
- }ifelse
- }{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- [/Separation Name[/DeviceGray]
- {
- sep_colorspace_proc AGMCORE_get_ink_data
- 1 exch sub
- }bind
- ]AGMCORE_&setcolorspace
- /sep_tint AGMCORE_gget AGMCORE_&setcolor
- }if
- }ifelse
- currentdict imageormask_sys
- }{
- currentdict
- Operator/imagemask eq{
- imageormask_sys
- }{
- sep_image_lev1_sep
- }ifelse
- }ifelse
- }{
- Operator/imagemask ne{
- invert_image_samples
- }if
- currentdict imageormask_sys
- }ifelse
- }{
- currentoverprint not Name(All)eq or Operator/imagemask eq and{
- currentdict imageormask_sys
- }{
- currentoverprint not
- {
- gsave
- knockout_unitsq
- grestore
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- currentcolorspace 0 get/Separation ne{
- [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
- /sep_tint AGMCORE_gget setcolor
- }if
- }if
- currentoverprint
- MappedCSA 0 get/DeviceCMYK eq and
- Name AGMCORE_IsSeparationAProcessColor not and
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
- Name(All)ne and{
- imageormask_l2_overprint
- }{
- currentdict imageormask
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
- end
-}def
-/colorSpaceElemCnt
-{
- mark currentcolor counttomark dup 2 add 1 roll cleartomark
-}bdf
-/devn_sep_datasource
-{
- 1 dict begin
- /dataSource xdf
- [
- 0 1 dataSource length 1 sub{
- dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
- /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
- }for
- ]cvx bind
- end
-}bdf
-/devn_alt_datasource
-{
- 11 dict begin
- /convProc xdf
- /origcolorSpaceElemCnt xdf
- /origMultipleDataSources xdf
- /origBitsPerComponent xdf
- /origDecode xdf
- /origDataSource xdf
- /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
- /DataSource origMultipleDataSources
- {
- [
- BitsPerComponent 8 idiv origDecode length 2 idiv mul string
- 0 1 origDecode length 2 idiv 1 sub
- {
- dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
- origDataSource exch get 0()/SubFileDecode filter
- BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
- }for
- ]bind cvx
- }{origDataSource}ifelse 0()/SubFileDecode filter def
- [
- origcolorSpaceElemCnt string
- 0 2 origDecode length 2 sub
- {
- dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
- 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
- }for
- /convProc load/exec cvx
- origcolorSpaceElemCnt 1 sub -1 0
- {
- /dup cvx 2/add cvx/index cvx
- 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
- }for
- ]bind cvx 0()/SubFileDecode filter
- end
-}bdf
-/devn_imageormask
-{
- /devicen_colorspace_dict AGMCORE_gget begin
- CSA map_csa
- 2 dict begin
- dup
- /srcDataStrs[3 -1 roll begin
- AGMIMG_init_common
- currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
- {
- Width Decode length 2 div mul cvi
- {
- dup 65535 gt{1 add 2 div cvi}{exit}ifelse
- }loop
- string
- }repeat
- end]def
- /dstDataStr srcDataStrs 0 get length string def
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }{
- save mark
- AGMCORE_producing_seps not{
- level3 not{
- Operator/imagemask ne{
- /DataSource[[
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
- /MultipleDataSources true def
- /Decode colorSpaceElemCnt[exch{0 1}repeat]def
- }if
- }if
- currentdict imageormask
- }{
- AGMCORE_host_sep{
- Names convert_to_process{
- CSA get_csa_by_name 0 get/DeviceCMYK eq{
- /DataSource
- Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource
- filter_cmyk 0()/SubFileDecode filter def
- /MultipleDataSources false def
- /Decode[1 0]def
- /DeviceGray setcolorspace
- currentdict imageormask_sys
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate{
- /DataSource
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource
- /MultipleDataSources false def
- /Decode colorSpaceElemCnt[exch{0 1}repeat]def
- currentdict imageormask_sys
- }{
- gsave
- knockout_unitsq
- grestore
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }
- {
- /devicen_colorspace_dict AGMCORE_gget/names_index known{
- Operator/imagemask ne{
- MultipleDataSources{
- /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
- /MultipleDataSources false def
- }{
- /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
- }ifelse
- invert_image_samples
- }if
- currentdict imageormask_sys
- }{
- currentoverprint not Operator/imagemask eq and{
- currentdict imageormask_sys
- }{
- currentoverprint not
- {
- gsave
- knockout_unitsq
- grestore
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- currentdict imageormask
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
- end
- end
-}def
-/imageormask_l2_overprint
-{
- currentdict
- currentcmykcolor add add add 0 eq{
- currentdict consumeimagedata
- }{
- level3{
- currentcmykcolor
- /AGMIMG_k xdf
- /AGMIMG_y xdf
- /AGMIMG_m xdf
- /AGMIMG_c xdf
- Operator/imagemask eq{
- [/DeviceN[
- AGMIMG_c 0 ne{/Cyan}if
- AGMIMG_m 0 ne{/Magenta}if
- AGMIMG_y 0 ne{/Yellow}if
- AGMIMG_k 0 ne{/Black}if
- ]/DeviceCMYK{}]setcolorspace
- AGMIMG_c 0 ne{AGMIMG_c}if
- AGMIMG_m 0 ne{AGMIMG_m}if
- AGMIMG_y 0 ne{AGMIMG_y}if
- AGMIMG_k 0 ne{AGMIMG_k}if
- setcolor
- }{
- /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
- [/Indexed
- [
- /DeviceN[
- AGMIMG_c 0 ne{/Cyan}if
- AGMIMG_m 0 ne{/Magenta}if
- AGMIMG_y 0 ne{/Yellow}if
- AGMIMG_k 0 ne{/Black}if
- ]
- /DeviceCMYK{
- AGMIMG_k 0 eq{0}if
- AGMIMG_y 0 eq{0 exch}if
- AGMIMG_m 0 eq{0 3 1 roll}if
- AGMIMG_c 0 eq{0 4 1 roll}if
- }
- ]
- 255
- {
- 255 div
- mark exch
- dup dup dup
- AGMIMG_k 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_y 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_m 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_c 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- counttomark 1 add -1 roll pop
- }
- ]setcolorspace
- }ifelse
- imageormask_sys
- }{
- write_image_file{
- currentcmykcolor
- 0 ne{
- [/Separation/Black/DeviceGray{}]setcolorspace
- gsave
- /Black
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Yellow/DeviceGray{}]setcolorspace
- gsave
- /Yellow
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Magenta/DeviceGray{}]setcolorspace
- gsave
- /Magenta
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Cyan/DeviceGray{}]setcolorspace
- gsave
- /Cyan
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- close_image_file
- }{
- imageormask
- }ifelse
- }ifelse
- }ifelse
-}def
-/indexed_imageormask
-{
- begin
- AGMIMG_init_common
- save mark
- currentdict
- AGMCORE_host_sep{
- Operator/knockout eq{
- /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
- /CSA get get_csa_by_name
- }{
- /Names get
- }ifelse
- overprint_plate not{
- knockout_unitsq
- }if
- }{
- Indexed_DeviceN{
- /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
- indexed_image_lev2_sep
- }{
- currentoverprint not{
- knockout_unitsq
- }if
- currentdict consumeimagedata
- }ifelse
- }{
- AGMCORE_is_cmyk_sep{
- Operator/imagemask eq{
- imageormask_sys
- }{
- level2{
- indexed_image_lev2_sep
- }{
- indexed_image_lev1_sep
- }ifelse
- }ifelse
- }{
- currentoverprint not{
- knockout_unitsq
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- level2{
- Indexed_DeviceN{
- /indexed_colorspace_dict AGMCORE_gget begin
- }{
- /indexed_colorspace_dict AGMCORE_gget dup null ne
- {
- begin
- currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
- get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
- AGMCORE_in_rip_sep and{
- [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
- setcolorspace
- }if
- end
- }
- {pop}ifelse
- }ifelse
- imageormask
- Indexed_DeviceN{
- end
- }if
- }{
- Operator/imagemask eq{
- imageormask
- }{
- indexed_imageormask_lev1
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
-}def
-/indexed_image_lev2_sep
-{
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- Indexed_DeviceN not{
- currentcolorspace
- dup 1/DeviceGray put
- dup 3
- currentcolorspace 2 get 1 add string
- 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
- {
- dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
- }for
- put setcolorspace
- }if
- currentdict
- Operator/imagemask eq{
- AGMIMG_&imagemask
- }{
- use_mask{
- process_mask AGMIMG_&image
- }{
- AGMIMG_&image
- }ifelse
- }ifelse
- end end
-}def
- /OPIimage
- {
- dup type/dicttype ne{
- 10 dict begin
- /DataSource xdf
- /ImageMatrix xdf
- /BitsPerComponent xdf
- /Height xdf
- /Width xdf
- /ImageType 1 def
- /Decode[0 1 def]
- currentdict
- end
- }if
- dup begin
- /NComponents 1 cdndf
- /MultipleDataSources false cdndf
- /SkipImageProc{false}cdndf
- /Decode[
- 0
- currentcolorspace 0 get/Indexed eq{
- 2 BitsPerComponent exp 1 sub
- }{
- 1
- }ifelse
- ]cdndf
- /Operator/image cdndf
- end
- /sep_colorspace_dict AGMCORE_gget null eq{
- imageormask
- }{
- gsave
- dup begin invert_image_samples end
- sep_imageormask
- grestore
- }ifelse
- }def
-/cachemask_level2
-{
- 3 dict begin
- /LZWEncode filter/WriteFilter xdf
- /readBuffer 256 string def
- /ReadFilter
- currentfile
- 0(%EndMask)/SubFileDecode filter
- /ASCII85Decode filter
- /RunLengthDecode filter
- def
- {
- ReadFilter readBuffer readstring exch
- WriteFilter exch writestring
- not{exit}if
- }loop
- WriteFilter closefile
- end
-}def
-/spot_alias
-{
- /mapto_sep_imageormask
- {
- dup type/dicttype ne{
- 12 dict begin
- /ImageType 1 def
- /DataSource xdf
- /ImageMatrix xdf
- /BitsPerComponent xdf
- /Height xdf
- /Width xdf
- /MultipleDataSources false def
- }{
- begin
- }ifelse
- /Decode[/customcolor_tint AGMCORE_gget 0]def
- /Operator/image def
- /SkipImageProc{false}def
- currentdict
- end
- sep_imageormask
- }bdf
- /customcolorimage
- {
- Adobe_AGM_Image/AGMIMG_colorAry xddf
- /customcolor_tint AGMCORE_gget
- <<
- /Name AGMIMG_colorAry 4 get
- /CSA[/DeviceCMYK]
- /TintMethod/Subtractive
- /TintProc null
- /MappedCSA null
- /NComponents 4
- /Components[AGMIMG_colorAry aload pop pop]
- >>
- setsepcolorspace
- mapto_sep_imageormask
- }ndf
- Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
- /customcolorimage
- {
- Adobe_AGM_Image/AGMIMG_override false put
- current_spot_alias{dup 4 get map_alias}{false}ifelse
- {
- false set_spot_alias
- /customcolor_tint AGMCORE_gget exch setsepcolorspace
- pop
- mapto_sep_imageormask
- true set_spot_alias
- }{
- //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
- }ifelse
- }bdf
-}def
-/snap_to_device
-{
- 6 dict begin
- matrix currentmatrix
- dup 0 get 0 eq 1 index 3 get 0 eq and
- 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
- {
- 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
- 0 0 transform
- AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
- AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
- itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
- 1 1 transform
- AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
- AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
- itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
- [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
- }{
- }ifelse
- end
-}def
-level2 not{
- /colorbuf
- {
- 0 1 2 index length 1 sub{
- dup 2 index exch get
- 255 exch sub
- 2 index
- 3 1 roll
- put
- }for
- }def
- /tint_image_to_color
- {
- begin
- Width Height BitsPerComponent ImageMatrix
- /DataSource load
- end
- Adobe_AGM_Image begin
- /AGMIMG_mbuf 0 string def
- /AGMIMG_ybuf 0 string def
- /AGMIMG_kbuf 0 string def
- {
- colorbuf dup length AGMIMG_mbuf length ne
- {
- dup length dup dup
- /AGMIMG_mbuf exch string def
- /AGMIMG_ybuf exch string def
- /AGMIMG_kbuf exch string def
- }if
- dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
- }
- addprocs
- {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
- end
- }def
- /sep_imageormask_lev1
- {
- begin
- MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
- {
- 255 mul round cvi GrayLookup exch get
- }currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- /sep_colorspace_dict AGMCORE_gget/Components known{
- MappedCSA 0 get/DeviceCMYK eq{
- Components aload pop
- }{
- 0 0 0 Components aload pop 1 exch sub
- }ifelse
- Adobe_AGM_Image/AGMIMG_k xddf
- Adobe_AGM_Image/AGMIMG_y xddf
- Adobe_AGM_Image/AGMIMG_m xddf
- Adobe_AGM_Image/AGMIMG_c xddf
- AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
- {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- currentcolortransfer
- {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }ifelse
- }{
- MappedCSA 0 get/DeviceGray eq{
- {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- MappedCSA 0 get/DeviceCMYK eq{
- currentcolortransfer
- {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }{
- currentcolortransfer
- {pop 1}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- end
- }def
- /sep_image_lev1_sep
- {
- begin
- /sep_colorspace_dict AGMCORE_gget/Components known{
- Components aload pop
- Adobe_AGM_Image/AGMIMG_k xddf
- Adobe_AGM_Image/AGMIMG_y xddf
- Adobe_AGM_Image/AGMIMG_m xddf
- Adobe_AGM_Image/AGMIMG_c xddf
- {AGMIMG_c mul 1 exch sub}
- {AGMIMG_m mul 1 exch sub}
- {AGMIMG_y mul 1 exch sub}
- {AGMIMG_k mul 1 exch sub}
- }{
- {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
- }ifelse
- AGMCORE_get_ink_data currenttransfer addprocs settransfer
- currentdict imageormask_sys
- end
- }def
- /indexed_imageormask_lev1
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- currentdict
- MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
- {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
- imageormask
- }{
- MappedCSA 0 get/DeviceGray eq{
- {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
- imageormask
- }{
- MappedCSA 0 get/DeviceCMYK eq{
- currentcolortransfer
- {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- tint_image_to_color
- }{
- currentcolortransfer
- {pop 1}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
- setcolortransfer
- tint_image_to_color
- }ifelse
- }ifelse
- }ifelse
- end end
- }def
- /indexed_image_lev1_sep
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
- AGMCORE_get_ink_data currenttransfer addprocs settransfer
- currentdict imageormask_sys
- end end
- }def
-}if
-end
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-currentdict Adobe_AGM_Utils eq {end} if
-%%EndProlog
-%%BeginSetup
-Adobe_AGM_Utils begin
-3 3010 Adobe_AGM_Core/ds gx
-Adobe_CoolType_Core/ds get exec
-Adobe_AGM_Image/ds gx
-[/NamespacePush pdfmark_5
-[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
-[{Doc_Metadata} 1011 (% &end XMP packet& %) ReadBypdfmark_5_string
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
-<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26 ">
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about=""
- xmlns:xmp="http://ns.adobe.com/xap/1.0/"
- xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
- xmp:CreateDate="2011-11-03T06:50:01Z"
- xmp:CreatorTool="The AcroTeX eDucation Bundle"
- xmp:ModifyDate="2011-11-03T06:50:02-05:00"
- pdf:Producer="Acrobat Distiller 10.1.1 (Windows)"
- pdf:Keywords=""
- dc:format="application/pdf"
- xmpMM:DocumentID="uuid:fb6be653-eed8-4581-8e77-7e1cdfa4663c"
- xmpMM:InstanceID="uuid:3df2f3ff-d278-4854-8bb6-0bb036df4504">
- <dc:creator>
- <rdf:Seq>
- <rdf:li/>
- </rdf:Seq>
- </dc:creator>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
- </rdf:Description>
- </rdf:RDF>
-</x:xmpmeta>
+%!PS-Adobe-3.1 EPSF-3.0
+%ADO_DSC_Encoding: Windows Roman
+%%Title: aebmovie_poster.pdf
+%%Creator: Adobe Acrobat 10.1.1
+%%For: D. P. Story
+%%CreationDate: 11/3/2011, 6:50:31 AM
+%%BoundingBox: 0 0 320 240
+%%HiResBoundingBox: 0 0 320 240
+%%CropBox: 0 0 320 240
+%%LanguageLevel: 3
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededFeatures: (atend)
+%%DocumentSuppliedFeatures: (atend)
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%%DocumentCustomColors: (atend)
+%%EndComments
+%%BeginDefaults
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset Adobe_AGM_Utils 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{currentpacking true setpacking}if
+userdict/Adobe_AGM_Utils 75 dict dup begin put
+/bdf
+{bind def}bind def
+/nd{null def}bdf
+/xdf
+{exch def}bdf
+/ldf
+{load def}bdf
+/ddf
+{put}bdf
+/xddf
+{3 -1 roll put}bdf
+/xpt
+{exch put}bdf
+/ndf
+{
+ exch dup where{
+ pop pop pop
+ }{
+ xdf
+ }ifelse
+}def
+/cdndf
+{
+ exch dup currentdict exch known{
+ pop pop
+ }{
+ exch def
+ }ifelse
+}def
+/gx
+{get exec}bdf
+/ps_level
+ /languagelevel where{
+ pop systemdict/languagelevel gx
+ }{
+ 1
+ }ifelse
+def
+/level2
+ ps_level 2 ge
+def
+/level3
+ ps_level 3 ge
+def
+/ps_version
+ {version cvr}stopped{-1}if
+def
+/set_gvm
+{currentglobal exch setglobal}bdf
+/reset_gvm
+{setglobal}bdf
+/makereadonlyarray
+{
+ /packedarray where{pop packedarray
+ }{
+ array astore readonly}ifelse
+}bdf
+/map_reserved_ink_name
+{
+ dup type/stringtype eq{
+ dup/Red eq{
+ pop(_Red_)
+ }{
+ dup/Green eq{
+ pop(_Green_)
+ }{
+ dup/Blue eq{
+ pop(_Blue_)
+ }{
+ dup()cvn eq{
+ pop(Process)
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+}bdf
+/AGMUTIL_GSTATE 22 dict def
+/get_gstate
+{
+ AGMUTIL_GSTATE begin
+ /AGMUTIL_GSTATE_clr_spc currentcolorspace def
+ /AGMUTIL_GSTATE_clr_indx 0 def
+ /AGMUTIL_GSTATE_clr_comps 12 array def
+ mark currentcolor counttomark
+ {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
+ /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop
+ /AGMUTIL_GSTATE_fnt rootfont def
+ /AGMUTIL_GSTATE_lw currentlinewidth def
+ /AGMUTIL_GSTATE_lc currentlinecap def
+ /AGMUTIL_GSTATE_lj currentlinejoin def
+ /AGMUTIL_GSTATE_ml currentmiterlimit def
+ currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf
+ /AGMUTIL_GSTATE_sa currentstrokeadjust def
+ /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
+ /AGMUTIL_GSTATE_op currentoverprint def
+ /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
+ /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
+ currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf
+ cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf
+ /AGMUTIL_GSTATE_ht currenthalftone def
+ /AGMUTIL_GSTATE_flt currentflat def
+ end
+}def
+/set_gstate
+{
+ AGMUTIL_GSTATE begin
+ AGMUTIL_GSTATE_clr_spc setcolorspace
+ AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
+ /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor
+ AGMUTIL_GSTATE_fnt setfont
+ AGMUTIL_GSTATE_lw setlinewidth
+ AGMUTIL_GSTATE_lc setlinecap
+ AGMUTIL_GSTATE_lj setlinejoin
+ AGMUTIL_GSTATE_ml setmiterlimit
+ AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
+ AGMUTIL_GSTATE_sa setstrokeadjust
+ AGMUTIL_GSTATE_clr_rnd setcolorrendering
+ AGMUTIL_GSTATE_op setoverprint
+ AGMUTIL_GSTATE_bg cvx setblackgeneration
+ AGMUTIL_GSTATE_ucr cvx setundercolorremoval
+ AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
+ AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
+ AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or
+ {
+ currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne
+ {
+ mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark
+ }if
+ }{
+ AGMUTIL_GSTATE_ht sethalftone
+ }ifelse
+ AGMUTIL_GSTATE_flt setflat
+ end
+}def
+/get_gstate_and_matrix
+{
+ AGMUTIL_GSTATE begin
+ /AGMUTIL_GSTATE_ctm matrix currentmatrix def
+ end
+ get_gstate
+}def
+/set_gstate_and_matrix
+{
+ set_gstate
+ AGMUTIL_GSTATE begin
+ AGMUTIL_GSTATE_ctm setmatrix
+ end
+}def
+/AGMUTIL_str256 256 string def
+/AGMUTIL_src256 256 string def
+/AGMUTIL_dst64 64 string def
+/AGMUTIL_srcLen nd
+/AGMUTIL_ndx nd
+/AGMUTIL_cpd nd
+/capture_cpd{
+ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf
+}def
+/thold_halftone
+{
+ level3
+ {sethalftone currenthalftone}
+ {
+ dup/HalftoneType get 3 eq
+ {
+ sethalftone currenthalftone
+ }{
+ begin
+ Width Height mul{
+ Thresholds read{pop}if
+ }repeat
+ end
+ currenthalftone
+ }ifelse
+ }ifelse
+}def
+/rdcmntline
+{
+ currentfile AGMUTIL_str256 readline pop
+ (%)anchorsearch{pop}if
+}bdf
+/filter_cmyk
+{
+ dup type/filetype ne{
+ exch()/SubFileDecode filter
+ }{
+ exch pop
+ }
+ ifelse
+ [
+ exch
+ {
+ AGMUTIL_src256 readstring pop
+ dup length/AGMUTIL_srcLen exch def
+ /AGMUTIL_ndx 0 def
+ AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
+ 1 index exch get
+ AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
+ /AGMUTIL_ndx AGMUTIL_ndx 1 add def
+ }for
+ pop
+ AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
+ }
+ bind
+ /exec cvx
+ ]cvx
+}bdf
+/filter_indexed_devn
+{
+ cvi Names length mul names_index add Lookup exch get
+}bdf
+/filter_devn
+{
+ 4 dict begin
+ /srcStr xdf
+ /dstStr xdf
+ dup type/filetype ne{
+ 0()/SubFileDecode filter
+ }if
+ [
+ exch
+ [
+ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx
+ currentdict/srcStr get/readstring cvx/pop cvx
+ /dup cvx/length cvx 0/gt cvx[
+ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx
+ names_index Names length currentdict/srcStr get length 1 sub{
+ 1/index cvx/exch cvx/get cvx
+ currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx
+ Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx
+ }for
+ currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx
+ ]cvx/if cvx
+ /end cvx
+ ]cvx
+ bind
+ /exec cvx
+ ]cvx
+ end
+}bdf
+/AGMUTIL_imagefile nd
+/read_image_file
+{
+ AGMUTIL_imagefile 0 setfileposition
+ 10 dict begin
+ /imageDict xdf
+ /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
+ /imbufIdx 0 def
+ /origDataSource imageDict/DataSource get def
+ /origMultipleDataSources imageDict/MultipleDataSources get def
+ /origDecode imageDict/Decode get def
+ /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def
+ imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ {
+ /imbufCnt imageDict/DataSource get length def
+ /imbufs imbufCnt array def
+ 0 1 imbufCnt 1 sub{
+ /imbufIdx xdf
+ imbufs imbufIdx imbufLen string put
+ imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put
+ }for
+ DeviceN_PS2{
+ imageDict begin
+ /DataSource[DataSource/devn_sep_datasource cvx]cvx def
+ /MultipleDataSources false def
+ /Decode[0 1]def
+ end
+ }if
+ }{
+ /imbuf imbufLen string def
+ Indexed_DeviceN level3 not and DeviceN_NoneName or{
+ /srcDataStrs[imageDict begin
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi string
+ }repeat
+ end]def
+ imageDict begin
+ /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def
+ /Decode[0 1]def
+ end
+ }{
+ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put
+ imageDict/Decode[0 1]put
+ }ifelse
+ }ifelse
+ imageDict exch
+ load exec
+ imageDict/DataSource origDataSource put
+ imageDict/MultipleDataSources origMultipleDataSources put
+ imageDict/Decode origDecode put
+ end
+}bdf
+/write_image_file
+{
+ begin
+ {(AGMUTIL_imagefile)(w+)file}stopped{
+ false
+ }{
+ Adobe_AGM_Utils/AGMUTIL_imagefile xddf
+ 2 dict begin
+ /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
+ MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{
+ /imbuf imbufLen string def
+ }if
+ 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{
+ pop
+ MultipleDataSources{
+ 0 1 DataSource length 1 sub{
+ DataSource type dup
+ /arraytype eq{
+ pop DataSource exch gx
+ }{
+ /filetype eq{
+ DataSource exch get imbuf readstring pop
+ }{
+ DataSource exch get
+ }ifelse
+ }ifelse
+ AGMUTIL_imagefile exch writestring
+ }for
+ }{
+ DataSource type dup
+ /arraytype eq{
+ pop DataSource exec
+ }{
+ /filetype eq{
+ DataSource imbuf readstring pop
+ }{
+ DataSource
+ }ifelse
+ }ifelse
+ AGMUTIL_imagefile exch writestring
+ }ifelse
+ }for
+ end
+ true
+ }ifelse
+ end
+}bdf
+/close_image_file
+{
+ AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile
+}def
+statusdict/product known userdict/AGMP_current_show known not and{
+ /pstr statusdict/product get def
+ pstr(HP LaserJet 2200)eq
+ pstr(HP LaserJet 4000 Series)eq or
+ pstr(HP LaserJet 4050 Series )eq or
+ pstr(HP LaserJet 8000 Series)eq or
+ pstr(HP LaserJet 8100 Series)eq or
+ pstr(HP LaserJet 8150 Series)eq or
+ pstr(HP LaserJet 5000 Series)eq or
+ pstr(HP LaserJet 5100 Series)eq or
+ pstr(HP Color LaserJet 4500)eq or
+ pstr(HP Color LaserJet 4600)eq or
+ pstr(HP LaserJet 5Si)eq or
+ pstr(HP LaserJet 1200 Series)eq or
+ pstr(HP LaserJet 1300 Series)eq or
+ pstr(HP LaserJet 4100 Series)eq or
+ {
+ userdict/AGMP_current_show/show load put
+ userdict/show{
+ currentcolorspace 0 get
+ /Pattern eq
+ {false charpath f}
+ {AGMP_current_show}ifelse
+ }put
+ }if
+ currentdict/pstr undef
+}if
+/consumeimagedata
+{
+ begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known not
+ {/MultipleDataSources false def}if
+ MultipleDataSources
+ {
+ DataSource 0 get type
+ dup/filetype eq
+ {
+ 1 dict begin
+ /flushbuffer Width cvi string def
+ 1 1 Height cvi
+ {
+ pop
+ 0 1 DataSource length 1 sub
+ {
+ DataSource exch get
+ flushbuffer readstring pop pop
+ }for
+ }for
+ end
+ }if
+ dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and
+ {
+ Width Height mul cvi
+ {
+ 0 1 DataSource length 1 sub
+ {dup DataSource exch gx length exch 0 ne{pop}if}for
+ dup 0 eq
+ {pop exit}if
+ sub dup 0 le
+ {exit}if
+ }loop
+ pop
+ }if
+ }
+ {
+ /DataSource load type
+ dup/filetype eq
+ {
+ 1 dict begin
+ /flushbuffer Width Decode length 2 idiv mul cvi string def
+ 1 1 Height{pop DataSource flushbuffer readstring pop pop}for
+ end
+ }if
+ dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and
+ {
+ Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
+ {
+ DataSource length dup 0 eq
+ {pop exit}if
+ sub dup 0 le
+ {exit}if
+ }loop
+ pop
+ }if
+ }ifelse
+ end
+}bdf
+/addprocs
+{
+ 2{/exec load}repeat
+ 3 1 roll
+ [5 1 roll]bind cvx
+}def
+/modify_halftone_xfer
+{
+ currenthalftone dup length dict copy begin
+ currentdict 2 index known{
+ 1 index load dup length dict copy begin
+ currentdict/TransferFunction known{
+ /TransferFunction load
+ }{
+ currenttransfer
+ }ifelse
+ addprocs/TransferFunction xdf
+ currentdict end def
+ currentdict end sethalftone
+ }{
+ currentdict/TransferFunction known{
+ /TransferFunction load
+ }{
+ currenttransfer
+ }ifelse
+ addprocs/TransferFunction xdf
+ currentdict end sethalftone
+ pop
+ }ifelse
+}def
+/clonearray
+{
+ dup xcheck exch
+ dup length array exch
+ Adobe_AGM_Core/AGMCORE_tmp -1 ddf
+ {
+ Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf
+ dup type/dicttype eq
+ {
+ Adobe_AGM_Core/AGMCORE_tmp get
+ exch
+ clonedict
+ Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
+ }if
+ dup type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_tmp get exch
+ clonearray
+ Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
+ }if
+ exch dup
+ Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
+ }forall
+ exch{cvx}if
+}bdf
+/clonedict
+{
+ dup length dict
+ begin
+ {
+ dup type/dicttype eq
+ {clonedict}if
+ dup type/arraytype eq
+ {clonearray}if
+ def
+ }forall
+ currentdict
+ end
+}bdf
+/DeviceN_PS2
+{
+ /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and
+}bdf
+/Indexed_DeviceN
+{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne{
+ dup/CSDBase known{
+ /CSDBase get/CSD get_res/Names known
+ }{
+ pop false
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}bdf
+/DeviceN_NoneName
+{
+ /Names where{
+ pop
+ false Names
+ {
+ (None)eq or
+ }forall
+ }{
+ false
+ }ifelse
+}bdf
+/DeviceN_PS2_inRip_seps
+{
+ /AGMCORE_in_rip_sep where
+ {
+ pop dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and
+ {
+ /currentcolorspace exch AGMCORE_gput
+ false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+}bdf
+/base_colorspace_type
+{
+ dup type/arraytype eq{0 get}if
+}bdf
+/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
+{
+ /pdfmark_5{cleartomark}bind def
+}{
+ /pdfmark_5{pdfmark}bind def
+}ifelse
+/ReadBypdfmark_5
+{
+ currentfile exch 0 exch/SubFileDecode filter
+ /currentdistillerparams where
+ {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
+ {flushfile cleartomark}
+ {/PUT pdfmark}ifelse
+}bdf
+/ReadBypdfmark_5_string
+{
+ 2 dict begin
+ /makerString exch def string/tmpString exch def
+ {
+ currentfile tmpString readline not{pop exit}if
+ makerString anchorsearch
+ {
+ pop pop cleartomark exit
+ }{
+ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5
+ }ifelse
+ }loop
+ end
+}bdf
+/xpdfm
+{
+ {
+ dup 0 get/Label eq
+ {
+ aload length[exch 1 add 1 roll/PAGELABEL
+ }{
+ aload pop
+ [{ThisPage}<<5 -2 roll>>/PUT
+ }ifelse
+ pdfmark_5
+ }forall
+}bdf
+/lmt{
+ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop
+}bdf
+/int{
+ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop
+}bdf
+/ds{
+ Adobe_AGM_Utils begin
+}bdf
+/dt{
+ currentdict Adobe_AGM_Utils eq{
+ end
+ }if
+}bdf
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_AGM_Core 2.0 0
+%%Version: 2.0 0
+%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Core 209 dict dup begin put
+/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def
+/AGMCORE_str256 256 string def
+/AGMCORE_save nd
+/AGMCORE_graphicsave nd
+/AGMCORE_c 0 def
+/AGMCORE_m 0 def
+/AGMCORE_y 0 def
+/AGMCORE_k 0 def
+/AGMCORE_cmykbuf 4 array def
+/AGMCORE_screen[currentscreen]cvx def
+/AGMCORE_tmp 0 def
+/AGMCORE_&setgray nd
+/AGMCORE_&setcolor nd
+/AGMCORE_&setcolorspace nd
+/AGMCORE_&setcmykcolor nd
+/AGMCORE_cyan_plate nd
+/AGMCORE_magenta_plate nd
+/AGMCORE_yellow_plate nd
+/AGMCORE_black_plate nd
+/AGMCORE_plate_ndx nd
+/AGMCORE_get_ink_data nd
+/AGMCORE_is_cmyk_sep nd
+/AGMCORE_host_sep nd
+/AGMCORE_avoid_L2_sep_space nd
+/AGMCORE_distilling nd
+/AGMCORE_composite_job nd
+/AGMCORE_producing_seps nd
+/AGMCORE_ps_level -1 def
+/AGMCORE_ps_version -1 def
+/AGMCORE_environ_ok nd
+/AGMCORE_CSD_cache 0 dict def
+/AGMCORE_currentoverprint false def
+/AGMCORE_deltaX nd
+/AGMCORE_deltaY nd
+/AGMCORE_name nd
+/AGMCORE_sep_special nd
+/AGMCORE_err_strings 4 dict def
+/AGMCORE_cur_err nd
+/AGMCORE_current_spot_alias false def
+/AGMCORE_inverting false def
+/AGMCORE_feature_dictCount nd
+/AGMCORE_feature_opCount nd
+/AGMCORE_feature_ctm nd
+/AGMCORE_ConvertToProcess false def
+/AGMCORE_Default_CTM matrix def
+/AGMCORE_Default_PageSize nd
+/AGMCORE_Default_flatness nd
+/AGMCORE_currentbg nd
+/AGMCORE_currentucr nd
+/AGMCORE_pattern_paint_type 0 def
+/knockout_unitsq nd
+currentglobal true setglobal
+[/CSA/Gradient/Procedure]
+{
+ /Generic/Category findresource dup length dict copy/Category defineresource pop
+}forall
+setglobal
+/AGMCORE_key_known
+{
+ where{
+ /Adobe_AGM_Core_Id known
+ }{
+ false
+ }ifelse
+}ndf
+/flushinput
+{
+ save
+ 2 dict begin
+ /CompareBuffer 3 -1 roll def
+ /readbuffer 256 string def
+ mark
+ {
+ currentfile readbuffer{readline}stopped
+ {cleartomark mark}
+ {
+ not
+ {pop exit}
+ if
+ CompareBuffer eq
+ {exit}
+ if
+ }ifelse
+ }loop
+ cleartomark
+ end
+ restore
+}bdf
+/getspotfunction
+{
+ AGMCORE_screen exch pop exch pop
+ dup type/dicttype eq{
+ dup/HalftoneType get 1 eq{
+ /SpotFunction get
+ }{
+ dup/HalftoneType get 2 eq{
+ /GraySpotFunction get
+ }{
+ pop
+ {
+ abs exch abs 2 copy add 1 gt{
+ 1 sub dup mul exch 1 sub dup mul add 1 sub
+ }{
+ dup mul exch dup mul add 1 exch sub
+ }ifelse
+ }bind
+ }ifelse
+ }ifelse
+ }if
+}def
+/np
+{newpath}bdf
+/clp_npth
+{clip np}def
+/eoclp_npth
+{eoclip np}def
+/npth_clp
+{np clip}def
+/graphic_setup
+{
+ /AGMCORE_graphicsave save store
+ concat
+ 0 setgray
+ 0 setlinecap
+ 0 setlinejoin
+ 1 setlinewidth
+ []0 setdash
+ 10 setmiterlimit
+ np
+ false setoverprint
+ false setstrokeadjust
+ //Adobe_AGM_Core/spot_alias gx
+ /Adobe_AGM_Image where{
+ pop
+ Adobe_AGM_Image/spot_alias 2 copy known{
+ gx
+ }{
+ pop pop
+ }ifelse
+ }if
+ /sep_colorspace_dict null AGMCORE_gput
+ 100 dict begin
+ /dictstackcount countdictstack def
+ /showpage{}def
+ mark
+}def
+/graphic_cleanup
+{
+ cleartomark
+ dictstackcount 1 countdictstack 1 sub{end}for
+ end
+ AGMCORE_graphicsave restore
+}def
+/compose_error_msg
+{
+ grestoreall initgraphics
+ /Helvetica findfont 10 scalefont setfont
+ /AGMCORE_deltaY 100 def
+ /AGMCORE_deltaX 310 def
+ clippath pathbbox np pop pop 36 add exch 36 add exch moveto
+ 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
+ 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
+ 0 AGMCORE_&setgray
+ gsave 1 AGMCORE_&setgray fill grestore
+ 1 setlinewidth gsave stroke grestore
+ currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
+ /AGMCORE_deltaY 12 def
+ /AGMCORE_tmp 0 def
+ AGMCORE_err_strings exch get
+ {
+ dup 32 eq
+ {
+ pop
+ AGMCORE_str256 0 AGMCORE_tmp getinterval
+ stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
+ {
+ currentpoint AGMCORE_deltaY sub exch pop
+ clippath pathbbox pop pop pop 44 add exch moveto
+ }if
+ AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show
+ 0 1 AGMCORE_str256 length 1 sub
+ {
+ AGMCORE_str256 exch 0 put
+ }for
+ /AGMCORE_tmp 0 def
+ }{
+ AGMCORE_str256 exch AGMCORE_tmp xpt
+ /AGMCORE_tmp AGMCORE_tmp 1 add def
+ }ifelse
+ }forall
+}bdf
+/AGMCORE_CMYKDeviceNColorspaces[
+ [/Separation/None/DeviceCMYK{0 0 0}]
+ [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind]
+ [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind]
+ [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind]
+ [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind]
+ [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind]
+ [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind]
+ [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind]
+ [/Separation(Cyan)/DeviceCMYK{0 0 0}]
+ [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind]
+ [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind]
+ [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind]
+ [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}]
+ [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind]
+ [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}]
+ [/DeviceCMYK]
+]def
+/ds{
+ Adobe_AGM_Core begin
+ /currentdistillerparams where
+ {
+ pop currentdistillerparams/CoreDistVersion get 5000 lt
+ {<</DetectBlends false>>setdistillerparams}if
+ }if
+ /AGMCORE_ps_version xdf
+ /AGMCORE_ps_level xdf
+ errordict/AGM_handleerror known not{
+ errordict/AGM_handleerror errordict/handleerror get put
+ errordict/handleerror{
+ Adobe_AGM_Core begin
+ $error/newerror get AGMCORE_cur_err null ne and{
+ $error/newerror false put
+ AGMCORE_cur_err compose_error_msg
+ }if
+ $error/newerror true put
+ end
+ errordict/AGM_handleerror get exec
+ }bind put
+ }if
+ /AGMCORE_environ_ok
+ ps_level AGMCORE_ps_level ge
+ ps_version AGMCORE_ps_version ge and
+ AGMCORE_ps_level -1 eq or
+ def
+ AGMCORE_environ_ok not
+ {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
+ /AGMCORE_&setgray systemdict/setgray get def
+ level2{
+ /AGMCORE_&setcolor systemdict/setcolor get def
+ /AGMCORE_&setcolorspace systemdict/setcolorspace get def
+ }if
+ /AGMCORE_currentbg currentblackgeneration def
+ /AGMCORE_currentucr currentundercolorremoval def
+ /AGMCORE_Default_flatness currentflat def
+ /AGMCORE_distilling
+ /product where{
+ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
+ }{
+ false
+ }ifelse
+ def
+ /AGMCORE_GSTATE AGMCORE_key_known not{
+ /AGMCORE_GSTATE 21 dict def
+ /AGMCORE_tmpmatrix matrix def
+ /AGMCORE_gstack 32 array def
+ /AGMCORE_gstackptr 0 def
+ /AGMCORE_gstacksaveptr 0 def
+ /AGMCORE_gstackframekeys 14 def
+ /AGMCORE_&gsave/gsave ldf
+ /AGMCORE_&grestore/grestore ldf
+ /AGMCORE_&grestoreall/grestoreall ldf
+ /AGMCORE_&save/save ldf
+ /AGMCORE_&setoverprint/setoverprint ldf
+ /AGMCORE_gdictcopy{
+ begin
+ {def}forall
+ end
+ }def
+ /AGMCORE_gput{
+ AGMCORE_gstack AGMCORE_gstackptr get
+ 3 1 roll
+ put
+ }def
+ /AGMCORE_gget{
+ AGMCORE_gstack AGMCORE_gstackptr get
+ exch
+ get
+ }def
+ /gsave{
+ AGMCORE_&gsave
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gstackptr 1 add
+ dup 32 ge{limitcheck}if
+ /AGMCORE_gstackptr exch store
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gdictcopy
+ }def
+ /grestore{
+ AGMCORE_&grestore
+ AGMCORE_gstackptr 1 sub
+ dup AGMCORE_gstacksaveptr lt{1 add}if
+ dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known
+ {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
+ /AGMCORE_gstackptr exch store
+ }def
+ /grestoreall{
+ AGMCORE_&grestoreall
+ /AGMCORE_gstackptr AGMCORE_gstacksaveptr store
+ }def
+ /save{
+ AGMCORE_&save
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gstackptr 1 add
+ dup 32 ge{limitcheck}if
+ /AGMCORE_gstackptr exch store
+ /AGMCORE_gstacksaveptr AGMCORE_gstackptr store
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gdictcopy
+ }def
+ /setoverprint{
+ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
+ }def
+ 0 1 AGMCORE_gstack length 1 sub{
+ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
+ }for
+ }if
+ level3/AGMCORE_&sysshfill AGMCORE_key_known not and
+ {
+ /AGMCORE_&sysshfill systemdict/shfill get def
+ /AGMCORE_&sysmakepattern systemdict/makepattern get def
+ /AGMCORE_&usrmakepattern/makepattern load def
+ }if
+ /currentcmykcolor[0 0 0 0]AGMCORE_gput
+ /currentstrokeadjust false AGMCORE_gput
+ /currentcolorspace[/DeviceGray]AGMCORE_gput
+ /sep_tint 0 AGMCORE_gput
+ /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput
+ /sep_colorspace_dict null AGMCORE_gput
+ /devicen_colorspace_dict null AGMCORE_gput
+ /indexed_colorspace_dict null AGMCORE_gput
+ /currentcolor_intent()AGMCORE_gput
+ /customcolor_tint 1 AGMCORE_gput
+ /absolute_colorimetric_crd null AGMCORE_gput
+ /relative_colorimetric_crd null AGMCORE_gput
+ /saturation_crd null AGMCORE_gput
+ /perceptual_crd null AGMCORE_gput
+ currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf
+ cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf
+ <<
+ /MaxPatternItem currentsystemparams/MaxPatternCache get
+ >>
+ setuserparams
+ end
+}def
+/ps
+{
+ /setcmykcolor where{
+ pop
+ Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put
+ }if
+ Adobe_AGM_Core begin
+ /setcmykcolor
+ {
+ 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput
+ 1 sub 4 1 roll
+ 3{
+ 3 index add neg dup 0 lt{
+ pop 0
+ }if
+ 3 1 roll
+ }repeat
+ setrgbcolor pop
+ }ndf
+ /currentcmykcolor
+ {
+ /currentcmykcolor AGMCORE_gget aload pop
+ }ndf
+ /setoverprint
+ {pop}ndf
+ /currentoverprint
+ {false}ndf
+ /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
+ /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
+ /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
+ /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
+ /AGMCORE_plate_ndx
+ AGMCORE_cyan_plate{
+ 0
+ }{
+ AGMCORE_magenta_plate{
+ 1
+ }{
+ AGMCORE_yellow_plate{
+ 2
+ }{
+ AGMCORE_black_plate{
+ 3
+ }{
+ 4
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_have_reported_unsupported_color_space false def
+ /AGMCORE_report_unsupported_color_space
+ {
+ AGMCORE_have_reported_unsupported_color_space false eq
+ {
+ (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)==
+ Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf
+ }if
+ }def
+ /AGMCORE_composite_job
+ AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
+ /AGMCORE_in_rip_sep
+ /AGMCORE_in_rip_sep where{
+ pop AGMCORE_in_rip_sep
+ }{
+ AGMCORE_distilling
+ {
+ false
+ }{
+ userdict/Adobe_AGM_OnHost_Seps known{
+ false
+ }{
+ level2{
+ currentpagedevice/Separations 2 copy known{
+ get
+ }{
+ pop pop false
+ }ifelse
+ }{
+ false
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
+ /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
+ /AGM_preserve_spots
+ /AGM_preserve_spots where{
+ pop AGM_preserve_spots
+ }{
+ AGMCORE_distilling AGMCORE_producing_seps or
+ }ifelse
+ def
+ /AGM_is_distiller_preserving_spotimages
+ {
+ currentdistillerparams/PreserveOverprintSettings known
+ {
+ currentdistillerparams/PreserveOverprintSettings get
+ {
+ currentdistillerparams/ColorConversionStrategy known
+ {
+ currentdistillerparams/ColorConversionStrategy get
+ /sRGB ne
+ }{
+ true
+ }ifelse
+ }{
+ false
+ }ifelse
+ }{
+ false
+ }ifelse
+ }def
+ /convert_spot_to_process where{pop}{
+ /convert_spot_to_process
+ {
+ //Adobe_AGM_Core begin
+ dup map_alias{
+ /Name get exch pop
+ }if
+ dup dup(None)eq exch(All)eq or
+ {
+ pop false
+ }{
+ AGMCORE_host_sep
+ {
+ gsave
+ 1 0 0 0 setcmykcolor currentgray 1 exch sub
+ 0 1 0 0 setcmykcolor currentgray 1 exch sub
+ 0 0 1 0 setcmykcolor currentgray 1 exch sub
+ 0 0 0 1 setcmykcolor currentgray 1 exch sub
+ add add add 0 eq
+ {
+ pop false
+ }{
+ false setoverprint
+ current_spot_alias false set_spot_alias
+ 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
+ set_spot_alias
+ currentgray 1 ne
+ }ifelse
+ grestore
+ }{
+ AGMCORE_distilling
+ {
+ pop AGM_is_distiller_preserving_spotimages not
+ }{
+ //Adobe_AGM_Core/AGMCORE_name xddf
+ false
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq
+ AGMUTIL_cpd/OverrideSeparations known and
+ {
+ AGMUTIL_cpd/OverrideSeparations get
+ {
+ /HqnSpots/ProcSet resourcestatus
+ {
+ pop pop pop true
+ }if
+ }if
+ }if
+ {
+ AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not
+ }{
+ gsave
+ [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace
+ false
+ AGMUTIL_cpd/SeparationColorNames 2 copy known
+ {
+ get
+ {AGMCORE_name eq or}forall
+ not
+ }{
+ pop pop pop true
+ }ifelse
+ grestore
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ }ifelse
+ /convert_to_process where{pop}{
+ /convert_to_process
+ {
+ dup length 0 eq
+ {
+ pop false
+ }{
+ AGMCORE_host_sep
+ {
+ dup true exch
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ dup(Black)eq 3 -1 roll or
+ {pop}
+ {convert_spot_to_process and}ifelse
+ }
+ forall
+ {
+ true exch
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ (Black)eq or and
+ }forall
+ not
+ }{pop false}ifelse
+ }{
+ false exch
+ {
+ /PhotoshopDuotoneList where{pop false}{true}ifelse
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ dup(Black)eq 3 -1 roll or
+ {pop}
+ {convert_spot_to_process or}ifelse
+ }
+ {
+ convert_spot_to_process or
+ }
+ ifelse
+ }
+ forall
+ }ifelse
+ }ifelse
+ }def
+ }ifelse
+ /AGMCORE_avoid_L2_sep_space
+ version cvr 2012 lt
+ level2 and
+ AGMCORE_producing_seps not and
+ def
+ /AGMCORE_is_cmyk_sep
+ AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
+ def
+ /AGM_avoid_0_cmyk where{
+ pop AGM_avoid_0_cmyk
+ }{
+ AGM_preserve_spots
+ userdict/Adobe_AGM_OnHost_Seps known
+ userdict/Adobe_AGM_InRip_Seps known or
+ not and
+ }ifelse
+ {
+ /setcmykcolor[
+ {
+ 4 copy add add add 0 eq currentoverprint and{
+ pop 0.0005
+ }if
+ }/exec cvx
+ /AGMCORE_&setcmykcolor load dup type/operatortype ne{
+ /exec cvx
+ }if
+ ]cvx def
+ }if
+ /AGMCORE_IsSeparationAProcessColor
+ {
+ dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or
+ }def
+ AGMCORE_host_sep{
+ /setcolortransfer
+ {
+ AGMCORE_cyan_plate{
+ pop pop pop
+ }{
+ AGMCORE_magenta_plate{
+ 4 3 roll pop pop pop
+ }{
+ AGMCORE_yellow_plate{
+ 4 2 roll pop pop pop
+ }{
+ 4 1 roll pop pop pop
+ }ifelse
+ }ifelse
+ }ifelse
+ settransfer
+ }
+ def
+ /AGMCORE_get_ink_data
+ AGMCORE_cyan_plate{
+ {pop pop pop}
+ }{
+ AGMCORE_magenta_plate{
+ {4 3 roll pop pop pop}
+ }{
+ AGMCORE_yellow_plate{
+ {4 2 roll pop pop pop}
+ }{
+ {4 1 roll pop pop pop}
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_RemoveProcessColorNames
+ {
+ 1 dict begin
+ /filtername
+ {
+ dup/Cyan eq 1 index(Cyan)eq or
+ {pop(_cyan_)}if
+ dup/Magenta eq 1 index(Magenta)eq or
+ {pop(_magenta_)}if
+ dup/Yellow eq 1 index(Yellow)eq or
+ {pop(_yellow_)}if
+ dup/Black eq 1 index(Black)eq or
+ {pop(_black_)}if
+ }def
+ dup type/arraytype eq
+ {[exch{filtername}forall]}
+ {filtername}ifelse
+ end
+ }def
+ level3{
+ /AGMCORE_IsCurrentColor
+ {
+ dup AGMCORE_IsSeparationAProcessColor
+ {
+ AGMCORE_plate_ndx 0 eq
+ {dup(Cyan)eq exch/Cyan eq or}if
+ AGMCORE_plate_ndx 1 eq
+ {dup(Magenta)eq exch/Magenta eq or}if
+ AGMCORE_plate_ndx 2 eq
+ {dup(Yellow)eq exch/Yellow eq or}if
+ AGMCORE_plate_ndx 3 eq
+ {dup(Black)eq exch/Black eq or}if
+ AGMCORE_plate_ndx 4 eq
+ {pop false}if
+ }{
+ gsave
+ false setoverprint
+ current_spot_alias false set_spot_alias
+ 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
+ set_spot_alias
+ currentgray 1 ne
+ grestore
+ }ifelse
+ }def
+ /AGMCORE_filter_functiondatasource
+ {
+ 5 dict begin
+ /data_in xdf
+ data_in type/stringtype eq
+ {
+ /ncomp xdf
+ /comp xdf
+ /string_out data_in length ncomp idiv string def
+ 0 ncomp data_in length 1 sub
+ {
+ string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
+ }for
+ string_out
+ }{
+ string/string_in xdf
+ /string_out 1 string def
+ /component xdf
+ [
+ data_in string_in/readstring cvx
+ [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx
+ [/pop cvx()]cvx/ifelse cvx
+ ]cvx/ReusableStreamDecode filter
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShadingFunction
+ {
+ 2 dict begin
+ /paint? xdf
+ /channel xdf
+ dup type/dicttype eq
+ {
+ begin
+ FunctionType 0 eq
+ {
+ /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
+ currentdict/Decode known
+ {/Decode Decode channel 2 mul 2 getinterval def}if
+ paint? not
+ {/Decode[1 1]def}if
+ }if
+ FunctionType 2 eq
+ {
+ paint?
+ {
+ /C0[C0 channel get 1 exch sub]def
+ /C1[C1 channel get 1 exch sub]def
+ }{
+ /C0[1]def
+ /C1[1]def
+ }ifelse
+ }if
+ FunctionType 3 eq
+ {
+ /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def
+ }if
+ currentdict/Range known
+ {/Range[0 1]def}if
+ currentdict
+ end}{
+ channel get 0 paint? AGMCORE_separateShadingFunction
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShading
+ {
+ 3 -1 roll begin
+ currentdict/Function known
+ {
+ currentdict/Background known
+ {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
+ Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf
+ /ColorSpace[/DeviceGray]def
+ }{
+ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
+ }{
+ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
+ }ifelse
+ ColorSpace 0 get/Separation eq
+ {
+ {
+ [1/exch cvx/sub cvx]cvx
+ }{
+ [/pop cvx 1]cvx
+ }ifelse
+ ColorSpace 3 3 -1 roll put
+ pop
+ }{
+ {
+ [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx
+ }{
+ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx
+ }ifelse
+ ColorSpace 3 3 -1 roll bind put
+ }ifelse
+ ColorSpace 2/DeviceGray put
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShadingDict
+ {
+ dup/ColorSpace get
+ dup type/arraytype ne
+ {[exch]}if
+ dup 0 get/DeviceCMYK eq
+ {
+ exch begin
+ currentdict
+ AGMCORE_cyan_plate
+ {0 true}if
+ AGMCORE_magenta_plate
+ {1 true}if
+ AGMCORE_yellow_plate
+ {2 true}if
+ AGMCORE_black_plate
+ {3 true}if
+ AGMCORE_plate_ndx 4 eq
+ {0 false}if
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ currentdict
+ end exch
+ }if
+ dup 0 get/Separation eq
+ {
+ exch begin
+ ColorSpace 1 get dup/None ne exch/All ne and
+ {
+ ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
+ {
+ ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace
+ [
+ /Separation
+ ColorSpace 1 get
+ /DeviceGray
+ [
+ ColorSpace 3 get/exec cvx
+ 4 AGMCORE_plate_ndx sub -1/roll cvx
+ 4 1/roll cvx
+ 3[/pop cvx]cvx/repeat cvx
+ 1/exch cvx/sub cvx
+ ]cvx
+ ]def
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ currentdict 0 false AGMCORE_separateShading
+ }if
+ }ifelse
+ }{
+ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
+ 0 exch
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ }ifelse
+ }if
+ currentdict
+ end exch
+ }if
+ dup 0 get/DeviceN eq
+ {
+ exch begin
+ ColorSpace 1 get convert_to_process
+ {
+ ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace
+ [
+ /DeviceN
+ ColorSpace 1 get
+ /DeviceGray
+ [
+ ColorSpace 3 get/exec cvx
+ 4 AGMCORE_plate_ndx sub -1/roll cvx
+ 4 1/roll cvx
+ 3[/pop cvx]cvx/repeat cvx
+ 1/exch cvx/sub cvx
+ ]cvx
+ ]def
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ currentdict 0 false AGMCORE_separateShading
+ /ColorSpace[/DeviceGray]def
+ }if
+ }ifelse
+ }{
+ currentdict
+ false -1 ColorSpace 1 get
+ {
+ AGMCORE_IsCurrentColor
+ {
+ 1 add
+ exch pop true exch exit
+ }if
+ 1 add
+ }forall
+ exch
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ }ifelse
+ currentdict
+ end exch
+ }if
+ dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not
+ {
+ exch begin
+ ColorSpace dup type/arraytype eq
+ {0 get}if
+ /DeviceGray ne
+ {
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ ColorSpace 0 get/CIEBasedA eq
+ {
+ /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def
+ }if
+ ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or
+ {
+ /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def
+ }if
+ ColorSpace 0 get/CIEBasedDEFG eq
+ {
+ /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
+ }if
+ currentdict 0 false AGMCORE_separateShading
+ }if
+ }if
+ currentdict
+ end exch
+ }if
+ pop
+ dup/AGMCORE_ignoreshade known
+ {
+ begin
+ /ColorSpace[/Separation(None)/DeviceGray{}]def
+ currentdict end
+ }if
+ }def
+ /shfill
+ {
+ AGMCORE_separateShadingDict
+ dup/AGMCORE_ignoreshade known
+ {pop}
+ {AGMCORE_&sysshfill}ifelse
+ }def
+ /makepattern
+ {
+ exch
+ dup/PatternType get 2 eq
+ {
+ clonedict
+ begin
+ /Shading Shading AGMCORE_separateShadingDict def
+ Shading/AGMCORE_ignoreshade known
+ currentdict end exch
+ {pop<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
+ exch AGMCORE_&sysmakepattern
+ }{
+ exch AGMCORE_&usrmakepattern
+ }ifelse
+ }def
+ }if
+ }if
+ AGMCORE_in_rip_sep{
+ /setcustomcolor
+ {
+ exch aload pop
+ dup 7 1 roll inRip_spot_has_ink not {
+ 4{4 index mul 4 1 roll}
+ repeat
+ /DeviceCMYK setcolorspace
+ 6 -2 roll pop pop
+ }{
+ //Adobe_AGM_Core begin
+ /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
+ end
+ [/Separation 4 -1 roll/DeviceCMYK
+ {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
+ ]
+ setcolorspace
+ }ifelse
+ setcolor
+ }ndf
+ /setseparationgray
+ {
+ [/Separation(All)/DeviceGray{}]setcolorspace_opt
+ 1 exch sub setcolor
+ }ndf
+ }{
+ /setseparationgray
+ {
+ AGMCORE_&setgray
+ }ndf
+ }ifelse
+ /findcmykcustomcolor
+ {
+ 5 makereadonlyarray
+ }ndf
+ /setcustomcolor
+ {
+ exch aload pop pop
+ 4{4 index mul 4 1 roll}repeat
+ setcmykcolor pop
+ }ndf
+ /has_color
+ /colorimage where{
+ AGMCORE_producing_seps{
+ pop true
+ }{
+ systemdict eq
+ }ifelse
+ }{
+ false
+ }ifelse
+ def
+ /map_index
+ {
+ 1 index mul exch getinterval{255 div}forall
+ }bdf
+ /map_indexed_devn
+ {
+ Lookup Names length 3 -1 roll cvi map_index
+ }bdf
+ /n_color_components
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop 1
+ }{
+ /DeviceCMYK eq{
+ 4
+ }{
+ 3
+ }ifelse
+ }ifelse
+ }bdf
+ level2{
+ /mo/moveto ldf
+ /li/lineto ldf
+ /cv/curveto ldf
+ /knockout_unitsq
+ {
+ 1 setgray
+ 0 0 1 1 rectfill
+ }def
+ level2/setcolorspace AGMCORE_key_known not and{
+ /AGMCORE_&&&setcolorspace/setcolorspace ldf
+ /AGMCORE_ReplaceMappedColor
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ dup 0 get dup/Separation eq
+ {
+ pop
+ dup length array copy
+ dup dup 1 get
+ current_spot_alias
+ {
+ dup map_alias
+ {
+ false set_spot_alias
+ dup 1 exch setsepcolorspace
+ true set_spot_alias
+ begin
+ /sep_colorspace_dict currentdict AGMCORE_gput
+ pop pop pop
+ [
+ /Separation Name
+ CSA map_csa
+ MappedCSA
+ /sep_colorspace_proc load
+ ]
+ dup Name
+ end
+ }if
+ }if
+ map_reserved_ink_name 1 xpt
+ }{
+ /DeviceN eq
+ {
+ dup length array copy
+ dup dup 1 get[
+ exch{
+ current_spot_alias{
+ dup map_alias{
+ /Name get exch pop
+ }if
+ }if
+ map_reserved_ink_name
+ }forall
+ ]1 xpt
+ }if
+ }ifelse
+ end
+ }if
+ }if
+ }def
+ /setcolorspace
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/Indexed eq
+ {
+ AGMCORE_distilling
+ {
+ /PhotoshopDuotoneList where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ {
+ aload pop 3 -1 roll
+ AGMCORE_ReplaceMappedColor
+ 3 1 roll 4 array astore
+ }if
+ }{
+ AGMCORE_ReplaceMappedColor
+ }ifelse
+ }if
+ DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
+ }def
+ }if
+ }{
+ /adj
+ {
+ currentstrokeadjust{
+ transform
+ 0.25 sub round 0.25 add exch
+ 0.25 sub round 0.25 add exch
+ itransform
+ }if
+ }def
+ /mo{
+ adj moveto
+ }def
+ /li{
+ adj lineto
+ }def
+ /cv{
+ 6 2 roll adj
+ 6 2 roll adj
+ 6 2 roll adj curveto
+ }def
+ /knockout_unitsq
+ {
+ 1 setgray
+ 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
+ }def
+ /currentstrokeadjust{
+ /currentstrokeadjust AGMCORE_gget
+ }def
+ /setstrokeadjust{
+ /currentstrokeadjust exch AGMCORE_gput
+ }def
+ /setcolorspace
+ {
+ /currentcolorspace exch AGMCORE_gput
+ }def
+ /currentcolorspace
+ {
+ /currentcolorspace AGMCORE_gget
+ }def
+ /setcolor_devicecolor
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop setgray
+ }{
+ /DeviceCMYK eq{
+ setcmykcolor
+ }{
+ setrgbcolor
+ }ifelse
+ }ifelse
+ }def
+ /setcolor
+ {
+ currentcolorspace 0 get
+ dup/DeviceGray ne{
+ dup/DeviceCMYK ne{
+ dup/DeviceRGB ne{
+ dup/Separation eq{
+ pop
+ currentcolorspace 3 gx
+ currentcolorspace 2 get
+ }{
+ dup/Indexed eq{
+ pop
+ currentcolorspace 3 get dup type/stringtype eq{
+ currentcolorspace 1 get n_color_components
+ 3 -1 roll map_index
+ }{
+ exec
+ }ifelse
+ currentcolorspace 1 get
+ }{
+ /AGMCORE_cur_err/AGMCORE_invalid_color_space def
+ AGMCORE_invalid_color_space
+ }ifelse
+ }ifelse
+ }if
+ }if
+ }if
+ setcolor_devicecolor
+ }def
+ }ifelse
+ /sop/setoverprint ldf
+ /lw/setlinewidth ldf
+ /lc/setlinecap ldf
+ /lj/setlinejoin ldf
+ /ml/setmiterlimit ldf
+ /dsh/setdash ldf
+ /sadj/setstrokeadjust ldf
+ /gry/setgray ldf
+ /rgb/setrgbcolor ldf
+ /cmyk[
+ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
+ /setcmykcolor load dup type/operatortype ne{/exec cvx}if
+ ]cvx bdf
+ level3 AGMCORE_host_sep not and{
+ /nzopmsc{
+ 6 dict begin
+ /kk exch def
+ /yy exch def
+ /mm exch def
+ /cc exch def
+ /sum 0 def
+ cc 0 ne{/sum sum 2#1000 or def cc}if
+ mm 0 ne{/sum sum 2#0100 or def mm}if
+ yy 0 ne{/sum sum 2#0010 or def yy}if
+ kk 0 ne{/sum sum 2#0001 or def kk}if
+ AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
+ sum 0 eq{0}if
+ end
+ setcolor
+ }bdf
+ }{
+ /nzopmsc/cmyk ldf
+ }ifelse
+ /sep/setsepcolor ldf
+ /devn/setdevicencolor ldf
+ /idx/setindexedcolor ldf
+ /colr/setcolor ldf
+ /csacrd/set_csa_crd ldf
+ /sepcs/setsepcolorspace ldf
+ /devncs/setdevicencolorspace ldf
+ /idxcs/setindexedcolorspace ldf
+ /cp/closepath ldf
+ /clp/clp_npth ldf
+ /eclp/eoclp_npth ldf
+ /f/fill ldf
+ /ef/eofill ldf
+ /@/stroke ldf
+ /nclp/npth_clp ldf
+ /gset/graphic_setup ldf
+ /gcln/graphic_cleanup ldf
+ /ct/concat ldf
+ /cf/currentfile ldf
+ /fl/filter ldf
+ /rs/readstring ldf
+ /AGMCORE_def_ht currenthalftone def
+ /clonedict Adobe_AGM_Utils begin/clonedict load end def
+ /clonearray Adobe_AGM_Utils begin/clonearray load end def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+ /getrampcolor
+ {
+ /indx exch def
+ 0 1 NumComp 1 sub
+ {
+ dup
+ Samples exch get
+ dup type/stringtype eq{indx get}if
+ exch
+ Scaling exch get aload pop
+ 3 1 roll
+ mul add
+ }for
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /sssetbackground{
+ aload pop
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /RadialShade
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /r2 xdf
+ /c2y xdf
+ /c2x xdf
+ /r1 xdf
+ /c1y xdf
+ /c1x xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ c1x c2x eq
+ {
+ c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope c2y c1y sub c2x c1x sub div def
+ /theta slope 1 atan def
+ c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
+ c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
+ }ifelse
+ gsave
+ clippath
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax xdf
+ /xMax xdf
+ /yMin xdf
+ /xMin xdf
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ /max{2 copy gt{pop}{exch pop}ifelse}bdf
+ /min{2 copy lt{pop}{exch pop}ifelse}bdf
+ rampdict begin
+ 40 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
+ /c1y 0 def
+ /c1x 0 def
+ /c2x 0 def
+ ext0
+ {
+ 0 getrampcolor
+ c2y r2 add r1 sub 0.0001 lt
+ {
+ c1x c1y r1 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2y r1 add r2 le
+ {
+ c1x c1y r1 0 360 arc
+ fill
+ }
+ {
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r1 neg def
+ /p1y c1y def
+ /p2x r1 def
+ /p2y c1y def
+ p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y p1x SS1 div neg def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y p2x SS2 div neg def
+ r1 r2 gt
+ {
+ /L1maxX p1x yMin p1y sub SS1 div add def
+ /L2maxX p2x yMin p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ c1x c2x sub dup mul
+ c1y c2y sub dup mul
+ add 0.5 exp
+ 0 dtransform
+ dup mul exch dup mul add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ /hires xdf
+ hires mul
+ /numpix xdf
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ /xInc c2x c1x sub numsteps div def
+ /yInc c2y c1y sub numsteps div def
+ /rInc r2 r1 sub numsteps div def
+ /cx c1x def
+ /cy c1y def
+ /radius r1 def
+ np
+ xInc 0 eq yInc 0 eq rInc 0 eq and and
+ {
+ 0 getrampcolor
+ cx cy radius 0 360 arc
+ stroke
+ NumSamples 1 sub getrampcolor
+ cx cy radius 72 hires div add 0 360 arc
+ 0 setlinewidth
+ stroke
+ }{
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ cx cy radius 0 360 arc
+ /cx cx xInc add def
+ /cy cy yInc add def
+ /radius radius rInc add def
+ cx cy radius 360 0 arcn
+ eofill
+ rampIndxInc add
+ }repeat
+ pop
+ }ifelse
+ ext1
+ {
+ c2y r2 add r1 lt
+ {
+ c2x c2y r2 0 360 arc
+ fill
+ }{
+ c2y r1 add r2 sub 0.0001 le
+ {
+ c2x c2y r2 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r2 neg def
+ /p1y c2y def
+ /p2x r2 def
+ /p2y c2y def
+ p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y c2y p1x SS1 div sub def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y c2y p2x SS2 div sub def
+ r1 r2 lt
+ {
+ /L1maxX p1x yMax p1y sub SS1 div add def
+ /L2maxX p2x yMax p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+ /GenStrips
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /y2 xdf
+ /x2 xdf
+ /y1 xdf
+ /x1 xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ x1 x2 eq
+ {
+ y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope y2 y1 sub x2 x1 sub div def
+ /theta slope 1 atan def
+ x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
+ x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
+ }
+ ifelse
+ gsave
+ clippath
+ x1 y1 translate
+ theta rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax exch def
+ /xMax exch def
+ /yMin exch def
+ /xMin exch def
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ rampdict begin
+ 20 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ x1 y1 translate
+ theta rotate
+ /xStart 0 def
+ /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
+ /ySpan yMax yMin sub def
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ xStart 0 transform
+ xEnd 0 transform
+ 3 -1 roll
+ sub dup mul
+ 3 1 roll
+ sub dup mul
+ add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ mul
+ /numpix xdf
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ ext0
+ {
+ 0 getrampcolor
+ xMin xStart lt
+ {
+ xMin yMin xMin neg ySpan rectfill
+ }if
+ }if
+ /xInc xEnd xStart sub numsteps div def
+ /x xStart def
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ x yMin xInc ySpan rectfill
+ /x x xInc add def
+ rampIndxInc add
+ }repeat
+ pop
+ ext1{
+ xMax xEnd gt
+ {
+ xEnd yMin xMax xEnd sub ySpan rectfill
+ }if
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+}def
+/pt
+{
+ end
+}def
+/dt{
+}def
+/pgsv{
+ //Adobe_AGM_Core/AGMCORE_save save put
+}def
+/pgrs{
+ //Adobe_AGM_Core/AGMCORE_save get restore
+}def
+systemdict/findcolorrendering known{
+ /findcolorrendering systemdict/findcolorrendering get def
+}if
+systemdict/setcolorrendering known{
+ /setcolorrendering systemdict/setcolorrendering get def
+}if
+/test_cmyk_color_plate
+{
+ gsave
+ setcmykcolor currentgray 1 ne
+ grestore
+}def
+/inRip_spot_has_ink
+{
+ dup//Adobe_AGM_Core/AGMCORE_name xddf
+ convert_spot_to_process not
+}def
+/map255_to_range
+{
+ 1 index sub
+ 3 -1 roll 255 div mul add
+}def
+/set_csa_crd
+{
+ /sep_colorspace_dict null AGMCORE_gput
+ begin
+ CSA get_csa_by_name setcolorspace_opt
+ set_crd
+ end
+}
+def
+/map_csa
+{
+ currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
+ {pop}{get_csa_by_name/MappedCSA xdf}ifelse
+}def
+/setsepcolor
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ dup/sep_tint exch AGMCORE_gput
+ TintProc
+ end
+}def
+/setdevicencolor
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ Names length copy
+ Names length 1 sub -1 0
+ {
+ /devicen_tints AGMCORE_gget 3 1 roll xpt
+ }for
+ TintProc
+ end
+}def
+/sep_colorspace_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ currentdict/Components known{
+ Components aload pop
+ TintMethod/Lab eq{
+ 2{AGMCORE_tmp mul NComponents 1 roll}repeat
+ LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
+ }{
+ TintMethod/Subtractive eq{
+ NComponents{
+ AGMCORE_tmp mul NComponents 1 roll
+ }repeat
+ }{
+ NComponents{
+ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
+ }repeat
+ }ifelse
+ }ifelse
+ }{
+ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
+ aload pop
+ }ifelse
+ end
+}def
+/sep_colorspace_gray_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
+ end
+}def
+/sep_proc_name
+{
+ dup 0 get
+ dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
+ pop[/DeviceGray]
+ /sep_colorspace_gray_proc
+ }{
+ /sep_colorspace_proc
+ }ifelse
+}def
+/setsepcolorspace
+{
+ current_spot_alias{
+ dup begin
+ Name map_alias{
+ exch pop
+ }if
+ end
+ }if
+ dup/sep_colorspace_dict exch AGMCORE_gput
+ begin
+ CSA map_csa
+ /AGMCORE_sep_special Name dup()eq exch(All)eq or store
+ AGMCORE_avoid_L2_sep_space{
+ [/Indexed MappedCSA sep_proc_name 255 exch
+ {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
+ ]setcolorspace_opt
+ /TintProc{
+ 255 mul round cvi setcolor
+ }bdf
+ }{
+ MappedCSA 0 get/DeviceCMYK eq
+ currentdict/Components known and
+ AGMCORE_sep_special not and{
+ /TintProc[
+ Components aload pop Name findcmykcustomcolor
+ /exch cvx/setcustomcolor cvx
+ ]cvx bdf
+ }{
+ AGMCORE_host_sep Name(All)eq and{
+ /TintProc{
+ 1 exch sub setseparationgray
+ }bdf
+ }{
+ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
+ AGMCORE_host_sep or
+ Name()eq and{
+ /TintProc[
+ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
+ cvx/setcmykcolor cvx
+ }{
+ cvx/setgray cvx
+ }ifelse
+ ]cvx bdf
+ }{
+ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
+ /TintProc[
+ /dup cvx
+ MappedCSA sep_proc_name cvx exch
+ 0 get/DeviceGray eq{
+ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
+ }if
+ /Name cvx/findcmykcustomcolor cvx/exch cvx
+ AGMCORE_host_sep{
+ AGMCORE_is_cmyk_sep
+ /Name cvx
+ /AGMCORE_IsSeparationAProcessColor load/exec cvx
+ /not cvx/and cvx
+ }{
+ Name inRip_spot_has_ink not
+ }ifelse
+ [
+ /pop cvx 1
+ ]cvx/if cvx
+ /setcustomcolor cvx
+ ]cvx bdf
+ }{
+ /TintProc{setcolor}bdf
+ [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ set_crd
+ setsepcolor
+ end
+}def
+/additive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1
+ 0 1 numarrays 1 sub
+ {
+ 1 exch add/index cvx
+ c1/get cvx/mul cvx
+ }for
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/subtractive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1 1
+ 0 1 numarrays 1 sub
+ {
+ 1 3 3 -1 roll add/index cvx
+ c1/get cvx/sub cvx/mul cvx
+ }for
+ /sub cvx
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/exec_tint_transform
+{
+ /TintProc[
+ /TintTransform cvx/setcolor cvx
+ ]cvx bdf
+ MappedCSA setcolorspace_opt
+}bdf
+/devn_makecustomcolor
+{
+ 2 dict begin
+ /names_index xdf
+ /Names xdf
+ 1 1 1 1 Names names_index get findcmykcustomcolor
+ /devicen_tints AGMCORE_gget names_index get setcustomcolor
+ Names length{pop}repeat
+ end
+}bdf
+/setdevicencolorspace
+{
+ dup/AliasedColorants known{false}{true}ifelse
+ current_spot_alias and{
+ 7 dict begin
+ /names_index 0 def
+ dup/names_len exch/Names get length def
+ /new_names names_len array def
+ /new_LookupTables names_len array def
+ /alias_cnt 0 def
+ dup/Names get
+ {
+ dup map_alias{
+ exch pop
+ dup/ColorLookup known{
+ dup begin
+ new_LookupTables names_index ColorLookup put
+ end
+ }{
+ dup/Components known{
+ dup begin
+ new_LookupTables names_index Components put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ new_names names_index 3 -1 roll/Name get put
+ /alias_cnt alias_cnt 1 add def
+ }{
+ /name xdf
+ new_names names_index name put
+ dup/LookupTables known{
+ dup begin
+ new_LookupTables names_index LookupTables names_index get put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ alias_cnt 0 gt{
+ /AliasedColorants true def
+ /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
+ 0 1 names_len 1 sub{
+ /names_index xdf
+ new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
+ /AliasedColorants false def
+ exit
+ }{
+ new_LookupTables names_index get 0 get null eq{
+ dup/Names get names_index get/name xdf
+ name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
+ or or or not{
+ /AliasedColorants false def
+ exit
+ }if
+ }if
+ }ifelse
+ }for
+ lut_entry_len 1 eq{
+ /AliasedColorants false def
+ }if
+ AliasedColorants{
+ dup begin
+ /Names new_names def
+ /LookupTables new_LookupTables def
+ /AliasedColorants true def
+ /NComponents lut_entry_len def
+ /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
+ /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
+ currentdict/TTTablesIdx known not{
+ /TTTablesIdx -1 def
+ }if
+ end
+ }if
+ }if
+ end
+ }if
+ dup/devicen_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/AliasedColorants known{
+ AliasedColorants
+ }{
+ false
+ }ifelse
+ dup not{
+ CSA map_csa
+ }if
+ /TintTransform load type/nulltype eq or{
+ /TintTransform[
+ 0 1 Names length 1 sub
+ {
+ /TTTablesIdx TTTablesIdx 1 add def
+ dup LookupTables exch get dup 0 get null eq
+ {
+ 1 index
+ Names exch get
+ dup(Cyan)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0
+ }
+ {
+ dup(Magenta)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0/exch cvx 0 0
+ }{
+ (Yellow)eq
+ {
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 3 -1/roll cvx 0
+ }{
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0 4 -1/roll cvx
+ }ifelse
+ }ifelse
+ }ifelse
+ 5 -1/roll cvx/astore cvx
+ }{
+ dup length 1 sub
+ LookupTables length 4 -1 roll sub 1 add
+ /index cvx/mul cvx/round cvx/cvi cvx/get cvx
+ }ifelse
+ Names length TTTablesIdx add 1 add 1/roll cvx
+ }for
+ Names length[/pop cvx]cvx/repeat cvx
+ NComponents Names length
+ TintMethod/Subtractive eq
+ {
+ subtractive_blend
+ }{
+ additive_blend
+ }ifelse
+ ]cvx bdf
+ }if
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ exec_tint_transform
+ }
+ {
+ currentdict/AliasedColorants known{
+ AliasedColorants not
+ }{
+ false
+ }ifelse
+ 5 dict begin
+ /AvoidAliasedColorants xdf
+ /painted? false def
+ /names_index 0 def
+ /names_len Names length def
+ AvoidAliasedColorants{
+ /currentspotalias current_spot_alias def
+ false set_spot_alias
+ }if
+ Names{
+ AGMCORE_is_cmyk_sep{
+ dup(Cyan)eq AGMCORE_cyan_plate and exch
+ dup(Magenta)eq AGMCORE_magenta_plate and exch
+ dup(Yellow)eq AGMCORE_yellow_plate and exch
+ (Black)eq AGMCORE_black_plate and or or or{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ }if
+ painted?{exit}if
+ }{
+ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ exit
+ }if
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ AvoidAliasedColorants{
+ currentspotalias set_spot_alias
+ }if
+ painted?{
+ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
+ }{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
+ 0 0 0 0/setcmykcolor cvx
+ ]cvx ddf
+ }ifelse
+ end
+ }ifelse
+ }
+ {
+ AGMCORE_in_rip_sep{
+ Names convert_to_process not
+ }{
+ level3
+ }ifelse
+ {
+ [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
+ /TintProc level3 not AGMCORE_in_rip_sep and{
+ [
+ Names/length cvx[/pop cvx]cvx/repeat cvx
+ ]cvx bdf
+ }{
+ {setcolor}bdf
+ }ifelse
+ }{
+ exec_tint_transform
+ }ifelse
+ }ifelse
+ set_crd
+ /AliasedColorants false def
+ end
+}def
+/setindexedcolorspace
+{
+ dup/indexed_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ currentdict devncs
+ }{
+ 1 currentdict sepcs
+ }ifelse
+ AGMCORE_host_sep{
+ 4 dict begin
+ /compCnt/Names where{pop Names length}{1}ifelse def
+ /NewLookup HiVal 1 add string def
+ 0 1 HiVal{
+ /tableIndex xdf
+ Lookup dup type/stringtype eq{
+ compCnt tableIndex map_index
+ }{
+ exec
+ }ifelse
+ /Names where{
+ pop setdevicencolor
+ }{
+ setsepcolor
+ }ifelse
+ currentgray
+ tableIndex exch
+ 255 mul cvi
+ NewLookup 3 1 roll put
+ }for
+ [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
+ end
+ }{
+ level3
+ {
+ currentdict/Names known{
+ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
+ }{
+ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
+ }ifelse
+ }{
+ [/Indexed MappedCSA HiVal
+ [
+ currentdict/Names known{
+ Lookup dup type/stringtype eq
+ {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
+ {/exec cvx}ifelse
+ /TintTransform load/exec cvx
+ }{
+ Lookup dup type/stringtype eq
+ {/exch cvx/get cvx 255/div cvx}
+ {/exec cvx}ifelse
+ CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
+ }ifelse
+ ]cvx
+ ]setcolorspace_opt
+ }ifelse
+ }ifelse
+ end
+ set_crd
+ }
+ {
+ CSA map_csa
+ AGMCORE_host_sep level2 not and{
+ 0 0 0 0 setcmykcolor
+ }{
+ [/Indexed MappedCSA
+ level2 not has_color not and{
+ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
+ pop[/DeviceGray]
+ }if
+ HiVal GrayLookup
+ }{
+ HiVal
+ currentdict/RangeArray known{
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ Lookup exch
+ dup HiVal gt{
+ pop HiVal
+ }if
+ NComponents mul NComponents getinterval{}forall
+ NComponents 1 sub -1 0{
+ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
+ NComponents 1 roll
+ }for
+ end
+ }bind
+ }{
+ Lookup
+ }ifelse
+ }ifelse
+ ]setcolorspace_opt
+ set_crd
+ }ifelse
+ }ifelse
+ end
+}def
+/setindexedcolor
+{
+ AGMCORE_host_sep{
+ /indexed_colorspace_dict AGMCORE_gget
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ map_indexed_devn
+ devn
+ }
+ {
+ Lookup 1 3 -1 roll map_index
+ sep
+ }ifelse
+ end
+ }{
+ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
+ map_index
+ MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
+ }ifelse
+ end
+ }{
+ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
+ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
+ map_indexed_devn
+ devn
+ end
+ }
+ {
+ setcolor
+ }ifelse
+ }ifelse
+}def
+/ignoreimagedata
+{
+ currentoverprint not{
+ gsave
+ dup clonedict begin
+ 1 setgray
+ /Decode[0 1]def
+ /DataSource<FF>def
+ /MultipleDataSources false def
+ /BitsPerComponent 8 def
+ currentdict end
+ systemdict/image gx
+ grestore
+ }if
+ consumeimagedata
+}def
+/add_res
+{
+ dup/CSD eq{
+ pop
+ //Adobe_AGM_Core begin
+ /AGMCORE_CSD_cache load 3 1 roll put
+ end
+ }{
+ defineresource pop
+ }ifelse
+}def
+/del_res
+{
+ {
+ aload pop exch
+ dup/CSD eq{
+ pop
+ {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
+ }{
+ exch
+ {1 index undefineresource}forall
+ pop
+ }ifelse
+ }forall
+}def
+/get_res
+{
+ dup/CSD eq{
+ pop
+ dup type dup/nametype eq exch/stringtype eq or{
+ AGMCORE_CSD_cache exch get
+ }if
+ }{
+ findresource
+ }ifelse
+}def
+/get_csa_by_name
+{
+ dup type dup/nametype eq exch/stringtype eq or{
+ /CSA get_res
+ }if
+}def
+/paintproc_buf_init
+{
+ /count get 0 0 put
+}def
+/paintproc_buf_next
+{
+ dup/count get dup 0 get
+ dup 3 1 roll
+ 1 add 0 xpt
+ get
+}def
+/cachepaintproc_compress
+{
+ 5 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ /string_size 16000 def
+ /readbuffer string_size string def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ /LZWFilter
+ {
+ exch
+ dup length 0 eq{
+ pop
+ }{
+ ppdict dup length 1 sub 3 -1 roll put
+ }ifelse
+ {string_size}{0}ifelse string
+ }/LZWEncode filter def
+ {
+ ReadFilter readbuffer readstring
+ exch LZWFilter exch writestring
+ not{exit}if
+ }loop
+ LZWFilter closefile
+ ppdict
+ end
+}def
+/cachepaintproc
+{
+ 2 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ {
+ ReadFilter 16000 string readstring exch
+ ppdict dup length 1 sub 3 -1 roll put
+ not{exit}if
+ }loop
+ ppdict dup dup length 1 sub()put
+ end
+}def
+/make_pattern
+{
+ exch clonedict exch
+ dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
+ exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
+ exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
+ matrix translate exch matrix concatmatrix
+ 1 index begin
+ BBox 0 get XStep div cvi XStep mul/xshift exch neg def
+ BBox 1 get YStep div cvi YStep mul/yshift exch neg def
+ BBox 0 get xshift add
+ BBox 1 get yshift add
+ BBox 2 get xshift add
+ BBox 3 get yshift add
+ 4 array astore
+ /BBox exch def
+ [xshift yshift/translate load null/exec load]dup
+ 3/PaintProc load put cvx/PaintProc exch def
+ end
+ gsave 0 setgray
+ makepattern
+ grestore
+}def
+/set_pattern
+{
+ dup/PatternType get 1 eq{
+ dup/PaintType get 1 eq{
+ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
+ }if
+ }if
+ setpattern
+}def
+/setcolorspace_opt
+{
+ dup currentcolorspace eq{pop}{setcolorspace}ifelse
+}def
+/updatecolorrendering
+{
+ currentcolorrendering/RenderingIntent known{
+ currentcolorrendering/RenderingIntent get
+ }
+ {
+ Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd AGMCORE_gget dup null eq
+ }
+ {
+ /perceptual_crd AGMCORE_gget dup null eq
+ }ifelse
+ }ifelse
+ }ifelse
+ {
+ pop null
+ }
+ {
+ /RenderingIntent known{null}{Intent}ifelse
+ }ifelse
+ }ifelse
+ Intent ne{
+ Intent/ColorRendering{findresource}stopped
+ {
+ pop pop systemdict/findcolorrendering known
+ {
+ Intent findcolorrendering
+ {
+ /ColorRendering findresource true exch
+ }
+ {
+ /ColorRendering findresource
+ product(Xerox Phaser 5400)ne
+ exch
+ }ifelse
+ dup Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Perceptual eq
+ {
+ /perceptual_crd exch AGMCORE_gput
+ }
+ {
+ pop
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ 1 index{exch}{pop}ifelse
+ }
+ {false}ifelse
+ }
+ {true}ifelse
+ {
+ dup begin
+ currentdict/TransformPQR known{
+ currentdict/TransformPQR get aload pop
+ 3{{}eq 3 1 roll}repeat or or
+ }
+ {true}ifelse
+ currentdict/MatrixPQR known{
+ currentdict/MatrixPQR get aload pop
+ 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
+ and and and and and and and and
+ }
+ {true}ifelse
+ end
+ or
+ {
+ clonedict begin
+ /TransformPQR[
+ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
+ 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
+ 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
+ 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
+ ]def
+ /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
+ /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
+ currentdict end
+ }if
+ setcolorrendering_opt
+ }if
+ }if
+}def
+/set_crd
+{
+ AGMCORE_host_sep not level2 and{
+ currentdict/ColorRendering known{
+ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
+ }{
+ currentdict/Intent known{
+ updatecolorrendering
+ }if
+ }ifelse
+ currentcolorspace dup type/arraytype eq
+ {0 get}if
+ /DeviceRGB eq
+ {
+ currentdict/UCR known
+ {/UCR}{/AGMCORE_currentucr}ifelse
+ load setundercolorremoval
+ currentdict/BG known
+ {/BG}{/AGMCORE_currentbg}ifelse
+ load setblackgeneration
+ }if
+ }if
+}def
+/set_ucrbg
+{
+ dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse
+ dup currentblackgeneration eq {pop}{setblackgeneration}ifelse
+ dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse
+ dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse
+}def
+/setcolorrendering_opt
+{
+ dup currentcolorrendering eq{
+ pop
+ }{
+ product(HP Color LaserJet 2605)anchorsearch{
+ pop pop pop
+ }{
+ pop
+ clonedict
+ begin
+ /Intent Intent def
+ currentdict
+ end
+ setcolorrendering
+ }ifelse
+ }ifelse
+}def
+/cpaint_gcomp
+{
+ convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
+ {
+ (%end_cpaint_gcomp)flushinput
+ }if
+}def
+/cpaint_gsep
+{
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
+ {
+ (%end_cpaint_gsep)flushinput
+ }if
+}def
+/cpaint_gend
+{np}def
+/T1_path
+{
+ currentfile token pop currentfile token pop mo
+ {
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 exch rlineto
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 rlineto
+ }loop
+}def
+/T1_gsave
+ level3
+ {/clipsave}
+ {/gsave}ifelse
+ load def
+/T1_grestore
+ level3
+ {/cliprestore}
+ {/grestore}ifelse
+ load def
+/set_spot_alias_ary
+{
+ dup inherit_aliases
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
+}def
+/set_spot_normalization_ary
+{
+ dup inherit_aliases
+ dup length
+ /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
+ array
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
+ /AGMCORE_SpotAliasAry where{
+ pop
+ AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
+ AGMCORE_SpotAliasAry length
+ }{0}ifelse
+ AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
+ true set_spot_alias
+}def
+/inherit_aliases
+{
+ {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
+}def
+/set_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias 3 -1 roll put
+ }{
+ pop
+ }ifelse
+}def
+/current_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias get
+ }{
+ false
+ }ifelse
+}def
+/map_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ /AGMCORE_name xdf
+ false
+ AGMCORE_SpotAliasAry2{
+ dup/Name get AGMCORE_name eq{
+ /CSD get/CSD get_res
+ exch pop true
+ exit
+ }{
+ pop
+ }ifelse
+ }forall
+ end
+ }{
+ pop false
+ }ifelse
+}bdf
+/spot_alias
+{
+ true set_spot_alias
+ /AGMCORE_&setcustomcolor AGMCORE_key_known not{
+ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
+ }if
+ /customcolor_tint 1 AGMCORE_gput
+ //Adobe_AGM_Core begin
+ /setcustomcolor
+ {
+ //Adobe_AGM_Core begin
+ dup/customcolor_tint exch AGMCORE_gput
+ 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
+ current_spot_alias and{1 index 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /sep_colorspace_dict AGMCORE_gget null ne
+ {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse
+ 3 1 roll 2 index{
+ exch pop/sep_tint AGMCORE_gget exch
+ }if
+ mark 3 1 roll
+ setsepcolorspace
+ counttomark 0 ne{
+ setsepcolor
+ }if
+ pop
+ not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if
+ pop
+ true set_spot_alias
+ }{
+ AGMCORE_&setcustomcolor
+ }ifelse
+ end
+ }bdf
+ end
+}def
+/begin_feature
+{
+ Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
+ count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
+ {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
+}def
+/end_feature
+{
+ 2 dict begin
+ /spd/setpagedevice load def
+ /setpagedevice{get_gstate spd set_gstate}def
+ stopped{$error/newerror false put}if
+ end
+ count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
+ countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
+ {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
+}def
+/set_negative
+{
+ //Adobe_AGM_Core begin
+ /AGMCORE_inverting exch def
+ level2{
+ currentpagedevice/NegativePrint known AGMCORE_distilling not and{
+ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
+ true begin_feature true{
+ <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
+ }end_feature
+ }if
+ /AGMCORE_inverting false def
+ }if
+ }if
+ AGMCORE_inverting{
+ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
+ AGMCORE_distilling{
+ erasepage
+ }{
+ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
+ /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
+ }ifelse
+ }if
+ end
+}def
+/lw_save_restore_override{
+ /md where{
+ pop
+ md begin
+ initializepage
+ /initializepage{}def
+ /pmSVsetup{}def
+ /endp{}def
+ /pse{}def
+ /psb{}def
+ /orig_showpage where
+ {pop}
+ {/orig_showpage/showpage load def}
+ ifelse
+ /showpage{orig_showpage gR}def
+ end
+ }if
+}def
+/pscript_showpage_override{
+ /NTPSOct95 where
+ {
+ begin
+ showpage
+ save
+ /showpage/restore load def
+ /restore{exch pop}def
+ end
+ }if
+}def
+/driver_media_override
+{
+ /md where{
+ pop
+ md/initializepage known{
+ md/initializepage{}put
+ }if
+ md/rC known{
+ md/rC{4{pop}repeat}put
+ }if
+ }if
+ /mysetup where{
+ /mysetup[1 0 0 1 0 0]put
+ }if
+ Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
+ level2
+ {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
+}def
+/capture_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
+ }if
+ }if
+}def
+/restore_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup known{
+ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
+ Adobe_AGM_Core/save_mysetup undef
+ }if
+ }if
+ }if
+}def
+/driver_check_media_override
+{
+ /PrepsDict where
+ {pop}
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
+ }if
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
+ }if
+ }ifelse
+}def
+AGMCORE_err_strings begin
+ /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
+ /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
+ /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
+end
+/set_def_ht
+{AGMCORE_def_ht sethalftone}def
+/set_def_flat
+{AGMCORE_Default_flatness setflat}def
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_CoolType_Core 2.31 0
+%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
+%%Version: 2.31 0
+10 dict begin
+/Adobe_CoolType_Passthru currentdict def
+/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
+Adobe_CoolType_Core_Defined
+ {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
+if
+userdict/Adobe_CoolType_Core 70 dict dup begin put
+/Adobe_CoolType_Version 2.31 def
+/Level2?
+ systemdict/languagelevel known dup
+ {pop systemdict/languagelevel get 2 ge}
+ if def
+Level2? not
+ {
+ /currentglobal false def
+ /setglobal/pop load def
+ /gcheck{pop false}bind def
+ /currentpacking false def
+ /setpacking/pop load def
+ /SharedFontDirectory 0 dict def
+ }
+if
+currentpacking
+true setpacking
+currentglobal false setglobal
+userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+if
+get
+ begin
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ end
+setglobal
+currentglobal true setglobal
+userdict/Adobe_CoolType_GVMFonts known not
+ {userdict/Adobe_CoolType_GVMFonts 10 dict put}
+if
+setglobal
+currentglobal false setglobal
+userdict/Adobe_CoolType_LVMFonts known not
+ {userdict/Adobe_CoolType_LVMFonts 10 dict put}
+if
+setglobal
+/ct_VMDictPut
+ {
+ dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
+ 3 1 roll put
+ }bind def
+/ct_VMDictUndef
+ {
+ dup Adobe_CoolType_GVMFonts exch known
+ {Adobe_CoolType_GVMFonts exch undef}
+ {
+ dup Adobe_CoolType_LVMFonts exch known
+ {Adobe_CoolType_LVMFonts exch undef}
+ {pop}
+ ifelse
+ }ifelse
+ }bind def
+/ct_str1 1 string def
+/ct_xshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_yshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0 exch
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_xyshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ {_ct_na _ct_i 1 add get}stopped
+ {pop pop pop}
+ {
+ _ct_x _ct_y moveto
+ rmoveto
+ }
+ ifelse
+ }
+ ifelse
+ /_ct_i _ct_i 2 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
+/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
+/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
+currentglobal true setglobal
+/ct_T3Defs
+{
+/BuildChar
+{
+ 1 index/Encoding get exch get
+ 1 index/BuildGlyph get exec
+}bind def
+/BuildGlyph
+{
+ exch begin
+ GlyphProcs exch get exec
+ end
+}bind def
+}bind def
+setglobal
+/@_SaveStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@vmState currentglobal def false setglobal
+ @opStackCountByLevel
+ @opStackLevel
+ 2 copy known not
+ {
+ 2 copy
+ 3 dict dup/args
+ 7 index
+ 5 add array put
+ put get
+ }
+ {
+ get dup/args get dup length 3 index lt
+ {
+ dup length 5 add array exch
+ 1 index exch 0 exch putinterval
+ 1 index exch/args exch put
+ }
+ {pop}
+ ifelse
+ }
+ ifelse
+ begin
+ count 1 sub
+ 1 index lt
+ {pop count}
+ if
+ dup/argCount exch def
+ dup 0 gt
+ {
+ args exch 0 exch getinterval
+ astore pop
+ }
+ {pop}
+ ifelse
+ count
+ /restCount exch def
+ end
+ /@opStackLevel @opStackLevel 1 add def
+ countdictstack 1 sub
+ @dictStackCountByLevel exch @dictStackLevel exch put
+ /@dictStackLevel @dictStackLevel 1 add def
+ @vmState setglobal
+ end
+ }bind def
+/@_RestoreStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ @opStackCountByLevel @opStackLevel get
+ begin
+ count restCount sub dup 0 gt
+ {{pop}repeat}
+ {pop}
+ ifelse
+ args 0 argCount getinterval{}forall
+ end
+ /@dictStackLevel @dictStackLevel 1 sub def
+ @dictStackCountByLevel @dictStackLevel get
+ end
+ countdictstack exch sub dup 0 gt
+ {{end}repeat}
+ {pop}
+ ifelse
+ }bind def
+/@_PopStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ /@dictStackLevel @dictStackLevel 1 sub def
+ end
+ }bind def
+/@Raise
+ {
+ exch cvx exch errordict exch get exec
+ stop
+ }bind def
+/@ReRaise
+ {
+ cvx $error/errorname get errordict exch get exec
+ stop
+ }bind def
+/@Stopped
+ {
+ 0 @#Stopped
+ }bind def
+/@#Stopped
+ {
+ @_SaveStackLevels
+ stopped
+ {@_RestoreStackLevels true}
+ {@_PopStackLevels false}
+ ifelse
+ }bind def
+/@Arg
+ {
+ Adobe_CoolType_Data
+ begin
+ @opStackCountByLevel @opStackLevel 1 sub get
+ begin
+ args exch
+ argCount 1 sub exch sub get
+ end
+ end
+ }bind def
+currentglobal true setglobal
+/CTHasResourceForAllBug
+ Level2?
+ {
+ 1 dict dup
+ /@shouldNotDisappearDictValue true def
+ Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
+ begin
+ count @_SaveStackLevels
+ {(*){pop stop}128 string/Category resourceforall}
+ stopped pop
+ @_RestoreStackLevels
+ currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
+ {
+ /@shouldNotDisappearDictValue known
+ {
+ {
+ end
+ currentdict 1 index eq
+ {pop exit}
+ if
+ }
+ loop
+ }
+ if
+ }
+ {
+ pop
+ end
+ }
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+true setglobal
+/CTHasResourceStatusBug
+ Level2?
+ {
+ mark
+ {/steveamerige/Category resourcestatus}
+ stopped
+ {cleartomark true}
+ {cleartomark currentglobal not}
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+setglobal
+/CTResourceStatus
+ {
+ mark 3 1 roll
+ /Category findresource
+ begin
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ end
+ }bind def
+/CTWorkAroundBugs
+ {
+ Level2?
+ {
+ /cid_PreLoad/ProcSet resourcestatus
+ {
+ pop pop
+ currentglobal
+ mark
+ {
+ (*)
+ {
+ dup/CMap CTHasResourceStatusBug
+ {CTResourceStatus}
+ {resourcestatus}
+ ifelse
+ {
+ pop dup 0 eq exch 1 eq or
+ {
+ dup/CMap findresource gcheck setglobal
+ /CMap undefineresource
+ }
+ {
+ pop CTHasResourceForAllBug
+ {exit}
+ {stop}
+ ifelse
+ }
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ 128 string/CMap resourceforall
+ }
+ stopped
+ {cleartomark}
+ stopped pop
+ setglobal
+ }
+ if
+ }
+ if
+ }bind def
+/ds
+ {
+ Adobe_CoolType_Core
+ begin
+ CTWorkAroundBugs
+ /mo/moveto load def
+ /nf/newencodedfont load def
+ /msf{makefont setfont}bind def
+ /uf{dup undefinefont ct_VMDictUndef}bind def
+ /ur/undefineresource load def
+ /chp/charpath load def
+ /awsh/awidthshow load def
+ /wsh/widthshow load def
+ /ash/ashow load def
+ /@xshow/xshow load def
+ /@yshow/yshow load def
+ /@xyshow/xyshow load def
+ /@cshow/cshow load def
+ /sh/show load def
+ /rp/repeat load def
+ /.n/.notdef def
+ end
+ currentglobal false setglobal
+ userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+ if
+ get
+ begin
+ /AddWidths? false def
+ /CC 0 def
+ /charcode 2 string def
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ /InVMFontsByCMap 10 dict def
+ /InVMDeepCopiedFonts 10 dict def
+ end
+ setglobal
+ }bind def
+/dt
+ {
+ currentdict Adobe_CoolType_Core eq
+ {end}
+ if
+ }bind def
+/ps
+ {
+ Adobe_CoolType_Core begin
+ Adobe_CoolType_GVMFonts begin
+ Adobe_CoolType_LVMFonts begin
+ SharedFontDirectory begin
+ }bind def
+/pt
+ {
+ end
+ end
+ end
+ end
+ }bind def
+/unload
+ {
+ systemdict/languagelevel known
+ {
+ systemdict/languagelevel get 2 ge
+ {
+ userdict/Adobe_CoolType_Core 2 copy known
+ {undef}
+ {pop pop}
+ ifelse
+ }
+ if
+ }
+ if
+ }bind def
+/ndf
+ {
+ 1 index where
+ {pop pop pop}
+ {dup xcheck{bind}if def}
+ ifelse
+ }def
+/findfont systemdict
+ begin
+ userdict
+ begin
+ /globaldict where{/globaldict get begin}if
+ dup where pop exch get
+ /globaldict where{pop end}if
+ end
+ end
+Adobe_CoolType_Core_Defined
+ {/systemfindfont exch def}
+ {
+ /findfont 1 index def
+ /systemfindfont exch def
+ }
+ifelse
+/undefinefont
+ {pop}ndf
+/copyfont
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ dup null eq{0}{dup length}ifelse
+ 2 index length add 1 add dict
+ begin
+ exch
+ {
+ 1 index/FID eq
+ {pop pop}
+ {def}
+ ifelse
+ }
+ forall
+ dup null eq
+ {pop}
+ {{def}forall}
+ ifelse
+ currentdict
+ end
+ exch setglobal
+ }bind def
+/copyarray
+ {
+ currentglobal exch
+ dup gcheck setglobal
+ dup length array copy
+ exch setglobal
+ }bind def
+/newencodedfont
+ {
+ currentglobal
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ {
+ FontDirectory 3 index known
+ {FontDirectory 3 index get/FontReferenced known}
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ dup
+ {
+ 3 index findfont/FontReferenced get
+ 2 index dup type/nametype eq
+ {findfont}
+ if ne
+ {pop false}
+ if
+ }
+ if
+ dup
+ {
+ 1 index dup type/nametype eq
+ {findfont}
+ if
+ dup/CharStrings known
+ {
+ /CharStrings get length
+ 4 index findfont/CharStrings get length
+ ne
+ {
+ pop false
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ if
+ {
+ pop
+ 1 index findfont
+ /Encoding get exch
+ 0 1 255
+ {2 copy get 3 index 3 1 roll put}
+ for
+ pop pop pop
+ }
+ {
+ currentglobal
+ 4 1 roll
+ dup type/nametype eq
+ {findfont}
+ if
+ dup gcheck setglobal
+ dup dup maxlength 2 add dict
+ begin
+ exch
+ {
+ 1 index/FID ne
+ 2 index/Encoding ne and
+ {def}
+ {pop pop}
+ ifelse
+ }
+ forall
+ /FontReferenced exch def
+ /Encoding exch dup length array copy def
+ /FontName 1 index dup type/stringtype eq{cvn}if def dup
+ currentdict
+ end
+ definefont ct_VMDictPut
+ setglobal
+ }
+ ifelse
+ }bind def
+/SetSubstituteStrategy
+ {
+ $SubstituteFont
+ begin
+ dup type/dicttype ne
+ {0 dict}
+ if
+ currentdict/$Strategies known
+ {
+ exch $Strategies exch
+ 2 copy known
+ {
+ get
+ 2 copy maxlength exch maxlength add dict
+ begin
+ {def}forall
+ {def}forall
+ currentdict
+ dup/$Init known
+ {dup/$Init get exec}
+ if
+ end
+ /$Strategy exch def
+ }
+ {pop pop pop}
+ ifelse
+ }
+ {pop pop}
+ ifelse
+ end
+ }bind def
+/scff
+ {
+ $SubstituteFont
+ begin
+ dup type/stringtype eq
+ {dup length exch}
+ {null}
+ ifelse
+ /$sname exch def
+ /$slen exch def
+ /$inVMIndex
+ $sname null eq
+ {
+ 1 index $str cvs
+ dup length $slen sub $slen getinterval cvn
+ }
+ {$sname}
+ ifelse def
+ end
+ {findfont}
+ @Stopped
+ {
+ dup length 8 add string exch
+ 1 index 0(BadFont:)putinterval
+ 1 index exch 8 exch dup length string cvs putinterval cvn
+ {findfont}
+ @Stopped
+ {pop/Courier findfont}
+ if
+ }
+ if
+ $SubstituteFont
+ begin
+ /$sname null def
+ /$slen 0 def
+ /$inVMIndex null def
+ end
+ }bind def
+/isWidthsOnlyFont
+ {
+ dup/WidthsOnly known
+ {pop pop true}
+ {
+ dup/FDepVector known
+ {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
+ {
+ dup/FDArray known
+ {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }bind def
+/ct_StyleDicts 4 dict dup begin
+ /Adobe-Japan1 4 dict dup begin
+ Level2?
+ {
+ /Serif
+ /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMin-W3/CIDFont resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {/Ryumin-Light}
+ ifelse
+ }
+ {/Ryumin-Light}
+ ifelse
+ }
+ ifelse
+ def
+ /SansSerif
+ /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiKakuGo-W5/CIDFont resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ ifelse
+ def
+ /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMaruGo-W4/CIDFont resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ /RoundSansSerif exch def
+ /Default Serif def
+ }
+ {
+ /Serif/Ryumin-Light def
+ /SansSerif/GothicBBB-Medium def
+ {
+ (fonts/Jun101-Light-83pv-RKSJ-H)status
+ }stopped
+ {pop}{
+ {pop pop pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ /RoundSansSerif exch def
+ }ifelse
+ /Default Serif def
+ }
+ ifelse
+ end
+ def
+ /Adobe-Korea1 4 dict dup begin
+ /Serif/HYSMyeongJo-Medium def
+ /SansSerif/HYGoThic-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-GB1 4 dict dup begin
+ /Serif/STSong-Light def
+ /SansSerif/STHeiti-Regular def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-CNS1 4 dict dup begin
+ /Serif/MKai-Medium def
+ /SansSerif/MHei-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+end
+def
+Level2?{currentglobal true setglobal}if
+/ct_BoldRomanWidthProc
+ {
+ stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
+ 0 0
+ }bind def
+/ct_Type0WidthProc
+ {
+ dup stringwidth 0 0 moveto
+ 2 index true charpath pathbbox
+ 0 -1
+ 7 index 2 div .88
+ setcachedevice2
+ pop
+ 0 0
+ }bind def
+/ct_Type0WMode1WidthProc
+ {
+ dup stringwidth
+ pop 2 div neg -0.88
+ 2 copy
+ moveto
+ 0 -1
+ 5 -1 roll true charpath pathbbox
+ setcachedevice
+ }bind def
+/cHexEncoding
+[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+/ct_BoldBaseFont
+ 11 dict begin
+ /FontType 3 def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /Encoding cHexEncoding def
+ /_setwidthProc/ct_BoldRomanWidthProc load def
+ /_bcstr1 1 string def
+ /BuildChar
+ {
+ exch begin
+ _basefont setfont
+ _bcstr1 dup 0 4 -1 roll put
+ dup
+ _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+systemdict/composefont known
+{
+/ct_DefineIdentity-H
+{
+ /Identity-H/CMap resourcestatus
+ {
+ pop pop
+ }
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+}
+def
+/ct_BoldBaseCIDFont
+ 11 dict begin
+ /CIDFontType 1 def
+ /CIDFontName/ct_BoldBaseCIDFont def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /_setwidthProc/ct_Type0WidthProc load def
+ /_bcstr2 2 string def
+ /BuildGlyph
+ {
+ exch begin
+ _basefont setfont
+ _bcstr2 1 2 index 256 mod put
+ _bcstr2 0 3 -1 roll 256 idiv put
+ _bcstr2 dup _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+}if
+Level2?{setglobal}if
+/ct_CopyFont{
+ {
+ 1 index/FID ne 2 index/UniqueID ne and
+ {def}{pop pop}ifelse
+ }forall
+}bind def
+/ct_Type0CopyFont
+{
+ exch
+ dup length dict
+ begin
+ ct_CopyFont
+ [
+ exch
+ FDepVector
+ {
+ dup/FontType get 0 eq
+ {
+ 1 index ct_Type0CopyFont
+ /_ctType0 exch definefont
+ }
+ {
+ /_ctBaseFont exch
+ 2 index exec
+ }
+ ifelse
+ exch
+ }
+ forall
+ pop
+ ]
+ /FDepVector exch def
+ currentdict
+ end
+}bind def
+/ct_MakeBoldFont
+{
+ dup/ct_SyntheticBold known
+ {
+ dup length 3 add dict begin
+ ct_CopyFont
+ /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
+ /ct_SyntheticBold true def
+ currentdict
+ end
+ definefont
+ }
+ {
+ dup dup length 3 add dict
+ begin
+ ct_CopyFont
+ /PaintType 2 def
+ /StrokeWidth .03 0 FontMatrix idtransform pop def
+ /dummybold currentdict
+ end
+ definefont
+ dup/FontType get dup 9 ge exch 11 le and
+ {
+ ct_BoldBaseCIDFont
+ dup length 3 add dict copy begin
+ dup/CIDSystemInfo get/CIDSystemInfo exch def
+ ct_DefineIdentity-H
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefont exch def
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefonto exch def
+ currentdict
+ end
+ /CIDFont defineresource
+ }
+ {
+ ct_BoldBaseFont
+ dup length 3 add dict copy begin
+ /_basefont exch def
+ /_basefonto exch def
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+}bind def
+/ct_MakeBold{
+ 1 index
+ 1 index
+ findfont
+ currentglobal 5 1 roll
+ dup gcheck setglobal
+ dup
+ /FontType get 0 eq
+ {
+ dup/WMode known{dup/WMode get 1 eq}{false}ifelse
+ version length 4 ge
+ and
+ {version 0 4 getinterval cvi 2015 ge}
+ {true}
+ ifelse
+ {/ct_Type0WidthProc}
+ {/ct_Type0WMode1WidthProc}
+ ifelse
+ ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
+ {ct_MakeBoldFont}ct_Type0CopyFont definefont
+ }
+ {
+ dup/_fauxfont known not 1 index/SubstMaster known not and
+ {
+ ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
+ ct_MakeBoldFont
+ }
+ {
+ 2 index 2 index eq
+ {exch pop }
+ {
+ dup length dict begin
+ ct_CopyFont
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ pop pop pop
+ setglobal
+}bind def
+/?str1 256 string def
+/?set
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound false def
+ /$fontname 1 index def
+ /$doSmartSub false def
+ end
+ dup
+ findfont
+ $SubstituteFont
+ begin
+ $substituteFound
+ {false}
+ {
+ dup/FontName known
+ {
+ dup/FontName get $fontname eq
+ 1 index/DistillerFauxFont known not and
+ /currentdistillerparams where
+ {pop false 2 index isWidthsOnlyFont not and}
+ if
+ }
+ {false}
+ ifelse
+ }
+ ifelse
+ exch pop
+ /$doSmartSub true def
+ end
+ {
+ 5 1 roll pop pop pop pop
+ findfont
+ }
+ {
+ 1 index
+ findfont
+ dup/FontType get 3 eq
+ {
+ 6 1 roll pop pop pop pop pop false
+ }
+ {pop true}
+ ifelse
+ {
+ $SubstituteFont
+ begin
+ pop pop
+ /$styleArray 1 index def
+ /$regOrdering 2 index def
+ pop pop
+ 0 1 $styleArray length 1 sub
+ {
+ $styleArray exch get
+ ct_StyleDicts $regOrdering
+ 2 copy known
+ {
+ get
+ exch 2 copy known not
+ {pop/Default}
+ if
+ get
+ dup type/nametype eq
+ {
+ ?str1 cvs length dup 1 add exch
+ ?str1 exch(-)putinterval
+ exch dup length exch ?str1 exch 3 index exch putinterval
+ add ?str1 exch 0 exch getinterval cvn
+ }
+ {
+ pop pop/Unknown
+ }
+ ifelse
+ }
+ {
+ pop pop pop pop/Unknown
+ }
+ ifelse
+ }
+ for
+ end
+ findfont
+ }if
+ }
+ ifelse
+ currentglobal false setglobal 3 1 roll
+ null copyfont definefont pop
+ setglobal
+ }bind def
+setpacking
+userdict/$SubstituteFont 25 dict put
+1 dict
+ begin
+ /SubstituteFont
+ dup $error exch 2 copy known
+ {get}
+ {pop pop{pop/Courier}bind}
+ ifelse def
+ /currentdistillerparams where dup
+ {
+ pop pop
+ currentdistillerparams/CannotEmbedFontPolicy 2 copy known
+ {get/Error eq}
+ {pop pop false}
+ ifelse
+ }
+ if not
+ {
+ countdictstack array dictstack 0 get
+ begin
+ userdict
+ begin
+ $SubstituteFont
+ begin
+ /$str 128 string def
+ /$fontpat 128 string def
+ /$slen 0 def
+ /$sname null def
+ /$match false def
+ /$fontname null def
+ /$substituteFound false def
+ /$inVMIndex null def
+ /$doSmartSub true def
+ /$depth 0 def
+ /$fontname null def
+ /$italicangle 26.5 def
+ /$dstack null def
+ /$Strategies 10 dict dup
+ begin
+ /$Type3Underprint
+ {
+ currentglobal exch false setglobal
+ 11 dict
+ begin
+ /UseFont exch
+ $WMode 0 ne
+ {
+ dup length dict copy
+ dup/WMode $WMode put
+ /UseFont exch definefont
+ }
+ if def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /FontType 3 def
+ /FontMatrix[.001 0 0 .001 0 0]def
+ /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
+ /FontBBox[0 0 0 0]def
+ /CCInfo 7 dict dup
+ begin
+ /cc null def
+ /x 0 def
+ /y 0 def
+ end def
+ /BuildChar
+ {
+ exch
+ begin
+ CCInfo
+ begin
+ 1 string dup 0 3 index put exch pop
+ /cc exch def
+ UseFont 1000 scalefont setfont
+ cc stringwidth/y exch def/x exch def
+ x y setcharwidth
+ $SubstituteFont/$Strategy get/$Underprint get exec
+ 0 0 moveto cc show
+ x y moveto
+ end
+ end
+ }bind def
+ currentdict
+ end
+ exch setglobal
+ }bind def
+ /$GetaTint
+ 2 dict dup
+ begin
+ /$BuildFont
+ {
+ dup/WMode known
+ {dup/WMode get}
+ {0}
+ ifelse
+ /$WMode exch def
+ $fontname exch
+ dup/FontName known
+ {
+ dup/FontName get
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ exch
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index/FontName get known
+ {
+ pop
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index get
+ null copyfont
+ }
+ {$deepcopyfont}
+ ifelse
+ exch 1 index exch/FontBasedOn exch put
+ dup/FontName $fontname dup type/stringtype eq{cvn}if put
+ definefont
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ begin
+ dup/FontBasedOn get 1 index def
+ end
+ }bind def
+ /$Underprint
+ {
+ gsave
+ x abs y abs gt
+ {/y 1000 def}
+ {/x -1000 def 500 120 translate}
+ ifelse
+ Level2?
+ {
+ [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
+ setcolorspace
+ }
+ {0 setgray}
+ ifelse
+ 10 setlinewidth
+ x .8 mul
+ [7 3]
+ {
+ y mul 8 div 120 sub x 10 div exch moveto
+ 0 y 4 div neg rlineto
+ dup 0 rlineto
+ 0 y 4 div rlineto
+ closepath
+ gsave
+ Level2?
+ {.2 setcolor}
+ {.8 setgray}
+ ifelse
+ fill grestore
+ stroke
+ }
+ forall
+ pop
+ grestore
+ }bind def
+ end def
+ /$Oblique
+ 1 dict dup
+ begin
+ /$BuildFont
+ {
+ currentglobal exch dup gcheck setglobal
+ null copyfont
+ begin
+ /FontBasedOn
+ currentdict/FontName known
+ {
+ FontName
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /currentdistillerparams where
+ {pop}
+ {
+ /FontInfo currentdict/FontInfo known
+ {FontInfo null copyfont}
+ {2 dict}
+ ifelse
+ dup
+ begin
+ /ItalicAngle $italicangle def
+ /FontMatrix FontMatrix
+ [1 0 ItalicAngle dup sin exch cos div 1 0 0]
+ matrix concatmatrix readonly
+ end
+ 4 2 roll def
+ def
+ }
+ ifelse
+ FontName currentdict
+ end
+ definefont
+ exch setglobal
+ }bind def
+ end def
+ /$None
+ 1 dict dup
+ begin
+ /$BuildFont{}bind def
+ end def
+ end def
+ /$Oblique SetSubstituteStrategy
+ /$findfontByEnum
+ {
+ dup type/stringtype eq{cvn}if
+ dup/$fontname exch def
+ $sname null eq
+ {$str cvs dup length $slen sub $slen getinterval}
+ {pop $sname}
+ ifelse
+ $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
+ /$match false def
+ $SubstituteFont/$dstack countdictstack array dictstack put
+ mark
+ {
+ $fontpat 0 $slen 7 add getinterval
+ {/$match exch def exit}
+ $str filenameforall
+ }
+ stopped
+ {
+ cleardictstack
+ currentdict
+ true
+ $SubstituteFont/$dstack get
+ {
+ exch
+ {
+ 1 index eq
+ {pop false}
+ {true}
+ ifelse
+ }
+ {begin false}
+ ifelse
+ }
+ forall
+ pop
+ }
+ if
+ cleartomark
+ /$slen 0 def
+ $match false ne
+ {$match(fonts/)anchorsearch pop pop cvn}
+ {/Courier}
+ ifelse
+ }bind def
+ /$ROS 1 dict dup
+ begin
+ /Adobe 4 dict dup
+ begin
+ /Japan1 [/Ryumin-Light/HeiseiMin-W3
+ /GothicBBB-Medium/HeiseiKakuGo-W5
+ /HeiseiMaruGo-W4/Jun101-Light]def
+ /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
+ /GB1 [/STSong-Light/STHeiti-Regular]def
+ /CNS1 [/MKai-Medium/MHei-Medium]def
+ end def
+ end def
+ /$cmapname null def
+ /$deepcopyfont
+ {
+ dup/FontType get 0 eq
+ {
+ 1 dict dup/FontName/copied put copyfont
+ begin
+ /FDepVector FDepVector copyarray
+ 0 1 2 index length 1 sub
+ {
+ 2 copy get $deepcopyfont
+ dup/FontName/copied put
+ /copied exch definefont
+ 3 copy put pop pop
+ }
+ for
+ def
+ currentdict
+ end
+ }
+ {$Strategies/$Type3Underprint get exec}
+ ifelse
+ }bind def
+ /$buildfontname
+ {
+ dup/CIDFont findresource/CIDSystemInfo get
+ begin
+ Registry length Ordering length Supplement 8 string cvs
+ 3 copy length 2 add add add string
+ dup 5 1 roll dup 0 Registry putinterval
+ dup 4 index(-)putinterval
+ dup 4 index 1 add Ordering putinterval
+ 4 2 roll add 1 add 2 copy(-)putinterval
+ end
+ 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
+ anchorsearch
+ {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
+ {pop pop pop pop pop}
+ ifelse
+ length
+ $str 1 index(-)putinterval 1 add
+ $str 1 index $cmapname $fontpat cvs putinterval
+ $cmapname length add
+ $str exch 0 exch getinterval cvn
+ }bind def
+ /$findfontByROS
+ {
+ /$fontname exch def
+ $ROS Registry 2 copy known
+ {
+ get Ordering 2 copy known
+ {get}
+ {pop pop[]}
+ ifelse
+ }
+ {pop pop[]}
+ ifelse
+ false exch
+ {
+ dup/CIDFont resourcestatus
+ {
+ pop pop
+ save
+ 1 index/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get}
+ {false}
+ ifelse
+ exch pop
+ exch restore
+ {pop}
+ {exch pop true exit}
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ {$str cvs $buildfontname}
+ {
+ false(*)
+ {
+ save exch
+ dup/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get not}
+ {true}
+ ifelse
+ exch/CIDSystemInfo get
+ dup/Registry get Registry eq
+ exch/Ordering get Ordering eq and and
+ {exch restore exch pop true exit}
+ {pop restore}
+ ifelse
+ }
+ $str/CIDFont resourceforall
+ {$buildfontname}
+ {$fontname $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }bind def
+ end
+ end
+ currentdict/$error known currentdict/languagelevel known and dup
+ {pop $error/SubstituteFont known}
+ if
+ dup
+ {$error}
+ {Adobe_CoolType_Core}
+ ifelse
+ begin
+ {
+ /SubstituteFont
+ /CMap/Category resourcestatus
+ {
+ pop pop
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {
+ $sname null eq
+ {dup $str cvs dup length $slen sub $slen getinterval cvn}
+ {$sname}
+ ifelse
+ Adobe_CoolType_Data/InVMFontsByCMap get
+ 1 index 2 copy known
+ {
+ get
+ false exch
+ {
+ pop
+ currentglobal
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ {
+ FontDirectory 1 index known
+ {exch pop true exit}
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ forall
+ }
+ {pop pop false}
+ ifelse
+ {
+ exch pop exch pop
+ }
+ {
+ dup/CMap resourcestatus
+ {
+ pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ }
+ {
+ 128 string cvs
+ dup(-)search
+ {
+ 3 1 roll search
+ {
+ 3 1 roll pop
+ {dup cvi}
+ stopped
+ {pop pop pop pop pop $findfontByEnum}
+ {
+ 4 2 roll pop pop
+ exch length
+ exch
+ 2 index length
+ 2 index
+ sub
+ exch 1 sub -1 0
+ {
+ $str cvs dup length
+ 4 index
+ 0
+ 4 index
+ 4 3 roll add
+ getinterval
+ exch 1 index exch 3 index exch
+ putinterval
+ dup/CMap resourcestatus
+ {
+ pop pop
+ 4 1 roll pop pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ true exit
+ }
+ {pop}
+ ifelse
+ }
+ for
+ dup type/booleantype eq
+ {pop}
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ {pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ {//SubstituteFont exec}
+ ifelse
+ /$slen 0 def
+ end
+ }
+ }
+ {
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {$findfontByEnum}
+ {//SubstituteFont exec}
+ ifelse
+ end
+ }
+ }
+ ifelse
+ bind readonly def
+ Adobe_CoolType_Core/scfindfont/systemfindfont load put
+ }
+ {
+ /scfindfont
+ {
+ $SubstituteFont
+ begin
+ dup systemfindfont
+ dup/FontName known
+ {dup/FontName get dup 3 index ne}
+ {/noname true}
+ ifelse
+ dup
+ {
+ /$origfontnamefound 2 index def
+ /$origfontname 4 index def/$substituteFound true def
+ }
+ if
+ exch pop
+ {
+ $slen 0 gt
+ $sname null ne
+ 3 index length $slen gt or and
+ {
+ pop dup $findfontByEnum findfont
+ dup maxlength 1 add dict
+ begin
+ {1 index/FID eq{pop pop}{def}ifelse}
+ forall
+ currentdict
+ end
+ definefont
+ dup/FontName known{dup/FontName get}{null}ifelse
+ $origfontnamefound ne
+ {
+ $origfontname $str cvs print
+ ( substitution revised, using )print
+ dup/FontName known
+ {dup/FontName get}{(unspecified font)}
+ ifelse
+ $str cvs print(.\n)print
+ }
+ if
+ }
+ {exch pop}
+ ifelse
+ }
+ {exch pop}
+ ifelse
+ end
+ }bind def
+ }
+ ifelse
+ end
+ end
+ Adobe_CoolType_Core_Defined not
+ {
+ Adobe_CoolType_Core/findfont
+ {
+ $SubstituteFont
+ begin
+ $depth 0 eq
+ {
+ /$fontname 1 index dup type/stringtype ne{$str cvs}if def
+ /$substituteFound false def
+ }
+ if
+ /$depth $depth 1 add def
+ end
+ scfindfont
+ $SubstituteFont
+ begin
+ /$depth $depth 1 sub def
+ $substituteFound $depth 0 eq and
+ {
+ $inVMIndex null ne
+ {dup $inVMIndex $AddInVMFont}
+ if
+ $doSmartSub
+ {
+ currentdict/$Strategy known
+ {$Strategy/$BuildFont get exec}
+ if
+ }
+ if
+ }
+ if
+ end
+ }bind put
+ }
+ if
+ }
+ if
+ end
+/$AddInVMFont
+ {
+ exch/FontName 2 copy known
+ {
+ get
+ 1 dict dup begin exch 1 index gcheck def end exch
+ Adobe_CoolType_Data/InVMFontsByCMap get exch
+ $DictAdd
+ }
+ {pop pop pop}
+ ifelse
+ }bind def
+/$DictAdd
+ {
+ 2 copy known not
+ {2 copy 4 index length dict put}
+ if
+ Level2? not
+ {
+ 2 copy get dup maxlength exch length 4 index length add lt
+ 2 copy get dup length 4 index length add exch maxlength 1 index lt
+ {
+ 2 mul dict
+ begin
+ 2 copy get{forall}def
+ 2 copy currentdict put
+ end
+ }
+ {pop}
+ ifelse
+ }
+ if
+ get
+ begin
+ {def}
+ forall
+ end
+ }bind def
+end
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
+%%Version: 1.23 0
+systemdict/languagelevel known dup
+ {currentglobal false setglobal}
+ {false}
+ifelse
+exch
+userdict/Adobe_CoolType_Utility 2 copy known
+ {2 copy get dup maxlength 27 add dict copy}
+ {27 dict}
+ifelse put
+Adobe_CoolType_Utility
+ begin
+ /@eexecStartData
+ <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
+ 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
+ 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
+ /@recognizeCIDFont null def
+ /ct_Level2? exch def
+ /ct_Clone? 1183615869 internaldict dup
+ /CCRun known not
+ exch/eCCRun known not
+ ct_Level2? and or def
+ct_Level2?
+ {globaldict begin currentglobal true setglobal}
+if
+ /ct_AddStdCIDMap
+ ct_Level2?
+ {{
+ mark
+ Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
+ {
+ ((Hex)57 StartData
+ 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
+ 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
+ d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
+ cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
+ }
+ stopped
+ {
+ cleartomark
+ Adobe_CoolType_Utility/@recognizeCIDFont get
+ countdictstack dup array dictstack
+ exch 1 sub -1 0
+ {
+ 2 copy get 3 index eq
+ {1 index length exch sub 1 sub{end}repeat exit}
+ {pop}
+ ifelse
+ }
+ for
+ pop pop
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }
+ {cleartomark}
+ ifelse
+ }}
+ {{
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }}
+ ifelse bind def
+userdict/cid_extensions known
+dup{cid_extensions/cid_UpdateDB known and}if
+ {
+ cid_extensions
+ begin
+ /cid_GetCIDSystemInfo
+ {
+ 1 index type/stringtype eq
+ {exch cvn exch}
+ if
+ cid_extensions
+ begin
+ dup load 2 index known
+ {
+ 2 copy
+ cid_GetStatusInfo
+ dup null ne
+ {
+ 1 index load
+ 3 index get
+ dup null eq
+ {pop pop cid_UpdateDB}
+ {
+ exch
+ 1 index/Created get eq
+ {exch pop exch pop}
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ ifelse
+ }
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ {cid_UpdateDB}
+ ifelse
+ end
+ }bind def
+ end
+ }
+if
+ct_Level2?
+ {end setglobal}
+if
+ /ct_UseNativeCapability? systemdict/composefont known def
+ /ct_MakeOCF 35 dict def
+ /ct_Vars 25 dict def
+ /ct_GlyphDirProcs 6 dict def
+ /ct_BuildCharDict 15 dict dup
+ begin
+ /charcode 2 string def
+ /dst_string 1500 string def
+ /nullstring()def
+ /usewidths? true def
+ end def
+ ct_Level2?{setglobal}{pop}ifelse
+ ct_GlyphDirProcs
+ begin
+ /GetGlyphDirectory
+ {
+ systemdict/languagelevel known
+ {pop/CIDFont findresource/GlyphDirectory get}
+ {
+ 1 index/CIDFont findresource/GlyphDirectory
+ get dup type/dicttype eq
+ {
+ dup dup maxlength exch length sub 2 index lt
+ {
+ dup length 2 index add dict copy 2 index
+ /CIDFont findresource/GlyphDirectory 2 index put
+ }
+ if
+ }
+ if
+ exch pop exch pop
+ }
+ ifelse
+ +
+ }def
+ /+
+ {
+ systemdict/languagelevel known
+ {
+ currentglobal false setglobal
+ 3 dict begin
+ /vm exch def
+ }
+ {1 dict begin}
+ ifelse
+ /$ exch def
+ systemdict/languagelevel known
+ {
+ vm setglobal
+ /gvm currentglobal def
+ $ gcheck setglobal
+ }
+ if
+ ?{$ begin}if
+ }def
+ /?{$ type/dicttype eq}def
+ /|{
+ userdict/Adobe_CoolType_Data known
+ {
+ Adobe_CoolType_Data/AddWidths? known
+ {
+ currentdict Adobe_CoolType_Data
+ begin
+ begin
+ AddWidths?
+ {
+ Adobe_CoolType_Data/CC 3 index put
+ ?{def}{$ 3 1 roll put}ifelse
+ CC charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore
+ currentfont/Widths get exch CC exch put
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ end
+ end
+ }
+ {?{def}{$ 3 1 roll put}ifelse} ifelse
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ }def
+ /!
+ {
+ ?{end}if
+ systemdict/languagelevel known
+ {gvm setglobal}
+ if
+ end
+ }def
+ /:{string currentfile exch readstring pop}executeonly def
+ end
+ ct_MakeOCF
+ begin
+ /ct_cHexEncoding
+ [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+ /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+ /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+ /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+ /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+ /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+ /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+ /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+ /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+ /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+ /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+ /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+ /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+ /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+ /ct_CID_STR_SIZE 8000 def
+ /ct_mkocfStr100 100 string def
+ /ct_defaultFontMtx[.001 0 0 .001 0 0]def
+ /ct_1000Mtx[1000 0 0 1000 0 0]def
+ /ct_raise{exch cvx exch errordict exch get exec stop}bind def
+ /ct_reraise
+ {cvx $error/errorname get(Error: )print dup( )cvs print
+ errordict exch get exec stop
+ }bind def
+ /ct_cvnsi
+ {
+ 1 index add 1 sub 1 exch 0 4 1 roll
+ {
+ 2 index exch get
+ exch 8 bitshift
+ add
+ }
+ for
+ exch pop
+ }bind def
+ /ct_GetInterval
+ {
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /dst_index 0 def
+ dup dst_string length gt
+ {dup string/dst_string exch def}
+ if
+ 1 index ct_CID_STR_SIZE idiv
+ /arrayIndex exch def
+ 2 index arrayIndex get
+ 2 index
+ arrayIndex ct_CID_STR_SIZE mul
+ sub
+ {
+ dup 3 index add 2 index length le
+ {
+ 2 index getinterval
+ dst_string dst_index 2 index putinterval
+ length dst_index add/dst_index exch def
+ exit
+ }
+ {
+ 1 index length 1 index sub
+ dup 4 1 roll
+ getinterval
+ dst_string dst_index 2 index putinterval
+ pop dup dst_index add/dst_index exch def
+ sub
+ /arrayIndex arrayIndex 1 add def
+ 2 index dup length arrayIndex gt
+ {arrayIndex get}
+ {
+ pop
+ exit
+ }
+ ifelse
+ 0
+ }
+ ifelse
+ }
+ loop
+ pop pop pop
+ dst_string 0 dst_index getinterval
+ end
+ }bind def
+ ct_Level2?
+ {
+ /ct_resourcestatus
+ currentglobal mark true setglobal
+ {/unknowninstancename/Category resourcestatus}
+ stopped
+ {cleartomark setglobal true}
+ {cleartomark currentglobal not exch setglobal}
+ ifelse
+ {
+ {
+ mark 3 1 roll/Category findresource
+ begin
+ ct_Vars/vm currentglobal put
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ ct_Vars/vm get setglobal
+ end
+ }
+ }
+ {{resourcestatus}}
+ ifelse bind def
+ /CIDFont/Category ct_resourcestatus
+ {pop pop}
+ {
+ currentglobal true setglobal
+ /Generic/Category findresource
+ dup length dict copy
+ dup/InstanceType/dicttype put
+ /CIDFont exch/Category defineresource pop
+ setglobal
+ }
+ ifelse
+ ct_UseNativeCapability?
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ if
+ }
+ {
+ /ct_Category 2 dict begin
+ /CIDFont 10 dict def
+ /ProcSet 2 dict def
+ currentdict
+ end
+ def
+ /defineresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ dup dup maxlength exch length eq
+ {
+ dup length 10 add dict copy
+ ct_Category 2 index 2 index put
+ }
+ if
+ 3 index 3 index put
+ pop exch pop
+ }
+ {pop pop/defineresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /findresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index 2 copy known
+ {get 3 1 roll pop pop}
+ {pop pop/findresource/undefinedresource ct_raise}
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /resourcestatus
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index known
+ exch pop exch pop
+ {
+ 0 -1 true
+ }
+ {
+ false
+ }
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /ct_resourcestatus/resourcestatus load def
+ }
+ ifelse
+ /ct_CIDInit 2 dict
+ begin
+ /ct_cidfont_stream_init
+ {
+ {
+ dup(Binary)eq
+ {
+ pop
+ null
+ currentfile
+ ct_Level2?
+ {
+ {cid_BYTE_COUNT()/SubFileDecode filter}
+ stopped
+ {pop pop pop}
+ if
+ }
+ if
+ /readstring load
+ exit
+ }
+ if
+ dup(Hex)eq
+ {
+ pop
+ currentfile
+ ct_Level2?
+ {
+ {null exch/ASCIIHexDecode filter/readstring}
+ stopped
+ {pop exch pop(>)exch/readhexstring}
+ if
+ }
+ {(>)exch/readhexstring}
+ ifelse
+ load
+ exit
+ }
+ if
+ /StartData/typecheck ct_raise
+ }
+ loop
+ cid_BYTE_COUNT ct_CID_STR_SIZE le
+ {
+ 2 copy cid_BYTE_COUNT string exch exec
+ pop
+ 1 array dup
+ 3 -1 roll
+ 0 exch put
+ }
+ {
+ cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
+ dup array exch 2 sub 0 exch 1 exch
+ {
+ 2 copy
+ 5 index
+ ct_CID_STR_SIZE
+ string
+ 6 index exec
+ pop
+ put
+ pop
+ }
+ for
+ 2 index
+ cid_BYTE_COUNT ct_CID_STR_SIZE mod string
+ 3 index exec
+ pop
+ 1 index exch
+ 1 index length 1 sub
+ exch put
+ }
+ ifelse
+ cid_CIDFONT exch/GlyphData exch put
+ 2 index null eq
+ {
+ pop pop pop
+ }
+ {
+ pop/readstring load
+ 1 string exch
+ {
+ 3 copy exec
+ pop
+ dup length 0 eq
+ {
+ pop pop pop pop pop
+ true exit
+ }
+ if
+ 4 index
+ eq
+ {
+ pop pop pop pop
+ false exit
+ }
+ if
+ }
+ loop
+ pop
+ }
+ ifelse
+ }bind def
+ /StartData
+ {
+ mark
+ {
+ currentdict
+ dup/FDArray get 0 get/FontMatrix get
+ 0 get 0.001 eq
+ {
+ dup/CDevProc known not
+ {
+ /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
+ {get}
+ {
+ pop pop
+ {pop pop pop pop pop 0 -1000 7 index 2 div 880}
+ }
+ ifelse
+ def
+ }
+ if
+ }
+ {
+ /CDevProc
+ {
+ pop pop pop pop pop
+ 0
+ 1 cid_temp/cid_CIDFONT get
+ /FDArray get 0 get
+ /FontMatrix get 0 get div
+ 7 index 2 div
+ 1 index 0.88 mul
+ }def
+ }
+ ifelse
+ /cid_temp 15 dict def
+ cid_temp
+ begin
+ /cid_CIDFONT exch def
+ 3 copy pop
+ dup/cid_BYTE_COUNT exch def 0 gt
+ {
+ ct_cidfont_stream_init
+ FDArray
+ {
+ /Private get
+ dup/SubrMapOffset known
+ {
+ begin
+ /Subrs SubrCount array def
+ Subrs
+ SubrMapOffset
+ SubrCount
+ SDBytes
+ ct_Level2?
+ {
+ currentdict dup/SubrMapOffset undef
+ dup/SubrCount undef
+ /SDBytes undef
+ }
+ if
+ end
+ /cid_SD_BYTES exch def
+ /cid_SUBR_COUNT exch def
+ /cid_SUBR_MAP_OFFSET exch def
+ /cid_SUBRS exch def
+ cid_SUBR_COUNT 0 gt
+ {
+ GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ 0 1 cid_SUBR_COUNT 1 sub
+ {
+ exch 1 index
+ 1 add
+ cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
+ GlyphData exch cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ cid_SUBRS 4 2 roll
+ GlyphData exch
+ 4 index
+ 1 index
+ sub
+ ct_GetInterval
+ dup length string copy put
+ }
+ for
+ pop
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ }
+ if
+ cleartomark pop pop
+ end
+ CIDFontName currentdict/CIDFont defineresource pop
+ end end
+ }
+ stopped
+ {cleartomark/StartData ct_reraise}
+ if
+ }bind def
+ currentdict
+ end def
+ /ct_saveCIDInit
+ {
+ /CIDInit/ProcSet ct_resourcestatus
+ {true}
+ {/CIDInitC/ProcSet ct_resourcestatus}
+ ifelse
+ {
+ pop pop
+ /CIDInit/ProcSet findresource
+ ct_UseNativeCapability?
+ {pop null}
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop}
+ ifelse
+ }
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
+ ifelse
+ ct_Vars exch/ct_oldCIDInit exch put
+ }bind def
+ /ct_restoreCIDInit
+ {
+ ct_Vars/ct_oldCIDInit get dup null ne
+ {/CIDInit exch/ProcSet defineresource pop}
+ {pop}
+ ifelse
+ }bind def
+ /ct_BuildCharSetUp
+ {
+ 1 index
+ begin
+ CIDFont
+ begin
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /ct_dfCharCode exch def
+ /ct_dfDict exch def
+ CIDFirstByte ct_dfCharCode add
+ dup CIDCount ge
+ {pop 0}
+ if
+ /cid exch def
+ {
+ GlyphDirectory cid 2 copy known
+ {get}
+ {pop pop nullstring}
+ ifelse
+ dup length FDBytes sub 0 gt
+ {
+ dup
+ FDBytes 0 ne
+ {0 FDBytes ct_cvnsi}
+ {pop 0}
+ ifelse
+ /fdIndex exch def
+ dup length FDBytes sub FDBytes exch getinterval
+ /charstring exch def
+ exit
+ }
+ {
+ pop
+ cid 0 eq
+ {/charstring nullstring def exit}
+ if
+ /cid 0 def
+ }
+ ifelse
+ }
+ loop
+ }def
+ /ct_SetCacheDevice
+ {
+ 0 0 moveto
+ dup stringwidth
+ 3 -1 roll
+ true charpath
+ pathbbox
+ 0 -1000
+ 7 index 2 div 880
+ setcachedevice2
+ 0 0 moveto
+ }def
+ /ct_CloneSetCacheProc
+ {
+ 1 eq
+ {
+ stringwidth
+ pop -2 div -880
+ 0 -1000 setcharwidth
+ moveto
+ }
+ {
+ usewidths?
+ {
+ currentfont/Widths get cid
+ 2 copy known
+ {get exch pop aload pop}
+ {pop pop stringwidth}
+ ifelse
+ }
+ {stringwidth}
+ ifelse
+ setcharwidth
+ 0 0 moveto
+ }
+ ifelse
+ }def
+ /ct_Type3ShowCharString
+ {
+ ct_FDDict fdIndex 2 copy known
+ {get}
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ ct_Type1FontTemplate dup maxlength dict copy
+ begin
+ FDArray fdIndex get
+ dup/FontMatrix 2 copy known
+ {get}
+ {pop pop ct_defaultFontMtx}
+ ifelse
+ /FontMatrix exch dup length array copy def
+ /Private get
+ /Private exch def
+ /Widths rootfont/Widths get def
+ /CharStrings 1 dict dup/.notdef
+ <d841272cf18f54fc13>dup length string copy put def
+ currentdict
+ end
+ /ct_Type1Font exch definefont
+ dup 5 1 roll put
+ setglobal
+ }
+ ifelse
+ dup/CharStrings get 1 index/Encoding get
+ ct_dfCharCode get charstring put
+ rootfont/WMode 2 copy known
+ {get}
+ {pop pop 0}
+ ifelse
+ exch
+ 1000 scalefont setfont
+ ct_str1 0 ct_dfCharCode put
+ ct_str1 exch ct_dfSetCacheProc
+ ct_SyntheticBold
+ {
+ currentpoint
+ ct_str1 show
+ newpath
+ moveto
+ ct_str1 true charpath
+ ct_StrokeWidth setlinewidth
+ stroke
+ }
+ {ct_str1 show}
+ ifelse
+ }def
+ /ct_Type4ShowCharString
+ {
+ ct_dfDict ct_dfCharCode charstring
+ FDArray fdIndex get
+ dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
+ {ct_1000Mtx matrix concatmatrix concat}
+ {pop}
+ ifelse
+ /Private get
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {
+ ct_dfDict/Private
+ 3 -1 roll
+ {put}
+ 1183615869 internaldict/superexec get exec
+ }
+ if
+ 1183615869 internaldict
+ Adobe_CoolType_Utility/ct_Level2? get
+ {1 index}
+ {3 index/Private get mark 6 1 roll}
+ ifelse
+ dup/RunInt known
+ {/RunInt get}
+ {pop/CCRun}
+ ifelse
+ get exec
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {cleartomark}
+ if
+ }bind def
+ /ct_BuildCharIncremental
+ {
+ {
+ Adobe_CoolType_Utility/ct_MakeOCF get begin
+ ct_BuildCharSetUp
+ ct_ShowCharString
+ }
+ stopped
+ {stop}
+ if
+ end
+ end
+ end
+ end
+ }bind def
+ /BaseFontNameStr(BF00)def
+ /ct_Type1FontTemplate 14 dict
+ begin
+ /FontType 1 def
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /PaintType 0 def
+ currentdict
+ end def
+ /BaseFontTemplate 11 dict
+ begin
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /BuildChar/ct_BuildCharIncremental load def
+ ct_Clone?
+ {
+ /FontType 3 def
+ /ct_ShowCharString/ct_Type3ShowCharString load def
+ /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
+ /ct_SyntheticBold false def
+ /ct_StrokeWidth 1 def
+ }
+ {
+ /FontType 4 def
+ /Private 1 dict dup/lenIV 4 put def
+ /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
+ /PaintType 0 def
+ /ct_ShowCharString/ct_Type4ShowCharString load def
+ }
+ ifelse
+ /ct_str1 1 string def
+ currentdict
+ end def
+ /BaseFontDictSize BaseFontTemplate length 5 add def
+ /ct_matrixeq
+ {
+ true 0 1 5
+ {
+ dup 4 index exch get exch 3 index exch get eq and
+ dup not
+ {exit}
+ if
+ }
+ for
+ exch pop exch pop
+ }bind def
+ /ct_makeocf
+ {
+ 15 dict
+ begin
+ exch/WMode exch def
+ exch/FontName exch def
+ /FontType 0 def
+ /FMapType 2 def
+ dup/FontMatrix known
+ {dup/FontMatrix get/FontMatrix exch def}
+ {/FontMatrix matrix def}
+ ifelse
+ /bfCount 1 index/CIDCount get 256 idiv 1 add
+ dup 256 gt{pop 256}if def
+ /Encoding
+ 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
+ bfCount 1 255{2 copy bfCount put pop}for
+ def
+ /FDepVector bfCount dup 256 lt{1 add}if array def
+ BaseFontTemplate BaseFontDictSize dict copy
+ begin
+ /CIDFont exch def
+ CIDFont/FontBBox known
+ {CIDFont/FontBBox get/FontBBox exch def}
+ if
+ CIDFont/CDevProc known
+ {CIDFont/CDevProc get/CDevProc exch def}
+ if
+ currentdict
+ end
+ BaseFontNameStr 3(0)putinterval
+ 0 1 bfCount dup 256 eq{1 sub}if
+ {
+ FDepVector exch
+ 2 index BaseFontDictSize dict copy
+ begin
+ dup/CIDFirstByte exch 256 mul def
+ FontType 3 eq
+ {/ct_FDDict 2 dict def}
+ if
+ currentdict
+ end
+ 1 index 16
+ BaseFontNameStr 2 2 getinterval cvrs pop
+ BaseFontNameStr exch definefont
+ put
+ }
+ for
+ ct_Clone?
+ {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
+ if
+ FontName
+ currentdict
+ end
+ definefont
+ ct_Clone?
+ {
+ gsave
+ dup 1000 scalefont setfont
+ ct_BuildCharDict
+ begin
+ /usewidths? false def
+ currentfont/Widths get
+ begin
+ exch/CIDFont get/GlyphDirectory get
+ {
+ pop
+ dup charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore def
+ }
+ forall
+ end
+ /usewidths? true def
+ end
+ grestore
+ }
+ {exch pop}
+ ifelse
+ }bind def
+ currentglobal true setglobal
+ /ct_ComposeFont
+ {
+ ct_UseNativeCapability?
+ {
+ 2 index/CMap ct_resourcestatus
+ {pop pop exch pop}
+ {
+ /CIDInit/ProcSet findresource
+ begin
+ 12 dict
+ begin
+ begincmap
+ /CMapName 3 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ exch/WMode exch def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {
+ dup length string copy
+ exch pop exch pop
+ }
+ {pop(Identity)}
+ ifelse
+ }
+ {pop (Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ 3 2 roll pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ setglobal
+ /ct_MakeIdentity
+ {
+ ct_UseNativeCapability?
+ {
+ 1 index/CMap ct_resourcestatus
+ {pop pop}
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CMapName 2 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {dup length string copy exch pop exch pop}
+ {pop(Identity)}
+ ifelse
+ }
+ {pop(Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ exch pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ currentdict readonly pop
+ end
+ end
+%%EndResource
+setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
+%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
+%%Version: 1.0 0
+userdict/ct_T42Dict 15 dict put
+ct_T42Dict begin
+/Is2015?
+{
+ version
+ cvi
+ 2015
+ ge
+}bind def
+/AllocGlyphStorage
+{
+ Is2015?
+ {
+ pop
+ }
+ {
+ {string}forall
+ }ifelse
+}bind def
+/Type42DictBegin
+{
+25 dict begin
+ /FontName exch def
+ /CharStrings 256 dict
+begin
+ /.notdef 0 def
+ currentdict
+end def
+ /Encoding exch def
+ /PaintType 0 def
+ /FontType 42 def
+ /FontMatrix[1 0 0 1 0 0]def
+ 4 array astore cvx/FontBBox exch def
+ /sfnts
+}bind def
+/Type42DictEnd
+{
+ currentdict dup/FontName get exch definefont end
+ct_T42Dict exch
+dup/FontName get exch put
+}bind def
+/RD{string currentfile exch readstring pop}executeonly def
+/PrepFor2015
+{
+Is2015?
+{
+ /GlyphDirectory
+ 16
+ dict def
+ sfnts 0 get
+ dup
+ 2 index
+ (glyx)
+ putinterval
+ 2 index
+ (locx)
+ putinterval
+ pop
+ pop
+}
+{
+ pop
+ pop
+}ifelse
+}bind def
+/AddT42Char
+{
+Is2015?
+{
+ /GlyphDirectory get
+ begin
+ def
+ end
+ pop
+ pop
+}
+{
+ /sfnts get
+ 4 index
+ get
+ 3 index
+ 2 index
+ putinterval
+ pop
+ pop
+ pop
+ pop
+}ifelse
+}bind def
+/T0AddT42Mtx2
+{
+/CIDFont findresource/Metrics2 get begin def end
+}bind def
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginFile: MMFauxFont.prc
+%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
+%%All Rights Reserved.
+userdict /ct_EuroDict 10 dict put
+ct_EuroDict begin
+/ct_CopyFont
+{
+ { 1 index /FID ne {def} {pop pop} ifelse} forall
+} def
+/ct_GetGlyphOutline
+{
+ gsave
+ initmatrix newpath
+ exch findfont dup
+ length 1 add dict
+ begin
+ ct_CopyFont
+ /Encoding Encoding dup length array copy
+ dup
+ 4 -1 roll
+ 0 exch put
+ def
+ currentdict
+ end
+ /ct_EuroFont exch definefont
+ 1000 scalefont setfont
+ 0 0 moveto
+ [
+ <00> stringwidth
+ <00> false charpath
+ pathbbox
+ [
+ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
+ grestore
+ counttomark 8 add
+}
+def
+/ct_MakeGlyphProc
+{
+ ] cvx
+ /ct_PSBuildGlyph cvx
+ ] cvx
+} def
+/ct_PSBuildGlyph
+{
+ gsave
+ 8 -1 roll pop
+ 7 1 roll
+ 6 -2 roll ct_FontMatrix transform 6 2 roll
+ 4 -2 roll ct_FontMatrix transform 4 2 roll
+ ct_FontMatrix transform
+ currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
+ dup 9 1 roll
+ {
+ currentdict /StrokeWidth 2 copy known
+ {
+ get 2 div
+ 0 ct_FontMatrix dtransform pop
+ 5 1 roll
+ 4 -1 roll 4 index sub
+ 4 1 roll
+ 3 -1 roll 4 index sub
+ 3 1 roll
+ exch 4 index add exch
+ 4 index add
+ 5 -1 roll pop
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ if
+ setcachedevice
+ ct_FontMatrix concat
+ ct_PSPathOps begin
+ exec
+ end
+ {
+ currentdict /StrokeWidth 2 copy known
+ { get }
+ { pop pop 0 }
+ ifelse
+ setlinewidth stroke
+ }
+ {
+ fill
+ }
+ ifelse
+ grestore
+} def
+/ct_PSPathOps 4 dict dup begin
+ /m {moveto} def
+ /l {lineto} def
+ /c {curveto} def
+ /cp {closepath} def
+end
+def
+/ct_matrix1000 [1000 0 0 1000 0 0] def
+/ct_AddGlyphProc
+{
+ 2 index findfont dup length 4 add dict
+ begin
+ ct_CopyFont
+ /CharStrings CharStrings dup length 1 add dict copy
+ begin
+ 3 1 roll def
+ currentdict
+ end
+ def
+ /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
+ /ct_PSBuildGlyph /ct_PSBuildGlyph load def
+ /ct_PSPathOps /ct_PSPathOps load def
+ currentdict
+ end
+ definefont pop
+}
+def
+systemdict /languagelevel known
+{
+ /ct_AddGlyphToPrinterFont {
+ 2 copy
+ ct_GetGlyphOutline 3 add -1 roll restore
+ ct_MakeGlyphProc
+ ct_AddGlyphProc
+ } def
+}
+{
+ /ct_AddGlyphToPrinterFont {
+ pop pop restore
+ Adobe_CTFauxDict /$$$FONTNAME get
+ /Euro
+ Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
+ ct_EuroDict exch get
+ ct_AddGlyphProc
+ } def
+} ifelse
+/AdobeSansMM
+{
+556 0 24 -19 541 703
+ {
+ 541 628 m
+ 510 669 442 703 354 703 c
+ 201 703 117 607 101 444 c
+ 50 444 l
+ 25 372 l
+ 97 372 l
+ 97 301 l
+ 49 301 l
+ 24 229 l
+ 103 229 l
+ 124 67 209 -19 350 -19 c
+ 435 -19 501 25 509 32 c
+ 509 131 l
+ 492 105 417 60 343 60 c
+ 267 60 204 127 197 229 c
+ 406 229 l
+ 430 301 l
+ 191 301 l
+ 191 372 l
+ 455 372 l
+ 479 444 l
+ 194 444 l
+ 201 531 245 624 348 624 c
+ 433 624 484 583 509 534 c
+ cp
+ 556 0 m
+ }
+ct_PSBuildGlyph
+} def
+/AdobeSerifMM
+{
+500 0 10 -12 484 692
+ {
+ 347 298 m
+ 171 298 l
+ 170 310 170 322 170 335 c
+ 170 362 l
+ 362 362 l
+ 374 403 l
+ 172 403 l
+ 184 580 244 642 308 642 c
+ 380 642 434 574 457 457 c
+ 481 462 l
+ 474 691 l
+ 449 691 l
+ 433 670 429 657 410 657 c
+ 394 657 360 692 299 692 c
+ 204 692 94 604 73 403 c
+ 22 403 l
+ 10 362 l
+ 70 362 l
+ 69 352 69 341 69 330 c
+ 69 319 69 308 70 298 c
+ 22 298 l
+ 10 257 l
+ 73 257 l
+ 97 57 216 -12 295 -12 c
+ 364 -12 427 25 484 123 c
+ 458 142 l
+ 425 101 384 37 316 37 c
+ 256 37 189 84 173 257 c
+ 335 257 l
+ cp
+ 500 0 m
+ }
+ct_PSBuildGlyph
+} def
+end
+%%EndFile
+setglobal
+Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
+%%BeginResource: procset Adobe_AGM_Image 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Image 71 dict dup begin put
+/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
+/nd{
+ null def
+}bind def
+/AGMIMG_&image nd
+/AGMIMG_&colorimage nd
+/AGMIMG_&imagemask nd
+/AGMIMG_mbuf()def
+/AGMIMG_ybuf()def
+/AGMIMG_kbuf()def
+/AGMIMG_c 0 def
+/AGMIMG_m 0 def
+/AGMIMG_y 0 def
+/AGMIMG_k 0 def
+/AGMIMG_tmp nd
+/AGMIMG_imagestring0 nd
+/AGMIMG_imagestring1 nd
+/AGMIMG_imagestring2 nd
+/AGMIMG_imagestring3 nd
+/AGMIMG_imagestring4 nd
+/AGMIMG_imagestring5 nd
+/AGMIMG_cnt nd
+/AGMIMG_fsave nd
+/AGMIMG_colorAry nd
+/AGMIMG_override nd
+/AGMIMG_name nd
+/AGMIMG_maskSource nd
+/AGMIMG_flushfilters nd
+/invert_image_samples nd
+/knockout_image_samples nd
+/img nd
+/sepimg nd
+/devnimg nd
+/idximg nd
+/ds
+{
+ Adobe_AGM_Core begin
+ Adobe_AGM_Image begin
+ /AGMIMG_&image systemdict/image get def
+ /AGMIMG_&imagemask systemdict/imagemask get def
+ /colorimage where{
+ pop
+ /AGMIMG_&colorimage/colorimage ldf
+ }if
+ end
+ end
+}def
+/ps
+{
+ Adobe_AGM_Image begin
+ /AGMIMG_ccimage_exists{/customcolorimage where
+ {
+ pop
+ /Adobe_AGM_OnHost_Seps where
+ {
+ pop false
+ }{
+ /Adobe_AGM_InRip_Seps where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }ifelse
+ }{
+ false
+ }ifelse
+ }bdf
+ level2{
+ /invert_image_samples
+ {
+ Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
+ /Decode[Decode 1 get Decode 0 get]def
+ }def
+ /knockout_image_samples
+ {
+ Operator/imagemask ne{
+ /Decode[1 1]def
+ }if
+ }def
+ }{
+ /invert_image_samples
+ {
+ {1 exch sub}currenttransfer addprocs settransfer
+ }def
+ /knockout_image_samples
+ {
+ {pop 1}currenttransfer addprocs settransfer
+ }def
+ }ifelse
+ /img/imageormask ldf
+ /sepimg/sep_imageormask ldf
+ /devnimg/devn_imageormask ldf
+ /idximg/indexed_imageormask ldf
+ /_ctype 7 def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+}def
+/pt
+{
+ end
+}def
+/dt
+{
+}def
+/AGMIMG_flushfilters
+{
+ dup type/arraytype ne
+ {1 array astore}if
+ dup 0 get currentfile ne
+ {dup 0 get flushfile}if
+ {
+ dup type/filetype eq
+ {
+ dup status 1 index currentfile ne and
+ {closefile}
+ {pop}
+ ifelse
+ }{pop}ifelse
+ }forall
+}def
+/AGMIMG_init_common
+{
+ currentdict/T known{/ImageType/T ldf currentdict/T undef}if
+ currentdict/W known{/Width/W ldf currentdict/W undef}if
+ currentdict/H known{/Height/H ldf currentdict/H undef}if
+ currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
+ currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
+ currentdict/D known{/Decode/D ldf currentdict/D undef}if
+ currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
+ currentdict/O known{
+ /Operator/O load 1 eq{
+ /imagemask
+ }{
+ /O load 2 eq{
+ /image
+ }{
+ /colorimage
+ }ifelse
+ }ifelse
+ def
+ currentdict/O undef
+ }if
+ currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
+ currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
+ currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
+ currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
+ /DataSource load xcheck not{
+ DataSource type/arraytype eq{
+ DataSource 0 get type/filetype eq{
+ /_Filters DataSource def
+ currentdict/MultipleDataSources known not{
+ /DataSource DataSource dup length 1 sub get def
+ }if
+ }if
+ }if
+ currentdict/MultipleDataSources known not{
+ /MultipleDataSources DataSource type/arraytype eq{
+ DataSource length 1 gt
+ }
+ {false}ifelse def
+ }if
+ }if
+ /NComponents Decode length 2 div def
+ currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
+}bdf
+/imageormask_sys
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ level2{
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ AGMIMG_&imagemask
+ }{
+ BitsPerComponent ImageMatrix/DataSource load
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ cleartomark restore
+ end
+}def
+/overprint_plate
+{
+ currentoverprint{
+ 0 get dup type/nametype eq{
+ dup/DeviceGray eq{
+ pop AGMCORE_black_plate not
+ }{
+ /DeviceCMYK eq{
+ AGMCORE_is_cmyk_sep not
+ }if
+ }ifelse
+ }{
+ false exch
+ {
+ AGMOHS_sepink eq or
+ }forall
+ not
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}def
+/process_mask
+{
+ level3{
+ dup begin
+ /ImageType 1 def
+ end
+ 4 dict begin
+ /DataDict exch def
+ /ImageType 3 def
+ /InterleaveType 3 def
+ /MaskDict 9 dict begin
+ /ImageType 1 def
+ /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
+ /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
+ /ImageMatrix[Width 0 0 Height neg 0 Height]def
+ /NComponents 1 def
+ /BitsPerComponent 1 def
+ /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
+ /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
+ currentdict end def
+ currentdict end
+ }if
+}def
+/use_mask
+{
+ dup/Mask known {dup/Mask get}{false}ifelse
+}def
+/imageormask
+{
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }
+ {
+ save mark
+ level2 AGMCORE_host_sep not and{
+ currentdict
+ Operator/imagemask eq DeviceN_PS2 not and{
+ imagemask
+ }{
+ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ /Decode[Decode 1 get Decode 0 get]def
+ }if
+ use_mask{
+ process_mask image
+ }{
+ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
+ {
+ Names convert_to_process not{
+ 2 dict begin
+ /imageDict xdf
+ /names_index 0 def
+ gsave
+ imageDict write_image_file{
+ Names{
+ dup(None)ne{
+ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
+ Operator imageDict read_image_file
+ names_index 0 eq{true setoverprint}if
+ /names_index names_index 1 add def
+ }{
+ pop
+ }ifelse
+ }forall
+ close_image_file
+ }if
+ grestore
+ end
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ /Adobe_AGM_OnHost_Seps where{
+ pop imagemask
+ }{
+ currentgray 1 ne{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ BitsPerComponent ImageMatrix
+ MultipleDataSources{
+ 0 1 NComponents 1 sub{
+ DataSource exch get
+ }for
+ }{
+ /DataSource load
+ }ifelse
+ Operator/colorimage eq{
+ AGMCORE_host_sep{
+ MultipleDataSources level2 or NComponents 4 eq and{
+ AGMCORE_is_cmyk_sep{
+ MultipleDataSources{
+ /DataSource DataSource 0 get xcheck
+ {
+ [
+ DataSource 0 get/exec cvx
+ DataSource 1 get/exec cvx
+ DataSource 2 get/exec cvx
+ DataSource 3 get/exec cvx
+ /AGMCORE_get_ink_data cvx
+ ]cvx
+ }{
+ DataSource aload pop AGMCORE_get_ink_data
+ }ifelse def
+ }{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ /DataSource load
+ filter_cmyk 0()/SubFileDecode filter def
+ }ifelse
+ /Decode[Decode 0 get Decode 1 get]def
+ /MultipleDataSources false def
+ /NComponents 1 def
+ /Operator/image def
+ invert_image_samples
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }{
+ MultipleDataSources NComponents AGMIMG_&colorimage
+ }ifelse
+ }{
+ true NComponents colorimage
+ }ifelse
+ }{
+ Operator/image eq{
+ AGMCORE_host_sep{
+ /DoImage true def
+ currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
+ {
+ AGMCORE_black_plate not Operator/imagemask ne and{
+ /DoImage false def
+ currentdict ignoreimagedata
+ }if
+ }if
+ 1 AGMCORE_&setgray
+ DoImage
+ {currentdict imageormask_sys}if
+ }{
+ use_mask{
+ process_mask image
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/knockout eq{
+ pop pop pop pop pop
+ currentcolorspace overprint_plate not{
+ knockout_unitsq
+ }if
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/sep_imageormask
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_avoid_L2_sep_space{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ }if
+ AGMIMG_ccimage_exists
+ MappedCSA 0 get/DeviceCMYK eq and
+ currentdict/Components known and
+ Name()ne and
+ Name(All)ne and
+ Operator/image eq and
+ AGMCORE_producing_seps not and
+ level2 not and
+ {
+ Width Height BitsPerComponent ImageMatrix
+ [
+ /DataSource load/exec cvx
+ {
+ 0 1 2 index length 1 sub{
+ 1 index exch
+ 2 copy get 255 xor put
+ }for
+ }/exec cvx
+ ]cvx bind
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Name findcmykcustomcolor
+ customcolorimage
+ }{
+ AGMCORE_producing_seps not{
+ level2{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
+ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ currentdict imageormask
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask
+ }{
+ sep_imageormask_lev1
+ }ifelse
+ }ifelse
+ }{
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ currentdict/ImageMatrix get concat
+ knockout_unitsq
+ }{
+ currentgray 1 ne{
+ AGMCORE_is_cmyk_sep Name(All)ne and{
+ level2{
+ Name AGMCORE_IsSeparationAProcessColor
+ {
+ Operator/imagemask eq{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
+ }if
+ }{
+ invert_image_samples
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ [/Separation Name[/DeviceGray]
+ {
+ sep_colorspace_proc AGMCORE_get_ink_data
+ 1 exch sub
+ }bind
+ ]AGMCORE_&setcolorspace
+ /sep_tint AGMCORE_gget AGMCORE_&setcolor
+ }if
+ }ifelse
+ currentdict imageormask_sys
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ sep_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask ne{
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }ifelse
+ }{
+ currentoverprint not Name(All)eq or Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ currentcolorspace 0 get/Separation ne{
+ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ }if
+ currentoverprint
+ MappedCSA 0 get/DeviceCMYK eq and
+ Name AGMCORE_IsSeparationAProcessColor not and
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
+ Name(All)ne and{
+ imageormask_l2_overprint
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+}def
+/colorSpaceElemCnt
+{
+ mark currentcolor counttomark dup 2 add 1 roll cleartomark
+}bdf
+/devn_sep_datasource
+{
+ 1 dict begin
+ /dataSource xdf
+ [
+ 0 1 dataSource length 1 sub{
+ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
+ /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
+ }for
+ ]cvx bind
+ end
+}bdf
+/devn_alt_datasource
+{
+ 11 dict begin
+ /convProc xdf
+ /origcolorSpaceElemCnt xdf
+ /origMultipleDataSources xdf
+ /origBitsPerComponent xdf
+ /origDecode xdf
+ /origDataSource xdf
+ /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
+ /DataSource origMultipleDataSources
+ {
+ [
+ BitsPerComponent 8 idiv origDecode length 2 idiv mul string
+ 0 1 origDecode length 2 idiv 1 sub
+ {
+ dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
+ origDataSource exch get 0()/SubFileDecode filter
+ BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
+ }for
+ ]bind cvx
+ }{origDataSource}ifelse 0()/SubFileDecode filter def
+ [
+ origcolorSpaceElemCnt string
+ 0 2 origDecode length 2 sub
+ {
+ dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
+ 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
+ }for
+ /convProc load/exec cvx
+ origcolorSpaceElemCnt 1 sub -1 0
+ {
+ /dup cvx 2/add cvx/index cvx
+ 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
+ }for
+ ]bind cvx 0()/SubFileDecode filter
+ end
+}bdf
+/devn_imageormask
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ 2 dict begin
+ dup
+ /srcDataStrs[3 -1 roll begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi
+ {
+ dup 65535 gt{1 add 2 div cvi}{exit}ifelse
+ }loop
+ string
+ }repeat
+ end]def
+ /dstDataStr srcDataStrs 0 get length string def
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_producing_seps not{
+ level3 not{
+ Operator/imagemask ne{
+ /DataSource[[
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
+ /MultipleDataSources true def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ }if
+ }if
+ currentdict imageormask
+ }{
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ CSA get_csa_by_name 0 get/DeviceCMYK eq{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ filter_cmyk 0()/SubFileDecode filter def
+ /MultipleDataSources false def
+ /Decode[1 0]def
+ /DeviceGray setcolorspace
+ currentdict imageormask_sys
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate{
+ /DataSource
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ /MultipleDataSources false def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ currentdict imageormask_sys
+ }{
+ gsave
+ knockout_unitsq
+ grestore
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }
+ {
+ /devicen_colorspace_dict AGMCORE_gget/names_index known{
+ Operator/imagemask ne{
+ MultipleDataSources{
+ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
+ /MultipleDataSources false def
+ }{
+ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
+ }ifelse
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+ end
+}def
+/imageormask_l2_overprint
+{
+ currentdict
+ currentcmykcolor add add add 0 eq{
+ currentdict consumeimagedata
+ }{
+ level3{
+ currentcmykcolor
+ /AGMIMG_k xdf
+ /AGMIMG_y xdf
+ /AGMIMG_m xdf
+ /AGMIMG_c xdf
+ Operator/imagemask eq{
+ [/DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]/DeviceCMYK{}]setcolorspace
+ AGMIMG_c 0 ne{AGMIMG_c}if
+ AGMIMG_m 0 ne{AGMIMG_m}if
+ AGMIMG_y 0 ne{AGMIMG_y}if
+ AGMIMG_k 0 ne{AGMIMG_k}if
+ setcolor
+ }{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ [/Indexed
+ [
+ /DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]
+ /DeviceCMYK{
+ AGMIMG_k 0 eq{0}if
+ AGMIMG_y 0 eq{0 exch}if
+ AGMIMG_m 0 eq{0 3 1 roll}if
+ AGMIMG_c 0 eq{0 4 1 roll}if
+ }
+ ]
+ 255
+ {
+ 255 div
+ mark exch
+ dup dup dup
+ AGMIMG_k 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_y 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_m 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_c 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ counttomark 1 add -1 roll pop
+ }
+ ]setcolorspace
+ }ifelse
+ imageormask_sys
+ }{
+ write_image_file{
+ currentcmykcolor
+ 0 ne{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ gsave
+ /Black
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Yellow/DeviceGray{}]setcolorspace
+ gsave
+ /Yellow
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Magenta/DeviceGray{}]setcolorspace
+ gsave
+ /Magenta
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Cyan/DeviceGray{}]setcolorspace
+ gsave
+ /Cyan
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ close_image_file
+ }{
+ imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+}def
+/indexed_imageormask
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ currentdict
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
+ /CSA get get_csa_by_name
+ }{
+ /Names get
+ }ifelse
+ overprint_plate not{
+ knockout_unitsq
+ }if
+ }{
+ Indexed_DeviceN{
+ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
+ indexed_image_lev2_sep
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }{
+ AGMCORE_is_cmyk_sep{
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ level2{
+ indexed_image_lev2_sep
+ }{
+ indexed_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ level2{
+ Indexed_DeviceN{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ }{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne
+ {
+ begin
+ currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
+ get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
+ AGMCORE_in_rip_sep and{
+ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
+ setcolorspace
+ }if
+ end
+ }
+ {pop}ifelse
+ }ifelse
+ imageormask
+ Indexed_DeviceN{
+ end
+ }if
+ }{
+ Operator/imagemask eq{
+ imageormask
+ }{
+ indexed_imageormask_lev1
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/indexed_image_lev2_sep
+{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ Indexed_DeviceN not{
+ currentcolorspace
+ dup 1/DeviceGray put
+ dup 3
+ currentcolorspace 2 get 1 add string
+ 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
+ {
+ dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
+ }for
+ put setcolorspace
+ }if
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ end end
+}def
+ /OPIimage
+ {
+ dup type/dicttype ne{
+ 10 dict begin
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /ImageType 1 def
+ /Decode[0 1 def]
+ currentdict
+ end
+ }if
+ dup begin
+ /NComponents 1 cdndf
+ /MultipleDataSources false cdndf
+ /SkipImageProc{false}cdndf
+ /Decode[
+ 0
+ currentcolorspace 0 get/Indexed eq{
+ 2 BitsPerComponent exp 1 sub
+ }{
+ 1
+ }ifelse
+ ]cdndf
+ /Operator/image cdndf
+ end
+ /sep_colorspace_dict AGMCORE_gget null eq{
+ imageormask
+ }{
+ gsave
+ dup begin invert_image_samples end
+ sep_imageormask
+ grestore
+ }ifelse
+ }def
+/cachemask_level2
+{
+ 3 dict begin
+ /LZWEncode filter/WriteFilter xdf
+ /readBuffer 256 string def
+ /ReadFilter
+ currentfile
+ 0(%EndMask)/SubFileDecode filter
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+ def
+ {
+ ReadFilter readBuffer readstring exch
+ WriteFilter exch writestring
+ not{exit}if
+ }loop
+ WriteFilter closefile
+ end
+}def
+/spot_alias
+{
+ /mapto_sep_imageormask
+ {
+ dup type/dicttype ne{
+ 12 dict begin
+ /ImageType 1 def
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /MultipleDataSources false def
+ }{
+ begin
+ }ifelse
+ /Decode[/customcolor_tint AGMCORE_gget 0]def
+ /Operator/image def
+ /SkipImageProc{false}def
+ currentdict
+ end
+ sep_imageormask
+ }bdf
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_colorAry xddf
+ /customcolor_tint AGMCORE_gget
+ <<
+ /Name AGMIMG_colorAry 4 get
+ /CSA[/DeviceCMYK]
+ /TintMethod/Subtractive
+ /TintProc null
+ /MappedCSA null
+ /NComponents 4
+ /Components[AGMIMG_colorAry aload pop pop]
+ >>
+ setsepcolorspace
+ mapto_sep_imageormask
+ }ndf
+ Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_override false put
+ current_spot_alias{dup 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /customcolor_tint AGMCORE_gget exch setsepcolorspace
+ pop
+ mapto_sep_imageormask
+ true set_spot_alias
+ }{
+ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
+ }ifelse
+ }bdf
+}def
+/snap_to_device
+{
+ 6 dict begin
+ matrix currentmatrix
+ dup 0 get 0 eq 1 index 3 get 0 eq and
+ 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
+ {
+ 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
+ 0 0 transform
+ AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
+ 1 1 transform
+ AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
+ [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
+ }{
+ }ifelse
+ end
+}def
+level2 not{
+ /colorbuf
+ {
+ 0 1 2 index length 1 sub{
+ dup 2 index exch get
+ 255 exch sub
+ 2 index
+ 3 1 roll
+ put
+ }for
+ }def
+ /tint_image_to_color
+ {
+ begin
+ Width Height BitsPerComponent ImageMatrix
+ /DataSource load
+ end
+ Adobe_AGM_Image begin
+ /AGMIMG_mbuf 0 string def
+ /AGMIMG_ybuf 0 string def
+ /AGMIMG_kbuf 0 string def
+ {
+ colorbuf dup length AGMIMG_mbuf length ne
+ {
+ dup length dup dup
+ /AGMIMG_mbuf exch string def
+ /AGMIMG_ybuf exch string def
+ /AGMIMG_kbuf exch string def
+ }if
+ dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
+ }
+ addprocs
+ {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
+ end
+ }def
+ /sep_imageormask_lev1
+ {
+ begin
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {
+ 255 mul round cvi GrayLookup exch get
+ }currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
+ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ currentcolortransfer
+ {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /sep_image_lev1_sep
+ {
+ begin
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ Components aload pop
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ {AGMIMG_c mul 1 exch sub}
+ {AGMIMG_m mul 1 exch sub}
+ {AGMIMG_y mul 1 exch sub}
+ {AGMIMG_k mul 1 exch sub}
+ }{
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
+ }ifelse
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end
+ }def
+ /indexed_imageormask_lev1
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ currentdict
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ end end
+ }def
+ /indexed_image_lev1_sep
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end end
+ }def
+}if
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndProlog
+%%BeginSetup
+Adobe_AGM_Utils begin
+3 3010 Adobe_AGM_Core/ds gx
+Adobe_CoolType_Core/ds get exec
+Adobe_AGM_Image/ds gx
+[/NamespacePush pdfmark_5
+[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
+[{Doc_Metadata} 1011 (% &end XMP packet& %) ReadBypdfmark_5_string
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmp:CreateDate="2011-11-03T06:50:01Z"
+ xmp:CreatorTool="The AcroTeX eDucation Bundle"
+ xmp:ModifyDate="2011-11-03T06:50:02-05:00"
+ pdf:Producer="Acrobat Distiller 10.1.1 (Windows)"
+ pdf:Keywords=""
+ dc:format="application/pdf"
+ xmpMM:DocumentID="uuid:fb6be653-eed8-4581-8e77-7e1cdfa4663c"
+ xmpMM:InstanceID="uuid:3df2f3ff-d278-4854-8bb6-0bb036df4504">
+ <dc:creator>
+ <rdf:Seq>
+ <rdf:li/>
+ </rdf:Seq>
+ </dc:creator>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default"/>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
@@ -7983,374 +7983,374 @@ Adobe_AGM_Image/ds gx
-<?xpacket end='w'?>
-
-
-% &end XMP packet& %
-
-[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
-[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
-[/NamespacePop pdfmark_5
-currentdict Adobe_AGM_Utils eq {end} if
-%%EndSetup
-%%Page: 1 1
-%%EndPageComments
-%%BeginPageSetup
-Adobe_AGM_Utils begin
-Adobe_AGM_Core/ps gx
-Adobe_AGM_Core/capture_mysetup gx
-Adobe_AGM_Utils/capture_cpd gx
-Adobe_CoolType_Core/ps get exec
-Adobe_AGM_Image/ps gx
-Adobe_AGM_Core/ps gx
-gsave
-/0
-[/DeviceCMYK] /CSA add_res
-grestore
-Adobe_AGM_Core/pt gx
-%%EndPageSetup
-1 -1 scale 0 -240 translate
-pgsv
-[1 0 0 1 0 0 ]ct
-gsave
-np
-gsave
-0 0 mo
-0 240 li
-320 240 li
-320 0 li
-cp
-clp
-240 lw
-0 lc
-0 lj
-10 ml
-[] 0 dsh
-false sadj
-0 120 mo
-320 120 li
-false sop
-.0208743 .0532235 .315618 0 cmyk
-@
-0 .993988 1 0 cmyk
-%ADOBeginSubsetFont: HIBBAA+AGaramond-Bold Initial
-%ADOt1write: (1.0.24)
-13 dict dup begin
-/FontType 1 def
-/FontName /HIBBAA+AGaramond-Bold def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1989, 1992, 1996 Adobe Systems Incorporated. All Rights Reserved.Adobe Garamond is a trademark of Adobe Systems Incorporated.) def
-/Weight (Bold) def
-/ItalicAngle 0 def
-/BaseFontName (AGaramond-Bold) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 65 /A put
-dup 69 /E put
-dup 84 /T put
-dup 88 /X put
-dup 99 /c put
-dup 111 /o put
-dup 114 /r put
-def
-/UniqueID 42792 def
-/FontBBox {-158 -269 1147 862} def
-end
-systemdict begin
-dup /Private
-14 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-16 -0 660 676 400 414 626 640 715 715] def
-/OtherBlues [240 247 -269 -255] def
-/FamilyBlues [-16 -0 660 676 394 408 626 640 715 715] def
-/BlueScale 0.0479583 def
-/StdHW [53] def
-/StdVW [130] def
-/StemSnapV [130 143] def
-/ForceBold true def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-8 dict dup begin
-/A <1C60D8A8C9B6655377F55DD3C734EE632665B298A6B78FF364EB5A19E433
-08A23641367E58C1ED142CFAD28A8B24C3FAB860388EDF4D1D6AA7F74C5DE3A0
-888018D277BEE8A9EAD59CCC84A313F61EE84C049058C0D0F23B177D09CEF16E
-2A16C69D2AEE1C70629AA291E2EC488825097BC72246693EC07CBD9F7A8783A6
-AF25AC6C6E2921803B133E26A26243B799379830A32B100FCB9B5974B13646B5
-223309EF30719C34A914EE7088D846FBE557000602D14CEF3692F404D0A66FA7
-7C0960553B99E6D4F074C95163875A3E9EAEB4EC0B93A0AA9A1BBE8F75A5EC6A
-A1B7BE29A1D0131F9572A486F2E0939334510D5917C43E07017DBB869F097AB9
-0104AE623A1D6E8448698F4EB22B491858147D69FD3BEF97B03A51EBAE37211D
-A62412616035DF21CA79F13C4F> |-
-/E <1C60D8A8C9B7CA64569D6A554FC57A2252A212C54D2F4CFD4AC48B54D8E1
-97DEAC114F9009EDB7565F93927D30B6FE19F6F7110CEE0766730915973BB40C
-77AE01767B3857FBAE74F43C9EB5ABC370AE3D9BAAE7B754866D650A5E2EABBF
-52E5564BE021ECD842F3F8AA8A668879737073E7E4AE609904CDE52278D0F09F
-E0E1FA9B98CD7045D0B2DF4C2F40D21B83F632792B86F3FD8B74797BA2479666
-14E3851D7CA7975AA6044DD8E50887A93DC208E42A561BB017BF220C8B677DBC
-A493268C464114A8CF129F89CF49FC0D9AE589DBC1A487BA33A8C26122429C67
-A072745A2A5167263E622F4E31D66420AA3C6AF19607F1652C431B9D91D25D34
-B7D398F287695FB56B7FD11AB426A6AE8D48B4D5AB6F3385E4EACB7C08A6EF09
-003014054D91577E7A767EAB382B0CD13CCF215A7E9D19A12AB10ACA843CD86C
-73AE10849BDF7978B8A44D5BD55C072F4B17737EF77F7588BD56BBD12A7BA079
-356EC80E14710C07BADFC2B23113A601816DF27CEF158874424DCD286CA60D66
-101E64698A404D3710DB3FF896DBF059F3B41116C70B4151BC2748B867D41F4F
-62AC0D3342733FB7EDD1BA7082F71F259A3655D39CA7E566D01B92094F796675
-D2AE9351D2189B54E4895D3A416A103852A83E9528D566E406> |-
-/T <1C60D8A8C9B678BD6630C7CB9DA0680A4E9A4E39DE7AB4B750EDAE6D6462
-2BE32A2509D2FE4EE31BE1224D225E6D5B6A57994641D25492B58AC4F8EBCC9A
-248E791AC55DFACB8230237E6AE81A0D200DDD50DA269B2B68B9AFD5BCA2E853
-43EE57E634C8F9293D0C392F9A600AE129D99FFB30DBC6F0468BD8781A33FE59
-25C1C60AE24A71133F9AFD5CEBEDC73CDAAEDD68AB74347B473E5769B7BB9FC5
-849E21A442572167DA53FCC55853698BA6C3479D244260D7AE15819FDD172C79
-6393F57AF01BDC7EF8F2EF895654869D43A9C2903AE2F363AF1D2D8EDBF358C3
-1816210ED18AB4741193BFD05108D413FEDB7387EBE832A605A583B1> |-
-/X <1C60D8A8C9B64C38AD99E8223C0B9A93D821D7A7EC037F50529290949BF1
-D40520646BE75AC36DDDE2799793545853190D8B3CF8A886D21E673C29585216
-9853B08D7DE38F77E554BDC1C115E7A7A28A2C3B73B2896283F45F29E54C1936
-8EF2B5153DEC202D0D7A1B3AA0FCC9368FAE5F6340D642623C05DBA81CF96F21
-0350D7AE6976B7B259661BA3224C12E1E041B17E91DBEF6061165FB76A0EF910
-BCAA01839CF96B4DAA0537B3139F3DCC4E27292979BD393F4AEAD0E87C134175
-95AEB8D77580D2EB9734C1545E3777802E2DD604B644333DFF5E3E45C0E9699A
-28456803232177C4AD32CD74A7C3ED88AF964528A6481A29D747C0A1F0AEF7BD
-6224B61D4998C59B1DAF6CE2F7B0CC11CCAA2CB3F0CBD5C4BDF2C6A7757C32C1
-5ED58490B81133E29403BA1D1A4143E54E1DBB070424226C887811BF763F3029
-0A171F9EC3CC19FF8C726DBED83C8D9F47F876D9609E47DB89F2AC7075F4F452
-E5151235DC29F8C4EFD41C0DF74854AD15FDF0EA46A58AD037FD4DEA6CB0932A
-82E552EEF87777D36C300401D8708F690FB8D413B3BE48D62B94AB90372F367A
-30EBCB47B813314E64E5D0730724DDCA08C83BDD1D7993A1669A5212035C> |-
-/c <1C60D8A8C9B71B403A818C3DF4826E1F45CF4EECE6D7D5AFE3BA0007DE7F
-590734D8CA8997F38C8376C5732929B352E785C51A99B8BA68412FAF281BAB53
-2A18189AEC120AC2F0D76432FB4DA510C10CA9BC537342C3EFED625E4A8313F4
-5AB64917206116EB275D6F> |-
-/o <1C60D8A8C9B7B71AC6E947C0F92A6892BA71854D190FDE2F840A4F9C319C
-61A64E30AEAFF817D1D81C7E802E4C28E67A00727F4B13EFC195011A8A709D78
-5C15ACAB3938932F09CF329C9A687AC2902EB3B126C2C4E27EEA> |-
-/r <1C60D8A8C9B728C5DB8274F71B9523FEA7BE2412DC50C4BC77147040DF6F
-18B5387CC9A3C04A0DC1E33CA81D41BDF8CA9E85570DA0B8D95099E92636EEF5
-F33A867301F8B8627F52D835EA1A457BF5C9E5C19BBE664ECCA543EA5805A1FD
-2368F67B106CF0B2AE65AF7DDB69A845EE8812A9760CFDF2EEF319FE4E1BCCD1
-0337EBEC0AD8229B09BC80D059F20B7E3CC9404B13C454CCC7618F6EF3F49242
-220284FD980A9D77A79D6354D07FD59B656047389F371C1B68C3FC4BE3D172D3
-FD90B9577E2F7241B00EE02DA2CEDDE6D69701377D75CBEF> |-
-/.notdef <1C60D8A8C9B8666C32> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/WJIGXI+AGaramond-Bold /HIBBAA+AGaramond-Bold findfont ct_VMDictPut
-/WJIGXI+AGaramond-Bold*1
-[65{/.notdef}rp /A 3{/.notdef}rp /E 14{/.notdef}rp /T 3{/.notdef}rp /X
-10{/.notdef}rp /c 11{/.notdef}rp /o 2{/.notdef}rp /r 141{/.notdef}rp]
-WJIGXI+AGaramond-Bold nf
-WJIGXI+AGaramond-Bold*1 [30 0 0 -30 0 0 ]msf
-108.791 94.4121 mo
-(AcroT)
-[18.5398 12.48 10.9501 10.3862 0 ]xsh
-176.48 100.457 mo
-(E)sh
-191.258 94.4121 mo
-(X)sh
-.883665 .769161 0 0 cmyk
-%ADOBeginSubsetFont: HIBBAA+AGaramond-Bold AddGlyphs
-%ADOt1write: (1.0.24)
-systemdict begin
-WJIGXI+AGaramond-Bold dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/M <1C60D8A8C9B5B2D72C441C47625DD9489BCE8C3AF83923E9405F62D93769
-ECD093B12C0592942BE8572D618528A57F2259274891CBB867E53BEC84A57D79
-C6188D39BA2F6A0782290F053EB648428C5554507C4121F12615048E6F735268
-92884B20A9613E8598D7448668132761868D20D4DE9F85FDA12CF8CB49949D99
-264D87CC19AC01C287263690C3F099D820BD8951CD9F27B106595EF7DF4E67F6
-4A7B6369ECB807722CA1A2844EE2F95CC0DE8C044C080374DDAD58335BE32FBC
-5DFA1C934133F8088BE63A4949390751041D8D3B3BA2019F147DC8ED77795A9F
-D9CC3813B1F8B314BCA157D1D855EFFF3ABA618D8DAE6D74D305A8A56E40AF14
-75CCF02924E30CDF418DCCC2C031F3216BCC6466DD3F03DD29585C4E486B901F
-A514F9ED935D634595E7E9B2A32BAC75FFE61F28D7CC2EB06A9EB935F807CC4A
-286F20AD8DD53A34E07990E46A47A82494426A6B4C52F465D6DF48C46EB96531
-1BD94835401C5B464E6E61A455E80B264DFDD68D33EAA4332D53C0364042D21B
-56679C12A2EE9A9DD940725DD903776677ED3C41596B6035ABD37FF9FBCD557B
-777E3301EBE129F869125874087F58CCD97FC6E3267E76847FA70518CB80A338
-5FB77FF707EF8907414DF09B931B507ACE73BA027511F1606EA11EFCB5FED054
-247BC98D8284B880DAFD7746> |-
-/e <1C60D8A8C9B7171E0E8A38F06EFB5650A378BD33F88451C83C722AF24588
-2E39BB877C5ED5AAB96BB4371C80A25530DA3017C22D46EE85E79EC4D12711A4
-31A95533FFCA59766087C1ABD510709349A5E354AFC1CB8AF80B14E0953EC9C7
-DAD2D34949C1A71787B530C6EA79398AD4C7C76CB7A2FA6ACA7207AC89> |-
-/i <1C60D8A8C9B84C670D1B82727EF32637044703D1099AB39E10C336B4FB6B
-AE6E6C86CFA77FEA15789E8ABE1323397171E81B9AFE910942F8BEC5B9AD77C2
-B4F4AC6E6D5E59A5E71BAC69620C645C28351A65D4626FF9CF83007A77192826
-7D04A528F682478B3394442D67F1FB0F4BD4D8A10DF45D96156A19EC352A7EFF
-0C127890596C94B718F54D67B3C2527EE581F606C8A974A1338F97880BBF3456
-087F6DD698DE01FB2899732F09AB79370618C9E9A4431028FA8012F1ACB4ECFD
-68FD09947B97730C8862E65C2E9F2B796E16FF6F112A180855EFD698164A45BF
-F6> |-
-/s <1C60D8A8C9B804561F5DD3D65787803A49ED94AD756C5320DBB1C45D44E6
-DAE52B01520D6A772DBD8CE37481135539978FC7833344DAF335171BC6C7A25C
-28B13496430ECE1F605C92313904F486926EB12C8B0D2501D9186948AA902B5B
-2DD3529351386DC695F74232B5D3F822851E757C3B882B230ED6D205A4814FBF
-CBE0622C17EDD89B4264> |-
-/v <1C60D8A8C9B772792518EA66DBDA24A675D704332747B943231A733087BC
-67E4F3D170B84D0273500A528C1638714FFADB5D1FF8E8DACFE0DE83DC65B2B0
-245B19BA605B9239B82AFB6C43560C2C0EB51B0DD2A2DEFA7F76F2F4CDAAD86A
-05C5886A355AAD0DA211972DCEDF5D99FA1E5E53202B3F8C01F2CF49F98B816C
-21A0FA6296611144A5BA28A27EE65807824C9AF98D365D136741DBFE43D32EFF
-5A48A203063CDA130A0AAAD0C9D32E687006A31E5DB136BDCD64743CB24B51C3
-E885C7ECEC576D8B9318A7A73FDB57477919C80A46DB1AF26314590B5428D31E
-9943C7AA37E6B8D60A91DEB839EB2B2B03D843> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-WJIGXI+AGaramond-Bold /Encoding get
-dup 77 /M put
-dup 101 /e put
-dup 105 /i put
-dup 115 /s put
-dup 118 /v put
-pop
-%ADOEndSubsetFont
-/WJIGXI+AGaramond-Bold*1
-[65{/.notdef}rp /A 3{/.notdef}rp /E 7{/.notdef}rp /M 6{/.notdef}rp /T
-3{/.notdef}rp /X 10{/.notdef}rp /c /.notdef /e 3{/.notdef}rp /i
-5{/.notdef}rp /o 2{/.notdef}rp /r /s 2{/.notdef}rp /v 137{/.notdef}rp]
-WJIGXI+AGaramond-Bold nf
-WJIGXI+AGaramond-Bold*1 [30 0 0 -30 0 0 ]msf
-116.453 133.298 mo
-(Movies)
-[26.5201 14.9402 13.71 8.57986 12.5999 0 ]xsh
-/0
-<<
-/Name (Black)
-/1
-[/DeviceCMYK] /CSA add_res
-/CSA /1 get_csa_by_name
-/MappedCSA /1 /CSA get_res
-/TintMethod /Subtractive
-/TintProc null
-/NComponents 4
-/Components [ 0 0 0 1 ]
->>
-/CSD add_res
-1 /0 /CSD get_res sepcs
-1 sep
-%ADOBeginSubsetFont: HIBBAA+AGaramond-Bold AddGlyphs
-%ADOt1write: (1.0.24)
-systemdict begin
-WJIGXI+AGaramond-Bold dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/period <1C60D8A8C9B8666C4126EF39EAAD870163BC6E0A685D8DFB65EC8E1
-4751696A1FA1256DD2B28A8D4B11B> |-
-/D <1C60D8A8C9B6CC61ECFA600FD7EAC88B684706E11436B4F56500C772BF7D
-B6E5DA7D261672C80EC451495133D15DB5ED65DB077EF24A257F68C944D48E62
-05CDF6A4EBB3CC0BFB661CC960477F5973544BB9DA066EAA4703C8060D715472
-1F19CB93FF81726E1E797FC341ECD27E70BADF10A8E3E1D161091C04C08FCDA3
-D4C0FB7789D6BC4743587ED10033C808B48148707A6366E2B903557C92042E80
-E78C3550ECA75896A49868F19B4D244695974AA8D7D4CFBAEEAE973276A3F939
-6C908F34376C3FD2A2A0C8BC5083A7DDEE9CA69251C65636F1FA399348432945
-EE0431DBAE748D505732207F2A2995AE193606F03ACC829B7E56BD51E00F62> |-
-/P <1C60D8A8C9B7C2FB443727177F0B040011071E8BE2EF927647B2219C190D
-5C19CACC673C693F4C41C347BFC1CEC04647E5B5731BF15EE115DB8B58185D77
-EC501ABE71C0952ABB68B5604C3AAA01BEDD3421ABDC547FD8F7D633A0DDE399
-5AA04D999D01E52045ADE3FE7415F39D784308A23F6BFB1A2709584C8C15943D
-B8B7FB4305694C2B50A54C1C794DD0F2294BF454B4A0AB2F5CCC517DF5D75D76
-CBDAE949D802C0B204D2FBAF538B31E8CCC2B915817D01206A1BA9476FD0F72E> |-
-/S <1C60D8A8C9B7A157DDD65E2D6E12EC4D29CCC558B9108AFEF527FF151C11
-542D754791DEC089770797EA43AA0A17389D01F94E62265ED32A176828C3AD24
-39C25706F52598126A3BC30823B311DF27B862E870829EF46A3FFB0ABA414799
-0D10096650D3EA773866ECD8F321BD1427A8CD97D24C672F5F92AD13BAEAAD86
-68326C737AFBBFE93FA770F72DA1BC158949F9BB71F78143> |-
-/t <1C60D8A8C9B8293CC14C0716D97838C5907536CD72965E4133CE6BF69240
-E0F97FC614D5C145665C1B21D826CD95C7C948414B9413D983721B772AEA451C
-8BA24085FF9D67767DF832359F8123BCC3FC2B63A4D7673B9897192027F472C7
-901F495435D5885A25B1D31CA436A82DA6A13540D8F86D370E344C160A3005EC> |-
-/y <1C60D8A8C9B746F4A78DF719F6FD142DD510DF52F278FDB6983C74AA48BF
-E99EE4434D535143C45FAAB4EEFDD7BAECF96E2CDA41D185914A27256BE3F0AE
-4DE4A18F4F8151460AB6DC22A8D90020EA0D7097F7A95AF9AFCD371CD60808C1
-D91F2B06DF675B1D19ECAEE31DADBA173CFDECD6F13866DF108E9E5962DC0453
-1E7FB0C3A161BBDE108FCCAD1E593EAAEC4132E478657B076732A872E7F674ED
-99109BA6EBEB2532EAF21584084662AA3C0921F21C49F28D10808B0B5D4197A9
-DF6AC2AA5AD7AC1A4EB1F9464D0C631411725A8CC820156C222C2446757EA1B8
-7D3C5A647BA188F49DFC46B9ECB8242AA458AC0397DBA766A5F50F9EB24CB02A
-74A22A692DC5F4FD13B6DD8B4F91DF0836178BBA902268E33800DF340844607A
-ECAF7B78237118> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-WJIGXI+AGaramond-Bold /Encoding get
-dup 46 /period put
-dup 68 /D put
-dup 80 /P put
-dup 83 /S put
-dup 116 /t put
-dup 121 /y put
-pop
-%ADOEndSubsetFont
-/WJIGXI+AGaramond-Bold*1
-[46{/.notdef}rp /period 18{/.notdef}rp /A 2{/.notdef}rp /D /E 7{/.notdef}rp
-/M 2{/.notdef}rp /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X
-10{/.notdef}rp /c /.notdef /e 3{/.notdef}rp /i 5{/.notdef}rp /o
-2{/.notdef}rp /r /s /t /.notdef /v 2{/.notdef}rp /y
-134{/.notdef}rp]
-WJIGXI+AGaramond-Bold nf
-WJIGXI+AGaramond-Bold*1 [19.9253 0 0 -19.9253 0 0 ]msf
-115.836 223.024 mo
-(D.P.Story)
-[15.8008 10.361 8.38852 10.361 9.60394 6.43582 10.2816 7.75099 0 ]xsh
-grestore
-grestore
-pgrs
-%%PageTrailer
-[
-[/CSA [/0 /1 ]]
-[/CSD [/0 ]]
-] del_res
-/WJIGXI+AGaramond-Bold*1 uf
-/WJIGXI+AGaramond-Bold uf
-/HIBBAA+AGaramond-Bold uf
-Adobe_AGM_Image/pt gx
-Adobe_CoolType_Core/pt get exec
-Adobe_AGM_Core/restore_mysetup gx
-Adobe_AGM_Core/pt gx
-currentdict Adobe_AGM_Utils eq {end} if
-%%Trailer
-Adobe_AGM_Utils begin
-[/EMC pdfmark_5
-currentdict Adobe_AGM_Utils eq {end} if
-Adobe_AGM_Image/dt get exec
-Adobe_CoolType_Core/dt get exec
-Adobe_AGM_Core/dt get exec
-%%Pages: 1
-%%DocumentNeededResources:
-%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
-%%+ procset Adobe_CoolType_Utility_T42 1.0 0
-%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
-%%+ procset Adobe_CoolType_Core 2.31 0
-%%+ procset Adobe_AGM_Core 2.0 0
-%%+ procset Adobe_AGM_Utils 1.0 0
-%%DocumentNeededFeatures:
-%%DocumentSuppliedFeatures:
-%%DocumentCustomColors:
-%%CMYKCustomColor:
-%%RGBCustomColor:
-%%EOF
+<?xpacket end='w'?>
+
+
+% &end XMP packet& %
+
+[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
+[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
+[/NamespacePop pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndSetup
+%%Page: 1 1
+%%EndPageComments
+%%BeginPageSetup
+Adobe_AGM_Utils begin
+Adobe_AGM_Core/ps gx
+Adobe_AGM_Core/capture_mysetup gx
+Adobe_AGM_Utils/capture_cpd gx
+Adobe_CoolType_Core/ps get exec
+Adobe_AGM_Image/ps gx
+Adobe_AGM_Core/ps gx
+gsave
+/0
+[/DeviceCMYK] /CSA add_res
+grestore
+Adobe_AGM_Core/pt gx
+%%EndPageSetup
+1 -1 scale 0 -240 translate
+pgsv
+[1 0 0 1 0 0 ]ct
+gsave
+np
+gsave
+0 0 mo
+0 240 li
+320 240 li
+320 0 li
+cp
+clp
+240 lw
+0 lc
+0 lj
+10 ml
+[] 0 dsh
+false sadj
+0 120 mo
+320 120 li
+false sop
+.0208743 .0532235 .315618 0 cmyk
+@
+0 .993988 1 0 cmyk
+%ADOBeginSubsetFont: HIBBAA+AGaramond-Bold Initial
+%ADOt1write: (1.0.24)
+13 dict dup begin
+/FontType 1 def
+/FontName /HIBBAA+AGaramond-Bold def
+/FontInfo 8 dict dup begin
+/Notice (Copyright (c) 1989, 1992, 1996 Adobe Systems Incorporated. All Rights Reserved.Adobe Garamond is a trademark of Adobe Systems Incorporated.) def
+/Weight (Bold) def
+/ItalicAngle 0 def
+/BaseFontName (AGaramond-Bold) def
+/WasEmbedded true def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 65 /A put
+dup 69 /E put
+dup 84 /T put
+dup 88 /X put
+dup 99 /c put
+dup 111 /o put
+dup 114 /r put
+def
+/UniqueID 42792 def
+/FontBBox {-158 -269 1147 862} def
+end
+systemdict begin
+dup /Private
+14 dict dup begin
+/|- {def} def
+/| {put} def
+/BlueValues [-16 -0 660 676 400 414 626 640 715 715] def
+/OtherBlues [240 247 -269 -255] def
+/FamilyBlues [-16 -0 660 676 394 408 626 640 715 715] def
+/BlueScale 0.0479583 def
+/StdHW [53] def
+/StdVW [130] def
+/StemSnapV [130 143] def
+/ForceBold true def
+/password 5839 def
+/MinFeature {16 16} def
+/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
+systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
+/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
+/Subrs 5 array
+dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
+dup 1 <1C60D8A8C9C3D06D9E> |
+dup 2 <1C60D8A8C9C202D79A> |
+dup 3 <1C60D8A849> |
+dup 4 <1C60D8A8CC3674F41144B13B77> |
+def
+put
+dup /CharStrings
+8 dict dup begin
+/A <1C60D8A8C9B6655377F55DD3C734EE632665B298A6B78FF364EB5A19E433
+08A23641367E58C1ED142CFAD28A8B24C3FAB860388EDF4D1D6AA7F74C5DE3A0
+888018D277BEE8A9EAD59CCC84A313F61EE84C049058C0D0F23B177D09CEF16E
+2A16C69D2AEE1C70629AA291E2EC488825097BC72246693EC07CBD9F7A8783A6
+AF25AC6C6E2921803B133E26A26243B799379830A32B100FCB9B5974B13646B5
+223309EF30719C34A914EE7088D846FBE557000602D14CEF3692F404D0A66FA7
+7C0960553B99E6D4F074C95163875A3E9EAEB4EC0B93A0AA9A1BBE8F75A5EC6A
+A1B7BE29A1D0131F9572A486F2E0939334510D5917C43E07017DBB869F097AB9
+0104AE623A1D6E8448698F4EB22B491858147D69FD3BEF97B03A51EBAE37211D
+A62412616035DF21CA79F13C4F> |-
+/E <1C60D8A8C9B7CA64569D6A554FC57A2252A212C54D2F4CFD4AC48B54D8E1
+97DEAC114F9009EDB7565F93927D30B6FE19F6F7110CEE0766730915973BB40C
+77AE01767B3857FBAE74F43C9EB5ABC370AE3D9BAAE7B754866D650A5E2EABBF
+52E5564BE021ECD842F3F8AA8A668879737073E7E4AE609904CDE52278D0F09F
+E0E1FA9B98CD7045D0B2DF4C2F40D21B83F632792B86F3FD8B74797BA2479666
+14E3851D7CA7975AA6044DD8E50887A93DC208E42A561BB017BF220C8B677DBC
+A493268C464114A8CF129F89CF49FC0D9AE589DBC1A487BA33A8C26122429C67
+A072745A2A5167263E622F4E31D66420AA3C6AF19607F1652C431B9D91D25D34
+B7D398F287695FB56B7FD11AB426A6AE8D48B4D5AB6F3385E4EACB7C08A6EF09
+003014054D91577E7A767EAB382B0CD13CCF215A7E9D19A12AB10ACA843CD86C
+73AE10849BDF7978B8A44D5BD55C072F4B17737EF77F7588BD56BBD12A7BA079
+356EC80E14710C07BADFC2B23113A601816DF27CEF158874424DCD286CA60D66
+101E64698A404D3710DB3FF896DBF059F3B41116C70B4151BC2748B867D41F4F
+62AC0D3342733FB7EDD1BA7082F71F259A3655D39CA7E566D01B92094F796675
+D2AE9351D2189B54E4895D3A416A103852A83E9528D566E406> |-
+/T <1C60D8A8C9B678BD6630C7CB9DA0680A4E9A4E39DE7AB4B750EDAE6D6462
+2BE32A2509D2FE4EE31BE1224D225E6D5B6A57994641D25492B58AC4F8EBCC9A
+248E791AC55DFACB8230237E6AE81A0D200DDD50DA269B2B68B9AFD5BCA2E853
+43EE57E634C8F9293D0C392F9A600AE129D99FFB30DBC6F0468BD8781A33FE59
+25C1C60AE24A71133F9AFD5CEBEDC73CDAAEDD68AB74347B473E5769B7BB9FC5
+849E21A442572167DA53FCC55853698BA6C3479D244260D7AE15819FDD172C79
+6393F57AF01BDC7EF8F2EF895654869D43A9C2903AE2F363AF1D2D8EDBF358C3
+1816210ED18AB4741193BFD05108D413FEDB7387EBE832A605A583B1> |-
+/X <1C60D8A8C9B64C38AD99E8223C0B9A93D821D7A7EC037F50529290949BF1
+D40520646BE75AC36DDDE2799793545853190D8B3CF8A886D21E673C29585216
+9853B08D7DE38F77E554BDC1C115E7A7A28A2C3B73B2896283F45F29E54C1936
+8EF2B5153DEC202D0D7A1B3AA0FCC9368FAE5F6340D642623C05DBA81CF96F21
+0350D7AE6976B7B259661BA3224C12E1E041B17E91DBEF6061165FB76A0EF910
+BCAA01839CF96B4DAA0537B3139F3DCC4E27292979BD393F4AEAD0E87C134175
+95AEB8D77580D2EB9734C1545E3777802E2DD604B644333DFF5E3E45C0E9699A
+28456803232177C4AD32CD74A7C3ED88AF964528A6481A29D747C0A1F0AEF7BD
+6224B61D4998C59B1DAF6CE2F7B0CC11CCAA2CB3F0CBD5C4BDF2C6A7757C32C1
+5ED58490B81133E29403BA1D1A4143E54E1DBB070424226C887811BF763F3029
+0A171F9EC3CC19FF8C726DBED83C8D9F47F876D9609E47DB89F2AC7075F4F452
+E5151235DC29F8C4EFD41C0DF74854AD15FDF0EA46A58AD037FD4DEA6CB0932A
+82E552EEF87777D36C300401D8708F690FB8D413B3BE48D62B94AB90372F367A
+30EBCB47B813314E64E5D0730724DDCA08C83BDD1D7993A1669A5212035C> |-
+/c <1C60D8A8C9B71B403A818C3DF4826E1F45CF4EECE6D7D5AFE3BA0007DE7F
+590734D8CA8997F38C8376C5732929B352E785C51A99B8BA68412FAF281BAB53
+2A18189AEC120AC2F0D76432FB4DA510C10CA9BC537342C3EFED625E4A8313F4
+5AB64917206116EB275D6F> |-
+/o <1C60D8A8C9B7B71AC6E947C0F92A6892BA71854D190FDE2F840A4F9C319C
+61A64E30AEAFF817D1D81C7E802E4C28E67A00727F4B13EFC195011A8A709D78
+5C15ACAB3938932F09CF329C9A687AC2902EB3B126C2C4E27EEA> |-
+/r <1C60D8A8C9B728C5DB8274F71B9523FEA7BE2412DC50C4BC77147040DF6F
+18B5387CC9A3C04A0DC1E33CA81D41BDF8CA9E85570DA0B8D95099E92636EEF5
+F33A867301F8B8627F52D835EA1A457BF5C9E5C19BBE664ECCA543EA5805A1FD
+2368F67B106CF0B2AE65AF7DDB69A845EE8812A9760CFDF2EEF319FE4E1BCCD1
+0337EBEC0AD8229B09BC80D059F20B7E3CC9404B13C454CCC7618F6EF3F49242
+220284FD980A9D77A79D6354D07FD59B656047389F371C1B68C3FC4BE3D172D3
+FD90B9577E2F7241B00EE02DA2CEDDE6D69701377D75CBEF> |-
+/.notdef <1C60D8A8C9B8666C32> |-
+end put
+end
+dup /FontName get exch definefont pop
+end
+%ADOEndSubsetFont
+/WJIGXI+AGaramond-Bold /HIBBAA+AGaramond-Bold findfont ct_VMDictPut
+/WJIGXI+AGaramond-Bold*1
+[65{/.notdef}rp /A 3{/.notdef}rp /E 14{/.notdef}rp /T 3{/.notdef}rp /X
+10{/.notdef}rp /c 11{/.notdef}rp /o 2{/.notdef}rp /r 141{/.notdef}rp]
+WJIGXI+AGaramond-Bold nf
+WJIGXI+AGaramond-Bold*1 [30 0 0 -30 0 0 ]msf
+108.791 94.4121 mo
+(AcroT)
+[18.5398 12.48 10.9501 10.3862 0 ]xsh
+176.48 100.457 mo
+(E)sh
+191.258 94.4121 mo
+(X)sh
+.883665 .769161 0 0 cmyk
+%ADOBeginSubsetFont: HIBBAA+AGaramond-Bold AddGlyphs
+%ADOt1write: (1.0.24)
+systemdict begin
+WJIGXI+AGaramond-Bold dup
+/Private get dup rcheck
+{begin true}{pop false}ifelse exch
+/CharStrings get begin
+systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
+/M <1C60D8A8C9B5B2D72C441C47625DD9489BCE8C3AF83923E9405F62D93769
+ECD093B12C0592942BE8572D618528A57F2259274891CBB867E53BEC84A57D79
+C6188D39BA2F6A0782290F053EB648428C5554507C4121F12615048E6F735268
+92884B20A9613E8598D7448668132761868D20D4DE9F85FDA12CF8CB49949D99
+264D87CC19AC01C287263690C3F099D820BD8951CD9F27B106595EF7DF4E67F6
+4A7B6369ECB807722CA1A2844EE2F95CC0DE8C044C080374DDAD58335BE32FBC
+5DFA1C934133F8088BE63A4949390751041D8D3B3BA2019F147DC8ED77795A9F
+D9CC3813B1F8B314BCA157D1D855EFFF3ABA618D8DAE6D74D305A8A56E40AF14
+75CCF02924E30CDF418DCCC2C031F3216BCC6466DD3F03DD29585C4E486B901F
+A514F9ED935D634595E7E9B2A32BAC75FFE61F28D7CC2EB06A9EB935F807CC4A
+286F20AD8DD53A34E07990E46A47A82494426A6B4C52F465D6DF48C46EB96531
+1BD94835401C5B464E6E61A455E80B264DFDD68D33EAA4332D53C0364042D21B
+56679C12A2EE9A9DD940725DD903776677ED3C41596B6035ABD37FF9FBCD557B
+777E3301EBE129F869125874087F58CCD97FC6E3267E76847FA70518CB80A338
+5FB77FF707EF8907414DF09B931B507ACE73BA027511F1606EA11EFCB5FED054
+247BC98D8284B880DAFD7746> |-
+/e <1C60D8A8C9B7171E0E8A38F06EFB5650A378BD33F88451C83C722AF24588
+2E39BB877C5ED5AAB96BB4371C80A25530DA3017C22D46EE85E79EC4D12711A4
+31A95533FFCA59766087C1ABD510709349A5E354AFC1CB8AF80B14E0953EC9C7
+DAD2D34949C1A71787B530C6EA79398AD4C7C76CB7A2FA6ACA7207AC89> |-
+/i <1C60D8A8C9B84C670D1B82727EF32637044703D1099AB39E10C336B4FB6B
+AE6E6C86CFA77FEA15789E8ABE1323397171E81B9AFE910942F8BEC5B9AD77C2
+B4F4AC6E6D5E59A5E71BAC69620C645C28351A65D4626FF9CF83007A77192826
+7D04A528F682478B3394442D67F1FB0F4BD4D8A10DF45D96156A19EC352A7EFF
+0C127890596C94B718F54D67B3C2527EE581F606C8A974A1338F97880BBF3456
+087F6DD698DE01FB2899732F09AB79370618C9E9A4431028FA8012F1ACB4ECFD
+68FD09947B97730C8862E65C2E9F2B796E16FF6F112A180855EFD698164A45BF
+F6> |-
+/s <1C60D8A8C9B804561F5DD3D65787803A49ED94AD756C5320DBB1C45D44E6
+DAE52B01520D6A772DBD8CE37481135539978FC7833344DAF335171BC6C7A25C
+28B13496430ECE1F605C92313904F486926EB12C8B0D2501D9186948AA902B5B
+2DD3529351386DC695F74232B5D3F822851E757C3B882B230ED6D205A4814FBF
+CBE0622C17EDD89B4264> |-
+/v <1C60D8A8C9B772792518EA66DBDA24A675D704332747B943231A733087BC
+67E4F3D170B84D0273500A528C1638714FFADB5D1FF8E8DACFE0DE83DC65B2B0
+245B19BA605B9239B82AFB6C43560C2C0EB51B0DD2A2DEFA7F76F2F4CDAAD86A
+05C5886A355AAD0DA211972DCEDF5D99FA1E5E53202B3F8C01F2CF49F98B816C
+21A0FA6296611144A5BA28A27EE65807824C9AF98D365D136741DBFE43D32EFF
+5A48A203063CDA130A0AAAD0C9D32E687006A31E5DB136BDCD64743CB24B51C3
+E885C7ECEC576D8B9318A7A73FDB57477919C80A46DB1AF26314590B5428D31E
+9943C7AA37E6B8D60A91DEB839EB2B2B03D843> |-
+systemdict /gcheck known {setglobal} if end {end} if
+end
+WJIGXI+AGaramond-Bold /Encoding get
+dup 77 /M put
+dup 101 /e put
+dup 105 /i put
+dup 115 /s put
+dup 118 /v put
+pop
+%ADOEndSubsetFont
+/WJIGXI+AGaramond-Bold*1
+[65{/.notdef}rp /A 3{/.notdef}rp /E 7{/.notdef}rp /M 6{/.notdef}rp /T
+3{/.notdef}rp /X 10{/.notdef}rp /c /.notdef /e 3{/.notdef}rp /i
+5{/.notdef}rp /o 2{/.notdef}rp /r /s 2{/.notdef}rp /v 137{/.notdef}rp]
+WJIGXI+AGaramond-Bold nf
+WJIGXI+AGaramond-Bold*1 [30 0 0 -30 0 0 ]msf
+116.453 133.298 mo
+(Movies)
+[26.5201 14.9402 13.71 8.57986 12.5999 0 ]xsh
+/0
+<<
+/Name (Black)
+/1
+[/DeviceCMYK] /CSA add_res
+/CSA /1 get_csa_by_name
+/MappedCSA /1 /CSA get_res
+/TintMethod /Subtractive
+/TintProc null
+/NComponents 4
+/Components [ 0 0 0 1 ]
+>>
+/CSD add_res
+1 /0 /CSD get_res sepcs
+1 sep
+%ADOBeginSubsetFont: HIBBAA+AGaramond-Bold AddGlyphs
+%ADOt1write: (1.0.24)
+systemdict begin
+WJIGXI+AGaramond-Bold dup
+/Private get dup rcheck
+{begin true}{pop false}ifelse exch
+/CharStrings get begin
+systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
+/period <1C60D8A8C9B8666C4126EF39EAAD870163BC6E0A685D8DFB65EC8E1
+4751696A1FA1256DD2B28A8D4B11B> |-
+/D <1C60D8A8C9B6CC61ECFA600FD7EAC88B684706E11436B4F56500C772BF7D
+B6E5DA7D261672C80EC451495133D15DB5ED65DB077EF24A257F68C944D48E62
+05CDF6A4EBB3CC0BFB661CC960477F5973544BB9DA066EAA4703C8060D715472
+1F19CB93FF81726E1E797FC341ECD27E70BADF10A8E3E1D161091C04C08FCDA3
+D4C0FB7789D6BC4743587ED10033C808B48148707A6366E2B903557C92042E80
+E78C3550ECA75896A49868F19B4D244695974AA8D7D4CFBAEEAE973276A3F939
+6C908F34376C3FD2A2A0C8BC5083A7DDEE9CA69251C65636F1FA399348432945
+EE0431DBAE748D505732207F2A2995AE193606F03ACC829B7E56BD51E00F62> |-
+/P <1C60D8A8C9B7C2FB443727177F0B040011071E8BE2EF927647B2219C190D
+5C19CACC673C693F4C41C347BFC1CEC04647E5B5731BF15EE115DB8B58185D77
+EC501ABE71C0952ABB68B5604C3AAA01BEDD3421ABDC547FD8F7D633A0DDE399
+5AA04D999D01E52045ADE3FE7415F39D784308A23F6BFB1A2709584C8C15943D
+B8B7FB4305694C2B50A54C1C794DD0F2294BF454B4A0AB2F5CCC517DF5D75D76
+CBDAE949D802C0B204D2FBAF538B31E8CCC2B915817D01206A1BA9476FD0F72E> |-
+/S <1C60D8A8C9B7A157DDD65E2D6E12EC4D29CCC558B9108AFEF527FF151C11
+542D754791DEC089770797EA43AA0A17389D01F94E62265ED32A176828C3AD24
+39C25706F52598126A3BC30823B311DF27B862E870829EF46A3FFB0ABA414799
+0D10096650D3EA773866ECD8F321BD1427A8CD97D24C672F5F92AD13BAEAAD86
+68326C737AFBBFE93FA770F72DA1BC158949F9BB71F78143> |-
+/t <1C60D8A8C9B8293CC14C0716D97838C5907536CD72965E4133CE6BF69240
+E0F97FC614D5C145665C1B21D826CD95C7C948414B9413D983721B772AEA451C
+8BA24085FF9D67767DF832359F8123BCC3FC2B63A4D7673B9897192027F472C7
+901F495435D5885A25B1D31CA436A82DA6A13540D8F86D370E344C160A3005EC> |-
+/y <1C60D8A8C9B746F4A78DF719F6FD142DD510DF52F278FDB6983C74AA48BF
+E99EE4434D535143C45FAAB4EEFDD7BAECF96E2CDA41D185914A27256BE3F0AE
+4DE4A18F4F8151460AB6DC22A8D90020EA0D7097F7A95AF9AFCD371CD60808C1
+D91F2B06DF675B1D19ECAEE31DADBA173CFDECD6F13866DF108E9E5962DC0453
+1E7FB0C3A161BBDE108FCCAD1E593EAAEC4132E478657B076732A872E7F674ED
+99109BA6EBEB2532EAF21584084662AA3C0921F21C49F28D10808B0B5D4197A9
+DF6AC2AA5AD7AC1A4EB1F9464D0C631411725A8CC820156C222C2446757EA1B8
+7D3C5A647BA188F49DFC46B9ECB8242AA458AC0397DBA766A5F50F9EB24CB02A
+74A22A692DC5F4FD13B6DD8B4F91DF0836178BBA902268E33800DF340844607A
+ECAF7B78237118> |-
+systemdict /gcheck known {setglobal} if end {end} if
+end
+WJIGXI+AGaramond-Bold /Encoding get
+dup 46 /period put
+dup 68 /D put
+dup 80 /P put
+dup 83 /S put
+dup 116 /t put
+dup 121 /y put
+pop
+%ADOEndSubsetFont
+/WJIGXI+AGaramond-Bold*1
+[46{/.notdef}rp /period 18{/.notdef}rp /A 2{/.notdef}rp /D /E 7{/.notdef}rp
+/M 2{/.notdef}rp /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X
+10{/.notdef}rp /c /.notdef /e 3{/.notdef}rp /i 5{/.notdef}rp /o
+2{/.notdef}rp /r /s /t /.notdef /v 2{/.notdef}rp /y
+134{/.notdef}rp]
+WJIGXI+AGaramond-Bold nf
+WJIGXI+AGaramond-Bold*1 [19.9253 0 0 -19.9253 0 0 ]msf
+115.836 223.024 mo
+(D.P.Story)
+[15.8008 10.361 8.38852 10.361 9.60394 6.43582 10.2816 7.75099 0 ]xsh
+grestore
+grestore
+pgrs
+%%PageTrailer
+[
+[/CSA [/0 /1 ]]
+[/CSD [/0 ]]
+] del_res
+/WJIGXI+AGaramond-Bold*1 uf
+/WJIGXI+AGaramond-Bold uf
+/HIBBAA+AGaramond-Bold uf
+Adobe_AGM_Image/pt gx
+Adobe_CoolType_Core/pt get exec
+Adobe_AGM_Core/restore_mysetup gx
+Adobe_AGM_Core/pt gx
+currentdict Adobe_AGM_Utils eq {end} if
+%%Trailer
+Adobe_AGM_Utils begin
+[/EMC pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+Adobe_AGM_Image/dt get exec
+Adobe_CoolType_Core/dt get exec
+Adobe_AGM_Core/dt get exec
+%%Pages: 1
+%%DocumentNeededResources:
+%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
+%%+ procset Adobe_CoolType_Utility_T42 1.0 0
+%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%+ procset Adobe_CoolType_Core 2.31 0
+%%+ procset Adobe_AGM_Core 2.0 0
+%%+ procset Adobe_AGM_Utils 1.0 0
+%%DocumentNeededFeatures:
+%%DocumentSuppliedFeatures:
+%%DocumentCustomColors:
+%%CMYKCustomColor:
+%%RGBCustomColor:
+%%EOF
diff --git a/macros/latex/contrib/rmannot/examples/rma/tst_3gp.tex b/macros/latex/contrib/rmannot/examples/rma/tst_3gp.tex
index d5b25312bb..ddecc5191c 100644
--- a/macros/latex/contrib/rmannot/examples/rma/tst_3gp.tex
+++ b/macros/latex/contrib/rmannot/examples/rma/tst_3gp.tex
@@ -29,6 +29,7 @@
\def\AcroTeX{Acro\!\TeX}
+
\newcommand{\myRMFiles}{%
C:/Users/Public/Documents/My TeX Files/%
tex/latex/aeb/aebpro/rmannot/RMfiles}
@@ -42,7 +43,7 @@
\maketitle
\begin{center}
- \rmAnnot[width=.5\linewidth]{176bp}{144bp}{ocean-waves}
+ \rmAnnot[width=.5\linewidth,skin=all]{176bp}{144bp}{ocean-waves}
\end{center}
For information on the 3GP video format, see the \textbf{WikipediA} article
\begin{equation*}
diff --git a/macros/latex/contrib/rmannot/examples/rma/tst_m4v.tex b/macros/latex/contrib/rmannot/examples/rma/tst_m4v.tex
index 25f26a7710..4e3a08abec 100644
--- a/macros/latex/contrib/rmannot/examples/rma/tst_m4v.tex
+++ b/macros/latex/contrib/rmannot/examples/rma/tst_m4v.tex
@@ -36,8 +36,6 @@
\parindent=0pt\parskip6pt\pagestyle{empty}
-\AcroVer[win=64]{Beta}
-
\begin{document}
\maketitle
diff --git a/macros/latex/contrib/rmannot/examples/rma/tst_mov.tex b/macros/latex/contrib/rmannot/examples/rma/tst_mov.tex
index 7a4cdda9a6..658dd5670f 100644
--- a/macros/latex/contrib/rmannot/examples/rma/tst_mov.tex
+++ b/macros/latex/contrib/rmannot/examples/rma/tst_mov.tex
@@ -15,8 +15,6 @@
\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom
\screensize{5in}{5.5in} % height, width
-\AcroVer[win=64]{Beta}
-
\DeclareDocInfo
{
title={The \textsf{rmannot} Package\texorpdfstring{\\[1ex]}{: }H.264 encoded MOV video},
diff --git a/macros/latex/contrib/rmannot/examples/rma/tst_mp4.tex b/macros/latex/contrib/rmannot/examples/rma/tst_mp4.tex
index 9baea2c335..a5d3c1cc01 100644
--- a/macros/latex/contrib/rmannot/examples/rma/tst_mp4.tex
+++ b/macros/latex/contrib/rmannot/examples/rma/tst_mp4.tex
@@ -29,6 +29,9 @@
\def\AcroTeX{Acro\!\TeX}
+%\AcroVer[win=64]{Beta}
+
+
\newcommand{\myRMFiles}{%
C:/Users/Public/Documents/My TeX Files/%
tex/latex/aeb/aebpro/rmannot/RMfiles}
diff --git a/macros/latex/contrib/rmannot/examples/rma/tst_mp4_hidden.tex b/macros/latex/contrib/rmannot/examples/rma/tst_mp4_hidden.tex
index 9f0f459cda..8348ed8b4a 100644
--- a/macros/latex/contrib/rmannot/examples/rma/tst_mp4_hidden.tex
+++ b/macros/latex/contrib/rmannot/examples/rma/tst_mp4_hidden.tex
@@ -9,10 +9,10 @@
]{aeb_pro}
\usepackage{rmannot}
-\usepackage{lipsum}
-
%\previewOn\pmpvOn
+\AcroVer[win=64]{Beta}
+
\margins{.25in}{.5in}{24pt}{.25in} % left,right,top, bottom
\screensize{5in}{5.5in} % height, width
@@ -108,7 +108,7 @@ on the page it is necessary to play some tricks:
\AApageopen{app.focusRect=false;}
\AApageclose{app.focusRect=appFocusRect;}
\AAmouseup{coverMU()}\width{.75\linewidth}]{coverRMA}{320bp}{240bp}
- }%
+ }%
\rmAnnot[invisible,width=.75\linewidth,enabled=onclick,
deactivated=pageclose]{320bp}{240bp}{horse1}%
}%
diff --git a/macros/latex/contrib/rmannot/rmannot.cfg b/macros/latex/contrib/rmannot/rmannot.cfg
index e86bd6ce8f..d501df7a5a 100644
--- a/macros/latex/contrib/rmannot/rmannot.cfg
+++ b/macros/latex/contrib/rmannot/rmannot.cfg
@@ -10,7 +10,8 @@
% Oncomment this next line, but specify the major version of Acrobat you are using
% 9, 10, 11, DC, 2015, Beta (if you are using a Beta version of Acrobat)
%\AcroVer{11}
-\AcroVer{DC}
+%\AcroVer{DC}
+\AcroVer[win=64]{Beta}
\endinput
% If you are using an older computer, you may have to enter the path
% using the \pathToSkins command. \AcrobatVer expands to the argument
diff --git a/macros/latex/contrib/rmannot/rmannot.dtx b/macros/latex/contrib/rmannot/rmannot.dtx
index e33ac22bee..b6fc064693 100644
--- a/macros/latex/contrib/rmannot/rmannot.dtx
+++ b/macros/latex/contrib/rmannot/rmannot.dtx
@@ -2,7 +2,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% rmannot.sty package, %%
-%% Copyright (C) 2008--2020 D. P. Story %%
+%% Copyright (C) 2008--2021 D. P. Story %%
%% dpstory@acrotex.net %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -14,7 +14,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{rmannot}
-%<package> [2020/08/21 v2.2 Rich Media Annotations (dps)]
+%<package> [2021/04/21 v2.2.1 Rich Media Annotations (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
@@ -26,6 +26,9 @@
\InputIfFileExists{aebdocfmt.def}{\PackageInfo{web}{Inputting aebdocfmt.def}}
{\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax
\PackageInfo{web}{aebdocfmt.def cannot be found}}
+\makeatletter
+\let\@latex@warning@no@line\@gobble
+\makeatother
\def\AcroFLeX{AcroF\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}
\def\AcroTeX{Acro\negthinspace\TeX}
\def\CMD#1{\textbackslash#1}
@@ -160,12 +163,16 @@
% \end{macrocode}
% We provide definitions to all essential commands and environments
% to, as best as we can, give a PDF that is viewable, but with no functionality.
+% \changes{v2.2.1}{2021/04/21}{Added definition of \string\cs{defineRMPath} for non-pdfmark case}
% \begin{macrocode}
\RequirePackage{eforms}[2020/12/14]
\DeclareOptionX*{}
\ProcessOptionsX\relax
%\let\AcroVer\@gobble
\newcommand\AcroVer[2][]{}
+\newcommand{\defineRMPath}[1]{\def\rm@ctrlName{#1}%
+ \hyper@normalise\rm@defineURLPath}
+\def\rm@defineURLPath#1{\expandafter\xdef\rm@ctrlName{#1}}
\let\saveNamedPath\@gobbletwo
\def\rma@edefexecute#1{\edef\rm@@temp@@exp{#1}\rm@@temp@@exp}
\newcommand\makePoster[3][]{}
@@ -200,8 +207,13 @@
\xdef\rm@Annot@width{\the\dimen@}%
\fi
\egroup
- {\previewOn\pushButton[\CA{Distiller required}\BC{}\BG{}
- \S{S}\Ff{\FfReadOnly}]{btn}{\rm@Annot@width}{\rm@Annot@height}}}
+% \end{macrocode}
+% \changes{v2.2.1}{2021/04/21}{Added definition of \string\cs{autoCenter\string\darg{n}} for non-pdfmark case}
+% \begin{macrocode}
+ {\previewOn\pushButton[\autoCenter{n}\CA{Distiller required}
+ \BC{}\BG{}\S{S}\Ff{\FfReadOnly}
+ ]{btn}{\rm@Annot@width}{\rm@Annot@height}}%
+}
\def\setRmOptions3D#1#2{}
\PackageWarningNoLine{rmannot}
{PDF creation requires Adobe Distiller.\MessageBreak
diff --git a/macros/unicodetex/latex/tipauni/COPYING b/macros/unicodetex/latex/tipauni/COPYING
new file mode 100644
index 0000000000..f288702d2f
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/macros/unicodetex/latex/tipauni/README.txt b/macros/unicodetex/latex/tipauni/README.txt
new file mode 100644
index 0000000000..2cb44e5ee6
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/README.txt
@@ -0,0 +1,9 @@
+--------------------------------------------------------------------------
+Package: tipauni
+Author: Niranjan
+Version: v0.1 (27 April, 2021)
+Description: For producing Unicode characters with TIPA commands.
+Repository: https://gitlab.com/niruvt/tipauni
+Bug tracker: https://gitlab.com/niruvt/tipauni/-/issues
+License: GPL v3.0+
+--------------------------------------------------------------------------
diff --git a/macros/unicodetex/latex/tipauni/gfdl-tex.tex b/macros/unicodetex/latex/tipauni/gfdl-tex.tex
new file mode 100644
index 0000000000..8c42ff6fd7
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/gfdl-tex.tex
@@ -0,0 +1,513 @@
+% \section{\centering GNU Free Documentation License}
+% \begin{center}
+%
+% Version 1.3, 3 November 2008
+%
+% Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+%
+% \bigskip
+%
+% \url{https://fsf.org/}
+%
+% \bigskip
+%
+% Everyone is permitted to copy and distribute verbatim copies
+% of this license document, but changing it is not allowed.
+% \end{center}
+%
+% \begin{center}
+% {\bf\large Preamble}
+% \end{center}
+%
+% The purpose of this License is to make a manual, textbook, or other
+% functional and useful document ``free'' in the sense of freedom: to
+% assure everyone the effective freedom to copy and redistribute it,
+% with or without modifying it, either commercially or noncommercially.
+% Secondarily, this License preserves for the author and publisher a way
+% to get credit for their work, while not being considered responsible
+% for modifications made by others.
+%
+% This License is a kind of ``copyleft'', which means that derivative
+% works of the document must themselves be free in the same sense. It
+% complements the GNU General Public License, which is a copyleft
+% license designed for free software.
+%
+% We have designed this License in order to use it for manuals for free
+% software, because free software needs free documentation: a free
+% program should come with manuals providing the same freedoms that the
+% software does. But this License is not limited to software manuals;
+% it can be used for any textual work, regardless of subject matter or
+% whether it is published as a printed book. We recommend this License
+% principally for works whose purpose is instruction or reference.
+%
+% \begin{center}
+% {\Large\bf 1. APPLICABILITY AND DEFINITIONS\par}
+% \end{center}
+%
+% This License applies to any manual or other work, in any medium, that
+% contains a notice placed by the copyright holder saying it can be
+% distributed under the terms of this License. Such a notice grants a
+% world-wide, royalty-free license, unlimited in duration, to use that
+% work under the conditions stated herein. The ``\textbf{Document}'', below,
+% refers to any such manual or work. Any member of the public is a
+% licensee, and is addressed as ``\textbf{you}''. You accept the license if you
+% copy, modify or distribute the work in a way requiring permission
+% under copyright law.
+%
+% A ``\textbf{Modified Version}'' of the Document means any work containing the
+% Document or a portion of it, either copied verbatim, or with
+% modifications and/or translated into another language.
+%
+% A ``\textbf{Secondary Section}'' is a named appendix or a front-matter section of
+% the Document that deals exclusively with the relationship of the
+% publishers or authors of the Document to the Document's overall subject
+% (or to related matters) and contains nothing that could fall directly
+% within that overall subject. (Thus, if the Document is in part a
+% textbook of mathematics, a Secondary Section may not explain any
+% mathematics.) The relationship could be a matter of historical
+% connection with the subject or with related matters, or of legal,
+% commercial, philosophical, ethical or political position regarding
+% them.
+%
+% The ``\textbf{Invariant Sections}'' are certain Secondary Sections whose titles
+% are designated, as being those of Invariant Sections, in the notice
+% that says that the Document is released under this License. If a
+% section does not fit the above definition of Secondary then it is not
+% allowed to be designated as Invariant. The Document may contain zero
+% Invariant Sections. If the Document does not identify any Invariant
+% Sections then there are none.
+%
+% The ``\textbf{Cover Texts}'' are certain short passages of text that are listed,
+% as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+% the Document is released under this License. A Front-Cover Text may
+% be at most 5 words, and a Back-Cover Text may be at most 25 words.
+%
+% A ``\textbf{Transparent}'' copy of the Document means a machine-readable copy,
+% represented in a format whose specification is available to the
+% general public, that is suitable for revising the document
+% straightforwardly with generic text editors or (for images composed of
+% pixels) generic paint programs or (for drawings) some widely available
+% drawing editor, and that is suitable for input to text formatters or
+% for automatic translation to a variety of formats suitable for input
+% to text formatters. A copy made in an otherwise Transparent file
+% format whose markup, or absence of markup, has been arranged to thwart
+% or discourage subsequent modification by readers is not Transparent.
+% An image format is not Transparent if used for any substantial amount
+% of text. A copy that is not ``Transparent'' is called ``\textbf{Opaque}''.
+%
+% Examples of suitable formats for Transparent copies include plain
+% ASCII without markup, Texinfo input format, LaTeX input format, SGML
+% or XML using a publicly available DTD, and standard-conforming simple
+% HTML, PostScript or PDF designed for human modification. Examples of
+% transparent image formats include PNG, XCF and JPG. Opaque formats
+% include proprietary formats that can be read and edited only by
+% proprietary word processors, SGML or XML for which the DTD and/or
+% processing tools are not generally available, and the
+% machine-generated HTML, PostScript or PDF produced by some word
+% processors for output purposes only.
+%
+% The ``\textbf{Title Page}'' means, for a printed book, the title page itself,
+% plus such following pages as are needed to hold, legibly, the material
+% this License requires to appear in the title page. For works in
+% formats which do not have any title page as such, ``Title Page'' means
+% the text near the most prominent appearance of the work's title,
+% preceding the beginning of the body of the text.
+%
+% The ``\textbf{publisher}'' means any person or entity that distributes
+% copies of the Document to the public.
+%
+% A section ``\textbf{Entitled XYZ}'' means a named subunit of the Document whose
+% title either is precisely XYZ or contains XYZ in parentheses following
+% text that translates XYZ in another language. (Here XYZ stands for a
+% specific section name mentioned below, such as ``\textbf{Acknowledgements}'',
+% ``\textbf{Dedications}'', ``\textbf{Endorsements}'', or ``\textbf{History}''.)
+% To ``\textbf{Preserve the Title}''
+% of such a section when you modify the Document means that it remains a
+% section ``Entitled XYZ'' according to this definition.
+%
+% The Document may include Warranty Disclaimers next to the notice which
+% states that this License applies to the Document. These Warranty
+% Disclaimers are considered to be included by reference in this
+% License, but only as regards disclaiming warranties: any other
+% implication that these Warranty Disclaimers may have is void and has
+% no effect on the meaning of this License.
+%
+% \begin{center}
+% {\Large\bf 2. VERBATIM COPYING\par}
+% \end{center}
+%
+% You may copy and distribute the Document in any medium, either
+% commercially or noncommercially, provided that this License, the
+% copyright notices, and the license notice saying this License applies
+% to the Document are reproduced in all copies, and that you add no other
+% conditions whatsoever to those of this License. You may not use
+% technical measures to obstruct or control the reading or further
+% copying of the copies you make or distribute. However, you may accept
+% compensation in exchange for copies. If you distribute a large enough
+% number of copies you must also follow the conditions in section~3.
+%
+% You may also lend copies, under the same conditions stated above, and
+% you may publicly display copies.
+%
+% \begin{center}
+% {\Large\bf 3. COPYING IN QUANTITY\par}
+% \end{center}
+%
+% If you publish printed copies (or copies in media that commonly have
+% printed covers) of the Document, numbering more than 100, and the
+% Document's license notice requires Cover Texts, you must enclose the
+% copies in covers that carry, clearly and legibly, all these Cover
+% Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+% the back cover. Both covers must also clearly and legibly identify
+% you as the publisher of these copies. The front cover must present
+% the full title with all words of the title equally prominent and
+% visible. You may add other material on the covers in addition.
+% Copying with changes limited to the covers, as long as they preserve
+% the title of the Document and satisfy these conditions, can be treated
+% as verbatim copying in other respects.
+%
+% If the required texts for either cover are too voluminous to fit
+% legibly, you should put the first ones listed (as many as fit
+% reasonably) on the actual cover, and continue the rest onto adjacent
+% pages.
+%
+% If you publish or distribute Opaque copies of the Document numbering
+% more than 100, you must either include a machine-readable Transparent
+% copy along with each Opaque copy, or state in or with each Opaque copy
+% a computer-network location from which the general network-using
+% public has access to download using public-standard network protocols
+% a complete Transparent copy of the Document, free of added material.
+% If you use the latter option, you must take reasonably prudent steps,
+% when you begin distribution of Opaque copies in quantity, to ensure
+% that this Transparent copy will remain thus accessible at the stated
+% location until at least one year after the last time you distribute an
+% Opaque copy (directly or through your agents or retailers) of that
+% edition to the public.
+%
+% It is requested, but not required, that you contact the authors of the
+% Document well before redistributing any large number of copies, to give
+% them a chance to provide you with an updated version of the Document.
+%
+%
+% \begin{center}
+% {\Large\bf 4. MODIFICATIONS\par}
+% \end{center}
+%
+% You may copy and distribute a Modified Version of the Document under
+% the conditions of sections 2 and 3 above, provided that you release
+% the Modified Version under precisely this License, with the Modified
+% Version filling the role of the Document, thus licensing distribution
+% and modification of the Modified Version to whoever possesses a copy
+% of it. In addition, you must do these things in the Modified Version:
+%
+% \begin{itemize}
+% \item[A.]
+% Use in the Title Page (and on the covers, if any) a title distinct
+% from that of the Document, and from those of previous versions
+% (which should, if there were any, be listed in the History section
+% of the Document). You may use the same title as a previous version
+% if the original publisher of that version gives permission.
+%
+% \item[B.]
+% List on the Title Page, as authors, one or more persons or entities
+% responsible for authorship of the modifications in the Modified
+% Version, together with at least five of the principal authors of the
+% Document (all of its principal authors, if it has fewer than five),
+% unless they release you from this requirement.
+%
+% \item[C.]
+% State on the Title page the name of the publisher of the
+% Modified Version, as the publisher.
+%
+% \item[D.]
+% Preserve all the copyright notices of the Document.
+%
+% \item[E.]
+% Add an appropriate copyright notice for your modifications
+% adjacent to the other copyright notices.
+%
+% \item[F.]
+% Include, immediately after the copyright notices, a license notice
+% giving the public permission to use the Modified Version under the
+% terms of this License, in the form shown in the Addendum below.
+%
+% \item[G.]
+% Preserve in that license notice the full lists of Invariant Sections
+% and required Cover Texts given in the Document's license notice.
+%
+% \item[H.]
+% Include an unaltered copy of this License.
+%
+% \item[I.]
+% Preserve the section Entitled ``History'', Preserve its Title, and add
+% to it an item stating at least the title, year, new authors, and
+% publisher of the Modified Version as given on the Title Page. If
+% there is no section Entitled ``History'' in the Document, create one
+% stating the title, year, authors, and publisher of the Document as
+% given on its Title Page, then add an item describing the Modified
+% Version as stated in the previous sentence.
+%
+% \item[J.]
+% Preserve the network location, if any, given in the Document for
+% public access to a Transparent copy of the Document, and likewise
+% the network locations given in the Document for previous versions
+% it was based on. These may be placed in the ``History'' section.
+% You may omit a network location for a work that was published at
+% least four years before the Document itself, or if the original
+% publisher of the version it refers to gives permission.
+%
+% \item[K.]
+% For any section Entitled ``Acknowledgements'' or ``Dedications'',
+% Preserve the Title of the section, and preserve in the section all
+% the substance and tone of each of the contributor acknowledgements
+% and/or dedications given therein.
+%
+% \item[L.]
+% Preserve all the Invariant Sections of the Document,
+% unaltered in their text and in their titles. Section numbers
+% or the equivalent are not considered part of the section titles.
+%
+% \item[M.]
+% Delete any section Entitled ``Endorsements''. Such a section
+% may not be included in the Modified Version.
+%
+% \item[N.]
+% Do not retitle any existing section to be Entitled ``Endorsements''
+% or to conflict in title with any Invariant Section.
+%
+% \item[O.]
+% Preserve any Warranty Disclaimers.
+% \end{itemize}
+%
+% If the Modified Version includes new front-matter sections or
+% appendices that qualify as Secondary Sections and contain no material
+% copied from the Document, you may at your option designate some or all
+% of these sections as invariant. To do this, add their titles to the
+% list of Invariant Sections in the Modified Version's license notice.
+% These titles must be distinct from any other section titles.
+%
+% You may add a section Entitled ``Endorsements'', provided it contains
+% nothing but endorsements of your Modified Version by various
+% parties---for example, statements of peer review or that the text has
+% been approved by an organization as the authoritative definition of a
+% standard.
+%
+% You may add a passage of up to five words as a Front-Cover Text, and a
+% passage of up to 25 words as a Back-Cover Text, to the end of the list
+% of Cover Texts in the Modified Version. Only one passage of
+% Front-Cover Text and one of Back-Cover Text may be added by (or
+% through arrangements made by) any one entity. If the Document already
+% includes a cover text for the same cover, previously added by you or
+% by arrangement made by the same entity you are acting on behalf of,
+% you may not add another; but you may replace the old one, on explicit
+% permission from the previous publisher that added the old one.
+%
+% The author(s) and publisher(s) of the Document do not by this License
+% give permission to use their names for publicity for or to assert or
+% imply endorsement of any Modified Version.
+%
+% \begin{center}
+% {\Large\bf 5. COMBINING DOCUMENTS\par}
+% \end{center}
+%
+% You may combine the Document with other documents released under this
+% License, under the terms defined in section~4 above for modified
+% versions, provided that you include in the combination all of the
+% Invariant Sections of all of the original documents, unmodified, and
+% list them all as Invariant Sections of your combined work in its
+% license notice, and that you preserve all their Warranty Disclaimers.
+%
+% The combined work need only contain one copy of this License, and
+% multiple identical Invariant Sections may be replaced with a single
+% copy. If there are multiple Invariant Sections with the same name but
+% different contents, make the title of each such section unique by
+% adding at the end of it, in parentheses, the name of the original
+% author or publisher of that section if known, or else a unique number.
+% Make the same adjustment to the section titles in the list of
+% Invariant Sections in the license notice of the combined work.
+%
+% In the combination, you must combine any sections Entitled ``History''
+% in the various original documents, forming one section Entitled
+% ``History''; likewise combine any sections Entitled ``Acknowledgements'',
+% and any sections Entitled ``Dedications''. You must delete all sections
+% Entitled ``Endorsements''.
+%
+% \begin{center}
+% {\Large\bf 6. COLLECTIONS OF DOCUMENTS\par}
+% \end{center}
+%
+% You may make a collection consisting of the Document and other documents
+% released under this License, and replace the individual copies of this
+% License in the various documents with a single copy that is included in
+% the collection, provided that you follow the rules of this License for
+% verbatim copying of each of the documents in all other respects.
+%
+% You may extract a single document from such a collection, and distribute
+% it individually under this License, provided you insert a copy of this
+% License into the extracted document, and follow this License in all
+% other respects regarding verbatim copying of that document.
+%
+% \begin{center}
+% {\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS\par}
+% \end{center}
+%
+% A compilation of the Document or its derivatives with other separate
+% and independent documents or works, in or on a volume of a storage or
+% distribution medium, is called an ``aggregate'' if the copyright
+% resulting from the compilation is not used to limit the legal rights
+% of the compilation's users beyond what the individual works permit.
+% When the Document is included in an aggregate, this License does not
+% apply to the other works in the aggregate which are not themselves
+% derivative works of the Document.
+%
+% If the Cover Text requirement of section~3 is applicable to these
+% copies of the Document, then if the Document is less than one half of
+% the entire aggregate, the Document's Cover Texts may be placed on
+% covers that bracket the Document within the aggregate, or the
+% electronic equivalent of covers if the Document is in electronic form.
+% Otherwise they must appear on printed covers that bracket the whole
+% aggregate.
+%
+% \begin{center}
+% {\Large\bf 8. TRANSLATION\par}
+% \end{center}
+%
+% Translation is considered a kind of modification, so you may
+% distribute translations of the Document under the terms of section~4.
+% Replacing Invariant Sections with translations requires special
+% permission from their copyright holders, but you may include
+% translations of some or all Invariant Sections in addition to the
+% original versions of these Invariant Sections. You may include a
+% translation of this License, and all the license notices in the
+% Document, and any Warranty Disclaimers, provided that you also include
+% the original English version of this License and the original versions
+% of those notices and disclaimers. In case of a disagreement between
+% the translation and the original version of this License or a notice
+% or disclaimer, the original version will prevail.
+%
+% If a section in the Document is Entitled ``Acknowledgements'',
+% ``Dedications'', or ``History'', the requirement (section~4) to Preserve
+% its Title (section~1) will typically require changing the actual
+% title.
+%
+% \begin{center}
+% {\Large\bf 9. TERMINATION\par}
+% \end{center}
+%
+% You may not copy, modify, sublicense, or distribute the Document
+% except as expressly provided under this License. Any attempt
+% otherwise to copy, modify, sublicense, or distribute it is void, and
+% will automatically terminate your rights under this License.
+%
+% However, if you cease all violation of this License, then your license
+% from a particular copyright holder is reinstated (a) provisionally,
+% unless and until the copyright holder explicitly and finally
+% terminates your license, and (b) permanently, if the copyright holder
+% fails to notify you of the violation by some reasonable means prior to
+% 60 days after the cessation.
+%
+% Moreover, your license from a particular copyright holder is
+% reinstated permanently if the copyright holder notifies you of the
+% violation by some reasonable means, this is the first time you have
+% received notice of violation of this License (for any work) from that
+% copyright holder, and you cure the violation prior to 30 days after
+% your receipt of the notice.
+%
+% Termination of your rights under this section does not terminate the
+% licenses of parties who have received copies or rights from you under
+% this License. If your rights have been terminated and not permanently
+% reinstated, receipt of a copy of some or all of the same material does
+% not give you any rights to use it.
+%
+% \begin{center}
+% {\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE\par}
+% \end{center}
+%
+% The Free Software Foundation may publish new, revised versions
+% of the GNU Free Documentation License from time to time. Such new
+% versions will be similar in spirit to the present version, but may
+% differ in detail to address new problems or concerns. See
+% \texttt{https://www.gnu.org/licenses/}.
+%
+% Each version of the License is given a distinguishing version number.
+% If the Document specifies that a particular numbered version of this
+% License ``or any later version'' applies to it, you have the option of
+% following the terms and conditions either of that specified version or
+% of any later version that has been published (not as a draft) by the
+% Free Software Foundation. If the Document does not specify a version
+% number of this License, you may choose any version ever published (not
+% as a draft) by the Free Software Foundation. If the Document
+% specifies that a proxy can decide which future versions of this
+% License can be used, that proxy's public statement of acceptance of a
+% version permanently authorizes you to choose that version for the
+% Document.
+%
+% \begin{center}
+% {\Large\bf 11. RELICENSING\par}
+% \end{center}
+%
+% ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
+% World Wide Web server that publishes copyrightable works and also
+% provides prominent facilities for anybody to edit those works. A
+% public wiki that anybody can edit is an example of such a server. A
+% ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
+% site means any set of copyrightable works thus published on the MMC
+% site.
+%
+% ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
+% license published by Creative Commons Corporation, a not-for-profit
+% corporation with a principal place of business in San Francisco,
+% California, as well as future copyleft versions of that license
+% published by that same organization.
+%
+% ``Incorporate'' means to publish or republish a Document, in whole or
+% in part, as part of another Document.
+%
+% An MMC is ``eligible for relicensing'' if it is licensed under this
+% License, and if all works that were first published under this License
+% somewhere other than this MMC, and subsequently incorporated in whole
+% or in part into the MMC, (1) had no cover texts or invariant sections,
+% and (2) were thus incorporated prior to November 1, 2008.
+%
+% The operator of an MMC Site may republish an MMC contained in the site
+% under CC-BY-SA on the same site at any time before August 1, 2009,
+% provided the MMC is eligible for relicensing.
+%
+% \begin{center}
+% {\Large\bf ADDENDUM: How to use this License for your documents\par}
+% \end{center}
+%
+% To use this License in a document you have written, include a copy of
+% the License in the document and put the following copyright and
+% license notices just after the title page:
+%
+% \bigskip
+% \begin{quote}
+% Copyright \copyright{} YEAR YOUR NAME.
+% Permission is granted to copy, distribute and/or modify this document
+% under the terms of the GNU Free Documentation License, Version 1.3
+% or any later version published by the Free Software Foundation;
+% with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+% A copy of the license is included in the section entitled ``GNU
+% Free Documentation License''.
+% \end{quote}
+% \bigskip
+%
+% If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+% replace the ``with \dots\ Texts.''\ line with this:
+%
+% \bigskip
+% \begin{quote}
+% with the Invariant Sections being LIST THEIR TITLES, with the
+% Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+% \end{quote}
+% \bigskip
+%
+% If you have Invariant Sections without Cover Texts, or some other
+% combination of the three, merge those two alternatives to suit the
+% situation.
+%
+% If your document contains nontrivial examples of program code, we
+% recommend releasing these examples in parallel under your choice of
+% free software license, such as the GNU General Public License,
+% to permit their use in free software. \ No newline at end of file
diff --git a/macros/unicodetex/latex/tipauni/tipauni-commands.pdf b/macros/unicodetex/latex/tipauni/tipauni-commands.pdf
new file mode 100644
index 0000000000..42b546f08d
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni-commands.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/tipauni/tipauni-commands.tex b/macros/unicodetex/latex/tipauni/tipauni-commands.tex
new file mode 100644
index 0000000000..8ba6653272
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni-commands.tex
@@ -0,0 +1,289 @@
+\documentclass{article}
+\usepackage{tipauni}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1.3}
+
+\begin{document}
+\section{Pulmonic consonants}
+
+{%
+ \bfseries
+
+ \textrtailt\ \textipa{\:t}
+
+ \textrtaild\ \textipa{\:d}
+
+ \textbardotlessj\ \textipa{\*j}
+
+ \textscg\ \textipa{\;G}
+
+ \textglotstop\ \textipa{P}
+
+ \textltailm\ \textipa{M}
+
+ \textrtailn\ \textipa{\:n}
+
+ \textltailn\ \textipa{\*n}
+
+ \textscn\ \textipa{\;N}
+
+ \textscb\ \textipa{\;B}
+
+ \textscr\ \textipa{\;R}
+
+ \labdentflap\ \textipa{\*v}
+
+ \textfishhookr\ \textipa{R}
+
+ \textrtailr\ \textipa{\:r}
+
+ \textphi\ \textipa{F}
+
+ \textbeta\ \textipa{B}
+
+ \texttheta\ \textipa{T}
+
+ \dh\ \textipa{D}
+
+ \textesh\ \textipa{S}
+
+ \textyogh\ \textipa{Z}
+
+ \textrtails\ \textipa{\:s}
+
+ \textrtailz\ \textipa{\:z}
+
+ \textctj\ \textipa{J}
+
+ \textgamma\ \textipa{G}
+
+ \textchi\ \textipa{X}
+
+ \textinvscr\ \textipa{K}
+
+ \textcrh\ \textipa{\*h}
+
+ \textrevglotstop\ \textipa{Q}
+
+ \texthth\ \textipa{H}
+
+ \textbeltl\ \textipa{\*l}
+
+ \textlyoghlig\ \textipa{\*z}
+
+ \labdentapp\ \textipa{V}
+
+ \textturnr\ \textipa{\*r}
+
+ \textturnrrtail\ \textipa{\:R}
+
+ \textturnmrleg \textipa{\*m}
+
+ \textrtaill\ \textipa{\:l}
+
+ \textturny\ \textipa{L}
+
+ \textscl\ \textipa{\;L}
+}%
+
+\section{Non-pulmonic consonants}
+
+\subsection{Clicks}
+
+{%
+ \bfseries
+
+ \textbullseye\ \textipa{\!o}
+
+ \pstalvclick\ \textipa{!}
+
+ \textdoublebarpipe\ \textipa{\!c}
+
+ \textdoublepipe\ \textipa{||}
+}%
+
+\subsection{Implosives}
+
+{%
+ \bfseries
+
+ \texthtb\ \textipa{\!b}
+
+ \texthtd\ \textipa{\!d}
+
+ \texthtbardotlessj\ \textipa{\!j}
+
+ \texthtg\ \textipa{\!g}
+
+ \texthtscg\ \textipa{\!G}
+}%
+
+\section{Other symbols}
+
+{%
+ \bfseries
+
+ \textturnw\ \textipa{\*w}
+
+ \textturnh\ \textipa{4}
+
+ \textsch\ \textipa{\;H}
+
+ \textbarrevglotstop\ \textipa{\*1}
+
+ \textturnlonglegr\ \textipa{\!r}
+
+ \textbarglotstop\ \textipa{\*2}
+
+ \textctc\ \textipa{C}
+
+ \textctz\ \textipa{\*Z}
+
+ \texththeng\ \textipa{\*3}
+}%
+
+\section{Vowels}
+
+{%
+ \bfseries
+
+ \textsci\ \textipa{I}
+
+ \textscy\ \textipa{Y}
+
+ \textepsilon\ \textipa{E}
+
+ \textbari\ \textipa{1}
+
+ \textbaru\ \textipa{0}
+
+ \textupsilon\ \textipa{U}
+
+ \textreve\ \textipa{9}
+
+ \textbaro\ \textipa{8}
+
+ \textschwa\ \textipa{@}
+
+ \textrevepsilon\ \textipa{3}
+
+ \textcloserevepsilon\ \textipa{&}
+
+ \textturna\ \textipa{5}
+
+ \textturnm\ \textipa{W}
+
+ \textramshorns\ \textipa{7}
+
+ \textturnv\ \textipa{2}
+
+ \textopeno\ \textipa{O}
+
+ \textscripta\ \textipa{A}
+
+ \textturnscripta\ \textipa{6}
+}%
+
+\section{Diacritics}
+
+\subsection{Independent diacritics}
+
+{%
+ \bfseries
+
+ ə\textrhoticity\ \textipa{ə\tr}
+
+ n\textcorner \textipa{n\tc}
+
+ \stdlnetiebar{əi} \ts{əi}
+}%
+
+
+\subsection{Dependent diacritics}
+
+{%
+ \bfseries
+
+ \textsubring{m} \textipa{\r*m}
+
+ \textsubwedge{s} \textipa{\v*s}
+
+ \textsubrhalfring{w} \textipa{\|)w}
+
+ \textsublhalfring{w} \textipa{\|(w}
+
+ \textsubplus{\textschwa} \textipa{\|+@}
+
+ \textsubbar{l} \textipa{\=*l}
+
+ \textovercross{e} \textipa{\|xe}
+
+ \textsyllabic{n} \textipa{\s{n}}
+
+ \textsubarch{a} \textipa{\ns{a}}
+
+ \textsubumlaut{b} \textipa{\"*b}
+
+ \textsubtilde{\textschwa} \textipa{\~*@}
+
+ \textseagull{l} \textipa{\|ml}
+
+ \textsuperimposetilde{i} \textipa{\vl{i}}
+
+ \textraising{\textschwa} \textipa{\|'@}
+
+ \textlowering{\textschwa} \textipa{\|`@}
+
+ \textadvancing{\textschwa} \textipa{\|<@}
+
+ \textretracting{\textschwa} \textipa{\|>@}
+
+ \textsubbridge{t} \textipa{\|[t}
+
+ \textinvsubbridge{t} \textipa{\|]t}
+
+ \textsubsquare{s} \textipa{\lmn{s}}
+
+ \texttoptiebar{əi} \textipa{\t{əi}}
+
+ \textbottomtiebar{əi} \textipa{\t*{əi}}
+}%
+\section{Superscripts}
+
+x\super h
+
+x\super w
+
+x\super j
+
+x\super n
+
+x\super l
+
+\textipa{x\super \textgamma} xˠ
+
+\textipa{x\super Q}
+
+\textipa{\;B \;E \;A \;H \;L \;R}
+
+\textipa{\:d \:l \:n \:r \:s \:z k f \*w}
+
+\textipa{\!b \!d \!g \!j \!G \!o}
+
+\textipa{""Ekspl@"neIS@n}
+
+\textipa{f@"nEtIksW}
+
+\textipa{\*j\*t\*r\*w\*n\*h\*l\*z}
+
+\textipa{\!b\!d\!g\!j\!G\!o}
+
+\textipa{\;E\;J\;A\;H\;L\;U\;B\;G\;N\;R}
+
+\textipa{\:d\:l\:n\:r\:R\:s\:t\:z}
+
+\textipa{5A62BCD@9E3gG7H41IJMWN8OFRKST0TUVTXYZPQ|||""":;}
+
+Hello world, some text in this document is written in the \textipa{Int@n\ae
+ S@n@l f@"nEtIk \ae lf@bet}
+\end{document} \ No newline at end of file
diff --git a/macros/unicodetex/latex/tipauni/tipauni-example.pdf b/macros/unicodetex/latex/tipauni/tipauni-example.pdf
new file mode 100644
index 0000000000..49cc885c83
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni-example.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/tipauni/tipauni-example.tex b/macros/unicodetex/latex/tipauni/tipauni-example.tex
new file mode 100644
index 0000000000..c7df977d6f
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni-example.tex
@@ -0,0 +1,391 @@
+\documentclass{article}
+\usepackage{expex}
+\usepackage{leipzig}
+\makeglossaries
+\usepackage{longtable}
+\usepackage{booktabs}
+\usepackage[backend=biber,style=authoryear]{biblatex}
+\usepackage[colorlinks]{hyperref}
+\usepackage{tipauni}
+\begin{filecontents}{\jobname.bib}
+@mastersthesis{shravani,
+author = {Patil, Shravani},
+title = {Linguistic profile of Kulluvi},
+institution = {Department of Linguistics, University of Mumbai},
+date = {2021-04-21}
+}
+\end{filecontents}
+\addbibresource{\jobname.bib}
+\renewcommand{\arraystretch}{1.5}
+
+\begin{document}
+This document is nothing but a sample file with some data collected by
+\textcite{shravani}. Package {\sffamily tipauni} converts TIPA commands to
+Unicode characters. This whole document is typeset with the Charis SIL font
+which is loaded by default by the {\sffamily tipauni} package. If you use
+package tipa instead of tipauni, output will show IPA shapes with T3
+encoding. For seeing how this works, please refer to the source file of this
+PDF. i.e.\
+\href{https://gitlab.com/niruvt/tipauni/-/blob/master/tipauni/tipauni-example.tex}%
+{tipauni-example.tex}
+
+\begin{longtable}{p{0.15\textwidth}p{0.3\textwidth}p{0.3\textwidth}}
+ \toprule
+ \endfirsthead
+ \toprule
+ \endhead
+ \bottomrule
+ \endfoot
+ \bottomrule
+ \endlastfoot
+ Consonant & Onset & Coda\tabularnewline
+
+ \midrule p & pun.za (claw) & \textipa{k\super hap.Ra} (old man)\tabularnewline
+
+ b & \textipa{bO\|[d\super h} (bull) & \textipa{Seb.Ra} (dull)\tabularnewline
+
+ \textipa{b\super h} & \textipa{b\super he\:d} (sheep) & \tabularnewline
+
+ m & \textipa{mE} (me) & \textipa{amb} (mango)\tabularnewline
+
+ f & ful (flower) & \tabularnewline
+
+ \textipa{V} & \textipa{Vi\|[d.jaR.\|[t\super hi} & \textipa{RoVa}
+ (injury)\tabularnewline
+
+ \textipa{\|[t} & \textipa{\|[tu} (you) & \textipa{mO\|[t}
+ (don't)\tabularnewline
+
+ \textipa{\|[d} & \textipa{\|[deS} (many) & \textipa{swa\|[d}\tabularnewline
+
+ \textipa{\|[t\super h} & \textipa{\|[t\super he\:n.\:di} (cold) &
+ \textipa{hO\|[t\super h} (hand)\tabularnewline
+
+ \textipa{\|[d\super h} & \textipa{\|[d\super hus.ki} (down) &
+ \textipa{bO\|[d\super h} (bull)\tabularnewline
+
+ \textipa{\t*{ts}} & \textipa{\t*{ts}Ol.\:na} (to walk) & \textipa{so\t*{ts}}
+ (think)\tabularnewline
+
+ \textipa{\t*{ts}\super h} & \textipa{\t*{ts}\super hekke} (fast) &
+ \tabularnewline
+
+ \textipa{\t*{dz}} & \textipa{\t*{dz}a.\:na} (to go) & \tabularnewline
+
+ \textipa{n} & \textipa{n@i} (no) & \textipa{an.\|[dRe} (inside)\tabularnewline
+
+ \textipa{R} & \textipa{me.Ri} (my) & \textipa{g\super hOR}\tabularnewline
+
+ \textipa{s} & \textipa{sen.\|[tRi} (orange colour) & \textipa{hOs\:na} (to
+ laugh)\tabularnewline
+
+ \textipa{z} & \textipa{ze\:d} (root) & \textipa{Roz} (everyday)\tabularnewline
+
+ \textipa{l} & \textipa{lOm.ma} (long) & \textipa{kal}
+ (yesterday)\tabularnewline
+
+ \textipa{S} & \textipa{Sob.la} (beautiful) & \textipa{gaS}
+ (rain)\tabularnewline
+
+ \textipa{\:t} & \textipa{\:te\:d.\:da} (curved) & \textipa{nO\:t.\:t\super he}
+ (gone)\tabularnewline
+
+ \textipa{\:t\super h} & \textipa{\:t\super he\:n\:ra} (cold) &
+ \textipa{nO\:t.\:t\super he} (gone)\tabularnewline
+
+ \textipa{\:d} & & \textipa{ne\:d} (near)\tabularnewline
+
+ \textipa{\:d\super h} & & \textipa{pO\:d\super h.na} (to read)\tabularnewline
+
+ \textipa{\:r} & \textipa{pO\:ru} (fell) & \textipa{me\:n.\:r\super h@k}
+ (frog)\tabularnewline
+
+ \textipa{\:n} & \textipa{\|[de.\:na} (to give) & \textipa{ku\:n}
+ (who)\tabularnewline
+
+ \textipa{\:l} & \textipa{ke\:la} (banana) & \tabularnewline
+
+ \textipa{\t*{tS}} & \textipa{\t*{tS}Ok.ku\|[da} (rotten) & \tabularnewline
+
+ \textipa{\t*{dZ}} & \textipa{\t*{dZ}epuR} (Jaipur) & \tabularnewline
+
+ \textipa{j} & \textipa{ja\|[d} (remember) & \textipa{gaj}
+ (abuse)\tabularnewline
+
+ \textipa{k} & \textipa{ki.\:ra} (snake) & \textipa{b\super huk}
+ (hunger)\tabularnewline
+
+ \textipa{g} & \textipa{ga} (cow) & \textipa{b\super hEg.\:na} (to
+ run)\tabularnewline
+
+ \textipa{k\super h} & \textipa{k\super ha\:na} (to eat) & \textipa{paNk\super
+ h} (wing)\tabularnewline
+
+ \textipa{g\super h} & \textipa{g\super hOR} (house) & \tabularnewline
+\end{longtable}
+
+\ex
+\begingl
+\gla\textipa{sO} \textipa{lag-gi} \textipa{\t*{ts}Ol-\|[d-i}
+\textipa{p@ha\:ran}//
+\glb That.\F{} be.\Prog{}-\M{} walk-\Prs-\F{} hill//
+\glft She is walking up the hills.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{sO} \textipa{lag-ga} \textipa{\t*{ts}Ol-\|[d-a}
+\textipa{bunije}//
+\glb That.\M{} be.\Prog{} walk-\Prs-\M{} down//
+\glft He is walking down.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{ei} \textipa{sa} \textipa{be\:r-i} \textipa{pa\|[t@\:l-i}//
+\glb This.person.\Sg{} be.\Prs{} very-\F{} thin-\F//
+\glft She is very thin.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{ei} \textipa{sa} \textipa{be\:r-a} \textipa{pa\|[t@\:l-a}//
+\glb This.person.\Sg{} be.\Prs very-\M{} thin-\M//
+\glft He is very thin.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{soe} \textipa{\|[de} \textipa{sa}//
+\glb Sleep let be.\Prs//
+\glft Let it be asleep.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{moRne} \textipa{\|[de}//
+\glb Die let//
+\glft Let them die.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{m\super ha-R-a} \textipa{g\super hOR} \textipa{sa} \textipa{b@u}
+\textipa{be\:d\:da}//
+\glb I-\Gen{}-\M{} house.\M{} be.\Prs{} very big-\M//
+\glft My house is very big.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{mum-be} \textipa{lo\:di} \textipa{silg@R@m} \textipa{pani}//
+\glb Me-\Dat{} want lukewarm water//
+\glft I want lukewarm water.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{au} \textipa{k\super ha} \textipa{sa} \textipa{\|[dui}
+\textipa{ke\:l-e}//
+\glb I.\Sg{} eat.\Ipfv{} be.\Prs{} two banana-\Pl//
+\glft I eat two bananas.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{mE} \textipa{k\super hai} \textipa{6\:t\super h}
+\textipa{ke\:l-e}//
+\glb I.\Sg.\Erg{} eat-\Pfv{} eight banana-\Pl//
+\glft I ate eight banans.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{mu} \textipa{\t*{ts}\super he\|[t\|[ta-n@} \textipa{kOm}
+\textipa{keR-na}//
+\glb I farm-in work do-\Fut//
+\glft I will work in a farm.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{meRi} \textipa{fulla} \textipa{sai} \textipa{Sobl-i}//
+\glb Mary.\Nom{} flower like beautiful-\F//
+\glft Mary is as beautiful as a flower.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{Ram} \textipa{amb} \textipa{k\super han-\|[d-a}
+\textipa{lag-ga}//
+\glb Ram.\Nom{} mango.\Acc{} eat-\Prs-\M{} be.\Prog-\M//
+\glft Ram is eating a mango.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{mE} \textipa{\t*{ts}Em@\t*{ts}-sENge} \textipa{k\super ha-u}.//
+\glb I.\Erg{} spoon-with.\Ins{} eat-\Pst//
+\glft I ate with a spoon.(just now)//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{asse} \textipa{mumb@i-n@} \textipa{\|[dilli-be}
+\textipa{\t*{ts}Ol-le}//
+\glb We Mumbai-from.\Abl{} Delhi-to.\Acc{} go-\Pl//
+\glft We are traveling from Mumbai to Delhi.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{au} \textipa{\t*{ts}\super he\|[t\|[ta-n@} \textipa{kOm}
+\textipa{keRa} \textipa{sa}//
+\glb I.\M.\Nom{} farm-in.\Loc{} work do.\Ipfv{} be.\Prs//
+\glft I work in a farm.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{bapu-oR-e} \textipa{nok@Ra-R-e} \textipa{hot\super h-e}
+\textipa{saRe} \textipa{pep@R} \textipa{Se\:t\:t-e}//
+\glb Father-Hon-\Erg{} servant-\Gen{}-\Pl{} hand-by all paper.\Pl{}
+throw-\Pfv{}.\Pl//
+\glft Father got all the papers thrown away by the servant.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{amb} \textipa{ka\:tde} \textipa{Rizwane-R-i} \textipa{gu\:t\:ti}
+\textipa{k@\:t-i}//
+\glb Mango while.cutting Rizwan-\Gen{}-\Pl{} finger.\F{} cut-\Pfv{}.\F//
+\glft While cutting a mango, Rizwan's finger cut.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{m\super ha-R-a} \textipa{g\super hOR} \textipa{sa} \textipa{b@u}
+\textipa{be\:d\:da}//
+\glb I-\Gen{}-\M{} house.\M{} be.\Prs{} very big-\M//
+\glft My house is very big.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{amma-e} \textipa{nok@RaRe} \textipa{Ott\super he} \textipa{saRe}
+\textipa{pep@R} \textipa{Se\:t\:te}//
+\glb Mother-\Erg{} servant-\Gen{}-\Pl{} hand-by all paper.\Pl{}
+throw-\Pfv{}.\Pl//
+\glft Mother got all the papers thrown away by the servant.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{asse} \textipa{\t*{ts}\super he\|[t\|[ta-n@} \textipa{kOm}
+\textipa{keRa} \textipa{sa}//
+\glb We.\Nom{} farm-in work do.\Ipfv{} be.\Prs//
+\glft We work in a farm.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{au} \textipa{k\super ha} \textipa{sa} \textipa{\|[dui}
+\textipa{ke\:l-e}//
+\glb I.\Sg{} eat.\Ipfv{} be.\Prs{} two banana-\Pl//
+\glft I eat two bananas.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{au} \textipa{n\super hai-\|[d-i} \textipa{lagg-i} \textipa{sa}//
+\glb I.\F{} bath-\Prs{}-\F{} be.\Prog{}-\F{} be-\Prs//
+\glft I am bathing.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{sO} \textipa{lagg-i} \textipa{\t*{ts}Ol-\|[d-i}
+\textipa{p@ha\:ran}//
+\glb She be.\Prog{}-\F{} walk-\Prog{}-\F{} hills//
+\glft She is walking up the hills.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{s@lm-e} \textipa{\|[do\|[t\|[ti} \textipa{amb} \textipa{k\super
+ha-u}//
+\glb Salma.\F{}-\Erg{} morning mango.\Abs{}.\M{} eat-\Pfv{}.\M//
+\glft Salma ate the mango in the morning.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{SoRu-e} \textipa{saRi} \textipa{mi\:t\super hijai}
+\textipa{k\super ha-i}//
+\glb Child\M{}-\Erg{} all sweets.\Pl{} eat-\Pfv{}.\Pl//
+\glft The child ate up all the sweets.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{SoRu-e} \textipa{@p\:ni} \textipa{b\super he\:n} \textipa{n@i}
+\textipa{maRi}//
+\glb Child.\M{}-\Erg{} his sister.\F{} not hit-\Pfv{}.\F//
+\glft The child did not hit his sister.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{\|[tej-e} \textipa{hiR@\:n} \textipa{heR-e}//
+\glb He-\Erg{} deer.\Pl see-\Pfv{}.\Pl//
+\glft He saw deers.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{SoRu} \textipa{bu\:t\:ti} \textipa{pan\|[de} \textipa{uk\|[t-a}//
+\glb Boy.\Nom{} tree.\M up climb-\Pfv{}.\M//
+\glft The boy climbed up a tree.//
+\endgl
+\xe
+
+\ex
+\begingl
+\gla\textipa{assa} \textipa{kal} \textipa{\t*{dZ}EpuR} \textipa{ni}
+\textipa{\t*{dz}a\:na}//
+\glb We tomorrow Jaipur not go.\Fut//
+\glft We will not go to Jaipur tomorrow.//
+\endgl
+\xe
+
+\printglossary
+\printbibliography
+\end{document} \ No newline at end of file
diff --git a/macros/unicodetex/latex/tipauni/tipauni.dtx b/macros/unicodetex/latex/tipauni/tipauni.dtx
new file mode 100644
index 0000000000..e83e5af260
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni.dtx
@@ -0,0 +1,939 @@
+% \iffalse meta-comment
+%
+% File: tipauni.dtx
+% ---------------------------------------------------------------------------
+% Package: tipauni
+% Author: Niranjan
+% Version: v0.1 (27 April, 2021)
+% Description: For producing Unicode characters with TIPA commands.
+% Repository: https://gitlab.com/niruvt/tipauni
+% Bug tracker: https://gitlab.com/niruvt/tipauni/-/issues
+% License: GPL v3.0+
+% ---------------------------------------------------------------------------
+% LaTeX Package tipauni v0.1
+% © 2021 Niranjan
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
+%
+% The current maintainer of this work is Niranjan.
+%
+% This work consists of the files tipauni.dtx
+% tipauni.ins
+% and the derived file tipauni.sty.
+% \fi
+% \iffalse
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+--------------------------------------------------------------------------
+Package: tipauni
+Author: Niranjan
+Version: v0.1 (27 April, 2021)
+Description: For producing Unicode characters with TIPA commands.
+Repository: https://gitlab.com/niruvt/tipauni
+Bug tracker: https://gitlab.com/niruvt/tipauni/-/issues
+License: GPL v3.0+
+--------------------------------------------------------------------------
+%</readme>
+%<*internal>
+\fi
+%</internal>
+%<*driver|package>
+\def\tipauniname{tipauni}
+\def\tipauniversion{0.1}
+\def\tipaunidate{2021/04/27}
+\def\tipaunidescription{For producing Unicode characters with TIPA commands}
+%</driver|package>
+%<*driver>
+\documentclass{l3doc}
+\usepackage{multicol}
+\usepackage{graphicx}
+\usepackage{array}
+\usepackage{longtable}
+\usepackage[referable]{threeparttablex}
+\usepackage{booktabs}
+\usepackage{float}
+\usepackage{xcolor}
+\usepackage{dtk-logos}
+\usepackage{fontspec}
+\newfontfamily{\ipa}[Color=blue]{CharisSIL}
+\usepackage{hyperref}
+\hypersetup{%
+ colorlinks,%
+ linkcolor=red!60!black,%
+ citecolor=green!60!black,%
+ urlcolor=blue!60!black%
+}%
+\usepackage{fontawesome5}
+\renewcommand{\arraystretch}{1.2}
+
+\begin{document}
+\DocInput{\tipauniname.dtx}
+\end{document}
+%</driver>
+% \fi
+% \title{The \pkg{\tipauniname} package}
+% \author{Niranjan\thanks{\faIcon{envelope}\quad\href{mailto:hi.niranjan@pm.me}{\ttfamily hi.niranjan@pm.me}}}
+% \date^^A
+% {^^A
+% Version \tipauniversion\ --- \tipaunidate\\[1ex]^^A
+% {\small\faIcon{link}\quad\url{https://ctan.org/pkg/tipauni}}\\^^A
+% {\small\faIcon{gitlab}\quad\url{https://gitlab.com/niruvt/tipauni}}\\^^A
+% }^^A
+% \maketitle
+%
+% \tableofcontents
+%
+% \vfill
+% {%
+% \setlength{\parindent}{0pt}
+% © 2021 Niranjan
+%
+% Permission is granted to copy, distribute and/or modify this document under
+% the terms of the GNU Free Documentation License, Version 1.3 or any later
+% version published by the Free Software Foundation; with no Invariant
+% Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the
+% license is included in the section entitled ``GNU Free Documentation
+% License''.
+% }%
+%
+% \clearpage\pagebreak
+%
+% \begin{documentation}
+% \begin{abstract}
+% This package is the second step for \LaTeX-internally bridging the gap
+% between the Unicode and the TIPA package. The first step was the package
+% \href{https://www.ctan.org/pkg/unitipa}{\pkg{unitipa}}. Users can now use
+% their beloved TIPA shortcuts with the benefits of Unicode i.e.\
+% searchability, copy-pasting, changing the font and many more. As this
+% package needs the package \pkg{fontspec} for loading an IPA font, it needs
+% to be compiled with \XeLaTeX\ or Lua\LaTeX. This package can also be
+% viewed as an ASCII-based input method for producing IPA characters in
+% Unicode.
+% \end{abstract}
+%
+% \section{Acknowledgements}
+% This package is completed because of the rigorous help by Jairo A.\ del Rio,
+% Jonathan P.\ Spratte \textit{\&} Ulrike Fischer. Their suggestions and
+% contributions are extremely valuable for the development of this package.
+%
+% \section{Package options}
+%
+% \begin{function}{documentfont}
+% The default font for the entire document set by this package is the
+% \href{https://www.ctan.org/pkg/charissil}{Charis SIL}. Users can easily
+% change it with the package-option \verb|documentfont|. This option takes
+% one value which is the \meta{font name}. e.g.\ For using the
+% \href{https://www.ctan.org/pkg/doulossil}{Doulos SIL} font as the main
+% font, use the package like it is used in the following.
+% \begin{verbatim}
+% \usepackage[documentfont=DoulosSIL]{tipauni}
+% \end{verbatim}
+% \begin{syntax}
+% documentfont=\meta{font name}
+% \end{syntax}
+% \end{function}
+%
+% \begin{function}{incompatible}
+% By default \pkg{\tipauniname} will throw a warning if symbols not
+% contained in the \pkg{tipa} package were used. Using this option you can
+% switch this check off if you don't have to stay compatible with
+% \pkg{tipa} to silence this warning.
+% \end{function}
+%
+% \section{List of available commands}
+% TIPA has two alternative methods for inputting IPA characters. In the
+% following tables, \textbf{Input A} column lists all the long TIPA commands
+% (e.g.~\verb|\textrtailt|) \textit{\&} \textbf{Input B} column lists the
+% short ones (e.g.~\verb|\textipa{\:t}|)\footnote{All of these commands must
+% be enclosed in the \texttt{\textbackslash textipa}
+% command. (e.g.~\texttt{\textbackslash textipa\{\textbackslash :tP\}} for
+% {\ipa [ʈʔ]})}. This documentation lists down all the commands necessary for
+% typing symbols in the IPA chart.
+%
+% \subsection{Pulmonic consonants}
+% \begin{ThreePartTable}
+% \begin{TableNotes}
+% \item[\textcolor{red}{§}] These commands are also available without
+% package \pkg{tipa}.
+% \item[1] \label{1} A symbol for this sound was introduced in 2005. The
+% last update of the package \pkg{tipa} was in 2004, so this character
+% is missing in it. A command for it is provided by this package. Such
+% \pkg{tipauni}-exclusive commands are written with red color in this
+% documentation.
+% \end{TableNotes}
+% \small
+% \begin{longtable}{%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% >{\ipa[}l<{]}%
+% }%
+% \toprule
+% \endfirsthead
+% \toprule
+% \endhead
+% \bottomrule
+% \endfoot
+% Description & Input A & Input B &
+% \multicolumn{1}{l}{\kern-1.25ex Symbol}\\
+% \midrule
+% Retroflex voiceless stop & \verb|\textrtailt| & \verb|\:t| & ʈ \\
+% Retroflex voiced stop & \verb|\textrtaild| & \verb|\:d| & ɖ \\
+% Palatal voiced stop & \verb|\textbardotlessj| & \verb|\*j| & ɟ \\
+% Uvular voiced stop & \verb|\textscg| & \verb|\;G| & ɢ \\
+% Glottal voiceless stop & \verb|\textglotstop| & \verb|P| & ʔ \\
+% Labiodental nasal & \verb|\textltailm| & \verb|M| & ɱ \\
+% Retroflex nasal & \verb|\textrtailn| & \verb|\:n| & ɳ \\
+% Palatal nasal & \verb|\textltailn| & \verb|\*n| & ɲ \\
+% Velar nasal & \verb|\ng|\tnote{\textcolor{red}{§}} & \verb|N| & ŋ \\
+% Uvular nasal & \verb|\textscn| & \verb|\;N| & ɴ \\
+% Bilabial trill & \verb|\textscb| & \verb|\;B| & ʙ \\
+% Uvular trill & \verb|\textscr| & \verb|\;R| & ʀ \\
+% \multicolumn{1}{>{\color{red}}l@{\hspace{0.3cm}-\hspace{0.3cm}}}{Labiodental flap\tnotex{1}} &
+% \color{red}\verb|\labdentflap| & \color{red}\verb|\*v| & ⱱ\\
+% Alveolar tap & \verb|\textfishhookr| & \verb|R| & ɾ \\
+% Retroflex flap & \verb|\textrtailr| & \verb|\:r| & ɽ \\
+% Bilabial voiceless fricative & \verb|\textphi| & \verb|F| & ɸ \\
+% Bilabial voiced fricative & \verb|\textbeta| & \verb|B| & β \\
+% Dental voiceless fricative & \verb|\texttheta| & \verb|T| & θ \\
+% Dental voiced fricative & \verb|\dh|\tnote{\textcolor{red}{§}} &
+% \verb|D| & ð \\
+% Palatal voiceless fricative & \verb|\textsh| & \verb|S| & ʃ \\
+% Palatal voiced fricative & \verb|\textyogh| & \verb|Z| & ʒ \\
+% Retroflex voiceless fricative & \verb|\textrtails| & \verb|\:s| & ʂ \\
+% Retroflex voiceless fricative & \verb|\textrtailz| & \verb|\:z| & ʐ \\
+% Palatal voiced fricative & \verb|\textctj| & \verb|J| & ʝ \\
+% Velar voiced fricative & \verb|\textgamma| & \verb|G| & ɣ \\
+% Uvular voiceless fricative & \verb|\textchi| & \verb|X| & χ \\
+% Uvular voiced fricative & \verb|\textinvscr| & \verb|K| & ʁ \\
+% Pharyngeal voiceless fricative & \verb|\textcrh| & \verb|\*h| & ħ \\
+% Pharyngeal voiced fricative & \verb|\textrevglotstop| & \verb|Q| & ʕ
+% \\
+% Glottal voiced fricative & \verb|\texthth| & \verb|H| & ɦ \\
+% Alveolar voiceless lateral fricative & \verb|\textbeltl| & \verb|\*l|
+% & ɬ \\
+% Alveolar voiced lateral fricative & \verb|\textlyoghlig| & \verb|\*z|
+% & ɮ \\
+% Labiodental approximant & \color{red}{\verb|\labdentapp|} & \verb|V| &
+% ʋ \\
+% Alveolar approximant & \verb|\textturnr| & \verb|\*r| & ɹ \\
+% Retroflex approximant & \verb|\textturnrrtail| & \verb|\:R| & ɻ \\
+% Velar approximant & \verb|\textturnmrleg| & \color{red}{\verb|\*m|} &
+% ɰ \\
+% Retroflex lateral approximant & \verb|\textrtaill| & \verb|\:l| & ɭ \\
+% Palatal lateral approximant & \verb|\textturny| & \verb|L| & ʎ \\
+% Velar lateral approximant & \verb|\textscl| & \verb|\;L| & ʟ \\
+% \midrule
+% \insertTableNotes
+% \end{longtable}
+% \end{ThreePartTable}
+%
+% \subsection{Non-Pulmonic consonants}
+% \begin{longtable}{%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% >{\ipa[}l<{]}%
+% }%
+% \toprule
+% \endfirsthead
+% \toprule
+% \endhead
+% \bottomrule
+% \endfoot
+% Description & Input A & Input B &\multicolumn{1}{l}{Symbol}\\
+% \midrule
+% Bilabial click & \verb|\textbullseye| & \verb|\!o| & ʘ \\
+% Postalveolar click & \color{red}{\verb|\pstalvclick|} &
+% \color{red}{\verb|!|} & ǃ \\
+% Palatoalveolar click & \verb|\textdoublebarpipe| &
+% \color{red}{\verb|\!c|} & ǂ \\
+% Alveolar lateral click & \verb|\textdoublepipe| & \verb+||+ & ǁ \\
+% Bilabial implosive & \verb|\texthtb| & \verb|\!b| & ɓ \\
+% Dental implosive & \verb|\texthtd| & \verb|\!d| & ɗ \\
+% Palatal implosive & \verb|\texthtbardotlessj| & \verb|\!j| & ʄ \\
+% Velar implosive & \verb|\texthtg| & \verb|\!g| & ɠ \\
+% Uvular implosive & \verb|\texthtscg| & \verb|\!G| & ʛ \\
+% \end{longtable}
+%
+% \subsection{Other symbols}
+% {%
+% \small
+% \begin{longtable}{%
+% >{\footnotesize}l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% >{\ipa[}l<{]}%
+% }%
+% \toprule
+% \multicolumn{1}{l}{Description} & Input A & Input B
+% &\multicolumn{1}{l}{Symbol}\\
+% \midrule
+% Labial-velar voiceless fricative & \verb|\textturnw| & \verb|\*w| & ʍ
+% \\
+% Labial-palatal voiced approximant & \verb|\textturnh| & \verb|4| & ɥ
+% \\
+% Epiglottal voiceless fricative & \verb|\textsch| & \verb|\;H| & ʜ \\
+% Epiglottal voiced fricative/approximant & \verb|\textbarrevglotstop| &
+% \color{red}{\verb|\*1|} & ʢ \\
+% Alveolar voiced lateral flap & \verb|\textturnlonglegr| &
+% \color{red}{\verb|\!r|} & ɺ \\
+% Epiglottal plosive & \verb|\textbarglotstop| & \verb|\*2| & ʡ \\
+% Alveolo-palatal voiceless fricative & \verb|\textctc| & \verb|C| & ɕ \\
+% Alveolo-palatal voiced fricative & \verb|\textctz| &
+% \color{red}{\verb|\*Z|} & ʑ \\
+% Postalveolar-velar voiceless fricative & \verb|\texththeng| &
+% \color{red}{\verb|\*3|} & ɧ \\
+% \bottomrule
+% \end{longtable}
+% }
+%
+% \subsection{Vowels}
+% {%
+% \small
+% \begin{longtable}{%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% >{\ipa[}l<{]}%
+% }%
+% \toprule
+% \endfirsthead
+% \toprule
+% \endhead
+% \bottomrule
+% \endfoot
+% Description & Input A & Input B &\multicolumn{1}{l}{Symbol}\\
+% \midrule
+% Near-close near-front unrounded & \verb|\textsci| & \verb|I| & ɪ \\
+% Near-close near-front rounded & \verb|\textscy| & \verb|y| & ʏ \\
+% Open-mid front unrounded & \verb|\textepsilon| & \verb|E| & ɛ \\
+% Close central unrounded & \verb|\textbari| & \verb|1| & ɨ \\
+% Close central rounded & \verb|\textbaru| & \verb|0| & ʉ \\
+% Near-close near-back rounded & \verb|\textupsilon| & \verb|U| & ʊ \\
+% Close-mid central unrounded & \verb|\textreve| & \verb|9| & ɘ \\
+% Close-mid central rounded & \verb|\textbaro| & \verb|8| & ɵ \\
+% Mid central vowel & \verb|\textschwa| & \verb|@| & ə \\
+% Open-mid central unrounded & \verb|\textrevepsilon| & \verb|3| & ɜ \\
+% Open-mid central rounded & \verb|\textcloserevepsilon| &
+% \textcolor{red}{\texttt{\&}} & ɞ \\
+% Near-open central & \verb|\textturna| & \verb|5| & ɐ \\
+% Close back unrounded & \verb|\textturnm| & \verb|W| & ɯ \\
+% Close-mid back unrounded & \verb|\textramshorns| & \verb|7| & ɤ \\
+% Open-mid back unrounded & \verb|\textturnv| & \verb|2| & ʌ \\
+% Open-mid back rounded & \verb|\textopeno| & \verb|O| & ɔ \\
+% Open back unrounded & \verb|\textscripta| & \verb|A| & ɑ \\
+% Open back rounded & \verb|\textturnscripta| & \verb|6| & ɒ \\
+% \end{longtable}
+% }%
+%
+% \subsection{Independent diacritics}
+% \begin{longtable}{%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% >{\ipa[}l<{]}%
+% }%
+% \toprule
+% Description & Input A & Input B & \multicolumn{1}{l}{Symbol}\\
+% \midrule
+% Rhoticity & \verb|ə\textrhoticity|\tnotex{1} & \color{red}{\verb|ə\tr|}
+% & ə˞\\
+% No audible release & \verb|n\textcorner| & \color{red}{\verb|n\tc|} & n̚
+% \\
+% Tie bar (standalone) & \color{red}{\verb|\stdlnetiebar{əi}|} &
+% \color{red}{\verb|\ts{əi}|} & ə‿i \\
+% \bottomrule
+% \end{longtable}
+%
+% \subsection{Dependent diacritics}
+% \begin{TableNotes}
+% \item[1] The documentation of package the \pkg{tipa} on p.\ 53
+% describes a shorthand command
+% i.e.~\texttt{\textbackslash\textbar\~{}{\meta{arg}}} which is not
+% functional. I haven't investigated the reasons, but instead provided a new
+% shorthand command for this character.
+% \end{TableNotes}
+% \begin{ThreePartTable}
+% {%
+% \small
+% \begin{longtable}{%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% l@{\hspace{0.3cm}-\hspace{0.3cm}}%
+% >{\ipa[}l<{]}%
+% }%
+% \toprule
+% \endfirsthead
+% \toprule
+% \endhead
+% \bottomrule
+% \endfoot
+% Description & Input A & Input B & \multicolumn{1}{l}{Symbol}\\
+% \midrule
+% Voiceless & \verb|\textsubring{m}| & \verb|\r*m| & m̥\\
+% Voiced & \verb|\textsubwedge{s}| & \verb|\v*s| & s̬\\
+% More rounded & \verb|\textsubrhalfring{w}| & \verb+\|)w+ & w̹\\
+% Less rounded & \verb|\textsublhalfring{w}| & \verb+\|(w+ & w̜\\
+% Advanced & \verb|\textsubplus{ə}| & \verb-\|+e- & ə̟\\
+% Retracted & \verb|\textsubbar{l}| & \verb+\=*l+ & l̠\\
+% Mid-centralized & \verb|\textovercross{e}| & \verb+\|x{e}+ & e̽\\
+% Syllabic & \verb|\textsyllabic{n}| & \verb|\s{n}| & n̩\\
+% Non-syllabic & \verb|\textsubarch{a}| & \color{red}{\verb|\ns{a}|} & a̯
+% \\
+% Breathy voiced & \verb|\textsubumlaut{b}| & \verb|\"*b| & b̤ \\
+% Creaky voiced & \verb|\textsubtilde{ə}| & \verb|\~*@| & ə̰ \\
+% Linguolabial & \verb|\textseagull{l}| & \verb+\|ml+ & l̼ \\
+% Velarized & \verb|\textsuperimposetilde{i}| & \verb+\vl{i}+\tnote{1} & i̴
+% \\
+% Raised & \verb|\textraising{ə}| & \verb+\|’@+ & ə̝ \\
+% Lowered & \verb|\textlowering{ə}| & \verb+\|‘@+ & ə̞ \\
+% Advanced tongue root & \verb|\textadvancing{ə}| & \verb+\|<@+ & ə̘ \\
+% Retracted tongue root & \verb|\textretracting{ə}| & \verb+\|>@+ & ə̙ \\
+% Dental & \verb|\textsubbridge{t}| & \verb+\|[t+ & t̪ \\
+% Apical & \verb|\textinvsubbridge{t}| & \verb+\|]t+ & t̺ \\
+% Laminal & \verb|\textsubsquare{s}| & \color{red}{\verb|\lmn{s}|} & s̻ \\
+% Tie bar (top) & \verb|\texttoptiebar{əi}| & \verb|\t{əi}| & ə͡i\\
+% Tie bar (bottom) & \verb|\textbottomtiebar{əi}| & \verb|\t*{əi}| & ə͜i\\
+% \midrule
+% \insertTableNotes
+% \end{longtable}
+% }%
+% \end{ThreePartTable}
+% \end{documentation}
+% \begin{implementation}
+% \section{Implementation}
+% \begin{macrocode}
+%<@@=tipauni>
+%<*package>
+% \end{macrocode}
+% Provide the package with some description \textit{\&} version specifications.
+% \begin{macrocode}
+\ProvidesPackage{tipauni}[2021/04/27 v0.1
+Unicode characters with TIPA commands]
+% \end{macrocode}
+% Load necessary packages.
+% \begin{macrocode}
+\RequirePackage{xparse}
+\RequirePackage{fontspec}
+\RequirePackage{environ}
+\RequirePackage{xkeyval}
+\RequirePackage{ifthen}
+% \end{macrocode}
+% Package options are provided using the package \pkg{xkeyval}. The following
+% commands provide the option \verb|documentfont|.
+% \begin{macrocode}
+\setmainfont{CharisSIL} %% https://ctan.org/pkg/charissil
+\DeclareOptionX{documentfont}{\setmainfont{#1}}
+\newif\ifnontipaignore
+\DeclareOptionX{incompatible}{\nontipaignoretrue}
+\ProcessOptionsX\relax
+% \end{macrocode}
+% The following commands were kindly suggested by Phelype Oleinik for developing
+% a conditional which is always global.
+% \begin{macrocode}
+\newif\ifnontipa
+\protected\def\nontipatrue{\global\let\ifnontipa\iftrue}
+\protected\def\nontipafalse{\global\let\ifnontipa\iffalse}
+\ifnontipaignore
+ \protected\def\nontipatrue{}
+\fi
+% \end{macrocode}
+% The following commands provide the command \verb|\tipaunicmd| for printing
+% characters that are missing in the \pkg{tipa} package.
+% \begin{macrocode}
+\NewDocumentCommand\tipaunicmd{ m m }{%
+ \NewDocumentCommand#1{ }{\nontipatrue #2}%
+}%
+% \end{macrocode}
+% As can be seen above, everytime when a command that is absent in the
+% \pkg{tipa} package is provided, it sets the conditional \verb|nontipa| to true
+% value. At the end of the document this package checks if there is any instance
+% of a non-TIPA command. If yes, it generates a warning in the .log file saying
+% that this code is now incompatible with the TIPA package and some characters
+% might be displayed with a different font. All of this is achieved with the
+% help of following commands. The discussion on
+% \href{https://topanswers.xyz/tex?q=1735}{this} question helped a lot for fine
+% tuning the warning message.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifnontipa
+ \PackageWarningNoLine{tipauni}{%
+ You have used a command(s) that is (are) not\MessageBreak
+ supported by package TIPA. Thus your current code is\MessageBreak
+ incompatible with that package. These commands are\MessageBreak
+ printed with a different Unicode font. Refer to the\MessageBreak
+ documentation of package tipauni for a list of\MessageBreak
+ commands that are not supported in TIPA%
+ }%
+ \else
+ \fi
+}%
+% \end{macrocode}
+% From here the code for obtaining Unicode characters with TIPA commands
+% starts.
+% \begin{macrocode}
+\DeclareTextCommand{\tipaunistar}{TU}[1]{{#1}}
+\DeclareTextAccentDefault{\tipaunistar}{TU}
+\DeclareTextCommand{\tipaunisemicolon}{TU}[1]{{#1}}
+\DeclareTextAccentDefault{\tipaunisemicolon}{TU}
+\DeclareTextCommand{\tipaunicolon}{TU}[1]{{#1}}
+\DeclareTextAccentDefault{\tipaunicolon}{TU}
+\DeclareTextCommand{\tipaunibang}{TU}[1]{{#1}}
+\DeclareTextAccentDefault{\tipaunibang}{TU}
+\DeclareTextCommand{\tipaunipipe}{TU}[2]{\@pipeshorthands{#1}{#2}}
+\DeclareTextAccentDefault{\tipaunipipe}{TU}
+%% Pulmonic consonants
+%%-- Stops
+%%--** Retroflex
+\DeclareTextSymbol{\textrtailt}{TU}{"0288}%% ʈ
+\DeclareTextComposite{\tipaunicolon}{TU}{t}{"288}
+\DeclareTextSymbol{\textrtaild}{TU}{"0256}%% ɖ
+\DeclareTextComposite{\tipaunicolon}{TU}{d}{"256}
+%%--** Palatal
+\DeclareTextSymbol{\textbardotlessj}{TU}{"25F}%% ɟ
+\DeclareTextComposite{\tipaunistar}{TU}{j}{"25F}
+%%--** Uvular
+\DeclareTextSymbol{\textscg}{TU}{"262}%% ɢ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{G}{"262}
+%%--** Glottal
+\DeclareTextSymbol{\textglotstop}{TU}{"294}%% ʔ
+%%-- Nasals
+%%--** Labiodental
+\DeclareTextSymbol{\textltailm}{TU}{"271}%% ɱ
+%%--** Retroflex
+\DeclareTextSymbol{\textrtailn}{TU}{"273}%% ɳ
+\DeclareTextComposite{\tipaunicolon}{TU}{n}{"273}
+%%--** Palatal
+\DeclareTextSymbol{\textltailn}{TU}{"272}%% ɲ
+\DeclareTextComposite{\tipaunistar}{TU}{n}{"272}
+%%--** Uvular
+\DeclareTextSymbol{\textscn}{TU}{"274}%% ɴ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{N}{"274}
+%%-- Trills
+%%--** Bilabial
+\DeclareTextSymbol{\textscb}{TU}{"299}%% ʙ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{B}{"299}
+%%--** Uvular
+\DeclareTextSymbol{\textscr}{TU}{"280}%% ʀ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{R}{"280}
+%%-- Taps or flaps
+%%-- Labiodental flap
+\tipaunicmd{\labdentflap}{ⱱ} %% tipauni-exclusive
+\DeclareTextComposite{\tipaunistar}{TU}{v}{"2C71} %% tipauni-exclusive
+%%--** Alveolar
+\DeclareTextSymbol{\textfishhookr}{TU}{"27E}%% ɾ
+%%--** Retroflex
+\DeclareTextSymbol{\textrtailr}{TU}{"27D}%% ɽ
+\DeclareTextComposite{\tipaunicolon}{TU}{r}{"27D}
+%%-- Fricatives
+%%--** Bilabial
+\DeclareTextSymbol{\textphi}{TU}{"278}%% ɸ
+\DeclareTextSymbol{\textbeta}{TU}{"3B2}%% β
+%%--** Dental
+\DeclareTextSymbol{\texttheta}{TU}{"3B8}%% θ
+%%--** Postalveolar
+\DeclareTextSymbol{\textesh}{TU}{"283}%% ʃ
+\DeclareTextSymbol{\textyogh}{TU}{"292}%% ʒ
+%%--** Retroflex
+\DeclareTextSymbol{\textrtails}{TU}{"282}%% ʂ
+\DeclareTextComposite{\tipaunicolon}{TU}{s}{"282}
+\DeclareTextSymbol{\textrtailz}{TU}{"290}%% ʐ
+\DeclareTextComposite{\tipaunicolon}{TU}{z}{"290}
+%%--** Palatal
+\DeclareTextSymbol{\textctj}{TU}{"29D}%% ʝ
+%%--** Velar
+\DeclareTextSymbol{\textgamma}{TU}{"263}%% ɣ
+%%--** Uvular
+\DeclareTextSymbol{\textchi}{TU}{"3C7}%% χ
+\DeclareTextSymbol{\textinvscr}{TU}{"281}%% ʁ
+%%--** Pharyngeal
+\DeclareTextSymbol{\textcrh}{TU}{"127}%% ħ
+\DeclareTextComposite{\tipaunistar}{TU}{h}{"127}
+\DeclareTextSymbol{\textrevglotstop}{TU}{"295}%% ʕ
+%%--** Glottal
+\DeclareTextSymbol{\texthth}{TU}{"266}%% ɦ
+%%-- Lateral fricatives
+%%--** Alveolar
+\DeclareTextSymbol{\textbeltl}{TU}{"26C}%% ɬ
+\DeclareTextComposite{\tipaunistar}{TU}{l}{"26C}
+\DeclareTextSymbol{\textlyoghlig}{TU}{"26E}%% ɮ
+\DeclareTextComposite{\tipaunistar}{TU}{z}{"26E}
+%%-- Approximants
+%%-- Labiodental approximant
+\tipaunicmd{\labdentapp}{ʋ} %% tipauni-exclusive
+%%--** Alveolar
+\DeclareTextSymbol{\textturnr}{TU}{"279}%% ɹ
+\DeclareTextComposite{\tipaunistar}{TU}{r}{"279}
+%%--** Retroflex
+\DeclareTextSymbol{\textturnrrtail}{TU}{"27B}%% ɻ
+\DeclareTextComposite{\tipaunicolon}{TU}{R}{"27B}
+%%--** Velar
+\DeclareTextSymbol{\textturnmrleg}{TU}{"270}%% ɰ
+\DeclareTextComposite{\tipaunistar}{TU}{m}{"270}
+%%-- Lateral approximants
+%%--** Retroflex
+\DeclareTextSymbol{\textrtaill}{TU}{"26D}%% ɭ
+\DeclareTextComposite{\tipaunicolon}{TU}{l}{"26D}
+\DeclareTextSymbol{\textturny}{TU}{"28E}%% ʎ
+\DeclareTextSymbol{\textscl}{TU}{"29F}%% ʟ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{L}{"29F}
+%% Non-pulmonic consonants
+%%-- Clicks
+%%--** Bilabial
+\DeclareTextSymbol{\textbullseye}{TU}{"298}%% ʘ
+\DeclareTextComposite{\tipaunibang}{TU}{o}{"298}
+%%-- Postalveolar click
+\tipaunicmd{\pstalvclick}{ǃ} %% tipauni-exclusive
+%%--** Palato-alveolar
+\DeclareTextSymbol{\textdoublebarpipe}{TU}{"1C2}%% ǂ
+\DeclareTextComposite{\tipaunibang}{TU}{c}{"1C2} %% tipauni-exclusive
+%%--** Alveolar lateral
+\DeclareTextSymbol{\textdoublepipe}{TU}{"1C1}% ǁ
+%%-- Implosives
+%%--** Bilabial
+\DeclareTextSymbol{\texthtb}{TU}{"253}%% ɓ
+\DeclareTextComposite{\tipaunibang}{TU}{b}{"253}
+%%--** Dental
+\DeclareTextSymbol{\texthtd}{TU}{"257}%% ɗ
+\DeclareTextComposite{\tipaunibang}{TU}{d}{"257}
+%%--** Palatal
+\DeclareTextSymbol{\texthtbardotlessj}{TU}{"284}%% ʄ
+\DeclareTextComposite{\tipaunibang}{TU}{j}{"284}
+%%--** Velar
+\DeclareTextSymbol{\texthtg}{TU}{"260}%% ɠ
+\DeclareTextComposite{\tipaunibang}{TU}{g}{"260}
+%%--** Uvular
+\DeclareTextSymbol{\texthtscg}{TU}{"29B}%% ʛ
+\DeclareTextComposite{\tipaunibang}{TU}{G}{"29B}
+%% Other consonants
+\DeclareTextSymbol{\textturnw}{TU}{"28D}%% ʍ
+\DeclareTextSymbol{\textturnh}{TU}{"265}%% ɥ
+\DeclareTextSymbol{\textsch}{TU}{"29C}%% ʜ
+\DeclareTextSymbol{\textbarrevglotstop}{TU}{"2A2}%% ʢ
+\DeclareTextComposite{\tipaunistar}{TU}{1}{"2A2} %% tipauni-exclusive
+\DeclareTextSymbol{\textbarglotstop}{TU}{"2A1}%% ʡ
+\DeclareTextComposite{\tipaunistar}{TU}{2}{"2A1} %% tipauni-exclusive
+\DeclareTextSymbol{\textctc}{TU}{"255}%% ɕ
+\DeclareTextSymbol{\textctz}{TU}{"291}%% ʑ
+\DeclareTextComposite{\tipaunistar}{TU}{Z}{"291} %% tipauni-exclusive
+\DeclareTextSymbol{\textturnlonglegr}{TU}{"27A}%% ɺ
+\DeclareTextComposite{\tipaunibang}{TU}{r}{"27A} %% tipauni-exclusive
+\DeclareTextSymbol{\texththeng}{TU}{"267}%% ɧ
+\DeclareTextComposite{\tipaunistar}{TU}{3}{"267} %% tipauni-exclusive
+\DeclareTextComposite{\tipaunistar}{TU}{k}{"029E} % ʞ
+\DeclareTextComposite{\tipaunistar}{TU}{t}{"287} % ʇ
+\DeclareTextComposite{\tipaunistar}{TU}{w}{"28D} % ʍ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{E}{"1D07} % ᴇ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{J}{"1D0A} % ᴊ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{A}{"1D00} % ᴀ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{H}{"29C} % ʜ
+\DeclareTextComposite{\tipaunisemicolon}{TU}{U}{"1D1C} % ᴜ
+%% Vowels
+\DeclareTextSymbol{\textsci}{TU}{"26A}%% ɪ
+\DeclareTextSymbol{\textscy}{TU}{"28F}%% ʏ
+\DeclareTextSymbol{\textepsilon}{TU}{"25B}%% ɛ
+\DeclareTextSymbol{\textbari}{TU}{"268}%% ɨ
+\DeclareTextSymbol{\textbaru}{TU}{"289}%% ʉ
+\DeclareTextSymbol{\textupsilon}{TU}{"28A}%% ʊ
+\DeclareTextSymbol{\textreve}{TU}{"258}%% ɘ
+\DeclareTextSymbol{\textbaro}{TU}{"275}%% ɵ
+\DeclareTextSymbol{\textschwa}{TU}{"259}%% ə
+\DeclareTextSymbol{\textrevepsilon}{TU}{"25C}%% ɜ
+\DeclareTextSymbol{\textcloserevepsilon}{TU}{"25E}%% ɞ
+\DeclareTextSymbol{\textturna}{TU}{"250}%% ɐ
+\DeclareTextSymbol{\textturnm}{TU}{"26F}%% ɯ
+\DeclareTextSymbol{\textramshorns}{TU}{"264}%% ɤ
+\DeclareTextSymbol{\textturnv}{TU}{"28C}%% ʌ
+\DeclareTextSymbol{\textopeno}{TU}{"254}%% ɔ
+\DeclareTextSymbol{\textscripta}{TU}{"251}%% ɑ
+\DeclareTextSymbol{\textturnscripta}{TU}{"252}%% ɒ
+%% Independent diacritic marks
+%%-- Rhoticity
+\DeclareTextSymbol{\textrhoticity}{TU}{"2DE}%% ˞
+\tipaunicmd{\tr}{˞}
+%%-- Tie bar (below)
+\DeclareTextCommand{\tipaunitextbottomtiebar}{TU}[2]{#1\symbol{"035C}#2}
+\NewDocumentCommand\textbottomtiebar{ m }{\tipaunitextbottomtiebar#1}
+%%-- Tie bar (below) - standalone character
+\DeclareTextCommand{\tipaunits}{TU}[2]{#1\symbol{"203F}#2}
+\NewDocumentCommand\stdlnetiebar{ m }{\tipaunits#1}
+\NewDocumentCommand\ts{ m }{\tipaunits#1}
+% \end{macrocode}
+% The following commands redefine the TIPA shorthand input for dependent
+% diacritics.
+% \begin{macrocode}
+%% No audible release
+\DeclareUnicodeAccent{\textcorner}{TU}{"31A}%% ̚
+\tipaunicmd{\tc}{̚}
+%% Syllabic
+\DeclareUnicodeAccent{\textsyllabic}{TU}{"0329} %% ̩
+\NewDocumentCommand\s{ m }{\textsyllabic{\textipa{#1}}\nontipatrue}
+%% Non-syllabic
+\DeclareUnicodeAccent{\textsubarch}{TU}{"032F} %% ̯
+\NewDocumentCommand\ns{ m }{\textsubarch{\textipa{#1}}}
+%% Laminal
+\DeclareUnicodeAccent{\textsubsquare}{TU}{"033B} %% ̻
+\NewDocumentCommand\lmn{ m }{\textsubsquare{\textipa{#1}}\nontipatrue}
+%% Other complex shorthand commands
+\DeclareTextCommand{\@pipeshorthands}{TU}[2]{%
+ \if #1[\tipaunisubbridge{\textipa{#2}}\else
+ \if #1]\tipauniinvsubbridge{\textipa{#2}}\else
+ \if #1(\tipaunisublhalfring{\textipa{#2}}\else
+ \if #1)\tipaunisubrhalfring{\textipa{#2}}\else
+ \if #1+\tipaunisubplus{\textipa{#2}}\else
+ \if #1'\tipauniraising{\textipa{#2}}\else
+ \if #1`\tipaunilowering{\textipa{#2}}\else
+ \if #1<\tipauniadvancing{\textipa{#2}}\else
+ \if #1>\tipauniretracting{\textipa{#2}}\else
+ \if #1x\tipauniovercross{\textipa{#2}}\else
+ \if #1m\tipauniseagull{\textipa{#2}}\else #1#2%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+}%
+\DeclareTextAccentDefault{\@pipeshorthands}{TU}
+\NewDocumentCommand\super{ m }{%
+ \ifthenelse{\equal{#1}{h}}{ʰ}{\relax}%
+ \ifthenelse{\equal{#1}{w}}{ʷ}{\relax}%
+ \ifthenelse{\equal{#1}{j}}{ʲ}{\relax}%
+ \ifthenelse{\equal{#1}{ɣ}}{ˠ}{\relax}%
+ \ifthenelse{\equal{#1}{ʕ}}{ˤ}{\relax}%
+ \ifthenelse{\equal{#1}{n}}{ⁿ}{\relax}%
+ \ifthenelse{\equal{#1}{l}}{ˡ}{\relax}%
+}%
+% \end{macrocode}
+% The replacement of several characters with different IPA symbols will be done
+% in a small loop. That loop will loop over the contents of a sequence, and each
+% sequence element will contain two token-list elements (braced groups),
+% specifying a regular expression (really just one or two characters, nothing
+% complicated) and the replacement text for that expression.
+% \begin{macrocode}
+\ExplSyntaxOn
+\seq_new:N \l__tipauni_replace_maps_seq
+\seq_new:N \l__tipauni_remove_from_accents_seq
+\tl_new:N \l__tipauni_textipa_tl
+% \end{macrocode}
+% The sequence \cs{l__tipauni_replace_maps_seq} stores the replacement mappings,
+% we have to keep in mind that these are regular expressions in the first braced
+% group, so characters that are not alpha-numeric should be escaped. Also, since
+% we're using \cs{seq_set_split:Nnn} here (which doesn't ignore empty elements)
+% we have to make sure to not put too many commas in the list.
+% First we set the mappings in a temporary sequence to pre-build the regular
+% expressions to gain at least a bit of speed.
+% \begin{macrocode}
+\seq_set_split:Nnn \l_tmpa_seq { , }
+ {
+% \end{macrocode}
+% First we put the composites, which should have highest priority into the
+ % sequence (with some escaping of the characters which aren't alpha-numeric):
+% \begin{macrocode}
+ { \c{\! | tipaunibang } G }{ʛ},
+ { \c{\! | tipaunibang } g }{ɠ},
+ { \c{\* | tipaunistar } 1 }{ʢ},
+ { \c{\* | tipaunistar } 2 }{ʡ},
+ { \c{\* | tipaunistar } 3 }{ɧ},
+ { \c{\* | tipaunistar } Z }{ʑ},
+ { \c{\: | tipaunicolon } R }{ɻ},
+ { \c{\; | tipaunisemicolon} A }{ᴀ},
+ { \c{\; | tipaunisemicolon} G }{ɢ},
+ { \c{\; | tipaunisemicolon} B }{ʙ},
+ { \c{\; | tipaunisemicolon} E }{ᴇ},
+ { \c{\; | tipaunisemicolon} H }{ʜ},
+ { \c{\; | tipaunisemicolon} J }{ᴊ},
+ { \c{\; | tipaunisemicolon} L }{ʟ},
+ { \c{\; | tipaunisemicolon} N }{ɴ},
+ { \c{\; | tipaunisemicolon} R }{ʀ},
+ { \c{\; | tipaunisemicolon} U }{ᴜ},
+% \end{macrocode}
+% Next the multi-letter mappings:
+% \begin{macrocode}
+ {\|\|}{ǁ}, {\"\"}{ˌ},
+% \end{macrocode}
+% And finally the remaining single-letter mappings:
+% \begin{macrocode}
+ {5}{ɐ}, {A}{ɑ}, {6}{ɒ}, {2}{ʌ}, {B}{β}, {C}{ɕ}, {D}{ð}, {9}{ɘ}, {E}{ɛ},
+ {3}{ɜ}, {g}{ɡ}, {G}{ɣ}, {7}{ɤ}, {H}{ɦ}, {L}{ʎ}, {4}{ɥ}, {1}{ɨ}, {I}{ɪ},
+ {J}{ʝ}, {M}{ɱ}, {W}{ɯ}, {N}{ŋ}, {8}{ɵ}, {O}{ɔ}, {F}{ɸ}, {R}{ɾ}, {K}{ʁ},
+ {S}{ʃ}, {T}{θ}, {0}{ʉ}, {U}{ʊ}, {V}{ʋ}, {X}{χ}, {Y}{ʏ}, {Z}{ʒ},
+ {P}{ʔ}, {Q}{ʕ},
+ {\:}{ː}, {\;}{ˑ}, {\!}{ǃ}, {\&}{ɞ}, {\@}{ə}, {\|}{ǀ}, {\"}{ˈ}
+ }
+% \end{macrocode}
+% Now we build the real sequence from the temporary one. We have to call
+% \cs{regex_const:Nn} for each item to precompile the regular expressions, then
+% store the regular expressions name and the replacement in the correct
+% sequence.
+% \begin{macrocode}
+\seq_clear:N \l__tipauni_replace_maps_seq
+\seq_map_inline:Nn \l_tmpa_seq
+ {
+ \exp_args:Nco \regex_const:Nn
+ { c__tipauni_ \exp_args:No \tl_to_str:n { \use_i:nn #1 } _regex }
+ { \use_i:nn #1 }
+ \seq_put_right:Nx \l__tipauni_replace_maps_seq
+ {
+ \exp_not:c
+ { c__tipauni_ \exp_args:No \tl_to_str:n { \use_i:nn #1 } _regex }
+ { \exp_not:o { \use_ii:nn #1 } }
+ }
+ }
+% \end{macrocode}
+% Since we have a non-standard syntax for some of the accent macros (having a
+% starred variant) we have to exclude them from the list of accents which get
+% special handling from \cs{text_expand:n} or else the stars will be surrounded
+% by braces and not found by \cs{@ifstar}. This sequence stores the problematic
+% accents which need to be excluded.
+% \begin{macrocode}
+\seq_set_split:Nnn \l__tipauni_remove_from_accents_seq { , }
+ { \~, \=, \", \r, \v, \t }
+% \end{macrocode}
+% \begin{macrocode}
+\cs_new_protected:Npn \__tipauni_nontipa_search:n #1
+ {
+ \regex_match:nnT {ⱱ} {#1} \nontipatrue
+ \regex_match:nnT {ɞ} {#1} \nontipatrue
+ \regex_match:nnT {ɰ} {#1} \nontipatrue
+ \regex_match:nnT {ǃ} {#1} \nontipatrue
+ \regex_match:nnT {ǂ} {#1} \nontipatrue
+ \regex_match:nnT {ʢ} {#1} \nontipatrue
+ \regex_match:nnT {ɺ} {#1} \nontipatrue
+ \regex_match:nnT {ʑ} {#1} \nontipatrue
+ \regex_match:nnT {ɧ} {#1} \nontipatrue
+ }
+\cs_generate_variant:Nn \__tipauni_nontipa_search:n { o }
+\NewDocumentCommand\textipa{ +m }%
+ {
+ \begingroup
+ \let\*\tipaunistar
+ \let\:\tipaunicolon
+ \let\;\tipaunisemicolon
+ \let\!\tipaunibang
+ \let\|\tipaunipipe
+ \let\t\tipaunit
+ \catcode`\&=11
+% \end{macrocode}
+% Here we locally remove the accents which have a starred variant from the
+% exclusion list of \cs{text_expand:n}.
+% \begin{macrocode}
+ \seq_map_inline:Nn \l__tipauni_remove_from_accents_seq
+ { \tl_remove_all:Nn \l_text_accents_tl {##1} }
+% \end{macrocode}
+% Here is the real replacement. First we carefully expand the input using
+% \cs{text_expand:n}, then we'll loop over the sequence. Since each sequence
+% element contains two brace groups we can use the element |##1| directly as the
+% two normal argument to \cs{regex_replace_all:NnN}.
+% \begin{macrocode}
+ \tl_set:Nx \l__tipauni_textipa_tl { \text_expand:n {#1} }
+ \seq_map_inline:Nn \l__tipauni_replace_maps_seq
+ { \regex_replace_all:NnN ##1 \l__tipauni_textipa_tl }
+ \l__tipauni_textipa_tl
+% \end{macrocode}
+% Finally test for \pkg{tipa}-incompatible symbols. We only test for the
+% incompatible symbols if the boolean is not yet true to save a bit of
+% processing time when the tests are not necessary. Since the used
+% \cs{regex_match:nnT} test needs the token list expanded we expand it only once
+% here with the |o|-variant.
+% \begin{macrocode}
+ \unless\ifnontipa
+ \__tipauni_nontipa_search:o \l__tipauni_textipa_tl
+ \fi
+ \endgroup
+ }
+\ExplSyntaxOff
+% \end{macrocode}
+% The following commands define the long commands for dependent diacritics.
+% \begin{macrocode}
+%%-- Dependent diacritic marks
+%%--** Voiceless
+\DeclareUnicodeAccent{\textsubring}{TU}{"0325} %% ̥
+\DeclareTextCommand{\r}{TU}{\tipaunisubring}
+\protected\def\tipaunisubring{\@ifstar{\TipaUniSubRing}{\TipaUniSubRing}}
+\NewDocumentCommand\TipaUniSubRing{ m }{\textsubring{\textipa{#1}}}
+%%--** Voiced
+\DeclareUnicodeAccent{\textsubwedge}{TU}{"032C} %% ̬
+\DeclareTextCommand{\v}{TU}{\tipaunisubwedge}
+\protected\def\tipaunisubwedge{\@ifstar{\TipaUniSubWedge}{\TipaUniSubWedge}}
+\NewDocumentCommand\TipaUniSubWedge{ m }{\textsubwedge{\textipa{#1}}}
+%%--** More rounded
+\DeclareUnicodeAccent{\textsubrhalfring}{TU}{"0339} %% ̹
+\NewDocumentCommand\tipaunisubrhalfring{ m }{\textsubrhalfring{\textipa{#1}}}
+%%--** Less rounded
+\DeclareUnicodeAccent{\textsublhalfring}{TU}{"031C} %% ̜
+\NewDocumentCommand\tipaunisublhalfring{ m }{\textsublhalfring{\textipa{#1}}}
+%%--** Advanced
+\DeclareUnicodeAccent{\textsubplus}{TU}{"031F} %% ̟
+\NewDocumentCommand\tipaunisubplus{ m }{\textsubplus{\textipa{#1}}}
+%%--** Retracted
+\DeclareUnicodeAccent{\textsubbar}{TU}{"0320} %% ̠
+\DeclareTextCommand{\=}{TU}{\tipaunisubbar}
+\protected\def\tipaunisubbar{\@ifstar{\TipaUniSubBar}{\TipaUniSubBar}}
+\NewDocumentCommand\TipaUniSubBar{ m }{\textsubbar{\textipa{#1}}}
+%%--** Mid-centralized
+\DeclareUnicodeAccent{\textovercross}{TU}{"033D} %% ̽
+\NewDocumentCommand\tipauniovercross{ m }{\textovercross{\textipa{#1}}}
+%%--** Breathy voiced
+\DeclareUnicodeAccent{\textsubumlaut}{TU}{"0324} %% ̤
+\DeclareTextCommand{\"}{TU}{\tipaunisubumlaut}
+\protected\def\tipaunisubumlaut{\@ifstar{\TipaUniSubUmlaut}{\TipaUniSubUmlaut}}
+\NewDocumentCommand\TipaUniSubUmlaut{ m }{\textsubumlaut{\textipa{#1}}}
+%%--** Creaky voiced
+\DeclareUnicodeAccent{\textsubtilde}{TU}{"0330} %% ̰
+\DeclareTextCommand{\~}{TU}{\tipaunisubtilde}
+\protected\def\tipaunisubtilde{\@ifstar{\TipaUniSubTilde}{\TipaUniSubTilde}}
+\NewDocumentCommand\TipaUniSubTilde{ m }{\textsubtilde{\textipa{#1}}}
+%%--** Linguo-labialized
+\DeclareUnicodeAccent{\textseagull}{TU}{"033C} %% ̼
+\NewDocumentCommand\tipauniseagull{ m }{\textseagull{#1}}
+%%--** Velarized
+\DeclareUnicodeAccent{\textsuperimposetilde}{TU}{"0334} %% ̴
+\NewDocumentCommand\tipaunisuperimposetilde{ m }{\textsuperimposetilde{#1}}
+\NewDocumentCommand\vl{ m }{\textsuperimposetilde{\textipa{#1}}}
+%%--** Raised
+\DeclareUnicodeAccent{\textraising}{TU}{"031D} %% ̝
+\NewDocumentCommand{\tipauniraising}{m}{\textraising{#1}}
+%%--** Lowered
+\DeclareUnicodeAccent{\textlowering}{TU}{"031E} %% ̞
+\NewDocumentCommand{\tipaunilowering}{m}{\textlowering{#1}}
+% %%--** Advanced tongue root
+\DeclareUnicodeAccent{\textadvancing}{TU}{"0318} %% ̘
+\NewDocumentCommand{\tipauniadvancing}{m}{\textadvancing{#1}}
+%%--** Retracted tongue root
+\DeclareUnicodeAccent{\textretracting}{TU}{"0319} %% ̙
+\NewDocumentCommand{\tipauniretracting}{m}{\textretracting{#1}}
+%%--** Dental
+\DeclareUnicodeAccent{\textsubbridge}{TU}{"032A} %% ̪
+\NewDocumentCommand\tipaunisubbridge{ m }{\textsubbridge{#1}}
+%%--** Apical
+\DeclareUnicodeAccent{\textinvsubbridge}{TU}{"033A} %% ̺
+\NewDocumentCommand\tipauniinvsubbridge{ m }{\textinvsubbridge{#1}}
+%%--** Tie bar (above)
+\DeclareTextCommand{\tipaunitexttoptiebar}{TU}[2]{#1\symbol{"0361}#2}
+\NewDocumentCommand\texttoptiebar{ m }{\tipaunitexttoptiebar#1}
+\DeclareTextCommand{\tipaunit}{TU}{\@ifstar{\textbottomtiebar}{\texttoptiebar}}
+% \end{macrocode}
+% Lastly the code for environment \texttt{IPA} is provided by the following.
+% \begin{macrocode}
+\NewEnviron{IPA}{\textipa{\BODY}}
+% \end{macrocode}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \end{implementation}
+%
+% \pagebreak
+%
+% \input{gfdl-tex.tex}
+%
+% \Finale
diff --git a/macros/unicodetex/latex/tipauni/tipauni.ins b/macros/unicodetex/latex/tipauni/tipauni.ins
new file mode 100644
index 0000000000..cdcc0d8ee5
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni.ins
@@ -0,0 +1,54 @@
+% File: tipauni.ins
+\input l3docstrip.tex
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+---------------------------------------------------------------------------
+Package: tipauni
+Author: Niranjan
+Description: For producing Unicode characters with TIPA commands.
+Repository: https://gitlab.com/niruvt/tipauni
+Bug tracker: https://gitlab.com/niruvt/tipauni/-/issues
+License: GPL v3.0+
+---------------------------------------------------------------------------
+
+LaTeX Package tipauni v0.1
+© 2021 Niranjan
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+The current maintainers of this work are Niranjan.
+
+This work consists of the files tipauni.dtx
+ tipauni.ins
+and the derived file tipauni.sty.
+---------------------------------------------------------------------------
+
+\endpreamble
+
+\usedir{tex/latex/\jobname}
+\generate{
+ \file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+
+\nopreamble\nopostamble
+\usedir{doc/latex/\jobname}
+\generate{
+ \file{README.txt}{\from{\jobname.dtx}{readme}}
+}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/unicodetex/latex/tipauni/tipauni.pdf b/macros/unicodetex/latex/tipauni/tipauni.pdf
new file mode 100644
index 0000000000..fcd67c1cea
--- /dev/null
+++ b/macros/unicodetex/latex/tipauni/tipauni.pdf
Binary files differ