This commit is contained in:
2025-06-22 21:32:23 -04:00
parent a249e6d3ae
commit fee3b0b476
53 changed files with 9779 additions and 4 deletions

View File

@@ -0,0 +1,106 @@
\relax
\providecommand\babel@aux[2]{}
\@nameuse{bbl@beforestart}
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\babel@aux{english}{}
\newlabel{index::doc}{{}{1}{}{section*.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Learning Outcomes}{3}{chapter.1}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{preface:learning-outcomes}{{1}{3}{Learning Outcomes}{chapter.1}{}}
\newlabel{preface::doc}{{1}{3}{Learning Outcomes}{chapter.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Recommended Course Material}{5}{chapter.2}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{preface:recommended-course-material}{{2}{5}{Recommended Course Material}{chapter.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Material Structure Overview}{7}{chapter.3}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{preface:material-structure-overview}{{3}{7}{Material Structure Overview}{chapter.3}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}INTRODUCTION}{9}{chapter.4}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{introduction:introduction}{{4}{9}{INTRODUCTION}{chapter.4}{}}
\newlabel{introduction::doc}{{4}{9}{INTRODUCTION}{chapter.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Payroll Legal Framework}{9}{section.4.1}\protected@file@percent }
\newlabel{introduction:payroll-legal-framework}{{4.1}{9}{Payroll Legal Framework}{section.4.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Payroll Accounting}{11}{chapter.5}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{payroll_accounting:payroll-accounting}{{5}{11}{Payroll Accounting}{chapter.5}{}}
\newlabel{payroll_accounting::doc}{{5}{11}{Payroll Accounting}{chapter.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Journal Entries}{11}{section.5.1}\protected@file@percent }
\newlabel{payroll_accounting:journal-entries}{{5.1}{11}{Journal Entries}{section.5.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.1}Accounting Recap}{11}{subsection.5.1.1}\protected@file@percent }
\newlabel{payroll_accounting:accounting-recap}{{5.1.1}{11}{Accounting Recap}{subsection.5.1.1}{}}
\newlabel{equation:payroll_accounting:AccountingEquation}{{5.1}{11}{Accounting Recap}{equation.5.1.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.2}Journal Entries}{11}{subsection.5.1.2}\protected@file@percent }
\newlabel{payroll_accounting:id1}{{5.1.2}{11}{Journal Entries}{subsection.5.1.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}REVIEW QUESTIONS}{13}{chapter.6}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{review_questions:review-questions}{{6}{13}{REVIEW QUESTIONS}{chapter.6}{}}
\newlabel{review_questions::doc}{{6}{13}{REVIEW QUESTIONS}{chapter.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6.1}New Employee Information}{13}{section.6.1}\protected@file@percent }
\newlabel{review_questions:new-employee-information}{{6.1}{13}{New Employee Information}{section.6.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}OBNOARDING EMPLOYEE}{15}{chapter.7}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{onboarding_employee:obnoarding-employee}{{7}{15}{OBNOARDING EMPLOYEE}{chapter.7}{}}
\newlabel{onboarding_employee::doc}{{7}{15}{OBNOARDING EMPLOYEE}{chapter.7}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.1}Employment Standards Requirements}{15}{section.7.1}\protected@file@percent }
\newlabel{onboarding_employee:employment-standards-requirements}{{7.1}{15}{Employment Standards Requirements}{section.7.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.2}Internal Forms}{15}{section.7.2}\protected@file@percent }
\newlabel{onboarding_employee:internal-forms}{{7.2}{15}{Internal Forms}{section.7.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2.1}Authorization for Hiring}{15}{subsection.7.2.1}\protected@file@percent }
\newlabel{onboarding_employee:authorization-for-hiring}{{7.2.1}{15}{Authorization for Hiring}{subsection.7.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2.2}Union Membership}{15}{subsection.7.2.2}\protected@file@percent }
\newlabel{onboarding_employee:union-membership}{{7.2.2}{15}{Union Membership}{subsection.7.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2.3}Benefit Enrollment Forms}{16}{subsection.7.2.3}\protected@file@percent }
\newlabel{onboarding_employee:benefit-enrollment-forms}{{7.2.3}{16}{Benefit Enrollment Forms}{subsection.7.2.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2.4}Confidentiality Agreement}{16}{subsection.7.2.4}\protected@file@percent }
\newlabel{onboarding_employee:confidentiality-agreement}{{7.2.4}{16}{Confidentiality Agreement}{subsection.7.2.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.3}Required Federal and Provincial/Territorial Forms}{16}{section.7.3}\protected@file@percent }
\newlabel{onboarding_employee:required-federal-and-provincial-territorial-forms}{{7.3}{16}{Required Federal and Provincial/Territorial Forms}{section.7.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.1}Tax Credits (TD1)}{16}{subsection.7.3.1}\protected@file@percent }
\newlabel{onboarding_employee:tax-credits-td1}{{7.3.1}{16}{Tax Credits (TD1)}{subsection.7.3.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.2}Tax Credits (TP\sphinxhyphen {}1015.3\sphinxhyphen {}V \textendash {} Québec)}{17}{subsection.7.3.2}\protected@file@percent }
\newlabel{onboarding_employee:tax-credits-tp-1015-3-v-quebec}{{7.3.2}{17}{Tax Credits (TP\sphinxhyphen {}1015.3\sphinxhyphen {}V \textendash {} Québec)}{subsection.7.3.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.4}Content Review Highlights}{17}{section.7.4}\protected@file@percent }
\newlabel{onboarding_employee:content-review-highlights}{{7.4}{17}{Content Review Highlights}{section.7.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.5}Review Questions (Sample)}{17}{section.7.5}\protected@file@percent }
\newlabel{onboarding_employee:review-questions-sample}{{7.5}{17}{Review Questions (Sample)}{section.7.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.6}Example Evaluations}{18}{section.7.6}\protected@file@percent }
\newlabel{onboarding_employee:example-evaluations}{{7.6}{18}{Example Evaluations}{section.7.6}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {8}RATES FOR 2025}{19}{chapter.8}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{rates_2025:rates-for-2025}{{8}{19}{RATES FOR 2025}{chapter.8}{}}
\newlabel{rates_2025::doc}{{8}{19}{RATES FOR 2025}{chapter.8}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.1}CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{19}{section.8.1}\protected@file@percent }
\newlabel{rates_2025:canada-quebec-pension-plan-cpp-qpp}{{8.1}{19}{CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{section.8.1}{}}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces CANADA / QUEBEC PENSION PLAN (CPP / QPP)}}{19}{table.8.1}\protected@file@percent }
\newlabel{rates_2025:id1}{{1}{19}{CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{table.8.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.2}CPP2 CONTRIBUTION RATES MAXIMUMS}{19}{section.8.2}\protected@file@percent }
\newlabel{rates_2025:cpp2-contribution-rates-maximums}{{8.2}{19}{CPP2 CONTRIBUTION RATES MAXIMUMS}{section.8.2}{}}
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces CPP2 Contribution Rates Maximums}}{19}{table.8.2}\protected@file@percent }
\newlabel{rates_2025:id2}{{2}{19}{CPP2 CONTRIBUTION RATES MAXIMUMS}{table.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.3}References}{20}{section.8.3}\protected@file@percent }
\newlabel{rates_2025:references}{{8.3}{20}{References}{section.8.3}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {9}REFERENCES}{21}{chapter.9}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{references:references}{{9}{21}{REFERENCES}{chapter.9}{}}
\newlabel{references::doc}{{9}{21}{REFERENCES}{chapter.9}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {10}Errors and Errata}{23}{chapter.10}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{errata:errors-and-errata}{{10}{23}{Errors and Errata}{chapter.10}{}}
\newlabel{errata::doc}{{10}{23}{Errors and Errata}{chapter.10}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {11}Glossary}{25}{chapter.11}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{index:glossary}{{11}{25}{Glossary}{chapter.11}{}}
\gdef \@abspage@last{29}

View File

@@ -1,9 +1,181 @@
# Fdb version 4
["pdflatex"] 0 "Payroll-Administration_2025.tex" "Payroll-Administration_2025.pdf" "Payroll-Administration_2025" 0 -1
"Payroll-Administration_2025.aux" 0 -1 0 "pdflatex"
"Payroll-Administration_2025.tex" 0 -1 0 ""
["makeindex Payroll-Administration_2025.idx"] 1750642338.0406 "Payroll-Administration_2025.idx" "Payroll-Administration_2025.ind" "Payroll-Administration_2025" 1750642338.67448 0
"Payroll-Administration_2025.idx" 1750642338.44229 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex"
(generated)
"Payroll-Administration_2025.ilg"
"Payroll-Administration_2025.ind"
(rewritten before read)
["pdflatex"] 1750642338.05982 "Payroll-Administration_2025.tex" "Payroll-Administration_2025.pdf" "Payroll-Administration_2025" 1750642338.67464 0
"/etc/texmf/web2c/texmf.cnf" 1729307187.57985 475 c0e671620eb5563b2130f56340a5fde8 ""
"/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1136768653 992 662f679a0b3d2d53c1b94050fdaa3f50 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1136768653 1288 655e228510b4c2a1abe905c368440826 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1136768653 1292 296a67155bdbfc32aa9c636f21e91433 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1136768653 1124 6c73e740cf17375f03eec0ee63599741 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xtt.tfm" 1136768653 1384 8943063000d26272532f74ca134dfecd ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/t1xtt.pfb" 1136849748 26301 f08b3c26ea42c3177a262c2ac37d6a91 ""
"/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
"/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf" 1496785618 7008 9ff5fdcc865b01beca2b0fe4a46231d4 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty" 1704662920 150008 7a05b0fdc0167c04e192003e780ab195 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-en.ini" 1661803479 3966 caeee5a9e5771d4446aa1ca9015ba1b2 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex" 1498512262 336 ed676b5e7dfd862bc78d634f6a973f37 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def" 1704662920 6948 df63e25be1d2bc35bbad5a0141f41348 ""
"/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
"/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
"/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
"/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1644112042 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a ""
"/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb ""
"/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
"/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
"/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1701727651 17865 1a9bd36b4f98178fa551aca822290953 ""
"/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c ""
"/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 ""
"/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff ""
"/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 ""
"/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1686341992 2222 499d61426192c39efd8f410ee1a52b9c ""
"/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1686341992 4173 82ac04dfb1256038fad068287fbb4fe6 ""
"/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1686341992 88371 d84032c0f422c3d1e282266c01bef237 ""
"/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1686341992 4474 b811654f4bf125f11506d13d13647efb ""
"/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1686341992 2444 0d0c1ee65478277e8015d65b86983da2 ""
"/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d ""
"/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty" 1705352648 3137 080666101e6db698c7daf04c95abb706 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1705352648 3045 273c666a54e60b9f730964f431a56c1b ""
"/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1705352648 2462 6bc53756156dbd71c1ad550d30a3b93f ""
"/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1705352648 5119 a04a8b68ab4f6ce800a41f7f8012a10e ""
"/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1705352648 5048 425739d70251273bf93e3d51f3c40048 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty" 1705352648 1939 3225e20a81cec31e51c1e216d6385103 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/report.cls" 1705352648 23203 f5d913095ece2233436f0e628619cd37 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1705352648 8448 dbc0dbf4156c0bb9ba01a1c685d3bad0 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1705352648 2894 fc64867f9d198785eabe71a88276a9cb ""
"/usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty" 1579038678 6078 f1cb470c9199e7110a27851508ed7a5c ""
"/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty" 1264379041 1311 063f8536a047a2d9cb1803321f793f37 ""
"/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty" 1612650595 3574 ddc11a0ae1c579d351ed20d2319ad422 ""
"/usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap" 1177721415 1207 4e0d96772f0d338847cbfb4eca683c81 ""
"/usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap" 1215522782 1938 beaa4a8467aa0074076e0e19f2992e29 ""
"/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty" 1659300143 12441 3b2a708337608012a865c7d9b7f05d28 ""
"/usr/share/texlive/texmf-dist/tex/latex/ellipse/ellipse.sty" 1449445679 9937 7eb94c47265a0108f7a319db3c3b58b0 ""
"/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
"/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1601931149 46845 3b58f70c6e861a13d927bff09d35ecbc ""
"/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1668028059 18450 88279bf67c81e69f8e3f1c1bad1a26c5 ""
"/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty" 1705955721 43712 c3d93734f3bc56e03c21b3dc69268d3c ""
"/usr/share/texlive/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
"/usr/share/texlive/texmf-dist/tex/latex/fncychap/fncychap.sty" 1292029257 19488 fdd52eb173b3197d748e1ec25acb042f ""
"/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty" 1338588508 22449 7ec15c16d0d66790f28e90343c5434a3 ""
"/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1663965824 19448 1e988b341dda20961a6b931bcde55519 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty" 1654720880 7233 e46ce9241d2b2ca2a78155475fdd557a ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1654720880 18387 8f900a490197ebaf93c02ae9476d4b09 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1654720880 8010 a8d949cbdbc5c983593827c9eec252e1 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty" 1654720880 2671 7e67d78d9b88c845599a85b2d41f2e39 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1667332637 2885 9c645d672ae17285bba324998918efd8 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1654720880 4023 293ea1c16429fc0c4cf605f4da1791a9 ""
"/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1705871765 48154 e46bf8adeb936500541441171d61726d ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1705871765 220920 fd3cbb5f1a2bc9b8f451b8b7d8171264 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1705871765 11026 182c63f139a71afd30a28e5f1ed2cd1c ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1705871765 14249 e67cb186717b7ab18d14a4875e7e98b5 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def" 1705871765 117112 05831178ece2cad4d9629dcf65099b11 ""
"/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
"/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1704491087 30006 57b07afb710ee2f649c65cfbafda39c1 ""
"/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
"/usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap" 1215649417 1866 c1c12138091b4a8edd4a24a940e6f792 ""
"/usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap" 1215649417 2370 3b1f71b14b974f07cef532db09ae9ee0 ""
"/usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap" 1215649417 3001 252c8ca42b06a22cb1a11c0e47790c6e ""
"/usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty" 1364856750 852 0e34dbb72efc69fa07602405ad95585e ""
"/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty" 1575152444 3822 b53c749cd81352b4679a35b0dafefb95 ""
"/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty" 1615762720 4288 94714aa7f535440f33181fec52a31963 ""
"/usr/share/texlive/texmf-dist/tex/latex/pict2e/p2e-pdftex.def" 1454715303 1168 efb94e82cc1584d4f62679f3487b5339 ""
"/usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.cfg" 1454715303 1920 2185073db458618f4a8a794158cf3681 ""
"/usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.sty" 1601586370 30933 ccdcd551eb516817cc8f41862254e6e7 ""
"/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 ""
"/usr/share/texlive/texmf-dist/tex/latex/tabulary/tabulary.sty" 1403566480 13791 8c83287d79183c3bf58fd70871e8a70b ""
"/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty" 1698436711 48766 0b93839be28e9744a24c45075c75b2e2 ""
"/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1698869629 12667 e4b5eb11e4b7239e6c8a52bbe074a6c6 ""
"/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty" 1698955022 12935 94a3291359b5f73ff1b19345a6983105 ""
"/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty" 1686341992 32515 51caec75eda9c8890135f12f1a4eddc3 ""
"/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd" 1137111002 1324 7b6c95370a64cd8c7620cbefefb53dba ""
"/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e ""
"/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty" 1238697683 10894 d359a13923460b2a73d4312d613554c8 ""
"/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty" 1137111090 26220 3701aebf80ccdef248c0c20dd062fea9 ""
"/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1700082560 55487 80a65caedd3722f4c20a14a69e785d8f ""
"/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1707919699 40399 f2c302f7d2af602abb742093540a5834 ""
"/usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ec.enc" 1529098226 2457 aaabbccba4df2a7f7371410ee4e075a3 ""
"/usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ts1.enc" 1529098226 3124 3813fd4c981d99822890a2861b0d274c ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm" 1480098718 11796 b7bc3db132e822d2872ea50ba8fa7cc0 ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvbi.tfm" 1480098718 12396 e65c2800bb94ee6ae6e4fdf18f68fa2e ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm" 1480098718 12084 374c5b7e91efcc10472ab8e61f66d36b ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmb.tfm" 1480098718 11484 431d8013ae6931f9326b9a0f492d2a5e ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm" 1480098718 11504 0b76b46eb90907e684139293e03c466a ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmri.tfm" 1480098718 11356 da1519f442d8a49b81c86cbaf25ef79f ""
"/usr/share/texmf/fonts/tfm/public/tex-gyre/ts1-qtmr.tfm" 1480098718 1600 20cdf11dab97d5d39e847571f9314407 ""
"/usr/share/texmf/fonts/type1/public/tex-gyre/qhvb.pfb" 1480098745 112164 176018dd42fcc60204173fa10e357da5 ""
"/usr/share/texmf/fonts/type1/public/tex-gyre/qhvbi.pfb" 1480098745 104926 77ce2f0433ac7fd33dbe9968d127e4fb ""
"/usr/share/texmf/fonts/type1/public/tex-gyre/qhvr.pfb" 1480098745 110045 c159829aa6d7d99f1777bb40c90b8157 ""
"/usr/share/texmf/fonts/type1/public/tex-gyre/qtmb.pfb" 1480098745 131776 4be3e220f990dc716f91bb7965c09237 ""
"/usr/share/texmf/fonts/type1/public/tex-gyre/qtmr.pfb" 1480098745 133302 8dca243a80ecf4cfe00077d4bd995bd7 ""
"/usr/share/texmf/fonts/type1/public/tex-gyre/qtmri.pfb" 1480098745 129669 aaf12ebd0b807d452087fc34bde5bd7d ""
"/usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd" 1480098840 2378 01e898189bf06467f2f6fe33decbff09 ""
"/usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd" 1480098840 1638 7cc855d1dc7c12c1858f209a4ef88c4a ""
"/usr/share/texmf/tex/latex/tex-gyre/tgheros.sty" 1480098840 2130 2b41e80713f78d339e74c19d96fe70a1 ""
"/usr/share/texmf/tex/latex/tex-gyre/tgtermes.sty" 1480098840 2211 af9b7d12507105a58a3e8e926996b827 ""
"/usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd" 1480098840 1160 de7b1cf70edab73c9f1704df2a9fdbbd ""
"/usr/share/texmf/web2c/texmf.cnf" 1707919699 40399 f2c302f7d2af602abb742093540a5834 ""
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1729307339.56668 164740 5f02460f8e29b549a9ea60117f5f46e4 ""
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1729307374 6831204 5735eed681e2db0697903be4f74d0da4 ""
"Payroll-Administration_2025.aux" 1750642338.60129 9239 25733a2a7fbb773d51d4f65f85f73020 "pdflatex"
"Payroll-Administration_2025.ind" 1750642338.05529 0 d41d8cd98f00b204e9800998ecf8427e "makeindex Payroll-Administration_2025.idx"
"Payroll-Administration_2025.out" 1750642338.60229 5147 7b689dfc26306b7bd1a8bcd1eae0f3c9 "pdflatex"
"Payroll-Administration_2025.tex" 1750642337.31928 21223 13e5b70e12bddf516ec6e47ef63d32b6 ""
"Payroll-Administration_2025.toc" 1750642338.60229 2665 b6faabeee3ca72f5dc6cada99005caa2 "pdflatex"
"sphinx.sty" 1750459726.26999 54203 ee7fe875437470f5328ee20661bb9f1d ""
"sphinxhighlight.sty" 1750642337.27028 7553 83fb52292c17957d9f4aadcb28c57a87 ""
"sphinxlatexadmonitions.sty" 1750459726.26999 19111 5e67a0f91439018bceb7cadf319345e6 ""
"sphinxlatexcontainers.sty" 1750459726.26999 900 d61f923db071a7b54d3cee8a1e6935d3 ""
"sphinxlatexgraphics.sty" 1750459726.26999 4918 c9266041d02bc615d54b890e96e3acd3 ""
"sphinxlatexindbibtoc.sty" 1750459726.27099 2065 1f1f215c304208004fc0522855b3b127 ""
"sphinxlatexlists.sty" 1750459726.27099 5138 98bcb41aa6ecb6cc5c1a6a7c936cb8a8 ""
"sphinxlatexliterals.sty" 1750459726.27099 45860 fa61a279a7f157481590da017e0c6962 ""
"sphinxlatexnumfig.sty" 1750459726.27099 5419 aeaffe9a9d596e3663201bb873b06758 ""
"sphinxlatexobjects.sty" 1750459726.27099 15707 bc327ee938baefa281deb478d03161c7 ""
"sphinxlatexshadowbox.sty" 1750459726.27099 8437 cec78b6bb66e95d214da9fd42b1af598 ""
"sphinxlatexstyleheadings.sty" 1750459726.27199 3742 2a2cc6aa695b2f8c98eb9ee104e5fc6f ""
"sphinxlatexstylepage.sty" 1750459726.27199 2671 e63daf3b9f0f8a387a8b4ba09c515982 ""
"sphinxlatexstyletext.sty" 1750459726.27199 6759 9e932c65374cfb62686485d331bc975c ""
"sphinxlatextables.sty" 1750459726.27199 57643 7f1013c2fa11942370d867527bdda568 ""
"sphinxmanual.cls" 1750459726.27199 4241 7b0d7a37df7b5715fb0dbd585c52ecdb ""
"sphinxmessages.sty" 1750642337.32228 745 3f5fcd6cdd7964ed608767954a8ced6f ""
"sphinxoptionsgeometry.sty" 1750459726.27199 2060 6c27b3eba37bde592ae8908ab2c1ac0f ""
"sphinxoptionshyperref.sty" 1750459726.27199 1093 e468489bae7631a7f387b4b0f7bc15d4 ""
"sphinxpackageboxes.sty" 1750459726.27299 36106 1be2053eb1cb9b083b3a75e3657bcb24 ""
"sphinxpackagefootnote.sty" 1750459726.27299 15330 2fb656b6ce8cd1f6aba2d1c508fb51e5 ""
(generated)
"Payroll-Administration_2025.aux"
"Payroll-Administration_2025.idx"
"Payroll-Administration_2025.log"
"Payroll-Administration_2025.out"
"Payroll-Administration_2025.pdf"
"Payroll-Administration_2025.toc"
(rewritten before read)

View File

@@ -260,3 +260,91 @@ INPUT Payroll-Administration_2025.out
INPUT ./Payroll-Administration_2025.out
INPUT ./Payroll-Administration_2025.out
OUTPUT Payroll-Administration_2025.out
INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd
INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd
INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvbi.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvbi.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap
INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm
INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map
INPUT /usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ec.enc
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm
INPUT ./Payroll-Administration_2025.toc
INPUT ./Payroll-Administration_2025.toc
INPUT Payroll-Administration_2025.toc
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmb.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm
OUTPUT Payroll-Administration_2025.toc
INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xtt.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xtt.tfm
INPUT /usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd
INPUT /usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd
INPUT /usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ts1-qtmr.tfm
INPUT /usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ts1.enc
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm
INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmri.tfm
INPUT ./Payroll-Administration_2025.ind
INPUT ./Payroll-Administration_2025.ind
INPUT Payroll-Administration_2025.ind
INPUT Payroll-Administration_2025.aux
INPUT ./Payroll-Administration_2025.out
INPUT ./Payroll-Administration_2025.out
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qhvb.pfb
INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qhvbi.pfb
INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qhvr.pfb
INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qtmb.pfb
INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qtmr.pfb
INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qtmri.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/t1xtt.pfb

View File

@@ -728,4 +728,216 @@ Package: sphinxmessages 2019/01/04 v2.0 Localized LaTeX macros (Sphinx team)
Writing index file Payroll-Administration_2025.idx
LaTeX
LaTeX Font Info: Trying to load font information for T1+qtm on input line 73
.
(/usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd
File: t1qtm.fd 2009/09/25 v1.2 font definition file for T1/qtm
)
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count323
\l__pdf_internal_box=\box120
)
(./Payroll-Administration_2025.aux)
\openout1 = `Payroll-Administration_2025.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 73.
LaTeX Font Info: ... okay on input line 73.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count324
\scratchdimen=\dimen294
\scratchbox=\box121
\nofMPsegments=\count325
\nofMParguments=\count326
\everyMPshowfont=\toks36
\MPscratchCnt=\count327
\MPscratchDim=\dimen295
\MPnumerator=\count328
\makeMPintoPDFobject=\count329
\everyMPtoPDFconversion=\toks37
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
\c@literalblock=\count330
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
*geometry* verbose mode - [ preamble ] result:
* driver: pdftex
* paper: letterpaper
* layout: <same size as paper>
* layoutoffset:(h,v)=(0.0pt,0.0pt)
* modes: twoside
* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt)
* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt)
* \paperwidth=614.295pt
* \paperheight=794.96999pt
* \textwidth=469.75502pt
* \textheight=650.43001pt
* \oddsidemargin=0.0pt
* \evensidemargin=0.0pt
* \topmargin=-37.0pt
* \headheight=12.0pt
* \headsep=25.0pt
* \topskip=10.0pt
* \footskip=30.0pt
* \marginparwidth=36.135pt
* \marginparsep=11.0pt
* \columnsep=10.0pt
* \skip\footins=9.0pt plus 4.0pt minus 2.0pt
* \hoffset=0.0pt
* \voffset=0.0pt
* \mag=1000
* \@twocolumnfalse
* \@twosidetrue
* \@mparswitchtrue
* \@reversemarginfalse
* (1in=72.27pt=25.4mm, 1cm=28.453pt)
Package hyperref Info: Link coloring ON on input line 73.
(./Payroll-Administration_2025.out) (./Payroll-Administration_2025.out)
\@outlinefile=\write5
\openout5 = `Payroll-Administration_2025.out'.
Package hyperref Info: Option `pageanchor' set `false' on input line 81.
LaTeX Font Info: Trying to load font information for T1+qhv on input line 81
.
(/usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd
File: t1qhv.fd 2009/09/25 v1.2 font definition file for T1/qhv
)<<ot1.cmap>><<oml.cmap>><<oms.cmap>><<omx.cmap>>
LaTeX Font Info: Trying to load font information for U+msa on input line 81.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 81.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
) [1
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf/fonts/enc/
dvips/tex-gyre/q-ec.enc}] [2
] (./Payroll-Administration_2025.toc)
\tf@toc=\write6
\openout6 = `Payroll-Administration_2025.toc'.
[1
] [2
]
LaTeX Font Info: Trying to load font information for T1+txtt on input line 8
8.
(/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd
File: t1txtt.fd 2000/12/15 v3.1
)
LaTeX Font Info: Trying to load font information for TS1+qtm on input line 1
04.
(/usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd
File: ts1qtm.fd 2009/09/25 v1.2 font definition file for TS1/qtm
) [1{/usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ts1.enc}] [2
]
Chapter 1.
[3] [4
]
Chapter 2.
[5] [6
]
Chapter 3.
[7] [8
]
Chapter 4.
[9] [10
]
Chapter 5.
[11] [12
]
Chapter 6.
[13] [14
]
Chapter 7.
[15] [16] [17] [18]
Chapter 8.
[19
] [20]
Chapter 9.
[21
] [22
]
Chapter 10.
[23] [24
]
Chapter 11.
(./Payroll-Administration_2025.ind) [25] (./Payroll-Administration_2025.aux)
***********
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-01-22>
***********
Package rerunfilecheck Info: File `Payroll-Administration_2025.out' has not cha
nged.
(rerunfilecheck) Checksum: 7B689DFC26306B7BD1A8BCD1EAE0F3C9;5147.
)
Here is how much of TeX's memory you used:
16862 strings out of 476106
286328 string characters out of 5793932
1943975 words of memory out of 5000000
38405 multiletter control sequences out of 15000+600000
614330 words of font info for 77 fonts, out of 8000000 for 9000
60 hyphenation exceptions out of 8191
72i,14n,83p,1216b,575s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share
/texmf/fonts/type1/public/tex-gyre/qhvb.pfb></usr/share/texmf/fonts/type1/publi
c/tex-gyre/qhvbi.pfb></usr/share/texmf/fonts/type1/public/tex-gyre/qhvr.pfb></u
sr/share/texmf/fonts/type1/public/tex-gyre/qtmb.pfb></usr/share/texmf/fonts/typ
e1/public/tex-gyre/qtmr.pfb></usr/share/texmf/fonts/type1/public/tex-gyre/qtmri
.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/t1xtt.pfb>
Output written on Payroll-Administration_2025.pdf (29 pages, 196341 bytes).
PDF statistics:
381 PDF objects out of 1000 (max. 8388607)
330 compressed objects within 4 object streams
92 named destinations out of 1000 (max. 500000)
269 words of extra memory for PDF output out of 10000 (max. 10000000)

View File

@@ -0,0 +1,31 @@
\BOOKMARK [0][-]{chapter.1}{\376\377\000L\000e\000a\000r\000n\000i\000n\000g\000\040\000O\000u\000t\000c\000o\000m\000e\000s}{}% 1
\BOOKMARK [0][-]{chapter.2}{\376\377\000R\000e\000c\000o\000m\000m\000e\000n\000d\000e\000d\000\040\000C\000o\000u\000r\000s\000e\000\040\000M\000a\000t\000e\000r\000i\000a\000l}{}% 2
\BOOKMARK [0][-]{chapter.3}{\376\377\000M\000a\000t\000e\000r\000i\000a\000l\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{}% 3
\BOOKMARK [0][-]{chapter.4}{\376\377\000I\000N\000T\000R\000O\000D\000U\000C\000T\000I\000O\000N}{}% 4
\BOOKMARK [1][-]{section.4.1}{\376\377\000P\000a\000y\000r\000o\000l\000l\000\040\000L\000e\000g\000a\000l\000\040\000F\000r\000a\000m\000e\000w\000o\000r\000k}{chapter.4}% 5
\BOOKMARK [0][-]{chapter.5}{\376\377\000P\000a\000y\000r\000o\000l\000l\000\040\000A\000c\000c\000o\000u\000n\000t\000i\000n\000g}{}% 6
\BOOKMARK [1][-]{section.5.1}{\376\377\000J\000o\000u\000r\000n\000a\000l\000\040\000E\000n\000t\000r\000i\000e\000s}{chapter.5}% 7
\BOOKMARK [2][-]{subsection.5.1.1}{\376\377\000A\000c\000c\000o\000u\000n\000t\000i\000n\000g\000\040\000R\000e\000c\000a\000p}{section.5.1}% 8
\BOOKMARK [2][-]{subsection.5.1.2}{\376\377\000J\000o\000u\000r\000n\000a\000l\000\040\000E\000n\000t\000r\000i\000e\000s}{section.5.1}% 9
\BOOKMARK [0][-]{chapter.6}{\376\377\000R\000E\000V\000I\000E\000W\000\040\000Q\000U\000E\000S\000T\000I\000O\000N\000S}{}% 10
\BOOKMARK [1][-]{section.6.1}{\376\377\000N\000e\000w\000\040\000E\000m\000p\000l\000o\000y\000e\000e\000\040\000I\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n}{chapter.6}% 11
\BOOKMARK [0][-]{chapter.7}{\376\377\000O\000B\000N\000O\000A\000R\000D\000I\000N\000G\000\040\000E\000M\000P\000L\000O\000Y\000E\000E}{}% 12
\BOOKMARK [1][-]{section.7.1}{\376\377\000E\000m\000p\000l\000o\000y\000m\000e\000n\000t\000\040\000S\000t\000a\000n\000d\000a\000r\000d\000s\000\040\000R\000e\000q\000u\000i\000r\000e\000m\000e\000n\000t\000s}{chapter.7}% 13
\BOOKMARK [1][-]{section.7.2}{\376\377\000I\000n\000t\000e\000r\000n\000a\000l\000\040\000F\000o\000r\000m\000s}{chapter.7}% 14
\BOOKMARK [2][-]{subsection.7.2.1}{\376\377\000A\000u\000t\000h\000o\000r\000i\000z\000a\000t\000i\000o\000n\000\040\000f\000o\000r\000\040\000H\000i\000r\000i\000n\000g}{section.7.2}% 15
\BOOKMARK [2][-]{subsection.7.2.2}{\376\377\000U\000n\000i\000o\000n\000\040\000M\000e\000m\000b\000e\000r\000s\000h\000i\000p}{section.7.2}% 16
\BOOKMARK [2][-]{subsection.7.2.3}{\376\377\000B\000e\000n\000e\000f\000i\000t\000\040\000E\000n\000r\000o\000l\000l\000m\000e\000n\000t\000\040\000F\000o\000r\000m\000s}{section.7.2}% 17
\BOOKMARK [2][-]{subsection.7.2.4}{\376\377\000C\000o\000n\000f\000i\000d\000e\000n\000t\000i\000a\000l\000i\000t\000y\000\040\000A\000g\000r\000e\000e\000m\000e\000n\000t}{section.7.2}% 18
\BOOKMARK [1][-]{section.7.3}{\376\377\000R\000e\000q\000u\000i\000r\000e\000d\000\040\000F\000e\000d\000e\000r\000a\000l\000\040\000a\000n\000d\000\040\000P\000r\000o\000v\000i\000n\000c\000i\000a\000l\000/\000T\000e\000r\000r\000i\000t\000o\000r\000i\000a\000l\000\040\000F\000o\000r\000m\000s}{chapter.7}% 19
\BOOKMARK [2][-]{subsection.7.3.1}{\376\377\000T\000a\000x\000\040\000C\000r\000e\000d\000i\000t\000s\000\040\000\050\000T\000D\0001\000\051}{section.7.3}% 20
\BOOKMARK [2][-]{subsection.7.3.2}{\376\377\000T\000a\000x\000\040\000C\000r\000e\000d\000i\000t\000s\000\040\000\050\000T\000P\000-\0001\0000\0001\0005\000.\0003\000-\000V\000\040\040\023\000\040\000Q\000u\000\351\000b\000e\000c\000\051}{section.7.3}% 21
\BOOKMARK [1][-]{section.7.4}{\376\377\000C\000o\000n\000t\000e\000n\000t\000\040\000R\000e\000v\000i\000e\000w\000\040\000H\000i\000g\000h\000l\000i\000g\000h\000t\000s}{chapter.7}% 22
\BOOKMARK [1][-]{section.7.5}{\376\377\000R\000e\000v\000i\000e\000w\000\040\000Q\000u\000e\000s\000t\000i\000o\000n\000s\000\040\000\050\000S\000a\000m\000p\000l\000e\000\051}{chapter.7}% 23
\BOOKMARK [1][-]{section.7.6}{\376\377\000E\000x\000a\000m\000p\000l\000e\000\040\000E\000v\000a\000l\000u\000a\000t\000i\000o\000n\000s}{chapter.7}% 24
\BOOKMARK [0][-]{chapter.8}{\376\377\000R\000A\000T\000E\000S\000\040\000F\000O\000R\000\040\0002\0000\0002\0005}{}% 25
\BOOKMARK [1][-]{section.8.1}{\376\377\000C\000A\000N\000A\000D\000A\000\040\000/\000\040\000Q\000U\000E\000B\000E\000C\000\040\000P\000E\000N\000S\000I\000O\000N\000\040\000P\000L\000A\000N\000\040\000\050\000C\000P\000P\000\040\000/\000\040\000Q\000P\000P\000\051}{chapter.8}% 26
\BOOKMARK [1][-]{section.8.2}{\376\377\000C\000P\000P\0002\000\040\000C\000O\000N\000T\000R\000I\000B\000U\000T\000I\000O\000N\000\040\000R\000A\000T\000E\000S\000\040\000M\000A\000X\000I\000M\000U\000M\000S}{chapter.8}% 27
\BOOKMARK [1][-]{section.8.3}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{chapter.8}% 28
\BOOKMARK [0][-]{chapter.9}{\376\377\000R\000E\000F\000E\000R\000E\000N\000C\000E\000S}{}% 29
\BOOKMARK [0][-]{chapter.10}{\376\377\000E\000r\000r\000o\000r\000s\000\040\000a\000n\000d\000\040\000E\000r\000r\000a\000t\000a}{}% 30
\BOOKMARK [0][-]{chapter.11}{\376\377\000G\000l\000o\000s\000s\000a\000r\000y}{}% 31

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

906
docs/build/simplepdf/_static/basic.css vendored Normal file
View File

@@ -0,0 +1,906 @@
/*
* Sphinx stylesheet -- basic theme.
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
div.section::after {
display: block;
content: '';
clear: left;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
word-wrap: break-word;
overflow-wrap : break-word;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox form.search {
overflow: hidden;
}
div.sphinxsidebar #searchbox input[type="text"] {
float: left;
width: 80%;
padding: 0.25em;
box-sizing: border-box;
}
div.sphinxsidebar #searchbox input[type="submit"] {
float: left;
width: 20%;
border-left: none;
padding: 0.25em;
box-sizing: border-box;
}
img {
border: 0;
max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin-top: 10px;
}
ul.search li {
padding: 5px 0;
}
ul.search li a {
font-weight: bold;
}
ul.search li p.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
margin-left: auto;
margin-right: auto;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable ul {
margin-top: 0;
margin-bottom: 0;
list-style-type: none;
}
table.indextable > tbody > tr > td > ul {
padding-left: 0em;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- domain module index --------------------------------------------------- */
table.modindextable td {
padding: 2px;
border-collapse: collapse;
}
/* -- general body styles --------------------------------------------------- */
div.body {
min-width: 450px;
max-width: 800px;
}
div.body p, div.body dd, div.body li, div.body blockquote {
-moz-hyphens: auto;
-ms-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
a.headerlink {
visibility: hidden;
}
a:visited {
color: #551A8B;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink,
caption:hover > a.headerlink,
p.caption:hover > a.headerlink,
div.code-block-caption:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, figure.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, figure.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, figure.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.align-default, figure.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-default {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar,
aside.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px;
background-color: #ffe;
width: 40%;
float: right;
clear: right;
overflow-x: auto;
}
p.sidebar-title {
font-weight: bold;
}
nav.contents,
aside.topic,
div.admonition, div.topic, blockquote {
clear: left;
}
/* -- topics ---------------------------------------------------------------- */
nav.contents,
aside.topic,
div.topic {
border: 1px solid #ccc;
padding: 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- content of sidebars/topics/admonitions -------------------------------- */
div.sidebar > :last-child,
aside.sidebar > :last-child,
nav.contents > :last-child,
aside.topic > :last-child,
div.topic > :last-child,
div.admonition > :last-child {
margin-bottom: 0;
}
div.sidebar::after,
aside.sidebar::after,
nav.contents::after,
aside.topic::after,
div.topic::after,
div.admonition::after,
blockquote::after {
display: block;
content: '';
clear: both;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
margin-top: 10px;
margin-bottom: 10px;
border: 0;
border-collapse: collapse;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
table caption span.caption-text {
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
th > :first-child,
td > :first-child {
margin-top: 0px;
}
th > :last-child,
td > :last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */
div.figure, figure {
margin: 0.5em;
padding: 0.5em;
}
div.figure p.caption, figcaption {
padding: 0.3em;
}
div.figure p.caption span.caption-number,
figcaption span.caption-number {
font-style: italic;
}
div.figure p.caption span.caption-text,
figcaption span.caption-text {
}
/* -- field list styles ----------------------------------------------------- */
table.field-list td, table.field-list th {
border: 0 !important;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
/* -- hlist styles ---------------------------------------------------------- */
table.hlist {
margin: 1em 0;
}
table.hlist td {
vertical-align: top;
}
/* -- object description styles --------------------------------------------- */
.sig {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
.sig-name, code.descname {
background-color: transparent;
font-weight: bold;
}
.sig-name {
font-size: 1.1em;
}
code.descname {
font-size: 1.2em;
}
.sig-prename, code.descclassname {
background-color: transparent;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.sig-param.n {
font-style: italic;
}
/* C++ specific styling */
.sig-inline.c-texpr,
.sig-inline.cpp-texpr {
font-family: unset;
}
.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
color: #0033B3;
}
.sig.c .m,
.sig.cpp .m {
color: #1750EB;
}
.sig.c .s, .sig.c .sc,
.sig.cpp .s, .sig.cpp .sc {
color: #067D17;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
:not(li) > ol > li:first-child > :first-child,
:not(li) > ul > li:first-child > :first-child {
margin-top: 0px;
}
:not(li) > ol > li:last-child > :last-child,
:not(li) > ul > li:last-child > :last-child {
margin-bottom: 0px;
}
ol.simple ol p,
ol.simple ul p,
ul.simple ol p,
ul.simple ul p {
margin-top: 0;
}
ol.simple > li:not(:first-child) > p,
ul.simple > li:not(:first-child) > p {
margin-top: 0;
}
ol.simple p,
ul.simple p {
margin-bottom: 0;
}
aside.footnote > span,
div.citation > span {
float: left;
}
aside.footnote > span:last-of-type,
div.citation > span:last-of-type {
padding-right: 0.5em;
}
aside.footnote > p {
margin-left: 2em;
}
div.citation > p {
margin-left: 4em;
}
aside.footnote > p:last-of-type,
div.citation > p:last-of-type {
margin-bottom: 0em;
}
aside.footnote > p:last-of-type:after,
div.citation > p:last-of-type:after {
content: "";
clear: both;
}
dl.field-list {
display: grid;
grid-template-columns: fit-content(30%) auto;
}
dl.field-list > dt {
font-weight: bold;
word-break: break-word;
padding-left: 0.5em;
padding-right: 5px;
}
dl.field-list > dd {
padding-left: 0.5em;
margin-top: 0em;
margin-left: 0em;
margin-bottom: 0em;
}
dl {
margin-bottom: 15px;
}
dd > :first-child {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
.sig dd {
margin-top: 0px;
margin-bottom: 0px;
}
.sig dl {
margin-top: 0px;
margin-bottom: 0px;
}
dl > dd:last-child,
dl > dd:last-child > :last-child {
margin-bottom: 0;
}
dt:target, span.highlighted {
background-color: #fbe54e;
}
rect.highlighted {
fill: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0 0.5em;
content: ":";
display: inline-block;
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
pre, div[class*="highlight-"] {
clear: both;
}
span.pre {
-moz-hyphens: none;
-ms-hyphens: none;
-webkit-hyphens: none;
hyphens: none;
white-space: nowrap;
}
div[class*="highlight-"] {
margin: 1em 0;
}
td.linenos pre {
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
display: block;
}
table.highlighttable tbody {
display: block;
}
table.highlighttable tr {
display: flex;
}
table.highlighttable td {
margin: 0;
padding: 0;
}
table.highlighttable td.linenos {
padding-right: 0.5em;
}
table.highlighttable td.code {
flex: 1;
overflow: hidden;
}
.highlight .hll {
display: block;
}
div.highlight pre,
table.highlighttable pre {
margin: 0;
}
div.code-block-caption + div {
margin-top: 0;
}
div.code-block-caption {
margin-top: 1em;
padding: 2px 5px;
font-size: small;
}
div.code-block-caption code {
background-color: transparent;
}
table.highlighttable td.linenos,
span.linenos,
div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none;
-webkit-user-select: text; /* Safari fallback only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
}
div.code-block-caption span.caption-number {
padding: 0.1em 0.3em;
font-style: italic;
}
div.code-block-caption span.caption-text {
}
div.literal-block-wrapper {
margin: 1em 0;
}
code.xref, a code {
background-color: transparent;
font-weight: bold;
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
span.eqno a.headerlink {
position: absolute;
z-index: 1;
}
div.math:hover a.headerlink {
visibility: visible;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}

149
docs/build/simplepdf/_static/doctools.js vendored Normal file
View File

@@ -0,0 +1,149 @@
/*
* Base JavaScript utilities for all Sphinx HTML documentation.
*/
"use strict";
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
"TEXTAREA",
"INPUT",
"SELECT",
"BUTTON",
]);
const _ready = (callback) => {
if (document.readyState !== "loading") {
callback();
} else {
document.addEventListener("DOMContentLoaded", callback);
}
};
/**
* Small JavaScript module for the documentation.
*/
const Documentation = {
init: () => {
Documentation.initDomainIndexTable();
Documentation.initOnKeyListeners();
},
/**
* i18n support
*/
TRANSLATIONS: {},
PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
LOCALE: "unknown",
// gettext and ngettext don't access this so that the functions
// can safely bound to a different name (_ = Documentation.gettext)
gettext: (string) => {
const translated = Documentation.TRANSLATIONS[string];
switch (typeof translated) {
case "undefined":
return string; // no translation
case "string":
return translated; // translation exists
default:
return translated[0]; // (singular, plural) translation tuple exists
}
},
ngettext: (singular, plural, n) => {
const translated = Documentation.TRANSLATIONS[singular];
if (typeof translated !== "undefined")
return translated[Documentation.PLURAL_EXPR(n)];
return n === 1 ? singular : plural;
},
addTranslations: (catalog) => {
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
Documentation.PLURAL_EXPR = new Function(
"n",
`return (${catalog.plural_expr})`
);
Documentation.LOCALE = catalog.locale;
},
/**
* helper function to focus on search bar
*/
focusSearchBar: () => {
document.querySelectorAll("input[name=q]")[0]?.focus();
},
/**
* Initialise the domain index toggle buttons
*/
initDomainIndexTable: () => {
const toggler = (el) => {
const idNumber = el.id.substr(7);
const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
if (el.src.substr(-9) === "minus.png") {
el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
toggledRows.forEach((el) => (el.style.display = "none"));
} else {
el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
toggledRows.forEach((el) => (el.style.display = ""));
}
};
const togglerElements = document.querySelectorAll("img.toggler");
togglerElements.forEach((el) =>
el.addEventListener("click", (event) => toggler(event.currentTarget))
);
togglerElements.forEach((el) => (el.style.display = ""));
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
},
initOnKeyListeners: () => {
// only install a listener if it is really needed
if (
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
)
return;
document.addEventListener("keydown", (event) => {
// bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
// bail with special keys
if (event.altKey || event.ctrlKey || event.metaKey) return;
if (!event.shiftKey) {
switch (event.key) {
case "ArrowLeft":
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
const prevLink = document.querySelector('link[rel="prev"]');
if (prevLink && prevLink.href) {
window.location.href = prevLink.href;
event.preventDefault();
}
break;
case "ArrowRight":
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
const nextLink = document.querySelector('link[rel="next"]');
if (nextLink && nextLink.href) {
window.location.href = nextLink.href;
event.preventDefault();
}
break;
}
}
// some keyboard layouts may need Shift to get /
switch (event.key) {
case "/":
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
Documentation.focusSearchBar();
event.preventDefault();
}
});
},
};
// quick alias for translations
const _ = Documentation.gettext;
_ready(Documentation.init);

View File

@@ -0,0 +1,13 @@
const DOCUMENTATION_OPTIONS = {
VERSION: 'Fall 2025',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'simplepdf',
FILE_SUFFIX: '.html',
LINK_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: true,
};

BIN
docs/build/simplepdf/_static/file.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 829 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,192 @@
/*
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*/
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
/* Non-minified version is copied as a separate JS file, if available */
/**
* Porter Stemmer
*/
var Stemmer = function() {
var step2list = {
ational: 'ate',
tional: 'tion',
enci: 'ence',
anci: 'ance',
izer: 'ize',
bli: 'ble',
alli: 'al',
entli: 'ent',
eli: 'e',
ousli: 'ous',
ization: 'ize',
ation: 'ate',
ator: 'ate',
alism: 'al',
iveness: 'ive',
fulness: 'ful',
ousness: 'ous',
aliti: 'al',
iviti: 'ive',
biliti: 'ble',
logi: 'log'
};
var step3list = {
icate: 'ic',
ative: '',
alize: 'al',
iciti: 'ic',
ical: 'ic',
ful: '',
ness: ''
};
var c = "[^aeiou]"; // consonant
var v = "[aeiouy]"; // vowel
var C = c + "[^aeiouy]*"; // consonant sequence
var V = v + "[aeiou]*"; // vowel sequence
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
var s_v = "^(" + C + ")?" + v; // vowel in stem
this.stemWord = function (w) {
var stem;
var suffix;
var firstch;
var origword = w;
if (w.length < 3)
return w;
var re;
var re2;
var re3;
var re4;
firstch = w.substr(0,1);
if (firstch == "y")
w = firstch.toUpperCase() + w.substr(1);
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w))
w = w.replace(re,"$1$2");
else if (re2.test(w))
w = w.replace(re2,"$1$2");
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w))
w = w + "e";
else if (re3.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
else if (re4.test(w))
w = w + "e";
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem))
w = stem + "i";
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step2list[suffix];
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step3list[suffix];
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem))
w = stem;
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem))
w = stem;
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
w = stem;
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y")
w = firstch.toLowerCase() + w.substr(1);
return w;
}
}

925
docs/build/simplepdf/_static/main.css vendored Normal file
View File

@@ -0,0 +1,925 @@
@charset "UTF-8";
@font-face {
font-family: Work Sans Bold;
font-weight: bold;
src: url(fonts/WorkSans-Bold.ttf); }
@font-face {
font-family: Work Sans Bold;
font-weight: 400;
src: url(fonts/WorkSans-SemiBold.ttf); }
@font-face {
font-family: Work Sans;
font-weight: 400;
src: url(fonts/WorkSans-Regular.ttf); }
@font-face {
font-family: Fira Sans;
font-weight: 400;
src: url(fonts/FiraSans-Regular.otf); }
@font-face {
font-family: Fira Sans;
font-style: italic;
font-weight: 400;
src: url(fonts/FiraSans-Italic.otf); }
@font-face {
font-family: Fira Sans;
font-weight: 300;
src: url(fonts/FiraSans-Light.otf); }
@font-face {
font-family: Fira Sans;
font-style: italic;
font-weight: 300;
src: url(fonts/FiraSans-LightItalic.otf); }
@font-face {
font-family: Fira Sans;
font-weight: bold;
src: url(fonts/FiraSans-Bold.otf); }
@font-face {
font-family: fontawesome-webfont;
src: url("fonts/fa-solid-900.eot");
src: url("fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("fonts/fa-solid-900.ttf") format("truetype"), url("fonts/fa-solid-900.svg#fontawesome-webfont") format("svg"); }
@font-face {
font-family: monospace;
src: url(fonts/FiraMono-Regular.ttf); }
@font-face {
font-family: monospace;
font-weight: 400;
src: url(fonts/FiraMono-Medium.ttf); }
@font-face {
font-family: monospace;
font-weight: bold;
src: url(fonts/FiraMono-Bold.ttf); }
ul, ol {
padding-left: 15px; }
ul ul, ul ol, ol ul, ol ol {
padding-left: 20px; }
dl dt {
font-weight: bold; }
dl.option-list, dl.field-list {
display: flex;
flex-wrap: wrap; }
dl.option-list dt, dl.field-list dt {
padding-right: 15px;
flex: 0 0 33%;
max-width: 33%;
font-weight: normal; }
dl.option-list dd, dl.field-list dd {
margin-left: 0;
padding-left: 15px;
flex: 0 0 66%;
max-width: 66%; }
dl.field-list dt, dl.field-list dd {
padding-top: .5em;
padding-bottom: .5em; }
.hlist ul {
list-style: none; }
table.break {
page-break-before: always; }
table.ssp-table-wrap {
table-layout: fixed; }
table.ssp-table-wrap td, table.ssp-table-wrap th {
overflow-wrap: break-word; }
table.docutils {
width: 100%;
max-width: 100%;
margin-bottom: 1rem;
background-color: transparent;
border-spacing: 0; }
table.docutils td, table.docutils th {
padding: .75rem;
vertical-align: top; }
table.docutils thead th {
vertical-align: bottom;
border-bottom: 2px solid #dee2e6;
background: #F0F0F0;
border-top: 1px solid #dee2e6; }
table.docutils tbody tr.row-odd {
background: #f6f6f6; }
table.docutils tbody tr td {
display: table-cell;
font-weight: normal !important; }
table.docutils tbody tr * {
border: 0; }
table.docutils.ssp-tinier td, table.docutils.ssp-tinier th {
padding: .4rem;
vertical-align: top;
font-size: 0.75em; }
table.docutils.ssp-tiny td, table.docutils.ssp-tiny th {
padding: .05rem;
vertical-align: top;
font-size: 0.5em; }
div.topic {
border: 0;
padding: 0; }
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-radius: 0.25rem; }
.alert-heading {
color: inherit; }
.alert-link {
font-weight: 700; }
.alert-dismissible {
padding-right: 4rem; }
.alert-dismissible .close {
position: absolute;
top: 0;
right: 0;
padding: 0.75rem 1.25rem;
color: inherit; }
.alert-primary {
color: #004085;
background-color: #cce5ff;
border-color: #b8daff; }
.alert-primary hr {
border-top-color: #9fcdff; }
.alert-primary .alert-link {
color: #002752; }
.alert-secondary {
color: #383d41;
background-color: #e2e3e5;
border-color: #d6d8db; }
.alert-secondary hr {
border-top-color: #c8cbcf; }
.alert-secondary .alert-link {
color: #202326; }
.alert-success {
color: #155724;
background-color: #d4edda;
border-color: #c3e6cb; }
.alert-success hr {
border-top-color: #b1dfbb; }
.alert-success .alert-link {
color: #0b2e13; }
.alert-info {
color: #0c5460;
background-color: #d1ecf1;
border-color: #bee5eb; }
.alert-info hr {
border-top-color: #abdde5; }
.alert-info .alert-link {
color: #062c33; }
.alert-warning {
color: #856404;
background-color: #fff3cd;
border-color: #ffeeba; }
.alert-warning hr {
border-top-color: #ffe8a1; }
.alert-warning .alert-link {
color: #533f03; }
.alert-danger {
color: #721c24;
background-color: #f8d7da;
border-color: #f5c6cb; }
.alert-danger hr {
border-top-color: #f1b0b7; }
.alert-danger .alert-link {
color: #491217; }
.alert-light {
color: #818182;
background-color: #fefefe;
border-color: #fdfdfe; }
.alert-light hr {
border-top-color: #ececf6; }
.alert-light .alert-link {
color: #686868; }
.alert-dark {
color: #1b1e21;
background-color: #d6d8d9;
border-color: #c6c8ca; }
.alert-dark hr {
border-top-color: #b9bbbe; }
.alert-dark .alert-link {
color: #040505; }
dl.class dt, dl.type dt, dl.function dt, dl.member dt, dl.var dt, dl.enum dt, dl.enum-class dt, dl.enum-struct dt, dl.method dt {
text-align: left; }
dl.class > dt, dl.type > dt, dl.function > dt, dl.member > dt, dl.var > dt, dl.enum > dt, dl.enum-class > dt, dl.enum-struct > dt, dl.method > dt {
font-weight: normal; }
dl.class em.property, dl.type em.property, dl.function em.property, dl.member em.property, dl.var em.property, dl.enum em.property, dl.enum-class em.property, dl.enum-struct em.property, dl.method em.property {
font-weight: bold;
color: #007020; }
dl.class em.sig-param, dl.type em.sig-param, dl.function em.sig-param, dl.member em.sig-param, dl.var em.sig-param, dl.enum em.sig-param, dl.enum-class em.sig-param, dl.enum-struct em.sig-param, dl.method em.sig-param {
color: #007020; }
dl.class code.sig-prename, dl.type code.sig-prename, dl.function code.sig-prename, dl.member code.sig-prename, dl.var code.sig-prename, dl.enum code.sig-prename, dl.enum-class code.sig-prename, dl.enum-struct code.sig-prename, dl.method code.sig-prename {
font-weight: bold;
color: #4070a0; }
dl.class code.sig-name, dl.type code.sig-name, dl.function code.sig-name, dl.member code.sig-name, dl.var code.sig-name, dl.enum code.sig-name, dl.enum-class code.sig-name, dl.enum-struct code.sig-name, dl.method code.sig-name {
color: #0e84b5; }
dl.class dl.field-list, dl.type dl.field-list, dl.function dl.field-list, dl.member dl.field-list, dl.var dl.field-list, dl.enum dl.field-list, dl.enum-class dl.field-list, dl.enum-struct dl.field-list, dl.method dl.field-list {
display: block; }
dl.class dl.field-list dt, dl.class dl.field-list dd, dl.type dl.field-list dt, dl.type dl.field-list dd, dl.function dl.field-list dt, dl.function dl.field-list dd, dl.member dl.field-list dt, dl.member dl.field-list dd, dl.var dl.field-list dt, dl.var dl.field-list dd, dl.enum dl.field-list dt, dl.enum dl.field-list dd, dl.enum-class dl.field-list dt, dl.enum-class dl.field-list dd, dl.enum-struct dl.field-list dt, dl.enum-struct dl.field-list dd, dl.method dl.field-list dt, dl.method dl.field-list dd {
padding-left: 0; }
.contents ul {
list-style: none; }
.contents > ul {
padding-left: 0; }
.contents > ul > li {
font-weight: 500;
line-height: 15pt;
margin: 3em 0 1em; }
.contents > ul > li::before {
background: #961a1a;
color: #ffffff;
content: "";
display: block;
height: 0.08cm;
margin-bottom: 0.25cm;
width: 2cm; }
.contents > ul > li a {
color: #000000;
font-size: 15pt; }
.contents > ul > li a::after {
color: #961a1a;
content: target-counter(attr(href url), page);
float: right; }
.contents > ul > li > ul {
list-style: none;
padding-left: 0; }
.contents > ul > li > ul li {
border-top: 0.3pt solid #c1c1c1;
margin: 0.25cm 0;
padding-top: 0.25cm;
line-height: 12pt;
font-weight: 300; }
.contents > ul > li > ul li a {
color: #000000;
font-size: 12pt; }
.contents > ul > li > ul li p::before {
color: #961a1a;
content: "• ";
font-size: 40pt;
line-height: 16pt;
vertical-align: bottom; }
.contents > ul > li > ul li ul {
padding-left: 2em; }
.sphinxsidebarwrapper {
page-break-before: always; }
.sphinxsidebarwrapper div ul {
list-style: none; }
.sphinxsidebarwrapper div > ul {
padding-left: 0; }
.sphinxsidebarwrapper div > ul > li {
font-weight: 500;
line-height: 12pt;
margin: 2em 0 1em; }
.sphinxsidebarwrapper div > ul > li a {
color: #000000;
font-size: 13pt; }
.sphinxsidebarwrapper div > ul > li a::after {
color: #961a1a;
content: target-counter(attr(href url), page);
float: right; }
.sphinxsidebarwrapper div > ul > li > ul {
list-style: none;
padding-left: 0; }
.sphinxsidebarwrapper div > ul > li > ul li {
border-top: 0.3pt solid #c1c1c1;
margin: 0.15cm 0;
padding-top: 0.15cm;
line-height: 10pt;
font-weight: 300; }
.sphinxsidebarwrapper div > ul > li > ul li a {
color: #000000;
font-size: 12pt; }
.sphinxsidebarwrapper div > ul > li > ul li a::before {
color: #961a1a;
content: "• ";
font-size: 30pt;
line-height: 10pt;
vertical-align: bottom; }
.sphinxsidebarwrapper div > ul > li > ul li ul {
padding-left: 2em; }
.dont-break {
page-break-inside: avoid; }
.break-before {
page-break-before: always; }
.break-after {
page-break-after: always; }
#back-cover {
page: back_cover;
page-break-before: always; }
@page landscape_page {
size: landscape; }
@page portrait_page {
size: portrait; }
.ssp-portrait {
page: portrait_page; }
.ssp-landscape {
page: landscape_page; }
@page {
padding-top: 1em;
@top-left {
background: #961a1a;
color: #ffffff;
content: counter(page);
height: 1cm;
text-align: center;
width: 1cm; }
@top-center {
font-size: 9pt;
height: 1cm;
text-align: center;
vertical-align: middle;
width: 100%;
border-bottom-color: rgba(150, 26, 26, .5);
border-bottom-style: solid;
border-bottom-width: 0.05cm; }
@top-right {
content: string(heading);
font-size: 9pt;
height: 1cm;
text-align: right;
vertical-align: middle;
width: 100%;
border-bottom-color: rgba(150, 26, 26, .5);
border-bottom-style: solid;
border-bottom-width: 0.05cm; }
@bottom-left {
text-align: left;
font-size: 9pt;
height: 1cm;
vertical-align: middle;
width: 100%;
border-top-color: rgba(150, 26, 26, .5);
border-top-style: solid;
border-top-width: 0.05cm;
margin-top: 3px;
position: absolute;
bottom: 30pt; }
@bottom-center {
text-align: center;
font-size: 9pt;
height: 1cm;
vertical-align: middle;
width: 100%;
border-top-color: rgba(150, 26, 26, .5);
border-top-style: solid;
border-top-width: 0.05cm;
margin-top: 3px;
position: absolute;
bottom: 30pt; }
@bottom-right {
text-align: right;
font-size: 9pt;
height: 1cm;
vertical-align: middle;
width: 100%;
margin-top: 3px;
position: absolute;
bottom: 30pt;
border-top-color: rgba(150, 26, 26, .5);
border-top-style: solid;
border-top-width: 0.05cm; } }
@page :blank {
@top-left {
background: none;
content: ""; }
@top-center {
content: none; }
@top-right {
content: none; } }
@page no-chapter {
@top-left {
background: none;
content: none; }
@top-center {
content: none; }
@top-right {
content: none; } }
@page :first {
background: #961a1a;
background-size: cover;
margin: 0; }
@media screen {
#cover {
background: #961a1a;
background-size: cover;
margin: 0; } }
@page chapter {
background: #961a1a;
color: #ffffff;
margin: 0;
@top-left {
content: none; }
@top-center {
content: none; }
@top-right {
content: none; } }
@page back_cover {
background: #961a1a;
background-size: cover;
margin: 0;
color: #ffffff; }
@page back_cover {
@bottom-right {
content: none; }
@top-left {
background: none;
content: ''; }
@top-center {
content: none; }
@top-right {
content: none; } }
#cover {
width: 100%;
align-content: space-between;
display: flex;
flex-wrap: wrap;
height: 297mm;
background: #961a1a;
background-size: cover;
margin: 0; }
#cover h1 {
font-family: "Work Sans", sans-serif;
color: #961a1a;
font-size: 38pt;
margin: 5cm 2cm 0 2cm;
page: no-chapter;
width: 100%; }
#cover a {
color: #ffffff;
font-weight: bolder; }
#cover .container {
width: 100%;
top: 0;
background: rgba(0,0,0,0); }
#cover .container .logo {
font-size: 24pt;
color: #ffffff;
width: 200px;
height: 45px;
position: absolute;
text-align: right;
top: 40pt;
right: 20pt; }
#cover .container .logo p {
margin: auto; }
#cover .container .cover-middle {
position: relative;
top: 40%;
width: 100%; }
#cover .container .cover-middle .title {
position: absolute;
top: 5pt;
left: 40pt;
height: 150pt; }
#cover .container .cover-middle .title .title-cover {
font-family: "Work Sans Bold", sans-serif;
font-size: 45pt;
margin-bottom: 0;
margin-top: 0;
margin-left: 0;
color: #ffffff; }
#cover .container .cover-middle .title .subtitle-cover {
font-family: "Work Sans Bold", sans-serif;
font-weight: bolder;
font-size: 28pt;
margin-top: 5pt;
color: #ffffff; }
#cover .container .cover-middle .title .meta {
font-family: 'Work Sans';
font-size: 18pt;
margin-top: 12pt;
margin-bottom: 0;
color: #ffffff; }
#cover .container .cover-middle .client-logo {
position: absolute;
border-radius: 8pt;
border: 4px solid white;
background-color: white;
top: 20pt;
right: 40pt;
float: right;
height: 150px;
width: 150px; }
#cover .container .cover-middle .client-logo img {
width: 150px;
height: 150px; }
#cover .container .cover-footer {
font-family: 'Work Sans';
font-size: 11pt;
margin-top: 3px;
position: absolute;
bottom: 30pt;
color: #ffffff;
width: 100%; }
#cover .container .cover-footer p {
width: 80%;
margin: 0 auto;
text-align: center; }
#back-cover {
width: 100%;
height: 100%; }
#back-cover .container {
width: 100%; }
#back-cover .container .back-cover-footer {
font-family: 'Helvetica Neue';
font-size: 11pt;
margin-top: 3px;
position: absolute;
bottom: 30pt;
color: #ffffff;
width: 100%; }
#back-cover .container .back-cover-footer p {
width: 80%;
margin: 0 auto;
text-align: center; }
#back-cover .container .back-cover-footer p a {
color: #ffffff; }
.badge {
display: inline-block;
padding: .25em .4em;
font-size: 75%;
font-weight: 700;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25rem; }
.text-white {
color: #fff !important; }
.text-primary {
color: #007bff !important; }
a {
color: #961a1a;
text-decoration: none; }
a.text-primary:hover, a.text-primary:focus {
color: #0056b3 !important; }
.text-secondary {
color: #6c757d !important; }
a.text-secondary:hover, a.text-secondary:focus {
color: #494f54 !important; }
.text-success {
color: #28a745 !important; }
a.text-success:hover, a.text-success:focus {
color: #19692c !important; }
.text-info {
color: #17a2b8 !important; }
a.text-info:hover, a.text-info:focus {
color: #0f6674 !important; }
.text-warning {
color: #ffc107 !important; }
a.text-warning:hover, a.text-warning:focus {
color: #ba8b00 !important; }
.text-danger {
color: #dc3545 !important; }
a.text-danger:hover, a.text-danger:focus {
color: #a71d2a !important; }
.text-light {
color: #f8f9fa !important; }
a.text-light:hover, a.text-light:focus {
color: #cbd3da !important; }
.text-dark {
color: #343a40 !important; }
a.text-dark:hover, a.text-dark:focus {
color: #121416 !important; }
.text-body {
color: #212529 !important; }
.text-muted {
color: #6c757d !important; }
.text-black-50 {
color: rgba(0, 0, 0, 0.5) !important; }
.text-white-50 {
color: rgba(255, 255, 255, 0.5) !important; }
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0; }
.text-decoration-none {
text-decoration: none !important; }
.square-brackets-quote {
border: solid 1em #ccc;
margin: 0;
padding: 1em;
position: relative;
max-width: 100%; }
.square-brackets-quote:before {
background-color: white;
bottom: -1em;
content: "";
left: 2em;
position: absolute;
right: 2em;
top: -1em; }
.square-brackets-quote cite {
color: #757575;
display: block;
font-size: small;
font-style: normal;
text-align: right;
text-transform: uppercase; }
.square-brackets-quote > * {
position: relative;
z-index: 1; }
.body {
text-align: justify; }
.body pre, .body h1, .body h2, .body h3, .body h4, .body h5, .body h6 {
text-align: left; }
a.download code.download.literal.notranslate {
color: #083764;
background-color: transparent;
font-family: inherit; }
a.download code.download.literal.notranslate:before {
display: inline-block;
font-family: fontawesome-webfont;
content: "\f019";
font-style: normal;
font-weight: normal;
line-height: 1;
text-decoration: inherit;
margin-right: 2px; }
.admonition {
padding: 12px;
line-height: 24px;
margin-bottom: 24px;
background: #e7f2fa; }
.admonition .admonition-title {
color: #fff;
font-weight: bold;
display: block;
margin: -6px;
padding: 6px 12px;
margin-bottom: 12px;
background: #6ab0de; }
.admonition .admonition-title:before {
display: inline-block;
font-family: fontawesome-webfont;
content: "\f06a";
font-style: normal;
font-weight: normal;
line-height: 1;
text-decoration: inherit;
margin-right: 4px; }
.admonition.attention, .admonition.caution, .admonition.warning {
background: #ffedcc; }
.admonition.attention .admonition-title, .admonition.caution .admonition-title, .admonition.warning .admonition-title {
background: #f0b37e; }
.admonition.attention .admonition-title:before, .admonition.caution .admonition-title:before, .admonition.warning .admonition-title:before {
content: "\f071"; }
.admonition.danger, .admonition.error {
background: #fdf3f2; }
.admonition.danger .admonition-title, .admonition.error .admonition-title {
background: #f29f97; }
.admonition.danger .admonition-title:before, .admonition.error .admonition-title:before {
content: "\f7b9"; }
.admonition.hint, .admonition.important {
background: #dbfaf4; }
.admonition.hint .admonition-title, .admonition.important .admonition-title {
background: #1abc9c; }
.admonition.hint .admonition-title:before, .admonition.note .admonition-title:before {
content: "\f05a"; }
dl.head, dl.get, dl.post, dl.put, dl.delete, dl.patch, dl.options, dl.trace, dl.connect, dl.copy, dl.any {
break-before: auto;
break-after: auto;
break-inside: auto; }
dl.head > dd > dl.field-list, dl.get > dd > dl.field-list, dl.post > dd > dl.field-list, dl.put > dd > dl.field-list, dl.delete > dd > dl.field-list, dl.patch > dd > dl.field-list, dl.options > dd > dl.field-list, dl.trace > dd > dl.field-list, dl.connect > dd > dl.field-list, dl.copy > dd > dl.field-list, dl.any > dd > dl.field-list {
display: block; }
dl.head > dd > dl.field-list > *, dl.get > dd > dl.field-list > *, dl.post > dd > dl.field-list > *, dl.put > dd > dl.field-list > *, dl.delete > dd > dl.field-list > *, dl.patch > dd > dl.field-list > *, dl.options > dd > dl.field-list > *, dl.trace > dd > dl.field-list > *, dl.connect > dd > dl.field-list > *, dl.copy > dd > dl.field-list > *, dl.any > dd > dl.field-list > * {
flex-basis: unset;
padding-left: 0; }
dl.head > dt, dl.get > dt, dl.post > dt, dl.put > dt, dl.delete > dt, dl.patch > dt, dl.options > dt, dl.trace > dt, dl.connect > dt, dl.copy > dt, dl.any > dt {
margin-bottom: 1em; }
dl.head > dd, dl.get > dd, dl.post > dd, dl.put > dd, dl.delete > dd, dl.patch > dd, dl.options > dd, dl.trace > dd, dl.connect > dd, dl.copy > dd, dl.any > dd {
margin-left: 0; }
dl.head > dd > p > strong, dl.get > dd > p > strong, dl.post > dd > p > strong, dl.put > dd > p > strong, dl.delete > dd > p > strong, dl.patch > dd > p > strong, dl.options > dd > p > strong, dl.trace > dd > p > strong, dl.connect > dd > p > strong, dl.copy > dd > p > strong, dl.any > dd > p > strong {
font-weight: normal; }
dl.head span.sig-paren, dl.head em.property, dl.head em.sig-param, dl.get span.sig-paren, dl.get em.property, dl.get em.sig-param, dl.post span.sig-paren, dl.post em.property, dl.post em.sig-param, dl.put span.sig-paren, dl.put em.property, dl.put em.sig-param, dl.delete span.sig-paren, dl.delete em.property, dl.delete em.sig-param, dl.patch span.sig-paren, dl.patch em.property, dl.patch em.sig-param, dl.options span.sig-paren, dl.options em.property, dl.options em.sig-param, dl.trace span.sig-paren, dl.trace em.property, dl.trace em.sig-param, dl.connect span.sig-paren, dl.connect em.property, dl.connect em.sig-param, dl.copy span.sig-paren, dl.copy em.property, dl.copy em.sig-param, dl.any span.sig-paren, dl.any em.property, dl.any em.sig-param {
font-weight: normal; }
dl.head code.descname:first-child, dl.get code.descname:first-child, dl.post code.descname:first-child, dl.put code.descname:first-child, dl.delete code.descname:first-child, dl.patch code.descname:first-child, dl.options code.descname:first-child, dl.trace code.descname:first-child, dl.connect code.descname:first-child, dl.copy code.descname:first-child, dl.any code.descname:first-child {
font-size: 0.9em;
background-color: #337ab7;
color: white;
display: inline-block;
padding-left: 5px;
padding-right: 5px;
margin-right: 10px; }
dl.head.get code.descname:first-child, dl.get.get code.descname:first-child, dl.post.get code.descname:first-child, dl.put.get code.descname:first-child, dl.delete.get code.descname:first-child, dl.patch.get code.descname:first-child, dl.options.get code.descname:first-child, dl.trace.get code.descname:first-child, dl.connect.get code.descname:first-child, dl.copy.get code.descname:first-child, dl.any.get code.descname:first-child {
background-color: #61AFFE; }
dl.head.post code.descname:first-child, dl.get.post code.descname:first-child, dl.post.post code.descname:first-child, dl.put.post code.descname:first-child, dl.delete.post code.descname:first-child, dl.patch.post code.descname:first-child, dl.options.post code.descname:first-child, dl.trace.post code.descname:first-child, dl.connect.post code.descname:first-child, dl.copy.post code.descname:first-child, dl.any.post code.descname:first-child {
background-color: #49CC90; }
dl.head.put code.descname:first-child, dl.get.put code.descname:first-child, dl.post.put code.descname:first-child, dl.put.put code.descname:first-child, dl.delete.put code.descname:first-child, dl.patch.put code.descname:first-child, dl.options.put code.descname:first-child, dl.trace.put code.descname:first-child, dl.connect.put code.descname:first-child, dl.copy.put code.descname:first-child, dl.any.put code.descname:first-child {
background-color: #FCA130; }
dl.head.patch code.descname:first-child, dl.get.patch code.descname:first-child, dl.post.patch code.descname:first-child, dl.put.patch code.descname:first-child, dl.delete.patch code.descname:first-child, dl.patch.patch code.descname:first-child, dl.options.patch code.descname:first-child, dl.trace.patch code.descname:first-child, dl.connect.patch code.descname:first-child, dl.copy.patch code.descname:first-child, dl.any.patch code.descname:first-child {
background-color: #50E3C2; }
dl.head.delete code.descname:first-child, dl.get.delete code.descname:first-child, dl.post.delete code.descname:first-child, dl.put.delete code.descname:first-child, dl.delete.delete code.descname:first-child, dl.patch.delete code.descname:first-child, dl.options.delete code.descname:first-child, dl.trace.delete code.descname:first-child, dl.connect.delete code.descname:first-child, dl.copy.delete code.descname:first-child, dl.any.delete code.descname:first-child {
background-color: #F93E3E; }
.needs_style_break {
page-break-before: always; }
table.need, table.NEEDS_DATATABLES, .needs_style_ssp-table-wrap {
table-layout: fixed; }
table.need td, table.need th, table.NEEDS_DATATABLES td, table.NEEDS_DATATABLES th, .needs_style_ssp-table-wrap td, .needs_style_ssp-table-wrap th {
overflow-wrap: break-word; }
body div.body {
min-width: unset;
max-width: unset; }
.docutils th.field-name {
display: table-row; }
.docutils td {
display: none; }
.docutils td.field-body {
display: table-row;
padding-top: 1em; }
.docutils td.field-body ul {
margin-left: 1em;
margin-bottom: 1em; }
body {
margin: 0; }
.highlight-default {
margin-top: 0.5em; }
.highlight pre {
padding: 1em;
white-space: -o-pre-wrap;
word-wrap: break-word;
white-space: pre-wrap; }
.headerlink {
display: none; }
html {
color: #393939;
font-family: Fira Sans;
font-size: 11pt;
font-weight: 300;
line-height: 1.5; }
html body h1 {
color: #961a1a;
font-size: 30pt;
page-break-before: always; }
html body h2, html body h3, html body h4 {
color: black;
font-weight: 400; }
html body h2 {
page-break-before: always;
font-size: 28pt;
string-set: heading content(); }
html body h3 {
font-weight: 300;
font-size: 20pt; }
html body h4 {
font-size: 16pt; }
html body h5 {
font-size: 15pt;
font-weight: 100; }
html body h6 {
font-size: 13pt;
font-weight: 100; }
html body section h5 {
margin-bottom: 1pt; }
html body section p {
margin-top: 0; }
html body h5, html body h6 {
margin-bottom: 0;
padding-bottom: 0; }
.alert i {
margin-right: 6pt; }
.is-marginless {
margin: 0 !important; }
.is-paddingless {
padding: 0 !important; }
.charts-inline {
columns: 2;
column-fill: balance; }
.img-fluid {
max-width: 100%;
height: auto; }
img {
max-width: 100%;
height: auto; }
.big-stats {
font-size: 23pt; }
.docutils.literal.notranslate {
hyphens: none;
color: #552977;
background-color: #f1f1f1;
font-size: 9pt;
display: inline-block;
padding: 1pt 3pt; }

BIN
docs/build/simplepdf/_static/minus.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

BIN
docs/build/simplepdf/_static/plus.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

View File

@@ -0,0 +1,75 @@
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight { background: #eeffcc; }
.highlight .c { color: #408090; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #F00 } /* Error */
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
.highlight .o { color: #666 } /* Operator */
.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #007020 } /* Comment.Preproc */
.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408090; background-color: #FFF0F0 } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #F00 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #333 } /* Generic.Output */
.highlight .gp { color: #C65D09; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #04D } /* Generic.Traceback */
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #902000 } /* Keyword.Type */
.highlight .m { color: #208050 } /* Literal.Number */
.highlight .s { color: #4070A0 } /* Literal.String */
.highlight .na { color: #4070A0 } /* Name.Attribute */
.highlight .nb { color: #007020 } /* Name.Builtin */
.highlight .nc { color: #0E84B5; font-weight: bold } /* Name.Class */
.highlight .no { color: #60ADD5 } /* Name.Constant */
.highlight .nd { color: #555; font-weight: bold } /* Name.Decorator */
.highlight .ni { color: #D55537; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #007020 } /* Name.Exception */
.highlight .nf { color: #06287E } /* Name.Function */
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
.highlight .nn { color: #0E84B5; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #BB60D5 } /* Name.Variable */
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
.highlight .w { color: #BBB } /* Text.Whitespace */
.highlight .mb { color: #208050 } /* Literal.Number.Bin */
.highlight .mf { color: #208050 } /* Literal.Number.Float */
.highlight .mh { color: #208050 } /* Literal.Number.Hex */
.highlight .mi { color: #208050 } /* Literal.Number.Integer */
.highlight .mo { color: #208050 } /* Literal.Number.Oct */
.highlight .sa { color: #4070A0 } /* Literal.String.Affix */
.highlight .sb { color: #4070A0 } /* Literal.String.Backtick */
.highlight .sc { color: #4070A0 } /* Literal.String.Char */
.highlight .dl { color: #4070A0 } /* Literal.String.Delimiter */
.highlight .sd { color: #4070A0; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #4070A0 } /* Literal.String.Double */
.highlight .se { color: #4070A0; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #4070A0 } /* Literal.String.Heredoc */
.highlight .si { color: #70A0D0; font-style: italic } /* Literal.String.Interpol */
.highlight .sx { color: #C65D09 } /* Literal.String.Other */
.highlight .sr { color: #235388 } /* Literal.String.Regex */
.highlight .s1 { color: #4070A0 } /* Literal.String.Single */
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #06287E } /* Name.Function.Magic */
.highlight .vc { color: #BB60D5 } /* Name.Variable.Class */
.highlight .vg { color: #BB60D5 } /* Name.Variable.Global */
.highlight .vi { color: #BB60D5 } /* Name.Variable.Instance */
.highlight .vm { color: #BB60D5 } /* Name.Variable.Magic */
.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */

View File

@@ -0,0 +1,635 @@
/*
* Sphinx JavaScript utilities for the full-text search.
*/
"use strict";
/**
* Simple result scoring code.
*/
if (typeof Scorer === "undefined") {
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [docname, title, anchor, descr, score, filename]
// and returns the new score.
/*
score: result => {
const [docname, title, anchor, descr, score, filename, kind] = result
return score
},
*/
// query matches the full name of an object
objNameMatch: 11,
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {
0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5, // used to be unimportantResults
},
// Used when the priority is not in the mapping.
objPrioDefault: 0,
// query found in title
title: 15,
partialTitle: 7,
// query found in terms
term: 5,
partialTerm: 2,
};
}
// Global search result kind enum, used by themes to style search results.
class SearchResultKind {
static get index() { return "index"; }
static get object() { return "object"; }
static get text() { return "text"; }
static get title() { return "title"; }
}
const _removeChildren = (element) => {
while (element && element.lastChild) element.removeChild(element.lastChild);
};
/**
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
*/
const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
const _displayItem = (item, searchTerms, highlightTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
const contentRoot = document.documentElement.dataset.content_root;
const [docName, title, anchor, descr, score, _filename, kind] = item;
let listItem = document.createElement("li");
// Add a class representing the item's type:
// can be used by a theme's CSS selector for styling
// See SearchResultKind for the class names.
listItem.classList.add(`kind-${kind}`);
let requestUrl;
let linkUrl;
if (docBuilder === "dirhtml") {
// dirhtml builder
let dirname = docName + "/";
if (dirname.match(/\/index\/$/))
dirname = dirname.substring(0, dirname.length - 6);
else if (dirname === "index/") dirname = "";
requestUrl = contentRoot + dirname;
linkUrl = requestUrl;
} else {
// normal html builders
requestUrl = contentRoot + docName + docFileSuffix;
linkUrl = docName + docLinkSuffix;
}
let linkEl = listItem.appendChild(document.createElement("a"));
linkEl.href = linkUrl + anchor;
linkEl.dataset.score = score;
linkEl.innerHTML = title;
if (descr) {
listItem.appendChild(document.createElement("span")).innerHTML =
" (" + descr + ")";
// highlight search terms in the description
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
}
else if (showSearchSummary)
fetch(requestUrl)
.then((responseData) => responseData.text())
.then((data) => {
if (data)
listItem.appendChild(
Search.makeSearchSummary(data, searchTerms, anchor)
);
// highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
});
Search.output.appendChild(listItem);
};
const _finishSearch = (resultCount) => {
Search.stopPulse();
Search.title.innerText = _("Search Results");
if (!resultCount)
Search.status.innerText = Documentation.gettext(
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
);
else
Search.status.innerText = Documentation.ngettext(
"Search finished, found one page matching the search query.",
"Search finished, found ${resultCount} pages matching the search query.",
resultCount,
).replace('${resultCount}', resultCount);
};
const _displayNextItem = (
results,
resultCount,
searchTerms,
highlightTerms,
) => {
// results left, load the summary and display it
// this is intended to be dynamic (don't sub resultsCount)
if (results.length) {
_displayItem(results.pop(), searchTerms, highlightTerms);
setTimeout(
() => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
5
);
}
// search finished, update title and status message
else _finishSearch(resultCount);
};
// Helper function used by query() to order search results.
// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
// Order the results by score (in opposite order of appearance, since the
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
const _orderResultsByScoreThenName = (a, b) => {
const leftScore = a[4];
const rightScore = b[4];
if (leftScore === rightScore) {
// same score: sort alphabetically
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
};
/**
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a
* custom function per language.
*
* The regular expression works by splitting the string on consecutive characters
* that are not Unicode letters, numbers, underscores, or emoji characters.
* This is the same as ``\W+`` in Python, preserving the surrogate pair area.
*/
if (typeof splitQuery === "undefined") {
var splitQuery = (query) => query
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
.filter(term => term) // remove remaining empty strings
}
/**
* Search Module
*/
const Search = {
_index: null,
_queued_query: null,
_pulse_status: -1,
htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
for (const removalQuery of [".headerlink", "script", "style"]) {
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
}
if (anchor) {
const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
if (anchorContent) return anchorContent.textContent;
console.warn(
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
);
}
// if anchor not specified or not found, fall back to main content
const docContent = htmlElement.querySelector('[role="main"]');
if (docContent) return docContent.textContent;
console.warn(
"Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
);
return "";
},
init: () => {
const query = new URLSearchParams(window.location.search).get("q");
document
.querySelectorAll('input[name="q"]')
.forEach((el) => (el.value = query));
if (query) Search.performSearch(query);
},
loadIndex: (url) =>
(document.body.appendChild(document.createElement("script")).src = url),
setIndex: (index) => {
Search._index = index;
if (Search._queued_query !== null) {
const query = Search._queued_query;
Search._queued_query = null;
Search.query(query);
}
},
hasIndex: () => Search._index !== null,
deferQuery: (query) => (Search._queued_query = query),
stopPulse: () => (Search._pulse_status = -1),
startPulse: () => {
if (Search._pulse_status >= 0) return;
const pulse = () => {
Search._pulse_status = (Search._pulse_status + 1) % 4;
Search.dots.innerText = ".".repeat(Search._pulse_status);
if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
};
pulse();
},
/**
* perform a search for something (or wait until index is loaded)
*/
performSearch: (query) => {
// create the required interface elements
const searchText = document.createElement("h2");
searchText.textContent = _("Searching");
const searchSummary = document.createElement("p");
searchSummary.classList.add("search-summary");
searchSummary.innerText = "";
const searchList = document.createElement("ul");
searchList.setAttribute("role", "list");
searchList.classList.add("search");
const out = document.getElementById("search-results");
Search.title = out.appendChild(searchText);
Search.dots = Search.title.appendChild(document.createElement("span"));
Search.status = out.appendChild(searchSummary);
Search.output = out.appendChild(searchList);
const searchProgress = document.getElementById("search-progress");
// Some themes don't use the search progress node
if (searchProgress) {
searchProgress.innerText = _("Preparing search...");
}
Search.startPulse();
// index already loaded, the browser was quick!
if (Search.hasIndex()) Search.query(query);
else Search.deferQuery(query);
},
_parseQuery: (query) => {
// stem the search terms and add them to the correct list
const stemmer = new Stemmer();
const searchTerms = new Set();
const excludedTerms = new Set();
const highlightTerms = new Set();
const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
splitQuery(query.trim()).forEach((queryTerm) => {
const queryTermLower = queryTerm.toLowerCase();
// maybe skip this "word"
// stopwords array is from language_data.js
if (
stopwords.indexOf(queryTermLower) !== -1 ||
queryTerm.match(/^\d+$/)
)
return;
// stem the word
let word = stemmer.stemWord(queryTermLower);
// select the correct list
if (word[0] === "-") excludedTerms.add(word.substr(1));
else {
searchTerms.add(word);
highlightTerms.add(queryTermLower);
}
});
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
}
// console.debug("SEARCH: searching for:");
// console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]);
return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
},
/**
* execute search (requires search index to be loaded)
*/
_performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const allTitles = Search._index.alltitles;
const indexEntries = Search._index.indexentries;
// Collect multiple result groups to be sorted separately and then ordered.
// Each is an array of [docname, title, anchor, descr, score, filename, kind].
const normalResults = [];
const nonMainIndexResults = [];
_removeChildren(document.getElementById("search-progress"));
const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) {
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
for (const [file, id] of foundTitles) {
const score = Math.round(Scorer.title * queryLower.length / title.length);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "",
null,
score + boost,
filenames[file],
SearchResultKind.title,
]);
}
}
}
// search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
for (const [file, id, isMain] of foundEntries) {
const score = Math.round(100 * queryLower.length / entry.length);
const result = [
docNames[file],
titles[file],
id ? "#" + id : "",
null,
score,
filenames[file],
SearchResultKind.index,
];
if (isMain) {
normalResults.push(result);
} else {
nonMainIndexResults.push(result);
}
}
}
}
// lookup as object
objectTerms.forEach((term) =>
normalResults.push(...Search.performObjectSearch(term, objectTerms))
);
// lookup as search terms in fulltext
normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
// let the scorer override scores with a custom scoring function
if (Scorer.score) {
normalResults.forEach((item) => (item[4] = Scorer.score(item)));
nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
}
// Sort each group of results by score and then alphabetically by name.
normalResults.sort(_orderResultsByScoreThenName);
nonMainIndexResults.sort(_orderResultsByScoreThenName);
// Combine the result groups in (reverse) order.
// Non-main index entries are typically arbitrary cross-references,
// so display them after other results.
let results = [...nonMainIndexResults, ...normalResults];
// remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
let seen = new Set();
results = results.reverse().reduce((acc, result) => {
let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
if (!seen.has(resultStr)) {
acc.push(result);
seen.add(resultStr);
}
return acc;
}, []);
return results.reverse();
},
query: (query) => {
const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
// for debugging
//Search.lastresults = results.slice(); // a copy
// console.info("search results:", Search.lastresults);
// print the results
_displayNextItem(results, results.length, searchTerms, highlightTerms);
},
/**
* search for object names
*/
performObjectSearch: (object, objectTerms) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const objects = Search._index.objects;
const objNames = Search._index.objnames;
const titles = Search._index.titles;
const results = [];
const objectSearchCallback = (prefix, match) => {
const name = match[4]
const fullname = (prefix ? prefix + "." : "") + name;
const fullnameLower = fullname.toLowerCase();
if (fullnameLower.indexOf(object) < 0) return;
let score = 0;
const parts = fullnameLower.split(".");
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
if (fullnameLower === object || parts.slice(-1)[0] === object)
score += Scorer.objNameMatch;
else if (parts.slice(-1)[0].indexOf(object) > -1)
score += Scorer.objPartialMatch; // matches in last name
const objName = objNames[match[1]][2];
const title = titles[match[0]];
// If more than one term searched for, we require other words to be
// found in the name/title/description
const otherTerms = new Set(objectTerms);
otherTerms.delete(object);
if (otherTerms.size > 0) {
const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
if (
[...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
)
return;
}
let anchor = match[3];
if (anchor === "") anchor = fullname;
else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
const descr = objName + _(", in ") + title;
// add custom score for some objects according to scorer
if (Scorer.objPrio.hasOwnProperty(match[2]))
score += Scorer.objPrio[match[2]];
else score += Scorer.objPrioDefault;
results.push([
docNames[match[0]],
fullname,
"#" + anchor,
descr,
score,
filenames[match[0]],
SearchResultKind.object,
]);
};
Object.keys(objects).forEach((prefix) =>
objects[prefix].forEach((array) =>
objectSearchCallback(prefix, array)
)
);
return results;
},
/**
* search for full-text terms in the index
*/
performTermsSearch: (searchTerms, excludedTerms) => {
// prepare search
const terms = Search._index.terms;
const titleTerms = Search._index.titleterms;
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const scoreMap = new Map();
const fileMap = new Map();
// perform the search on the required terms
searchTerms.forEach((word) => {
const files = [];
// find documents, if any, containing the query word in their text/title term indices
// use Object.hasOwnProperty to avoid mismatching against prototype properties
const arr = [
{ files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term },
{ files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title },
];
// add support for partial matches
if (word.length > 2) {
const escapedWord = _escapeRegExp(word);
if (!terms.hasOwnProperty(word)) {
Object.keys(terms).forEach((term) => {
if (term.match(escapedWord))
arr.push({ files: terms[term], score: Scorer.partialTerm });
});
}
if (!titleTerms.hasOwnProperty(word)) {
Object.keys(titleTerms).forEach((term) => {
if (term.match(escapedWord))
arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
});
}
}
// no match but word was a required one
if (arr.every((record) => record.files === undefined)) return;
// found search word in contents
arr.forEach((record) => {
if (record.files === undefined) return;
let recordFiles = record.files;
if (recordFiles.length === undefined) recordFiles = [recordFiles];
files.push(...recordFiles);
// set score for the word in each file
recordFiles.forEach((file) => {
if (!scoreMap.has(file)) scoreMap.set(file, new Map());
const fileScores = scoreMap.get(file);
fileScores.set(word, record.score);
});
});
// create the mapping
files.forEach((file) => {
if (!fileMap.has(file)) fileMap.set(file, [word]);
else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
});
});
// now check if the files don't contain excluded terms
const results = [];
for (const [file, wordList] of fileMap) {
// check if all requirements are matched
// as search terms with length < 3 are discarded
const filteredTermCount = [...searchTerms].filter(
(term) => term.length > 2
).length;
if (
wordList.length !== searchTerms.size &&
wordList.length !== filteredTermCount
)
continue;
// ensure that none of the excluded terms is in the search result
if (
[...excludedTerms].some(
(term) =>
terms[term] === file ||
titleTerms[term] === file ||
(terms[term] || []).includes(file) ||
(titleTerms[term] || []).includes(file)
)
)
break;
// select one (max) score for the file.
const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w)));
// add result to the result list
results.push([
docNames[file],
titles[file],
"",
null,
score,
filenames[file],
SearchResultKind.text,
]);
}
return results;
},
/**
* helper function to return a node containing the
* search summary for a given text. keywords is a list
* of stemmed words.
*/
makeSearchSummary: (htmlText, keywords, anchor) => {
const text = Search.htmlToText(htmlText, anchor);
if (text === "") return null;
const textLower = text.toLowerCase();
const actualStartPosition = [...keywords]
.map((k) => textLower.indexOf(k.toLowerCase()))
.filter((i) => i > -1)
.slice(-1)[0];
const startWithContext = Math.max(actualStartPosition - 120, 0);
const top = startWithContext === 0 ? "" : "...";
const tail = startWithContext + 240 < text.length ? "..." : "";
let summary = document.createElement("p");
summary.classList.add("context");
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
return summary;
},
};
_ready(Search.init);

View File

@@ -0,0 +1,154 @@
/* Highlighting utilities for Sphinx HTML documentation. */
"use strict";
const SPHINX_HIGHLIGHT_ENABLED = true
/**
* highlight a given string on a node by wrapping it in
* span elements with the given class name.
*/
const _highlight = (node, addItems, text, className) => {
if (node.nodeType === Node.TEXT_NODE) {
const val = node.nodeValue;
const parent = node.parentNode;
const pos = val.toLowerCase().indexOf(text);
if (
pos >= 0 &&
!parent.classList.contains(className) &&
!parent.classList.contains("nohighlight")
) {
let span;
const closestNode = parent.closest("body, svg, foreignObject");
const isInSVG = closestNode && closestNode.matches("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.classList.add(className);
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
const rest = document.createTextNode(val.substr(pos + text.length));
parent.insertBefore(
span,
parent.insertBefore(
rest,
node.nextSibling
)
);
node.nodeValue = val.substr(0, pos);
/* There may be more occurrences of search term in this node. So call this
* function recursively on the remaining fragment.
*/
_highlight(rest, addItems, text, className);
if (isInSVG) {
const rect = document.createElementNS(
"http://www.w3.org/2000/svg",
"rect"
);
const bbox = parent.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute("class", className);
addItems.push({ parent: parent, target: rect });
}
}
} else if (node.matches && !node.matches("button, select, textarea")) {
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
}
};
const _highlightText = (thisNode, text, className) => {
let addItems = [];
_highlight(thisNode, addItems, text, className);
addItems.forEach((obj) =>
obj.parent.insertAdjacentElement("beforebegin", obj.target)
);
};
/**
* Small JavaScript module for the documentation.
*/
const SphinxHighlight = {
/**
* highlight the search words provided in localstorage in the text
*/
highlightSearchWords: () => {
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
// get and clear terms from localstorage
const url = new URL(window.location);
const highlight =
localStorage.getItem("sphinx_highlight_terms")
|| url.searchParams.get("highlight")
|| "";
localStorage.removeItem("sphinx_highlight_terms")
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
// get individual terms from highlight string
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
if (terms.length === 0) return; // nothing to do
// There should never be more than one element matching "div.body"
const divBody = document.querySelectorAll("div.body");
const body = divBody.length ? divBody[0] : document.querySelector("body");
window.setTimeout(() => {
terms.forEach((term) => _highlightText(body, term, "highlighted"));
}, 10);
const searchBox = document.getElementById("searchbox");
if (searchBox === null) return;
searchBox.appendChild(
document
.createRange()
.createContextualFragment(
'<p class="highlight-link">' +
'<a href="javascript:SphinxHighlight.hideSearchWords()">' +
_("Hide Search Matches") +
"</a></p>"
)
);
},
/**
* helper function to hide the search marks again
*/
hideSearchWords: () => {
document
.querySelectorAll("#searchbox .highlight-link")
.forEach((el) => el.remove());
document
.querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted"));
localStorage.removeItem("sphinx_highlight_terms")
},
initEscapeListener: () => {
// only install a listener if it is really needed
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
document.addEventListener("keydown", (event) => {
// bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
// bail with special keys
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
SphinxHighlight.hideSearchWords();
event.preventDefault();
}
});
},
};
_ready(() => {
/* Do not call highlightSearchWords() when we are on the search page.
* It will highlight words from the *previous* search query.
*/
if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
SphinxHighlight.initEscapeListener();
});

View File

@@ -0,0 +1,67 @@
.admonition {
padding: 12px;
line-height: 24px;
margin-bottom: 24px;
background: #e7f2fa;
.admonition-title {
color: #fff;
font-weight: bold;
display: block;
margin: -6px;
padding: 6px 12px;
margin-bottom: 12px;
background: #6ab0de;
&:before {
display: inline-block;
font-family: fontawesome-webfont;
content: "\f06a";
font-style: normal;
font-weight: normal;
line-height: 1;
text-decoration: inherit;
margin-right: 4px;
}
}
&.attention, &.caution, &.warning {
background: #ffedcc;
.admonition-title {
background: #f0b37e;
&:before {
content: "\f071";
}
}
}
&.danger, &.error {
background: #fdf3f2;
.admonition-title {
background: #f29f97;
&:before {
content: "\f7b9";
}
}
}
&.hint, &.important {
background: #dbfaf4;;
.admonition-title {
background: #1abc9c;
}
}
&.hint, &.note {
.admonition-title:before {
content: "\f05a";
}
}
}

View File

@@ -0,0 +1,139 @@
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-radius: 0.25rem;
}
.alert-heading {
color: inherit;
}
.alert-link {
font-weight: 700;
}
.alert-dismissible {
padding-right: 4rem;
}
.alert-dismissible .close {
position: absolute;
top: 0;
right: 0;
padding: 0.75rem 1.25rem;
color: inherit;
}
.alert-primary {
color: #004085;
background-color: #cce5ff;
border-color: #b8daff;
}
.alert-primary hr {
border-top-color: #9fcdff;
}
.alert-primary .alert-link {
color: #002752;
}
.alert-secondary {
color: #383d41;
background-color: #e2e3e5;
border-color: #d6d8db;
}
.alert-secondary hr {
border-top-color: #c8cbcf;
}
.alert-secondary .alert-link {
color: #202326;
}
.alert-success {
color: #155724;
background-color: #d4edda;
border-color: #c3e6cb;
}
.alert-success hr {
border-top-color: #b1dfbb;
}
.alert-success .alert-link {
color: #0b2e13;
}
.alert-info {
color: #0c5460;
background-color: #d1ecf1;
border-color: #bee5eb;
}
.alert-info hr {
border-top-color: #abdde5;
}
.alert-info .alert-link {
color: #062c33;
}
.alert-warning {
color: #856404;
background-color: #fff3cd;
border-color: #ffeeba;
}
.alert-warning hr {
border-top-color: #ffe8a1;
}
.alert-warning .alert-link {
color: #533f03;
}
.alert-danger {
color: #721c24;
background-color: #f8d7da;
border-color: #f5c6cb;
}
.alert-danger hr {
border-top-color: #f1b0b7;
}
.alert-danger .alert-link {
color: #491217;
}
.alert-light {
color: #818182;
background-color: #fefefe;
border-color: #fdfdfe;
}
.alert-light hr {
border-top-color: #ececf6;
}
.alert-light .alert-link {
color: #686868;
}
.alert-dark {
color: #1b1e21;
background-color: #d6d8d9;
border-color: #c6c8ca;
}
.alert-dark hr {
border-top-color: #b9bbbe;
}
.alert-dark .alert-link {
color: #040505;
}

View File

@@ -0,0 +1,74 @@
dl.head, dl.get, dl.post, dl.put, dl.delete, dl.patch, dl.options, dl.trace, dl.connect, dl.copy, dl.any {
break-before: auto;
break-after: auto;
break-inside: auto;
//> * {
// break-before: auto;
//}
> dd > dl.field-list {
display: block;
> * {
flex-basis: unset;
padding-left: 0;
}
}
> dt {
margin-bottom: 1em;
}
> dd {
margin-left: 0;
> p > strong {
font-weight: normal;
}
}
span.sig-paren, em.property, em.sig-param {
font-weight: normal;
}
code.descname:first-child {
font-size: 0.9em;
background-color: #337ab7;
color: white;
display: inline-block;
padding-left: 5px;
padding-right: 5px;
margin-right: 10px;
}
&.get {
code.descname:first-child {
background-color: #61AFFE;
}
}
&.post {
code.descname:first-child {
background-color: #49CC90;
}
}
&.put {
code.descname:first-child {
background-color: #FCA130;
}
}
&.patch {
code.descname:first-child {
background-color: #50E3C2;
}
}
&.delete {
code.descname:first-child {
background-color: #F93E3E;
}
}
}

View File

@@ -0,0 +1,27 @@
#back-cover {
width: 100%;
height: 100%;
.container {
width: 100%;
.back-cover-footer {
font-family: 'Helvetica Neue';
font-size: 11pt;
margin-top: 3px;
position: absolute;
bottom: 30pt;
color: $white;
width: 100%;
p {
width: 80%;
margin: 0 auto;
text-align: center;
a {
color: $white;
}
}
}
}
}

View File

@@ -0,0 +1,4 @@
div.topic {
border: 0;
padding: 0;
}

View File

@@ -0,0 +1,35 @@
dl.class, dl.type, dl.function, dl.member, dl.var, dl.enum, dl.enum-class, dl.enum-struct, dl.method {
dt {
text-align: left;
}
> dt {
font-weight: normal;
}
em.property {
font-weight: bold;
color: #007020;
}
em.sig-param {
color: #007020;
}
code.sig-prename {
font-weight: bold;
color: #4070a0;
}
code.sig-name {
color: #0e84b5;
}
dl.field-list {
display: block;
dt, dd {
padding-left: 0;
}
}
}

View File

@@ -0,0 +1,117 @@
#cover {
width: 100%;
// height: 100%;
align-content: space-between;
display: flex;
flex-wrap: wrap;
height: 297mm;
background: $cover-bg;
background-size: cover;
margin: 0;
h1 {
font-family: "Work Sans", sans-serif;
color: $primary;
font-size: 38pt;
margin: 5cm 2cm 0 2cm;
page: no-chapter;
width: 100%;
}
a {
color: $cover;
font-weight: bolder;
}
.container {
width: 100%;
top: 0;
background: $cover-overlay;
.logo {
font-size: 24pt;
color: $cover;
width: 200px;
height: 45px;
position: absolute;
text-align: right;
top: 40pt;
right: 20pt;
p {
margin: auto;
}
}
.cover-middle {
position: relative;
top: 40%;
width: 100%;
.title {
position: absolute;
top: 5pt;
left: 40pt;
height: 150pt;
.title-cover {
font-family: "Work Sans Bold", sans-serif;
font-size: 45pt;
margin-bottom: 0;
margin-top: 0;
margin-left: 0;
color: $cover;
}
.subtitle-cover {
font-family: "Work Sans Bold", sans-serif;
font-weight: bolder;
font-size: 28pt;
// text-transform: uppercase;
margin-top: 5pt;
color: $cover;
}
.meta {
font-family: 'Work Sans';
font-size: 18pt;
margin-top: 12pt;
margin-bottom: 0;
color: $cover;
}
}
.client-logo {
position: absolute;
border-radius: 8pt;
border: 4px solid white;
background-color: white;
top: 20pt;
right: 40pt;
float: right;
height: 150px;
width: 150px;
img {
width: 150px;
height: 150px;
}
}
}
.cover-footer {
font-family: 'Work Sans';
font-size: 11pt;
margin-top: 3px;
position: absolute;
bottom: 30pt;
color: $white;
width: 100%;
p {
width: 80%;
margin: 0 auto;
text-align: center;
}
}
}
}

View File

@@ -0,0 +1,75 @@
@font-face {
font-family: Work Sans Bold;
font-weight: bold;
src: url(fonts/WorkSans-Bold.ttf);
}
@font-face {
font-family: Work Sans Bold;
font-weight: 400;
src: url(fonts/WorkSans-SemiBold.ttf);
}
@font-face {
font-family: Work Sans;
font-weight: 400;
src: url(fonts/WorkSans-Regular.ttf);
}
@font-face {
font-family: Fira Sans;
font-weight: 400;
src: url(fonts/FiraSans-Regular.otf);
}
@font-face {
font-family: Fira Sans;
font-style: italic;
font-weight: 400;
src: url(fonts/FiraSans-Italic.otf);
}
@font-face {
font-family: Fira Sans;
font-weight: 300;
src: url(fonts/FiraSans-Light.otf);
}
@font-face {
font-family: Fira Sans;
font-style: italic;
font-weight: 300;
src: url(fonts/FiraSans-LightItalic.otf);
}
@font-face {
font-family: Fira Sans;
font-weight: bold;
src: url(fonts/FiraSans-Bold.otf);
}
@font-face {
font-family: fontawesome-webfont;
//font-weight: normal;
//font-style: normal;
src: url("fonts/fa-solid-900.eot");
src: url("fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("fonts/fa-solid-900.ttf") format("truetype"), url("fonts/fa-solid-900.svg#fontawesome-webfont") format("svg")
}
@font-face {
font-family: monospace;
src: url(fonts/FiraMono-Regular.ttf);
}
@font-face {
font-family: monospace;
font-weight: 400;
src: url(fonts/FiraMono-Medium.ttf);
}
@font-face {
font-family: monospace;
font-weight: bold;
src: url(fonts/FiraMono-Bold.ttf);
}

View File

@@ -0,0 +1,54 @@
ul, ol {
padding-left: 15px;
ul, ol {
padding-left: 20px;
}
}
dl {
dt {
font-weight: bold;
}
}
dl.option-list, dl.field-list {
display: flex;
flex-wrap: wrap;
//margin-left: -15px;
//margin-right: -15px;
dt, dd {
//margin-left: 15px;
//margin-right: 15px;
}
dt {
//margin-left: 30px;
padding-right: 15px;
flex: 0 0 33%;
max-width: 33%;
font-weight: normal;
}
dd {
//margin-right: 30px;
margin-left: 0;
padding-left: 15px;
flex: 0 0 66%;
max-width: 66%;
}
}
dl.field-list {
dt, dd {
padding-top: .5em;
padding-bottom: .5em;
}
}
.hlist {
ul {
list-style: none;
}
}

View File

@@ -0,0 +1,10 @@
.needs_style_break {
page-break-before: always;
}
table.need, table.NEEDS_DATATABLES, .needs_style_ssp-table-wrap {
table-layout: fixed;
td, th {
overflow-wrap: break-word;
}
}

View File

@@ -0,0 +1,206 @@
// Page helpers
.dont-break {
page-break-inside: avoid;
}
.break-before {
page-break-before: always;
}
.break-after {
page-break-after: always;
}
#back-cover {
page: back_cover;
page-break-before: always;
}
@page landscape_page {
size: landscape;
}
@page portrait_page {
size: portrait;
}
.ssp-portrait {
page: portrait_page;
}
.ssp-landscape {
page: landscape_page;
}
@page {
padding-top: 1em;
@top-left {
background: $primary;
color: $white;
content: $top-left-content;
height: 1cm;
text-align: center;
width: 1cm;
}
@top-center {
content: $top-center-content;
font-size: 9pt;
height: 1cm;
text-align: center;
vertical-align: middle;
width: 100%;
border-bottom-color: $primary-opaque;
border-bottom-style: solid;
border-bottom-width: 0.05cm;
}
@top-right {
content: $top-right-content;
font-size: 9pt;
height: 1cm;
text-align: right;
vertical-align: middle;
width: 100%;
border-bottom-color: $primary-opaque;
border-bottom-style: solid;
border-bottom-width: 0.05cm;
}
@bottom-left {
content: $bottom-left-content;
text-align: left;
font-size: 9pt;
height: 1cm;
vertical-align: middle;
width: 100%;
border-top-color: $primary-opaque;
border-top-style: solid;
border-top-width: 0.05cm;
margin-top: 3px;
position: absolute;
bottom: 30pt;
}
@bottom-center {
content: $bottom-center-content;
text-align: center;
font-size: 9pt;
height: 1cm;
vertical-align: middle;
width: 100%;
border-top-color: $primary-opaque;
border-top-style: solid;
border-top-width: 0.05cm;
margin-top: 3px;
position: absolute;
bottom: 30pt;
}
@bottom-right {
content: $bottom-right-content;
text-align: right;
font-size: 9pt;
height: 1cm;
vertical-align: middle;
width: 100%;
margin-top: 3px;
position: absolute;
bottom: 30pt;
border-top-color: $primary-opaque;
border-top-style: solid;
border-top-width: 0.05cm;
}
}
@page:blank {
@top-left {
background: none;
content: "";
}
@top-center {
content: none;
}
@top-right {
content: none;
}
}
@page no-chapter {
@top-left {
background: none;
content: none;
}
@top-center {
content: none;
}
@top-right {
content: none;
}
}
@if not $nocover {
@page:first {
background: $cover-bg;
background-size: cover;
margin: 0;
}
}
@media screen {
#cover {
background: $cover-bg;
background-size: cover;
margin: 0;
}
}
@page chapter {
background: $primary;
color: $white;
margin: 0;
@top-left {
content: none;
}
@top-center {
content: none;
}
@top-right {
content: none;
}
}
// Back cover
@page back_cover {
background: $cover-bg;
background-size: cover;
margin: 0;
color: #ffffff;
}
@page back_cover {
@bottom-right {
content: none;
}
@top-left {
background: none;
content: '';
}
@top-center {
content: none;
}
@top-right {
content: none;
}
}

View File

@@ -0,0 +1,67 @@
table.break {
page-break-before: always;
}
table.ssp-table-wrap {
table-layout: fixed;
td, th {
overflow-wrap: break-word;
}
}
table.docutils {
width: 100%;
max-width: 100%;
margin-bottom: 1rem;
background-color: transparent;
border-spacing: 0;
td, th {
padding: .75rem;
vertical-align: top;
}
thead {
th {
vertical-align: bottom;
border-bottom: 2px solid #dee2e6;
background: #F0F0F0;
border-top: 1px solid #dee2e6;
}
}
tbody {
tr {
&.row-odd {
background: #f6f6f6;
}
td {
display: table-cell;
font-weight: normal !important;
}
* {
border: 0;
}
}
}
}
table.docutils.ssp-tinier {
td, th {
padding: .4rem;
vertical-align: top;
font-size: 0.75em;
}
}
table.docutils.ssp-tiny {
td, th {
padding: .05rem;
vertical-align: top;
font-size: 0.5em;
}
}

View File

@@ -0,0 +1,177 @@
.badge {
display: inline-block;
padding: .25em .4em;
font-size: 75%;
font-weight: 700;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25rem;
}
.text-white {
color: #fff !important;
}
.text-primary {
color: #007bff !important;
}
a {
color: $links;
//color: #083764;
text-decoration: none;
}
a.text-primary:hover, a.text-primary:focus {
color: #0056b3 !important;
}
.text-secondary {
color: #6c757d !important;
}
a.text-secondary:hover, a.text-secondary:focus {
color: #494f54 !important;
}
.text-success {
color: #28a745 !important;
}
a.text-success:hover, a.text-success:focus {
color: #19692c !important;
}
.text-info {
color: #17a2b8 !important;
}
a.text-info:hover, a.text-info:focus {
color: #0f6674 !important;
}
.text-warning {
color: #ffc107 !important;
}
a.text-warning:hover, a.text-warning:focus {
color: #ba8b00 !important;
}
.text-danger {
color: #dc3545 !important;
}
a.text-danger:hover, a.text-danger:focus {
color: #a71d2a !important;
}
.text-light {
color: #f8f9fa !important;
}
a.text-light:hover, a.text-light:focus {
color: #cbd3da !important;
}
.text-dark {
color: #343a40 !important;
}
a.text-dark:hover, a.text-dark:focus {
color: #121416 !important;
}
.text-body {
color: #212529 !important;
}
.text-muted {
color: #6c757d !important;
}
.text-black-50 {
color: rgba(0, 0, 0, 0.5) !important;
}
.text-white-50 {
color: rgba(255, 255, 255, 0.5) !important;
}
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.text-decoration-none {
text-decoration: none !important;
}
.square-brackets-quote {
border: solid 1em #ccc;
// display:inline-block;
margin: 0;
padding: 1em;
position:relative;
// margin-left: 0;
max-width: 100%;
&:before {
background-color: white;
bottom: -1em;
content: "";
left: 2em;
position: absolute;
right: 2em;
top: -1em;
}
cite {
color: #757575;
display: block;
font-size: small;
font-style: normal;
text-align: right;
text-transform: uppercase;
}
> * {
position: relative;
z-index: 1;
}
}
.body {
text-align: justify;
pre, h1, h2, h3, h4, h5, h6 {
text-align: left;
}
}
a.download {
code.download.literal.notranslate {
color: #083764;
background-color: transparent;
font-family: inherit;
&:before {
display: inline-block;
font-family: fontawesome-webfont;
content: "\f019";
font-style: normal;
font-weight: normal;
line-height: 1;
text-decoration: inherit;
margin-right: 2px;
}
}
}

View File

@@ -0,0 +1,161 @@
// .. contents:: config
.contents {
ul {
list-style: none;
}
> ul {
padding-left: 0;
> li {
font-weight: 500;
line-height: 15pt;
margin: 3em 0 1em;
&::before {
background: $primary;
color: $white;
content: "";
display: block;
height: 0.08cm;
margin-bottom: 0.25cm;
width: 2cm;
}
a {
color: #000000;
font-size: 15pt;
}
a::after {
color: $primary;
content: target-counter(attr(href url), page);
// font-size: 15pt;
float: right;
}
> ul {
list-style: none;
padding-left: 0;
li {
border-top: 0.3pt solid #c1c1c1;
margin: 0.25cm 0;
padding-top: 0.25cm;
line-height: 12pt;
// font-size: 12pt;
font-weight: 300;
a {
color: #000000;
font-size: 12pt;
}
p::before {
color: $primary;
content: "";
font-size: 40pt;
line-height: 16pt;
vertical-align: bottom;
}
ul {
padding-left: 2em;
}
}
}
}
}
}
// .. toctree:: config
.sphinxsidebarwrapper {
page-break-before: always;
div {
ul {
list-style: none;
}
> ul {
padding-left: 0;
> li {
font-weight: 500;
//line-height: 15pt;
line-height: 12pt;
//margin: 3em 0 1em;
margin: 2em 0 1em;
// Adds a red, short line above each main chapter
//&::before {
// background: $primary;
// color: $white;
// content: "";
// display: block;
// height: 0.08cm;
// margin-bottom: 0.25cm;
// width: 2cm;
//}
a {
color: #000000;
//font-size: 15pt;
font-size: 13pt;
}
a::after {
color: $primary;
content: target-counter(attr(href url), page);
//content: '123';
// font-size: 15pt;
float: right;
}
> ul {
list-style: none;
padding-left: 0;
li {
border-top: 0.3pt solid #c1c1c1;
//margin: 0.25cm 0;
margin: 0.15cm 0;
//padding-top: 0.25cm;
padding-top: 0.15cm;
//line-height: 12pt;
line-height: 10pt;
// font-size: 12pt;
font-weight: 300;
a {
color: #000000;
font-size: 12pt;
}
a::before {
color: $primary;
content: "";
//font-size: 40pt;
font-size: 30pt;
//line-height: 13pt;
line-height: 10pt;
vertical-align: bottom;
}
ul {
padding-left: 2em;
}
}
}
}
}
}
}

View File

@@ -0,0 +1,28 @@
// Used to define scss variables, so that the config()-call is used only once (in this file) and
// inside other scss-files.
// Outside this scss-file use the here defined variables.
// Colors
$primary: config('primary', '#961a1a') !default;
$primary-opaque: config('primary-opaque', 'rgba(150, 26, 26, .5)') !default;
$secondary: config('secondary', '#379683') !default;
$cover: config('cover', '#ffffff') !default;
$white: config('white', '#ffffff') !default;
$links: config('links', '#961a1a') !default;
// Images
$cover-bg: config('cover-bg', '#961a1a');
$cover-overlay: config('cover-overlay', 'rgba(0,0,0,0)');
// pdf header content
$top-left-content: config('top-left-content', 'counter(page)') !default;
$top-center-content: config('top-center-content', '') !default;
$top-right-content: config('top-right-content', 'string(heading)') !default;
// pdf footer content
$bottom-left-content: config('bottom-left-content', '') !default;
$bottom-center-content: config('bottom-center-content', '') !default;
$bottom-right-content: config('bottom-right-content', '') !default;
$nocover: theme_option('nocover', false) !default;

View File

@@ -0,0 +1,176 @@
@charset "UTF-8";
@import "variables";
@import "fonts";
@import "lists";
@import "tables";
@import "blocks";
@import "alerts";
@import "code";
@import "toc";
@import "pages";
@import "cover";
@import "back-cover";
@import "text";
@import "admonition";
@import "api";
@import "needs";
@media print
{
// Para evitar que queden espacios entre los bloques de API
dd, dt, dl {
// page-break-inside: avoid;
}
}
body div.body {
min-width: unset;
max-width: unset;
}
.docutils {
th.field-name {
display: table-row;
}
td {
display: none;
}
td.field-body {
display: table-row;
padding-top: 1em;
ul {
margin-left: 1em;
margin-bottom: 1em;
}
}
}
body {
margin: 0;
}
.highlight-default {
margin-top: 0.5em;
}
.highlight {
pre {
padding: 1em;
//white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;
white-space: pre-wrap;
}
}
.headerlink {
display: none;
}
html {
color: #393939;
font-family: Fira Sans;
font-size: 11pt;
font-weight: 300;
line-height: 1.5;
body {
h1 {
color: $primary;
font-size: 30pt;
page-break-before: always;
}
h2, h3, h4 {
color: black;
font-weight: 400;
}
h2 {
page-break-before: always;
font-size: 28pt;
string-set: heading content();
}
h3 {
font-weight: 300;
font-size: 20pt;
}
h4 {
font-size: 16pt;
}
h5 {
font-size: 15pt;
font-weight: 100;
}
h6 {
font-size: 13pt;
font-weight: 100;
}
section {
h5 {
margin-bottom: 1pt;
}
p {
margin-top: 0;
}
}
h5, h6 {
margin-bottom: 0;
padding-bottom: 0;
}
}
}
.alert {
i {
margin-right: 6pt;
}
}
.is-marginless { margin: 0 !important; }
.is-paddingless { padding: 0 !important; }
.charts-inline {
columns: 2;
column-fill: balance;
}
.img-fluid {
max-width: 100%;
height: auto;
}
img {
max-width: 100%;
height: auto;
}
.big-stats {
font-size: 23pt;
}
.docutils.literal.notranslate {
//-moz-hyphens: none;
//-ms-hyphens: none;
//-webkit-hyphens: none;
hyphens: none;
color: #552977;
background-color: #f1f1f1;
font-size: 9pt;
display: inline-block;
padding: 1pt 3pt;
}