\newwrite\texdefoutput
\immediate\openout\texdefoutput=${output}
\makeatletter
\expandafter\def\csname ver@kvoptions.sty\endcsname{0000/00/00}
\let\SetupKeyvalOptions\@gobble
\newcommand\DeclareStringOption[2][]{}
\newcommand\DeclareBoolOption[2][false]{\expandafter\newif\csname ifcurrfile@#2\endcsname\csname currfile@#2#1\endcsname}
\let\DeclareVoidOption\@gobbletwo
\def\ProcessKeyvalOptions{\@ifstar{}{}}
\def\currfile@mainext{tex}
\def\currfile@maindir{\@currdir}
\let\ifcurrfile@fink\iffalse
\makeatother
\RequirePackage{filehook}
\RequirePackage{currfile}
\makeatletter
\expandafter\let\csname ver@kvoptions.sty\endcsname\relax
\let\SetupKeyvalOptions\@undefined
\let\DeclareBoolOption\@undefined
\let\DeclareStringOption\@undefined
\let\DeclareVoidOption\@undefined
\let\ProcessKeyvalOptions\@undefined
\makeatother
\AtBeginOfEveryFile{\message{^^J$[n]{entering}\currfilename^^J}}
\AtEndOfEveryFile{\message{^^J$[n]{leaving}\currfilename^^J}}
{\expandafter}\expandafter
\ifx\csname ${mac}\expandafter\endcsname\csname @undefined\endcsname
\AtBeginOfFiles{{{\expandafter}\expandafter
\ifx\csname ${mac}\expandafter\endcsname\csname @undefined\endcsname
\else
\ClearHook\AtBeginOfFiles{}\relax
\ClearHook\AtEndOfFiles{}\relax
\csname currfile@pop\endcsname
\begingroup\immediate\write\texdefoutput{\expandafter\string\csname ${mac}\endcsname${defined}\currfilename}\expandafter\endgroup
\fi}}
\csname currfile@push\endcsname
\AtEndOfFiles{{{\expandafter}\expandafter
\ifx\csname ${mac}\expandafter\endcsname\csname @undefined\endcsname
\else
\ClearHook\AtBeginOfFiles{}\relax
\ClearHook\AtEndOfFiles{}\relax
\begingroup\immediate\write\texdefoutput{\expandafter\string\csname ${mac}\endcsname${defined}\currfilename}\expandafter\endgroup
\fi}}
\else
\begingroup\immediate\write\texdefoutput{\expandafter\string\csname ${mac}\endcsname${defined}${fmt}}\expandafter\endgroup
\fi
\documentclass${class}
\tracingassigns=1\relax
\usepackage${pkg}
${code}
\tracingassigns=0\relax
\begin{document}
\begin${env}
\end${environment[#environment + 1 - k]}
\immediate\closeout\texdefoutput