  % Handle batch mode
  % to overcome problems with too many open files
  \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
  % Set document class depending on configuration
  \documentclass[twoside]{book}
  %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
  \usepackage{ifthen}
  \ifx\requestedLaTeXdate\undefined
    \usepackage{array}
  \else
    \usepackage{array}[=2016-10-06]
  \fi
  %%
  % Packages required by doxygen
  \usepackage{fixltx2e} % for \textsubscript
  \usepackage{doxygen}
  \usepackage{graphicx}
  \usepackage[utf8]{inputenc}
  \usepackage{makeidx}
  \PassOptionsToPackage{warn}{textcomp}
  \usepackage{textcomp}
  \usepackage[nointegrals]{wasysym}
  \usepackage{ifxetex}
  % NLS support packages
  % Define default fonts
  % Font selection
  \usepackage[T1]{fontenc}
  % set main and monospaced font
  \usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
  \usepackage{sectsty}
  \allsectionsfont{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \renewcommand{\DoxyLabelFont}{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
   % Arguments of doxygenemoji:
   % 1) ':<text>:' form of the emoji, already LaTeX-escaped
   % 2) file with the name of the emoji without the .png extension
   % in case image exist use this otherwise use the ':<text>:' form
   \newcommand{\doxygenemoji}[2]{%
     \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
   }
  % Page & text layout
  \usepackage{geometry}
  \geometry{%
    a4paper,%
    top=2.5cm,%
    bottom=2.5cm,%
    left=2.5cm,%
    right=2.5cm%
  }
  % Allow a bit of overflow to go unnoticed by other means
  \tolerance=750
  \hfuzz=15pt
  \hbadness=750
  \setlength{\emergencystretch}{15pt}
  \setlength{\parindent}{0cm}
  \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
  \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
  \doxynormalparskip
  % Redefine paragraph/subparagraph environments, using sectsty fonts
  \makeatletter
  \renewcommand{\paragraph}{%
    \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
      \normalfont\normalsize\bfseries\SS@parafont%
    }%
  }
  \renewcommand{\subparagraph}{%
    \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
      \normalfont\normalsize\bfseries\SS@subparafont%
    }%
  }
  \makeatother
  \makeatletter
  \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
  \makeatother
  % Headers & footers
  \usepackage{fancyhdr}
  \pagestyle{fancyplain}
  \renewcommand{\footrulewidth}{0.4pt}
  \fancypagestyle{fancyplain}{
    \fancyhf{}
    \fancyhead[LE, RO]{\bfseries\thepage}
    \fancyhead[LO]{\bfseries\rightmark}
    \fancyhead[RE]{\bfseries\leftmark}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
  }
  \fancypagestyle{plain}{
    \fancyhf{}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
    \renewcommand{\headrulewidth}{0pt}
  }
  \pagestyle{fancyplain}
  \renewcommand{\chaptermark}[1]{%
    \markboth{#1}{}%
  }
  \renewcommand{\sectionmark}[1]{%
    \markright{\thesection\ #1}%
  }
  % ToC, LoF, LoT, bibliography, and index
  % Indices & bibliography
  \usepackage{natbib}
  \usepackage[titles]{tocloft}
  \setcounter{tocdepth}{3}
  \setcounter{secnumdepth}{5}
  % creating indexes
  \makeindex
  \usepackage{newunicodechar}
  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
  \newunicodechar{²}{${}^{2}$}% Superscript two
  \newunicodechar{³}{${}^{3}$}% Superscript three
  % Hyperlinks
    % Hyperlinks (required, but should be loaded last)
    \ifpdf
      \usepackage[pdftex,pagebackref=true]{hyperref}
    \else
      \ifxetex
        \usepackage[pagebackref=true]{hyperref}
      \else
        \usepackage[ps2pdf,pagebackref=true]{hyperref}
      \fi
    \fi
    \hypersetup{%
      colorlinks=true,%
      linkcolor=blue,%
      citecolor=blue,%
      unicode,%
      pdftitle=Free\+BSD kernel IPv6 code,%
      pdfsubject=%
    }
  % Custom commands used by the header
  % Custom commands
  \newcommand{\clearemptydoublepage}{%
    \newpage{\pagestyle{empty}\cleardoublepage}%
  }
  % caption style definition
  \usepackage{caption}
  \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
  % in page table of contents
  \usepackage{etoc}
  \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
  % prevent numbers overlap the titles in toc
  \renewcommand{\numberline}[1]{#1~}
% End of preamble, now comes the document contents
%===== C O N T E N T S =====
\begin{document}
  \raggedbottom
  % Titlepage & ToC
    % To avoid duplicate page anchors due to reuse of same numbers for
    % the index (be it as roman numbers)
    \hypersetup{pageanchor=false,
                bookmarksnumbered=true,
                pdfencoding=unicode
               }
  \pagenumbering{alph}
  \begin{titlepage}
  \vspace*{7cm}
  \begin{center}%
  {\Large Free\+BSD kernel IPv6 code}\\
  \vspace*{1cm}
  {\large Generated by Doxygen 1.9.3}\\
  \end{center}
  \end{titlepage}
  \clearemptydoublepage
  \pagenumbering{roman}
  \tableofcontents
  \clearemptydoublepage
  \pagenumbering{arabic}
  % re-enable anchors again
  \hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Free\+BSD kernel IPv6 code}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Data Structure Documentation}
\input{dc/d83/struct__ipfw__nat64clat__cfg}
\input{d3/db6/struct__ipfw__nat64lsn__cfg}
\input{d9/db7/struct__ipfw__nat64lsn__state}
\input{d2/d30/struct__ipfw__nat64lsn__state__v1}
\input{d9/da2/struct__ipfw__nat64lsn__stg}
\input{df/da7/struct__ipfw__nat64lsn__stg__v1}
\input{d5/df4/struct__ipfw__nat64stl__cfg}
\input{d5/d1f/struct__ipfw__nptv6__cfg}
\input{dc/d33/structaddrsel__policyent}
\input{d5/d2d/structdadq}
\input{dc/d08/structicmp6__ifstat}
\input{dd/d14/structif__set}
\input{d0/d4e/structip6__msource_1_1im6s__st}
\input{d4/d7d/structin6__addr}
\input{dc/d17/structin6__addrlifetime}
\input{d5/de5/structin6__addrpolicy}
\input{d2/d06/structin6__aliasreq}
\input{d8/d65/structin6__defrouter}
\input{d7/d64/structin6__gre__socket}
\input{df/dfd/structin6__ifaddr}
\input{d4/d3c/structin6__ifextra}
\input{db/deb/structin6__ifreq}
\input{d7/dfb/structin6__ifstat}
\input{d9/d73/structin6__llentry}
\input{d5/dd2/structin6__mfilter}
\input{d4/d43/structin6__msource}
\input{da/d48/structin6__multi}
\input{d8/da4/structin6__multi__mship}
\input{d3/d99/structin6__nbrinfo}
\input{d1/dae/structin6__ndifreq}
\input{d0/d11/structin6__ndireq}
\input{d9/d20/structin6__ondireq}
\input{da/d47/structin6__pktinfo}
\input{d6/d9d/structin6__prefix}
\input{d4/d84/structin6__prefixreq}
\input{d1/d08/structin6__prflags}
\input{d3/d3c/structin6__rrenumreq}
\input{d7/d2c/structin6__multi_1_1in6m__st}
\input{de/d68/structip6__direct__ctx}
\input{d0/d5f/structip6__exthdrs}
\input{da/d4f/structip6__msource}
\input{d0/d32/structip6__mtuinfo}
\input{dd/dba/structip6__pktopts}
\input{dc/d5a/structip6asfrag}
\input{dd/df7/structip6ctlparam}
\input{d3/d9c/structip6po__nhinfo}
\input{db/d42/structip6po__rhinfo}
\input{dc/d50/structip6q}
\input{d7/d50/structip6qbucket}
\input{d4/d1a/structip6stat}
\input{dd/d41/structipfw__nat64clat__stats}
\input{d2/dc4/structipfw__nat64lsn__stats}
\input{d0/d57/structipfw__nat64stl__stats}
\input{d9/d4d/structipfw__nptv6__stats}
\input{d1/ddb/structipv6__mreq}
\input{db/dfe/structin6__rrenumreq_1_1irr__raflagmask}
\input{d5/d0c/structlradix6__data}
\input{d4/d0d/structmf6c}
\input{db/df4/structmf6cctl}
\input{d6/d7a/structmif6}
\input{d9/d2d/structmif6__sctl}
\input{d3/d63/structmif6ctl}
\input{d8/d81/structmld__ifinfo}
\input{d0/dfe/structmld__ifsoftc}
\input{d6/d6a/structmld__raopt}
\input{d1/d17/structmldv2__query}
\input{de/d01/structmldv2__record}
\input{d2/d16/structmldv2__report}
\input{d0/d88/structmrt6msg}
\input{d4/df8/structmrt6stat}
\input{df/dd7/union__ipfw__nat64lsn__stg__v1_1_1nat64lsn__pgidx}
\input{de/df0/structnd__defrouter}
\input{d7/de7/structnd__ifinfo}
\input{d3/d94/unionnd__opts}
\input{d2/d3e/structnd__pfxrouter}
\input{d9/d29/structnd__prefix}
\input{d6/dd3/structnd__prefixctl}
\input{da/d7c/structoin6__aliasreq}
\input{d4/d5a/structomrt6msg}
\input{d6/d24/structpim}
\input{db/d5f/structpim6stat}
\input{d2/d56/structin6__prflags_1_1prf__ra}
\input{df/d32/structin6__prflags_1_1prf__rr}
\input{dc/d5c/structradix6__addr__entry}
\input{dd/d4b/structradix6__data}
\input{d2/d23/structrandomtab}
\input{d2/d8d/structrip6__inp__match__ctx}
\input{db/d51/structrip6stat}
\input{db/dd5/structrtdetq}
\input{d4/d18/structsa__in6}
\input{dd/d1c/structscope6__id}
\input{de/d99/structsioc__mif__req6}
\input{d8/ddb/structsioc__sg__req6}
\input{d0/d26/structsockaddr__in6}
\input{df/d34/structsockaddr__send}
\input{dc/d59/unionsockunion}
\input{d4/d62/structudp6__multi__match__ctx}
\input{d1/d38/structwalkarg}
\chapter{File Documentation}
\input{df/d1c/dest6_8c}
\input{df/d1c/dest6_8c_source}
\input{db/d88/frag6_8c}
\input{db/d88/frag6_8c_source}
\input{df/da5/icmp6_8c}
\input{df/da5/icmp6_8c_source}
\input{db/da0/icmp6_8h}
\input{db/da0/icmp6_8h_source}
\input{df/d68/in6_8c}
\input{df/d68/in6_8c_source}
\input{d7/d27/in6_8h}
\input{d7/d27/in6_8h_source}
\input{d6/df5/in6__cksum_8c}
\input{d6/df5/in6__cksum_8c_source}
\input{d9/d3b/in6__fib_8c}
\input{d9/d3b/in6__fib_8c_source}
\input{d7/d40/in6__fib_8h}
\input{d7/d40/in6__fib_8h_source}
\input{d1/d25/in6__fib__algo_8c}
\input{d1/d25/in6__fib__algo_8c_source}
\input{d7/d36/in6__gif_8c}
\input{d7/d36/in6__gif_8c_source}
\input{de/d9c/in6__ifattach_8c}
\input{de/d9c/in6__ifattach_8c_source}
\input{d8/db8/in6__ifattach_8h}
\input{d8/db8/in6__ifattach_8h_source}
\input{dc/da5/in6__jail_8c}
\input{dc/da5/in6__jail_8c_source}
\input{d6/dad/in6__mcast_8c}
\input{d6/dad/in6__mcast_8c_source}
\input{d2/df6/in6__pcb_8c}
\input{d2/df6/in6__pcb_8c_source}
\input{d9/d07/in6__pcb_8h}
\input{d9/d07/in6__pcb_8h_source}
\input{d1/dc0/in6__proto_8c}
\input{d1/dc0/in6__proto_8c_source}
\input{dd/d67/in6__rmx_8c}
\input{dd/d67/in6__rmx_8c_source}
\input{d0/d7a/in6__rss_8c}
\input{d0/d7a/in6__rss_8c_source}
\input{d6/d76/in6__rss_8h}
\input{d6/d76/in6__rss_8h_source}
\input{d3/d06/in6__src_8c}
\input{d3/d06/in6__src_8c_source}
\input{db/dea/in6__var_8h}
\input{db/dea/in6__var_8h_source}
\input{d0/dca/ip6_8h}
\input{d0/dca/ip6_8h_source}
\input{d6/d9c/ip6__ecn_8h}
\input{d6/d9c/ip6__ecn_8h_source}
\input{dc/dde/ip6__fastfwd_8c}
\input{dc/dde/ip6__fastfwd_8c_source}
\input{dc/d46/ip6__forward_8c}
\input{dc/d46/ip6__forward_8c_source}
\input{d6/d09/ip6__gre_8c}
\input{d6/d09/ip6__gre_8c_source}
\input{da/deb/ip6__id_8c}
\input{da/deb/ip6__id_8c_source}
\input{d7/d67/ip6__input_8c}
\input{d7/d67/ip6__input_8c_source}
\input{de/d50/ip6__mroute_8c}
\input{de/d50/ip6__mroute_8c_source}
\input{d4/d7d/ip6__mroute_8h}
\input{d4/d7d/ip6__mroute_8h_source}
\input{d9/d5e/ip6__output_8c}
\input{d9/d5e/ip6__output_8c_source}
\input{d4/ddd/ip6__var_8h}
\input{d4/ddd/ip6__var_8h_source}
\input{d6/d4f/ip6protosw_8h}
\input{d6/d4f/ip6protosw_8h_source}
\input{d7/d2e/ip__fw__nat64_8h}
\input{d7/d2e/ip__fw__nat64_8h_source}
\input{d7/dd8/ip__fw__nptv6_8h}
\input{d7/dd8/ip__fw__nptv6_8h_source}
\input{df/dca/mld6_8c}
\input{df/dca/mld6_8c_source}
\input{d0/d61/mld6_8h}
\input{d0/d61/mld6_8h_source}
\input{dd/dd6/mld6__var_8h}
\input{dd/dd6/mld6__var_8h_source}
\input{da/dd2/nd6_8c}
\input{da/dd2/nd6_8c_source}
\input{d9/d56/nd6_8h}
\input{d9/d56/nd6_8h_source}
\input{d6/ddf/nd6__nbr_8c}
\input{d6/ddf/nd6__nbr_8c_source}
\input{d1/dfa/nd6__rtr_8c}
\input{d1/dfa/nd6__rtr_8c_source}
\input{dd/d28/pim6_8h}
\input{dd/d28/pim6_8h_source}
\input{d7/d6a/pim6__var_8h}
\input{d7/d6a/pim6__var_8h_source}
\input{d6/d5e/raw__ip6_8c}
\input{d6/d5e/raw__ip6_8c_source}
\input{d8/d64/raw__ip6_8h}
\input{d8/d64/raw__ip6_8h_source}
\input{d1/da2/route6_8c}
\input{d1/da2/route6_8c_source}
\input{d5/d23/scope6_8c}
\input{d5/d23/scope6_8c_source}
\input{df/dc3/scope6__var_8h}
\input{df/dc3/scope6__var_8h_source}
\input{dc/d37/sctp6__usrreq_8c}
\input{dc/d37/sctp6__usrreq_8c_source}
\input{dc/d05/sctp6__var_8h}
\input{dc/d05/sctp6__var_8h_source}
\input{dd/ded/send_8c}
\input{dd/ded/send_8c_source}
\input{d8/da3/send_8h}
\input{d8/da3/send_8h_source}
\input{d3/d5c/tcp6__var_8h}
\input{d3/d5c/tcp6__var_8h_source}
\input{d4/d98/udp6__usrreq_8c}
\input{d4/d98/udp6__usrreq_8c_source}
\input{d1/d9b/udp6__var_8h}
\input{d1/d9b/udp6__var_8h_source}
\input{d7/d63/notreviewed_8dox}
%--- End generated contents ---
% Index
  \backmatter
  \newpage
  \phantomsection
  \clearemptydoublepage
  \addcontentsline{toc}{chapter}{\indexname}
  \printindex
% Required for some languages (in combination with latexdocumentpre from the header)
\end{document}
