%%
%% This is file `eso-pic.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% eso-pic.dtx  (with options: `package')
%% 
%% Copyright (C) 1998-2015
%% Rolf Niepraschk <Rolf.Niepraschk@gmx.de>
%% 
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in:
%% 
%%    http://www.latex-project.org/lppl.txt
%% 
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%% 
%% This work has the LPPL maintenance status "author-maintained".
%% 
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\ProvidesPackage{eso-pic}
   [2023/05/03 v3.0c eso-pic (RN)]
\providecommand*\LenToUnit[1]{#1}
\newdimen\ESO@tempdima
\newdimen\ESO@tempdimb
\newcommand\ESO@isMEMOIR[2]{#2}
\@ifclassloaded{memoir}{\renewcommand\ESO@isMEMOIR[2]{#1}}{}
\newcommand\AtPageUpperLeft[1]{%
  \put(0,-\ESO@yoffsetI){#1}%
}
\newcommand\AtPageLowerLeft[1]{\AtPageUpperLeft{%
  \put(0,-\paperheight){#1}}}
\newcommand\AtPageCenter[1]{\AtPageUpperLeft{%
  \put(.5\paperwidth,-.5\paperheight){#1}}%
}
\newcommand\AtStockLowerLeft{}
\ESO@isMEMOIR{%
  \renewcommand\AtStockLowerLeft[1]{%
    \begingroup
      \ESO@tempdima=-\stockwidth
      \advance\ESO@tempdima\trimedge
      \advance\ESO@tempdima\paperwidth
      \if@twoside\ifodd\c@page\else
        \ESO@tempdima=-\trimedge
      \fi\fi
      \ESO@tempdimb=-\stockheight
      \advance\ESO@tempdimb\paperheight
      \advance\ESO@tempdimb\trimtop
      \AtPageLowerLeft{%
        \put(\ESO@tempdima,\ESO@tempdimb){#1}%
      }%
    \endgroup
  }
}{%
  \let\AtStockLowerLeft=\AtPageLowerLeft
}
\newcommand\AtStockUpperLeft{}
\ESO@isMEMOIR{%
  \renewcommand\AtStockUpperLeft[1]{%
    \AtStockLowerLeft{%
      \put(0,\stockheight){#1}%
    }%
  }%
}{%
  \let\AtStockUpperLeft=\AtPageUpperLeft
}
\newcommand\AtStockCenter{}
\ESO@isMEMOIR{%
  \renewcommand\AtStockCenter[1]{%
    \AtStockLowerLeft{%
      \put(.5\stockwidth,.5\stockheight){#1}%
    }%
  }%
}{%
  \let\AtStockCenter=\AtPageCenter
}
\ESO@isMEMOIR{%
  \newcommand\AtTextUpperLeft[1]{%
    \begingroup
      \if@twoside
        \ifodd\c@page
          \ESO@tempdima=\spinemargin
        \else
          \ESO@tempdima=\paperwidth
          \advance\ESO@tempdima-\textwidth
          \advance\ESO@tempdima-\spinemargin
        \fi
      \else
        \ESO@tempdima=\spinemargin
      \fi
      \ESO@tempdimb=-\uppermargin
      \AtPageUpperLeft{%
        \put(\ESO@tempdima,\ESO@tempdimb){#1}%
      }%
    \endgroup
  }%
}{%
  \newcommand\AtTextUpperLeft[1]{%
    \begingroup
      \ESO@tempdima=1in\relax
      \if@twoside
        \ifodd\c@page
          \advance\ESO@tempdima\oddsidemargin
        \else
          \advance\ESO@tempdima\evensidemargin
        \fi
      \else
        \advance\ESO@tempdima\oddsidemargin
      \fi
      \ESO@tempdimb=-1in\relax
      \advance\ESO@tempdimb-\topmargin
      \advance\ESO@tempdimb-\headheight
      \advance\ESO@tempdimb-\headsep
      \AtPageUpperLeft{%
        \put(\ESO@tempdima,\ESO@tempdimb){#1}%
      }%
    \endgroup
  }
}
\newcommand\AtTextLowerLeft[1]{\AtTextUpperLeft{%
  \put(0,-\textheight){#1}}}
\newcommand\AtTextCenter[1]{\AtTextUpperLeft{%
  \put(.5\textwidth,-.5\textheight){#1}}}
\newcommand{\ESO@HookIBG}{}
\newcommand{\ESO@HookIIBG}{}
\newcommand{\ESO@HookIIIBG}{}
\newcommand{\ESO@HookIFG}{}
\newcommand{\ESO@HookIIFG}{}
\newcommand{\ESO@HookIIIFG}{}
\newcommand{\ESO@HookI}{}
\newcommand{\ESO@HookII}{}
\newcommand{\ESO@HookIII}{}
\let\ESO@HookI=\ESO@HookIBG
\let\ESO@HookII=\ESO@HookIIBG
\let\ESO@HookIII=\ESO@HookIIIBG
\newcommand{\AddToShipoutPictureBG}{%
  \@ifstar{\g@addto@macro\ESO@HookIIBG}{\g@addto@macro\ESO@HookIBG}}
\newcommand{\AddToShipoutPicture}{}
\let\AddToShipoutPicture=\AddToShipoutPictureBG
\newcommand{\AddToShipoutPictureFG}{%
  \@ifstar{\g@addto@macro\ESO@HookIIFG}{\g@addto@macro\ESO@HookIFG}}
\newcommand{\ClearShipoutPictureBG}{\global\let\ESO@HookIBG\@empty}
\newcommand{\ClearShipoutPicture}{}
\let\ClearShipoutPicture=\ClearShipoutPictureBG
\newcommand{\ClearShipoutPictureFG}{\global\let\ESO@HookIFG\@empty}
\ESO@isMEMOIR{%
  \newcommand*\ESO@MEMOIR@corr{%
    \ESO@tempdima=-\trimedge
    \advance\ESO@tempdima-\paperwidth
    \advance\ESO@tempdima\stockwidth
    \if@twoside\ifodd\c@page\else
      \advance\ESO@tempdima2\trimedge
      \advance\ESO@tempdima\paperwidth
      \advance\ESO@tempdima-\stockwidth
    \fi\fi
    \ESO@tempdimb=\ESO@yoffsetI
    \advance\ESO@tempdimb-\trimtop
  }
  \nointerlineskip
  \AddToHook{shipout/background}{%
    \ESO@MEMOIR@corr
    \put(\ESO@tempdima,\ESO@tempdimb){%
      \ESO@HookIIIBG\ESO@HookIBG\ESO@HookIIBG
      \global\let\ESO@HookIIBG\@empty
    }%
  }%
  \AddToHook{shipout/foreground}{%
    \ESO@MEMOIR@corr
    \put(\ESO@tempdima,\ESO@tempdimb){%
      \ESO@HookIFG\ESO@HookIIFG\ESO@HookIIIFG
      \global\let\ESO@HookIIFG\@empty
    }%
  }%
}{%
  \nointerlineskip
  \AddToHook{shipout/background}{%
    \put(0,\ESO@yoffsetI){%
      \ESO@HookIIIBG\ESO@HookIBG\ESO@HookIIBG
      \global\let\ESO@HookIIBG\@empty
    }%
  }%
  \AddToHook{shipout/foreground}{%
    \put(0,\ESO@yoffsetI){%
      \ESO@HookIFG\ESO@HookIIFG\ESO@HookIIIFG
      \global\let\ESO@HookIIFG\@empty
    }%
  }%
}
\RequirePackage{keyval}
\newif\ifESO@dvips\ESO@dvipsfalse \newif\ifESO@grid\ESO@gridfalse
\newif\ifESO@texcoord\ESO@texcoordfalse \newif\ifESO@gridBG\ESO@gridBGfalse
\newcommand*\ESO@gridunitname{}
\newcommand*\ESO@gridunit{}
\newcommand*\ESO@labelfactor{}
\newcommand*\ESO@griddelta{}\newcommand*\ESO@griddeltaY{}
\newcommand*\ESO@gridDelta{}\newcommand*\ESO@gridDeltaY{}
\newcommand*\ESO@gridcolor{}
\newcommand*\ESO@subgridcolor{}
\newcommand*\ESO@subgridstyle{dotted}% ???
\newcommand*\ESO@gap{}
\newcommand*\ESO@yoffsetI{}\newcommand*\ESO@yoffsetII{}
\newcommand*\ESO@gridlines{\thinlines}
\newcommand*\ESO@subgridlines{\thinlines}
\newcommand*\ESO@hline[1]{\ESO@subgridlines\line(1,0){#1}}
\newcommand*\ESO@vline[1]{\ESO@subgridlines\line(0,1){#1}}
\newcommand*\ESO@Hline[1]{\ESO@gridlines\line(1,0){#1}}
\newcommand*\ESO@Vline[1]{\ESO@gridlines\line(0,1){#1}}
\newcommand\ESO@fcolorbox[3]{\fbox{#3}}
\newcommand\ESO@color[1]{}
\newcommand\ESO@colorbox[2]{%
  \begingroup
    \fboxrule=\z@\fbox{#2}%
  \endgroup
}
\newcommand\gridSetup[6][]{%
  \edef\ESO@gridunitname{#1}\edef\ESO@gridunit{#2}
  \edef\ESO@labelfactor{#3}\edef\ESO@griddelta{#4}
  \edef\ESO@gridDelta{#5}\edef\ESO@gap{#6}}
\define@key{ESO}{texcoord}[true]{\csname ESO@texcoord#1\endcsname}
\define@key{ESO}{pscoord}[true]{\csname @tempswa#1\endcsname
  \if@tempswa\ESO@texcoordfalse\else\ESO@texcoordtrue\fi}
\define@key{ESO}{dvips}[true]{\csname ESO@dvips#1\endcsname}
\define@key{ESO}{grid}[true]{\csname ESO@grid#1\endcsname
  \setkeys{ESO}{gridcolor=black,subgridcolor=black}}
\define@key{ESO}{gridBG}[true]{\csname ESO@gridBG#1\endcsname}
\define@key{ESO}{colorgrid}[true]{\csname ESO@grid#1\endcsname
  \setkeys{ESO}{gridcolor=red,subgridcolor=green}}
\define@key{ESO}{gridcolor}{\def\ESO@gridcolor{#1}}
\define@key{ESO}{subgridcolor}{\def\ESO@subgridcolor{#1}}
\define@key{ESO}{subgridstyle}{\def\ESO@subgridstyle{#1}}%
\define@key{ESO}{gridunit}{%
  \def\@tempa{#1}
  \def\@tempb{bp}
  \ifx\@tempa\@tempb
    \gridSetup[\@tempa]{1bp}{1}{10}{50}{2}
  \else
    \def\@tempb{pt}
    \ifx\@tempa\@tempb
      \gridSetup[\@tempa]{\p@}{1}{10}{50}{2}
    \else
      \def\@tempb{in}
      \ifx\@tempa\@tempb
        \gridSetup[\@tempa]{.1in}{.1}{2}{10}{.5}
      \else
        \gridSetup[mm]{1mm}{1}{5}{20}{1}
      \fi
    \fi
  \fi
}
\setkeys{ESO}{subgridstyle=solid,pscoord=true,gridunit=mm}
\providecommand*\@classoptionslist{}
\def\ProcessOptionsWithKV#1{%
  \let\@tempc\@empty
  \@for\CurrentOption:=\@classoptionslist\do{%
    \@ifundefined{KV@#1@\CurrentOption}%
    {}{\edef\@tempc{\@tempc,\CurrentOption,}}}%
  \edef\@tempc{%
    \noexpand\setkeys{#1}{\@tempc\@ptionlist{\@currname.\@currext}}}%
  \@tempc
  \AtEndOfPackage{\let\@unprocessedoptions\relax}}%
\ProcessOptionsWithKV{ESO}%
\newcommand\ESO@div[2]{%
  \ESO@tempdima=#1\relax\ESO@tempdimb=\ESO@gridunit\relax
  \ESO@tempdimb=#2\ESO@tempdimb\divide\ESO@tempdima by \ESO@tempdimb
  \@tempcnta\ESO@tempdima\advance\@tempcnta\@ne}
\@ifundefined{colorbox}{%
  \IfFileExists{xcolor.sty}{\RequirePackage{xcolor}}%
    {\RequirePackage{color}}%
}{}%
\let\ESO@color=\color
\renewcommand\ESO@colorbox[2]{%
  \begingroup
    \fboxsep=.4ex %
    \colorbox{#1}{#2}%
  \endgroup
}
\renewcommand\ESO@fcolorbox[3]{%
  \begingroup
    \fboxsep=.5ex %
    \fcolorbox{#1}{#2}{#3}%
  \endgroup
}
\AtBeginDocument{%
  \ESO@dvipsfalse
  \@ifundefined{Gin@driver}{}%
  {%
    \ifx\Gin@driver\@empty\else%
      \filename@parse{\Gin@driver}\def\reserved@a{dvips}%
      \ifx\filename@base\reserved@a\ESO@dvipstrue\fi
    \fi
  }%
  \ifESO@dvips\def\@tempb{eepic}\else\def\@tempb{epic}\fi
  \def\@tempa{dotted}%\def\ESO@gap{6\@wholewidth}%
  \ifx\@tempa\ESO@subgridstyle
    \IfFileExists{\@tempb.sty}%
    {%
      \RequirePackage{\@tempb}
      \renewcommand*\ESO@hline[1]{\ESO@subgridlines\dottedline{\ESO@gap}%
        (0,0)(##1,0)}
      \renewcommand*\ESO@vline[1]{\ESO@subgridlines\dottedline{\ESO@gap}%
        (0,0)(0,##1)}
    }{}
  \else
    \ifx\ESO@gridcolor\ESO@subgridcolor
      \renewcommand*\ESO@gridlines{\thicklines}
    \fi
  \fi
  \ifESO@texcoord
    \def\ESO@yoffsetI{\z@}\def\ESO@yoffsetII{-\paperheight}
    \edef\ESO@griddeltaY{-\ESO@griddelta}\edef\ESO@gridDeltaY{-\ESO@gridDelta}
  \else
    \def\ESO@yoffsetI{-\paperheight}\def\ESO@yoffsetII{\z@}
    \edef\ESO@griddeltaY{\ESO@griddelta}\edef\ESO@gridDeltaY{\ESO@gridDelta}
  \fi
}
\newcommand\ESO@gridpicture{%
  \begingroup
    \setlength\unitlength{\ESO@gridunit}%
    \ESO@color{\ESO@subgridcolor}%
    \ESO@div{\paperheight}{\ESO@griddelta}%
    \multiput(0,0)(0,\ESO@griddeltaY){\@tempcnta}%
      {\ESO@hline{\paperwidth}}%
    \ESO@div{\paperwidth}{\ESO@griddelta}%
    \multiput(0,\ESO@yoffsetII)(\ESO@griddelta,0){\@tempcnta}%
      {\ESO@vline{\paperheight}}%
    \ESO@color{\ESO@gridcolor}%
    \ESO@div{\paperheight}{\ESO@gridDelta}%
    \multiput(0,0)(0,\ESO@gridDeltaY){\@tempcnta}%
      {\ESO@Hline{\paperwidth}}%
    \ESO@div{\paperwidth}{\ESO@gridDelta}%
    \multiput(0,\ESO@yoffsetII)(\ESO@gridDelta,0){\@tempcnta}%
      {\ESO@Vline{\paperheight}}%
    \fontsize{10}{12}\normalfont%
    \ESO@div{\paperwidth}{\ESO@gridDelta}%
    \multiput(0,\ESO@gridDeltaY)(\ESO@gridDelta,0){\@tempcnta}{%
      \@tempcntb=\@tempcnta\advance\@tempcntb-\@multicnt
      \ifnum\@tempcntb>1\relax
        \multiply\@tempcntb by \ESO@gridDelta\relax
        \ESO@tempdima=\@tempcntb sp\ESO@tempdima=\ESO@labelfactor\ESO@tempdima
        \@tempcntb=\ESO@tempdima%
        \makebox(0,0)[c]{\ESO@colorbox{white}{\the\@tempcntb}}%
      \fi}%
    \ifx\ESO@gridunitname\@empty\def\@tempa{0}\else\def\@tempa{1}\fi
    \ESO@div{\paperheight}{\ESO@gridDelta}%
    \multiput(\ESO@gridDelta,0)(0,\ESO@gridDeltaY){\@tempcnta}{%
      \@tempcntb=\@tempcnta\advance\@tempcntb-\@multicnt%
      \ifnum\@tempcntb>\@tempa\relax
        \multiply\@tempcntb by \ESO@gridDelta\relax%
        \ESO@tempdima=\@tempcntb sp\ESO@tempdima=\ESO@labelfactor\ESO@tempdima
        \@tempcntb=\ESO@tempdima
        \makebox(0,0)[c]{\ESO@colorbox{white}{\the\@tempcntb}}%
      \fi
    }%
    \ifx\ESO@gridunitname\@empty\else
      \thicklines\fboxrule=\@wholewidth
      \put(\ESO@gridDelta,\ESO@gridDeltaY){\makebox(0,0)[c]{%
        \ESO@fcolorbox{\ESO@gridcolor}{white}{%
          \textbf{\ESO@gridunitname}}}}%
    \fi
    \normalcolor%
  \endgroup
}
\ifESO@grid
  \ifESO@gridBG
    \g@addto@macro\ESO@HookIIIBG{\ESO@gridpicture}%
  \else
    \g@addto@macro\ESO@HookIIIFG{\ESO@gridpicture}%
  \fi
\fi
\endinput
%%
%% End of file `eso-pic.sty'.
